VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtOsgOverlayManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvOsg/vrvOsg.h>
13 #include <vrvCore/DtUniqueID.h>
15 #include <boost/unordered_map.hpp>
16 #include <set>
17 
18 namespace makVrv
19 {
20 
21  class DtOsgRenderer;
22  class DtOsgOverlayResourceProvider;
23  class DtChannelManager;
24  class DtChannel;
25  class DtOverlayRenderer;
26  class DtWidgetPicker;
27  class DtFontManager;
28 
32  {
33  public:
34 
37 
40 
41  inline DtDe& de()
42  {
43  return myDe;
44  }
45 
49  virtual bool handleMouseEvent(const DtMouseEvent& ev, DtChannel& channel);
50 
54  bool processWidgetEvent( DtElementID id, const DtMouseEvent &ev,
55  DtChannel& channel );
56 
58  virtual void render(DtChannel* channel, bool projectedGeocentricEffect,
59  float projectedGeocentricAlpha,
60  double* position, double* matrix, double viewportSize[2]);
61 
63  virtual void releaseResources();
64 
66  virtual DtOsgOverlayResourceProvider* resourceProvider();
67 
69  DtOverlayRenderer& overlayRenderer(unsigned int layerId);
70 
73  DtOverlayRenderer& overlayRenderer(DtChannel* channel);
74  DtOverlayRenderer& overlayRenderer3D(DtChannel* channel);
75 
78  DtOverlayRenderer& overlayRenderer(DtChannel* channel, int modelSet);
79 
81  virtual void enableOverlayOnChannel(unsigned int layerId, bool enabled,
82  DtChannel& channel);
83 
87  virtual void enableModelSetOnChannel(int modelSet, bool enabled,
88  DtChannel& channel);
89 
91  DtWidgetPicker& widgetPicker(unsigned int layerId);
92 
95  DtWidgetPicker& widgetPicker(DtChannel* channel);
96  DtWidgetPicker& widgetPicker3D(DtChannel* channel);
97 
99  DtWidgetPicker& widgetPicker(DtChannel* channel, int modelSet);
100 
102  virtual void destroyOverlayLayer(unsigned int layerId);
103 
105  virtual bool overlayLayerIsVisible(unsigned int layerId) const;
106 
110  virtual void setOverlayLayerVisibility(unsigned int layerId, bool visible);
111 
112  protected:
113 
114  typedef boost::unordered_map<DtChannel*, unsigned int>
116 
117  //Map that maps from channel to supported model set renderer, the sets should be in order.
118  typedef boost::unordered_map<DtChannel*, std::map<int, unsigned int> >
120 
122  virtual void slot_channelToBeDestroyed(DtChannel*);
123 
126  unsigned int allocateChannelSpecificLayerId();
127 
128  void destroyChannelSpecificOverlayLayer(
129  const ChannelSpecificOverlayMap &map, DtChannel* channel );
130 
132  DtOverlayRenderer& overlayRenderer( ChannelSpecificOverlayMap &map,
133  DtChannel* channel );
134 
137  DtWidgetPicker& widgetPicker( ChannelSpecificOverlayMap &map,
138  DtChannel* channel );
139 
142  virtual void destroyChannelModelSetOverlayLayers(DtChannel*);
143 
144  protected:
145 
147  {
148  public:
151 
152  DtOverlayRenderer& getOrCreateRenderer(
153  DtOsgOverlayResourceProvider* provider);
154  DtWidgetPicker& getOrCreatePicker(
155  DtOsgOverlayResourceProvider* provider);
156  DtOverlayRenderer* findRenderer();
157  DtWidgetPicker* findPicker();
158 
159  protected:
162 
163  };
164 
165  typedef boost::unordered_map<unsigned int,DtPickableOverlay*> OverlayMap;
166 
167  //Map, the sets should be in order.
168  typedef boost::unordered_map<DtChannel*, std::set<unsigned int> >
170 
178  bool myChannelSpecificLayerIdUsageList[
179  Channel_SpecificEnd - Channel_SpecificStart + 1 ];
181  };
182 
185  {
187  virtual DtOverlayManager* create(DtDe& de);
188  };
189 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)