VR-Forces 5.0.1 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, bool projectedGeocentricEffect, float projectedGeocentricAlpha, double *position, double altitude, double *matrix, double *projectionMatrix, double viewportSize[2]) 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 DtOverlayRendereroverlayRenderer (unsigned int layerId)
 
virtual DtOverlayRendereroverlayRenderer (DtChannel *channel)
 
virtual DtOverlayRendereroverlayRenderer3D (DtChannel *channel)
 
virtual DtOverlayRendereroverlayRenderer2DNormalized (DtChannel *channel)
 
virtual DtOverlayRendereroverlayRenderer (DtChannel *channel, int modelSet)
 
virtual void enableModelSetOnChannel (int 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, int modelSet)
 
virtual bool somethingToRender (DtChannel *channel) const
 
- Public Member Functions inherited from makVrv::DtOverlayManager
 DtOverlayManager ()
 
virtual ~DtOverlayManager ()
 
 DtOverlayManager (const DtOverlayManager &)=delete
 
DtOverlayManageroperator= (const DtOverlayManager &)=delete
 

Static Public Member Functions

static DtOverlayRendereroverlayRenderer2DNormalized (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 (unsigned int modelSet)
 

Protected Types

typedef std::unordered_map
< DtChannel *, unsigned int
ChannelSpecificOverlayMap
 
typedef std::unordered_map
< DtChannel *, std::map< int,
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 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 DtOverlayRendereroverlayRenderer (ChannelSpecificOverlayMap &map, DtChannel *channel)
 
virtual DtWidgetPickerwidgetPicker (ChannelSpecificOverlayMap &map, DtChannel *channel)
 
virtual void destroyChannelModelSetOverlayLayers (DtChannel *)
 

Protected Attributes

DtDemyDe
 
DtSignalConnectionManager myConnections
 
OverlayMap myOverlays
 
ChannelOverlayMap myChannelOverlayMap
 
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<int, 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 ( void  )
inline

get the DtDe

virtual void makVrv::DtOsgOverlayManager::render ( DtChannel channel,
bool  projectedGeocentricEffect,
float  projectedGeocentricAlpha,
double position,
double  altitude,
double matrix,
double projectionMatrix,
double  viewportSize[2] 
)
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 DtOverlayRenderer& makVrv::DtOsgOverlayManager::overlayRenderer ( unsigned int  layerId)
virtual

Get the renderer for any layer.

virtual DtOverlayRenderer& makVrv::DtOsgOverlayManager::overlayRenderer ( DtChannel channel)
virtual

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

virtual DtOverlayRenderer& makVrv::DtOsgOverlayManager::overlayRenderer3D ( DtChannel channel)
virtual
virtual DtOverlayRenderer& makVrv::DtOsgOverlayManager::overlayRenderer2DNormalized ( DtChannel channel)
virtual
static DtOverlayRenderer* makVrv::DtOsgOverlayManager::overlayRenderer2DNormalized ( DtDe de,
std::string  displayName,
std::string  windowName,
std::string  channelName 
)
static
virtual DtOverlayRenderer& makVrv::DtOsgOverlayManager::overlayRenderer ( DtChannel channel,
int  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.

virtual void makVrv::DtOsgOverlayManager::enableModelSetOnChannel ( int  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.

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

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

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,
int  modelSet 
)
virtual

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

virtual bool makVrv::DtOsgOverlayManager::somethingToRender ( DtChannel channel) const
virtual

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

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 DtOverlayRenderer& 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::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 Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)