16 #include <osg/observer_ptr>
17 #include <osg/GraphicsContext>
19 #include <unordered_map>
25 class DtOsgOverlayResourceProvider;
26 class DtChannelManager;
28 class DtOverlayRenderer;
30 class DtGLFontManager;
32 class DtGlDeleteObjectManager;
33 class DtPickableOverlay;
34 struct DtObserverRenderData;
35 struct DtOverlayRenderData;
36 struct DtOverlayResourceRequirements;
66 const double* currentProjectionMatrix)
override;
69 virtual void releaseResources()
override;
72 virtual void enableOverlayOnChannel(
unsigned int layerId,
bool enabled,
81 virtual void destroyOverlayLayer(
unsigned int layerId)
override;
84 virtual bool overlayLayerIsVisible(
unsigned int layerId)
const override;
89 virtual void setOverlayLayerVisibility(
unsigned int layerId,
bool visible)
override;
111 std::string windowName, std::string channelName );
120 virtual void enableModelSetOnChannel(
DtModelSetId modelSet,
bool enabled,
132 std::string windowName, std::string channelName );
138 virtual bool somethingToRender(
DtChannel* channel,
148 virtual bool doPickerScenePick(
DtChannel& channel,
149 const int mouseX,
const int mouseY,
double& hitX,
double& hitY,
double& hitZ)
const;
151 virtual void handleIfActiveContextChanged(
DtChannel& currentChannel);
154 virtual void slot_channelToBeDestroyed(
DtChannel*);
158 virtual unsigned int allocateChannelSpecificLayerId();
159 virtual void deallocateChannelSpecificLayerId(
unsigned int layerId);
161 typedef std::unordered_map<DtChannel*, unsigned int>
165 typedef std::unordered_map<DtChannel*, std::map<DtModelSetId, unsigned int> >
168 virtual void destroyChannelSpecificOverlayLayer(
182 virtual void destroyChannelModelSetOverlayLayers(
DtChannel*);
186 typedef std::unordered_map<unsigned int,DtPickableOverlay*>
OverlayMap;
189 typedef std::unordered_map<DtChannel*, std::set<unsigned int> >
206 bool myChannelSpecificLayerIdUsageList[
207 Channel_SpecificEnd - Channel_SpecificStart + 1 ];
std::unordered_map< DtChannel *, unsigned int > ChannelSpecificOverlayMap
Definition: DtOsgOverlayManager.h:162
The OSG overlay manager managers 2D graphical overlays.
Definition: DtOsgOverlayManager.h:40
A structure to hold rendering requiresments for overlays. This is used to update overlay resource pro...
Definition: DtCommonRenderData.h:84
Creator class for the DtOsgOverlayManager instance.
Definition: DtOsgOverlayManager.h:215
static std::string myDataPath
Definition: DtOsgOverlayManager.h:195
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
osg::observer_ptr< const osg::GraphicsContext > myLastGraphicsContext
Definition: DtOsgOverlayManager.h:210
ChannelSpecificOverlayMap myChannelSpecific2DOverlayMap
Definition: DtOsgOverlayManager.h:202
ChannelSpecificOverlayMap myChannelSpecific2DNormalizedOverlayMap
Definition: DtOsgOverlayManager.h:205
ChannelModelSetOverlayMap myChannelModelSetOverlayMap
Definition: DtOsgOverlayManager.h:203
DtGlDeleteObjectManager & myGlDeleteObjectManager
Definition: DtOsgOverlayManager.h:211
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
OverlayMap myOverlays
Definition: DtOsgOverlayManager.h:199
The abstract Channel Class.
Definition: DtChannel.h:35
Contains makVrv::DtOverlayManager class.
std::unordered_map< DtChannel *, std::set< unsigned int > > ChannelOverlayMap
Definition: DtOsgOverlayManager.h:190
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Creator class.
Definition: DtOverlayManager.h:136
Abstract base class for managing the overlays.
Definition: DtOverlayManager.h:31
ChannelOverlayMap myChannelOverlayMap
Definition: DtOsgOverlayManager.h:200
A structure to hold rendering information for overlays. This is used to pass to various overlay rende...
Definition: DtCommonRenderData.h:43
DtOsgOverlayResourceProvider * myProvider
Definition: DtOsgOverlayManager.h:208
Base class to provide boost signal/slot management.
ChannelSpecificOverlayMap myChannelSpecific2DEmptySceneMap
Definition: DtOsgOverlayManager.h:201
Vaos are OpenGL context specific. They need to be deleted in the context they are created in...
Definition: DtGlDeleteObjectManager.h:58
DtSignalConnectionManager myConnections
Definition: DtOsgOverlayManager.h:198
DtDe & myDe
Definition: DtOsgOverlayManager.h:197
Contains makVrv::DtUniqueID type.
Contains DLL export macros.
std::unordered_map< DtChannel *, std::map< DtModelSetId, unsigned int > > ChannelModelSetOverlayMap
Definition: DtOsgOverlayManager.h:166
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
The Osg specific implementation of the overlay resource provider.
Definition: DtOsgOverlayResourceProvider.h:29
DtModelSetId
Definition: DtModelSetEnums.h:19
Definition: DtCommonRenderData.h:33
DtDe & de()
get the DtDe
Definition: DtOsgOverlayManager.h:57
The DtOverlayRendererInterface implements the overlay concept. An overlay is a 2D scene that is drawn...
Definition: DtOverlayRendererInterface.h:80
ChannelSpecificOverlayMap myChannelSpecific3DOverlayMap
Definition: DtOsgOverlayManager.h:204
std::unordered_map< unsigned int, DtPickableOverlay * > OverlayMap
Definition: DtOsgOverlayManager.h:186