VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes
makVrv::DtOsgOverlayManager Class Reference

The OSG overlay manager managers 2D graphical overlays.

Inheritance diagram for makVrv::DtOsgOverlayManager:
Inheritance graph
[legend]

Public Member Functions

 DtOsgOverlayManager (DtDe &de)
 
virtual ~DtOsgOverlayManager ()
 
 DtOsgOverlayManager ()=delete
 
 DtOsgOverlayManager (const DtOsgOverlayManager &rhs)=delete
 
DtOsgOverlayManageroperator= (const DtOsgOverlayManager &rhs)=delete
 
DtDede ()
 
virtual void render (DtChannel *channel, const DtOverlayRenderData &overlayRenderData, const DtObserverRenderData &channelRenderData, const double *currentProjectionMatrix) override
 
virtual void releaseResources () override
 
virtual void enableOverlayOnChannel (unsigned int layerId, bool enabled, DtChannel &channel) override
 
virtual bool handleMouseEvent (const DtMouseEvent &ev, DtChannel &channel) override
 
virtual void destroyOverlayLayer (unsigned int layerId) override
 
virtual bool overlayLayerIsVisible (unsigned int layerId) const override
 
virtual void setOverlayLayerVisibility (unsigned int layerId, bool visible) override
 
virtual bool processWidgetEvent (DtElementID id, const DtMouseEvent &ev, DtChannel &channel)
 
virtual
DtOsgOverlayResourceProvider
resourceProvider ()
 
virtual
DtOverlayRendererInterface
overlayRenderer (unsigned int layerId)
 
virtual
DtOverlayRendererInterface
overlayRendererEmptyScene (DtChannel *channel)
 
virtual
DtOverlayRendererInterface
overlayRenderer (DtChannel *channel)
 
virtual
DtOverlayRendererInterface
overlayRenderer3D (DtChannel *channel)
 
virtual
DtOverlayRendererInterface
overlayRenderer2DNormalized (DtChannel *channel)
 
virtual
DtOverlayRendererInterface
overlayRenderer (DtChannel *channel, DtModelSetId modelSet)
 
virtual void enableModelSetOnChannel (DtModelSetId modelSet, bool enabled, DtChannel &channel)
 
virtual DtWidgetPickerwidgetPicker (unsigned int layerId)
 
virtual DtWidgetPickerwidgetPicker (DtChannel *channel)
 
virtual DtWidgetPickerwidgetPicker3D (DtChannel *channel)
 
virtual DtWidgetPickerwidgetPicker2DNormalized (DtChannel *channel)
 
virtual DtWidgetPickerwidgetPicker (DtChannel *channel, DtModelSetId modelSet)
 
virtual bool somethingToRender (DtChannel *channel, DtOverlayResourceRequirements &resourceRequirements) const
 
- Public Member Functions inherited from makVrv::DtOverlayManager
 DtOverlayManager ()
 
virtual ~DtOverlayManager ()
 
 DtOverlayManager (const DtOverlayManager &)=delete
 
DtOverlayManageroperator= (const DtOverlayManager &)=delete
 

Static Public Member Functions

static DtOverlayRendererInterfaceoverlayRenderer2DNormalized (DtDe &de, std::string displayName, std::string windowName, std::string channelName)
 
static DtWidgetPickerwidgetPicker2DNormalized (DtDe &de, std::string displayName, std::string windowName, std::string channelName)
 
- Static Public Member Functions inherited from makVrv::DtOverlayManager
static DefaultOverlays modelSetToOverlay (DtModelSetId modelSet)
 

Protected Types

typedef std::unordered_map
< DtChannel *, unsigned int
ChannelSpecificOverlayMap
 
typedef std::unordered_map
< DtChannel *, std::map
< DtModelSetId, unsigned int > > 
ChannelModelSetOverlayMap
 
typedef std::unordered_map
< unsigned int,
DtPickableOverlay * > 
OverlayMap
 
typedef std::unordered_map
< DtChannel *, std::set
< unsigned int > > 
ChannelOverlayMap
 

Protected Member Functions

virtual bool doPickerScenePick (DtChannel &channel, const int mouseX, const int mouseY, double &hitX, double &hitY, double &hitZ) const
 
virtual void handleIfActiveContextChanged (DtChannel &currentChannel)
 
virtual void slot_channelToBeDestroyed (DtChannel *)
 
virtual unsigned int allocateChannelSpecificLayerId ()
 
virtual void deallocateChannelSpecificLayerId (unsigned int layerId)
 
virtual void destroyChannelSpecificOverlayLayer (ChannelSpecificOverlayMap &map, DtChannel *channel)
 
virtual
DtOverlayRendererInterface
overlayRenderer (ChannelSpecificOverlayMap &map, DtChannel *channel)
 
virtual DtWidgetPickerwidgetPicker (ChannelSpecificOverlayMap &map, DtChannel *channel)
 
virtual void destroyChannelModelSetOverlayLayers (DtChannel *)
 

Protected Attributes

DtDemyDe
 
DtSignalConnectionManager myConnections
 
OverlayMap myOverlays
 
ChannelOverlayMap myChannelOverlayMap
 
ChannelSpecificOverlayMap myChannelSpecific2DEmptySceneMap
 
ChannelSpecificOverlayMap myChannelSpecific2DOverlayMap
 
ChannelModelSetOverlayMap myChannelModelSetOverlayMap
 
ChannelSpecificOverlayMap myChannelSpecific3DOverlayMap
 
ChannelSpecificOverlayMap myChannelSpecific2DNormalizedOverlayMap
 
bool myChannelSpecificLayerIdUsageList [Channel_SpecificEnd-Channel_SpecificStart+1]
 
DtOsgOverlayResourceProvidermyProvider
 
osg::observer_ptr< const
osg::GraphicsContext > 
myLastGraphicsContext
 
DtGlDeleteObjectManagermyGlDeleteObjectManager
 

Static Protected Attributes

static std::string myDataPath
 

Additional Inherited Members

- Public Types inherited from makVrv::DtOverlayManager
enum  DefaultOverlays {
  InvalidOverlay = 0, ModelSet_3D_Overlay, ModelSet_3D_XR_Overlay, ModelSet_3D_Sensor_Overlay,
  ModelSet_3D_Icons_Overlay, ModelSet_3D_Images_Overlay, ModelSet_2D_Icons_Overlay, ModelSet_2D_Images_Overlay,
  ModelSet_UserStart, ModelSet_UserEnd = ModelSet_UserStart + 16, Channel_SpecificStart, Channel_SpecificEnd = Channel_SpecificStart + 128,
  RemoteDisplayOverlay, RemoteDisplayWorldOverlay, SensorViewOverlay, UserStart
}
 
- Public Attributes inherited from makVrv::DtOverlayManager
boost::signalslib::signal
< void(DtChannel *channel,
DefaultOverlays overlay)> 
signal_overlayAboutToBeRendered
 

Member Typedef Documentation

typedef std::unordered_map<DtChannel*, std::map<DtModelSetId, unsigned int> > makVrv::DtOsgOverlayManager::ChannelModelSetOverlayMap
protected
typedef std::unordered_map<DtChannel*, std::set<unsigned int> > makVrv::DtOsgOverlayManager::ChannelOverlayMap
protected

Constructor & Destructor Documentation

makVrv::DtOsgOverlayManager::DtOsgOverlayManager ( DtDe de)

CTOR.

virtual makVrv::DtOsgOverlayManager::~DtOsgOverlayManager ( )
virtual

DTOR.

makVrv::DtOsgOverlayManager::DtOsgOverlayManager ( )
delete

not allowed

makVrv::DtOsgOverlayManager::DtOsgOverlayManager ( const DtOsgOverlayManager rhs)
delete

not allowed

Member Function Documentation

DtOsgOverlayManager& makVrv::DtOsgOverlayManager::operator= ( const DtOsgOverlayManager rhs)
delete

not allowed

DtDe& makVrv::DtOsgOverlayManager::de ( )
inline

get the DtDe

virtual void makVrv::DtOsgOverlayManager::render ( DtChannel channel,
const DtOverlayRenderData overlayRenderData,
const DtObserverRenderData channelRenderData,
const double currentProjectionMatrix 
)
overridevirtual

Render.

Implements makVrv::DtOverlayManager.

virtual void makVrv::DtOsgOverlayManager::releaseResources ( )
overridevirtual

Release any resources.

Implements makVrv::DtOverlayManager.

virtual void makVrv::DtOsgOverlayManager::enableOverlayOnChannel ( unsigned int  layerId,
bool  enabled,
DtChannel channel 
)
overridevirtual

Enable an overlay on a channel.

Implements makVrv::DtOverlayManager.

virtual bool makVrv::DtOsgOverlayManager::handleMouseEvent ( const DtMouseEvent ev,
DtChannel channel 
)
overridevirtual

Handle a mouse event returns true if the event was consumed. returns false if it was not.

Implements makVrv::DtOverlayManager.

Reimplemented in makVrf::DtVrfOsgOverlayManager.

virtual void makVrv::DtOsgOverlayManager::destroyOverlayLayer ( unsigned int  layerId)
overridevirtual

Clear and destroy an overlay layer.

Implements makVrv::DtOverlayManager.

virtual bool makVrv::DtOsgOverlayManager::overlayLayerIsVisible ( unsigned int  layerId) const
overridevirtual

Get whether an overlay layer is visible.

Implements makVrv::DtOverlayManager.

virtual void makVrv::DtOsgOverlayManager::setOverlayLayerVisibility ( unsigned int  layerId,
bool  visible 
)
overridevirtual

Set whether an overlay layer is visible.

Parameters
Input
visibletrue if to show the layer, false if to hide the layer.

Implements makVrv::DtOverlayManager.

virtual bool makVrv::DtOsgOverlayManager::processWidgetEvent ( DtElementID  id,
const DtMouseEvent ev,
DtChannel channel 
)
virtual

Process event on the element.

Returns
true if the event was consumed. returns false if it was not.
virtual DtOsgOverlayResourceProvider* makVrv::DtOsgOverlayManager::resourceProvider ( )
virtual

Get the resource provider.

virtual DtOverlayRendererInterface& makVrv::DtOsgOverlayManager::overlayRenderer ( unsigned int  layerId)
virtual

Get the renderer for any layer.

Implements makVrv::DtOverlayManager.

virtual DtOverlayRendererInterface& makVrv::DtOsgOverlayManager::overlayRendererEmptyScene ( DtChannel channel)
virtual

Get the renderer for a channel-specific layer. This overlay will return a layer where the camera maintains a fixed position.

Implements makVrv::DtOverlayManager.

virtual DtOverlayRendererInterface& makVrv::DtOsgOverlayManager::overlayRenderer ( DtChannel channel)
virtual
virtual DtOverlayRendererInterface& makVrv::DtOsgOverlayManager::overlayRenderer3D ( DtChannel channel)
virtual
virtual DtOverlayRendererInterface& makVrv::DtOsgOverlayManager::overlayRenderer2DNormalized ( DtChannel channel)
virtual
static DtOverlayRendererInterface* makVrv::DtOsgOverlayManager::overlayRenderer2DNormalized ( DtDe de,
std::string  displayName,
std::string  windowName,
std::string  channelName 
)
static
virtual DtOverlayRendererInterface& makVrv::DtOsgOverlayManager::overlayRenderer ( DtChannel channel,
DtModelSetId  modelSet 
)
virtual

Get the renderer for a channel-specific layer. This overlay will return a layer where the camera is the current eye position in the channel.

Implements makVrv::DtOverlayManager.

virtual void makVrv::DtOsgOverlayManager::enableModelSetOnChannel ( DtModelSetId  modelSet,
bool  enabled,
DtChannel channel 
)
virtual

Enables the model set on the channel to display or not. If the model set channel combination does not exist, will create a renderer on the model set/channel combination before enabling if "enabled" is true.

virtual DtWidgetPicker& makVrv::DtOsgOverlayManager::widgetPicker ( unsigned int  layerId)
virtual

Get the widget picker for any layer.

Implements makVrv::DtOverlayManager.

virtual DtWidgetPicker& makVrv::DtOsgOverlayManager::widgetPicker ( DtChannel channel)
virtual

Get the widget picker for a channel-specific layer. Uses fixed position camera.

Implements makVrv::DtOverlayManager.

virtual DtWidgetPicker& makVrv::DtOsgOverlayManager::widgetPicker3D ( DtChannel channel)
virtual
virtual DtWidgetPicker& makVrv::DtOsgOverlayManager::widgetPicker2DNormalized ( DtChannel channel)
virtual
static DtWidgetPicker* makVrv::DtOsgOverlayManager::widgetPicker2DNormalized ( DtDe de,
std::string  displayName,
std::string  windowName,
std::string  channelName 
)
static
virtual DtWidgetPicker& makVrv::DtOsgOverlayManager::widgetPicker ( DtChannel channel,
DtModelSetId  modelSet 
)
virtual

Get the widget picker for a channel-specific layer. Uses eye position camera.

Implements makVrv::DtOverlayManager.

virtual bool makVrv::DtOsgOverlayManager::somethingToRender ( DtChannel channel,
DtOverlayResourceRequirements resourceRequirements 
) const
virtual

whether any of the overlays have something to render for this channel

virtual bool makVrv::DtOsgOverlayManager::doPickerScenePick ( DtChannel channel,
const int  mouseX,
const int  mouseY,
double hitX,
double hitY,
double hitZ 
) const
protectedvirtual

Helper for a widget picker that does a pick into the scene. Returns true if a valid hit was detected.

Parameters
channel- The channel to do the pick on
(mouseX,mouseY)- the channel view mouse position to compute the pick ray from
(hitX,hitY,hitZ)- the output hit location
virtual void makVrv::DtOsgOverlayManager::handleIfActiveContextChanged ( DtChannel currentChannel)
protectedvirtual
virtual void makVrv::DtOsgOverlayManager::slot_channelToBeDestroyed ( DtChannel )
protectedvirtual

Remove channel-specific overlay, if one exists.

virtual unsigned int makVrv::DtOsgOverlayManager::allocateChannelSpecificLayerId ( )
protectedvirtual

Get an unused channel specific layer id; throws exception if none are left.

virtual void makVrv::DtOsgOverlayManager::deallocateChannelSpecificLayerId ( unsigned int  layerId)
protectedvirtual
virtual void makVrv::DtOsgOverlayManager::destroyChannelSpecificOverlayLayer ( ChannelSpecificOverlayMap map,
DtChannel channel 
)
protectedvirtual
virtual DtOverlayRendererInterface& makVrv::DtOsgOverlayManager::overlayRenderer ( ChannelSpecificOverlayMap map,
DtChannel channel 
)
protectedvirtual

Get the renderer for a channel-specific layer.

virtual DtWidgetPicker& makVrv::DtOsgOverlayManager::widgetPicker ( ChannelSpecificOverlayMap map,
DtChannel channel 
)
protectedvirtual

Get the widget picker for a channel-specific layer. Uses fixed camera position for the channel.

virtual void makVrv::DtOsgOverlayManager::destroyChannelModelSetOverlayLayers ( DtChannel )
protectedvirtual

Destroys the supplied channel and model set overlay layer. Called when a channel is destroyed.

Member Data Documentation

std::string makVrv::DtOsgOverlayManager::myDataPath
staticprotected
DtDe& makVrv::DtOsgOverlayManager::myDe
protected
DtSignalConnectionManager makVrv::DtOsgOverlayManager::myConnections
protected
OverlayMap makVrv::DtOsgOverlayManager::myOverlays
protected
ChannelOverlayMap makVrv::DtOsgOverlayManager::myChannelOverlayMap
protected
ChannelSpecificOverlayMap makVrv::DtOsgOverlayManager::myChannelSpecific2DEmptySceneMap
protected
ChannelSpecificOverlayMap makVrv::DtOsgOverlayManager::myChannelSpecific2DOverlayMap
protected
ChannelModelSetOverlayMap makVrv::DtOsgOverlayManager::myChannelModelSetOverlayMap
protected
ChannelSpecificOverlayMap makVrv::DtOsgOverlayManager::myChannelSpecific3DOverlayMap
protected
ChannelSpecificOverlayMap makVrv::DtOsgOverlayManager::myChannelSpecific2DNormalizedOverlayMap
protected
bool makVrv::DtOsgOverlayManager::myChannelSpecificLayerIdUsageList[Channel_SpecificEnd-Channel_SpecificStart+1]
protected
DtOsgOverlayResourceProvider* makVrv::DtOsgOverlayManager::myProvider
protected
osg::observer_ptr<const osg::GraphicsContext> makVrv::DtOsgOverlayManager::myLastGraphicsContext
protected
DtGlDeleteObjectManager& makVrv::DtOsgOverlayManager::myGlDeleteObjectManager
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)