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

handles the uv offsets for all the indirect geometry. Sets up the default state of the uv offset. Also handles changes to the uv offset sent to this instances DtOsgArticulatedModel Owned by a DtIndirectGeometry 1:1

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

Classes

struct  MultiplierAndTrackSide
 
struct  UvOffset
 
struct  UvOffsetInitializer
 

Public Types

typedef std::map< std::string,
unsigned int
AnnotationToUvOffsetMap
 
typedef std::map< int,
AnnotationToUvOffsetMap
MapIntToAnnotationToUvOffsetMap
 
typedef std::unordered_map
< int, MultiplierAndTrackSide
ScrollableUvOffsetIdsAndMultipliers
 
typedef std::unordered_map
< int,
ScrollableUvOffsetIdsAndMultipliers
MapInstancesToScrollableUvOffsetIds
 
- Public Types inherited from makVrv::DtIndirectManager
enum  ManagerTypes {
  BaseClass, LodManager, SwitchManager, DofManager,
  UvOffsetManager, PerInstanceDataManager
}
 

Public Member Functions

virtual ~DtIndirectUvOffsetManager ()
 
virtual void addUvOffsetAnnotations (int perGeomInstanceIndex, int size, const AnnotationToUvOffsetMap &annotationToUvOffsetMap, const ScrollableUvOffsetIdsAndMultipliers &scrollableUvOffsetIds, int instanceId)
 
virtual void addUvOffsetAnnotation (int perGeomInstanceIndex, unsigned int uvOffsetStartId)
 
virtual void removeUvOffsets (int instanceId)
 
virtual void setUvOffset (const std::string &annotation, int instanceId, float uOffset, float vOffset)
 
virtual void scrollUv (int instanceId, const std::tuple< float, float, float > &uvSpeeds)
 
virtual void annotationAndUvOffsets (int instanceId, std::vector< DtIndirectAnnotationAndUvOffset > &annotations) const
 
virtual void setPureSignalBasedUvOffsets (bool val)
 
virtual bool pureSignalBasedUvOffsets (void) const
 
virtual void processUvOffsets (void)
 
virtual void releaseGLObjects (osg::State *state) const
 
virtual const DtGlBuffergpuUvOffsetBuffer (void) const
 
- Public Member Functions inherited from makVrv::DtIndirectManager
 DtIndirectManager (DtDe &de, DtInstanceContainer &container)
 
virtual ~DtIndirectManager ()
 

Public Attributes

friend DtIndirectUvOffsetManagerCreator
 

Protected Types

typedef DtReusableMemoryVector
< UvOffset,
UvOffsetInitializer
VectorUvOffsets
 

Protected Member Functions

 DtIndirectUvOffsetManager (DtDe &de, DtInstanceContainer &container)
 
virtual void updateUvOffsetBufferIfNecessary (void)
 
virtual void deleteBuffers (void)
 
virtual void tearDownBuffers (void) const
 

Protected Attributes

MapIntToAnnotationToUvOffsetMap myMapIntToAnnotationToUvOffsetMap
 
MapInstancesToScrollableUvOffsetIds myMapInstancesToScrollableUvOffsetIds
 
bool myMutableUvOffsetsDirty
 
VectorUvOffsets myVectorUvOffsets
 
DtGlBuffermyGpuUvOffsetBuffer
 
bool myPureSignalBasedSwitches
 
- Protected Attributes inherited from makVrv::DtIndirectManager
DtInstanceContainermyInstanceContainer
 
DtDemyDe
 

Private Member Functions

 DtIndirectUvOffsetManager ()=delete
 
 DtIndirectUvOffsetManager (const DtIndirectUvOffsetManager &other)=delete
 
DtIndirectUvOffsetManageroperator= (const DtIndirectUvOffsetManager &other)=delete
 

Additional Inherited Members

- Static Public Member Functions inherited from makVrv::DtIndirectManager
static int managerType ()
 

Member Typedef Documentation

Constructor & Destructor Documentation

virtual makVrv::DtIndirectUvOffsetManager::~DtIndirectUvOffsetManager ( )
virtual

DTOR.

makVrv::DtIndirectUvOffsetManager::DtIndirectUvOffsetManager ( DtDe de,
DtInstanceContainer container 
)
protected

CTOR. only creator can create.

makVrv::DtIndirectUvOffsetManager::DtIndirectUvOffsetManager ( )
privatedelete

default constructor not implemented

makVrv::DtIndirectUvOffsetManager::DtIndirectUvOffsetManager ( const DtIndirectUvOffsetManager other)
privatedelete

Copy Constructor not implemented – Copy Not Allowed.

Member Function Documentation

DtIndirectUvOffsetManager& makVrv::DtIndirectUvOffsetManager::operator= ( const DtIndirectUvOffsetManager other)
privatedelete

Assignment Operator Not implemented – Assignment Not Allowed.

virtual void makVrv::DtIndirectUvOffsetManager::addUvOffsetAnnotations ( int  perGeomInstanceIndex,
int  size,
const AnnotationToUvOffsetMap annotationToUvOffsetMap,
const ScrollableUvOffsetIdsAndMultipliers scrollableUvOffsetIds,
int  instanceId 
)
virtual

Add all the uv annotations for a particular model instance.

virtual void makVrv::DtIndirectUvOffsetManager::addUvOffsetAnnotation ( int  perGeomInstanceIndex,
unsigned int  uvOffsetStartId 
)
virtual

Add the uv annotation for a particular per geom instance.

virtual void makVrv::DtIndirectUvOffsetManager::removeUvOffsets ( int  instanceId)
virtual

remove the uv offsets associated with an instance

virtual void makVrv::DtIndirectUvOffsetManager::setUvOffset ( const std::string &  annotation,
int  instanceId,
float  uOffset,
float  vOffset 
)
virtual

set the uv offset for a particular instance and annotation of a model

virtual void makVrv::DtIndirectUvOffsetManager::scrollUv ( int  instanceId,
const std::tuple< float, float, float > &  uvSpeeds 
)
virtual

set the uv offset for a particular of a model

virtual void makVrv::DtIndirectUvOffsetManager::annotationAndUvOffsets ( int  instanceId,
std::vector< DtIndirectAnnotationAndUvOffset > &  annotations 
) const
virtual

get all the annotations and uv offsets for a particular instance.

virtual void makVrv::DtIndirectUvOffsetManager::setPureSignalBasedUvOffsets ( bool  val)
virtual

indicate whether this manager's uv offsets get updated per frame or directly using signals

virtual bool makVrv::DtIndirectUvOffsetManager::pureSignalBasedUvOffsets ( void  ) const
virtual

indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals

virtual void makVrv::DtIndirectUvOffsetManager::processUvOffsets ( void  )
virtual

process the uv offsets. TO DO: do this in compute shader

virtual void makVrv::DtIndirectUvOffsetManager::releaseGLObjects ( osg::State *  state) const
virtual

release gl objects for this manager

virtual const DtGlBuffer* makVrv::DtIndirectUvOffsetManager::gpuUvOffsetBuffer ( void  ) const
virtual

get the uv offset buffer used by the GPU

virtual void makVrv::DtIndirectUvOffsetManager::updateUvOffsetBufferIfNecessary ( void  )
protectedvirtual

update the gpu side buffer if switches are dirty

virtual void makVrv::DtIndirectUvOffsetManager::deleteBuffers ( void  )
protectedvirtual

delete the buffers

virtual void makVrv::DtIndirectUvOffsetManager::tearDownBuffers ( void  ) const
protectedvirtual

tear down the buffers

Member Data Documentation

friend makVrv::DtIndirectUvOffsetManager::DtIndirectUvOffsetManagerCreator

only creator can create

MapIntToAnnotationToUvOffsetMap makVrv::DtIndirectUvOffsetManager::myMapIntToAnnotationToUvOffsetMap
protected
MapInstancesToScrollableUvOffsetIds makVrv::DtIndirectUvOffsetManager::myMapInstancesToScrollableUvOffsetIds
protected
bool makVrv::DtIndirectUvOffsetManager::myMutableUvOffsetsDirty
mutableprotected
VectorUvOffsets makVrv::DtIndirectUvOffsetManager::myVectorUvOffsets
protected
DtGlBuffer* makVrv::DtIndirectUvOffsetManager::myGpuUvOffsetBuffer
protected
bool makVrv::DtIndirectUvOffsetManager::myPureSignalBasedSwitches
protected

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

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)