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

Public Member Functions

virtual ~DtSilverLiningCameraManager ()
 
virtual
SilverLining::ThreadCameraStreamData * 
getOrCreateSilverLiningTcsData (const osg::Camera *osgCamera)
 
virtual
SilverLining::ThreadCameraStreamData * 
findSilverLiningTcsData (const osg::Camera *osgCamera)
 
virtual void flushInvalidCameras (const boost::function< void(SilverLining::ThreadCameraStreamData *)> &callback)
 
virtual void deleteAll ()
 
virtual void deleteCloudLayer (unsigned int layerHandle)
 
virtual void reloadShaders (const std::vector< unsigned int > &shaderVector, const std::string &userDefinedVertString, const std::string &userDefinedFragString)
 
virtual void setAtmosphere (SilverLining::Atmosphere *atmosphere)
 
virtual void findTcsDatasWithContext (std::vector< SilverLining::ThreadCameraStreamData * > &vecTcsDatas, void *context)
 

Public Attributes

friend DtSilverLiningCameraManagerCreator
 

Protected Types

typedef std::map
< osg::observer_ptr< const
osg::Camera >
, SilverLining::ThreadCameraStreamData * > 
MapOsgCamerasToTcsDatas
 

Protected Member Functions

 DtSilverLiningCameraManager (DtDe &de)
 
virtual void addGraphicsContextIfNecessary (const osg::Camera *osgCamera, SilverLining::ThreadCameraStreamData *tcsData)
 

Protected Attributes

DtDemyDe
 
MapOsgCamerasToTcsDatas myMapOsgCamerasToTcsDatas
 
OpenThreads::Mutex myMapMutex
 
SilverLining::Atmosphere * myAtmosphere
 
std::unordered_map
< SilverLining::ThreadCameraStreamData
*, void * > 
myMapTcsDataToContext
 

Static Protected Attributes

static std::atomic< inttheCameraId
 

Private Member Functions

 DtSilverLiningCameraManager ()=delete
 
 DtSilverLiningCameraManager (const DtSilverLiningCameraManager &rhs)=delete
 
DtSilverLiningCameraManageroperator= (const DtSilverLiningCameraManager &rhs)=delete
 

Member Typedef Documentation

typedef std::map< osg::observer_ptr<const osg::Camera>, SilverLining::ThreadCameraStreamData*> makVrv::DtSilverLiningCameraManager::MapOsgCamerasToTcsDatas
protected

Constructor & Destructor Documentation

virtual makVrv::DtSilverLiningCameraManager::~DtSilverLiningCameraManager ( )
virtual

DTOR.

makVrv::DtSilverLiningCameraManager::DtSilverLiningCameraManager ( DtDe de)
protected

CTOR. only creator can create.

makVrv::DtSilverLiningCameraManager::DtSilverLiningCameraManager ( )
privatedelete

default constructor not implemented

makVrv::DtSilverLiningCameraManager::DtSilverLiningCameraManager ( const DtSilverLiningCameraManager rhs)
privatedelete

not allowed

Member Function Documentation

DtSilverLiningCameraManager& makVrv::DtSilverLiningCameraManager::operator= ( const DtSilverLiningCameraManager rhs)
privatedelete

not allowed

virtual SilverLining::ThreadCameraStreamData* makVrv::DtSilverLiningCameraManager::getOrCreateSilverLiningTcsData ( const osg::Camera *  osgCamera)
virtual

Get or create the SL tcs data for this atmosphere, given the osg camera.

virtual SilverLining::ThreadCameraStreamData* makVrv::DtSilverLiningCameraManager::findSilverLiningTcsData ( const osg::Camera *  osgCamera)
virtual

find SL tcs data for this atmosphere, given the osg camera

virtual void makVrv::DtSilverLiningCameraManager::flushInvalidCameras ( const boost::function< void(SilverLining::ThreadCameraStreamData *)> &  callback)
virtual

Flush the invalid cameras will delete the tcs data for invalid cameras.

virtual void makVrv::DtSilverLiningCameraManager::deleteAll ( )
virtual

delete all. call just before atmosphere is being destroyed

virtual void makVrv::DtSilverLiningCameraManager::deleteCloudLayer ( unsigned int  layerHandle)
virtual

delete a single

virtual void makVrv::DtSilverLiningCameraManager::reloadShaders ( const std::vector< unsigned int > &  shaderVector,
const std::string &  userDefinedVertString,
const std::string &  userDefinedFragString 
)
virtual

reload shaders for all views for this atmosphere

virtual void makVrv::DtSilverLiningCameraManager::setAtmosphere ( SilverLining::Atmosphere *  atmosphere)
virtual

set the atmosphere

virtual void makVrv::DtSilverLiningCameraManager::findTcsDatasWithContext ( std::vector< SilverLining::ThreadCameraStreamData * > &  vecTcsDatas,
void *  context 
)
virtual

get the tcs datas that have this context mapped typically there is a one to one mapping each view/window is a separate context/tcs data its possible though to have one context map to many (e.g. multiple viewports) in the same window

virtual void makVrv::DtSilverLiningCameraManager::addGraphicsContextIfNecessary ( const osg::Camera *  osgCamera,
SilverLining::ThreadCameraStreamData *  tcsData 
)
protectedvirtual

map a tcs data to the context on creation unlike the context manager, we map the tcs data to the context instead of the other way around because there is a possibility that one context can have many tcs data for some reason (multiple views within the same window)

Member Data Documentation

friend makVrv::DtSilverLiningCameraManager::DtSilverLiningCameraManagerCreator

only creator can create

DtDe& makVrv::DtSilverLiningCameraManager::myDe
protected
MapOsgCamerasToTcsDatas makVrv::DtSilverLiningCameraManager::myMapOsgCamerasToTcsDatas
protected
OpenThreads::Mutex makVrv::DtSilverLiningCameraManager::myMapMutex
protected

the map can be accessed from cull or draw of the sky/cloud. so we need a mutex

SilverLining::Atmosphere* makVrv::DtSilverLiningCameraManager::myAtmosphere
protected
std::unordered_map<SilverLining::ThreadCameraStreamData*, void*> makVrv::DtSilverLiningCameraManager::myMapTcsDataToContext
protected
std::atomic<int> makVrv::DtSilverLiningCameraManager::theCameraId
staticprotected

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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)