VR-Forces 4.10 Class Documentation
 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. More...

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

Classes

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, Vector2_32
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 ()
 DTOR. More...
 
virtual void addUvOffsetAnnotations (int perGeomInstanceIndex, int size, const AnnotationToUvOffsetMap &annotationToUvOffsetMap, const ScrollableUvOffsetIdsAndMultipliers &scrollableUvOffsetIds, int instanceId)
 Add all the uv annotations for a particular model instance. More...
 
virtual void addUvOffsetAnnotation (int perGeomInstanceIndex, unsigned int uvOffsetStartId)
 Add the uv annotation for a particular per geom instance. More...
 
virtual void removeUvOffsets (int instanceId)
 remove the uv offsets associated with an instance More...
 
virtual void setUvOffset (const std::string &annotation, int instanceId, float uOffset, float vOffset)
 set the uv offset for a particular instance and annotation of a model More...
 
virtual void scrollUv (int instanceId, float uOffset, float vOffset)
 set the uv offset for a particular of a model More...
 
virtual void annotationAndUvOffsets (int instanceId, std::vector< DtIndirectAnnotationAndUvOffset > &annotations) const
 get all the annotations and uv offsets for a particular instance. More...
 
virtual void setPureSignalBasedUvOffsets (bool val)
 indicate whether this manager's uv offsets get updated per frame or directly using signals More...
 
virtual bool pureSignalBasedUvOffsets (void) const
 indicate whether this manager's switches get updated per frame via looking at the actual switches/multi-switches or directly using signals More...
 
virtual void processUvOffsets (void)
 process the uv offsets. TO DO: do this in compute shader More...
 
virtual void releaseGLObjects (osg::State *state) const
 release gl objects for this manager More...
 
virtual const DtGlBuffergpuUvOffsetBuffer (void) const
 get the uv offset buffer used by the GPU More...
 
- Public Member Functions inherited from makVrv::DtIndirectManager
 DtIndirectManager (DtDe &de, DtInstanceContainer &container)
 CTOR. More...
 
virtual ~DtIndirectManager ()
 DTOR. More...
 

Public Attributes

friend DtIndirectUvOffsetManagerCreator
 only creator can create More...
 

Protected Types

typedef DtReusableMemoryVector
< UvOffset,
UvOffsetInitializer
VectorUvOffsets
 

Protected Member Functions

 DtIndirectUvOffsetManager (DtDe &de, DtInstanceContainer &container)
 CTOR. only creator can create. More...
 
virtual void updateUvOffsetBufferIfNecessary (void)
 update the gpu side buffer if switches are dirty More...
 
virtual void deleteBuffers (void)
 delete the buffers More...
 
virtual void tearDownBuffers (void) const
 tear down the buffers More...
 

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
 default constructor not implemented More...
 
 DtIndirectUvOffsetManager (const DtIndirectUvOffsetManager &other)=delete
 Copy Constructor not implemented – Copy Not Allowed. More...
 
DtIndirectUvOffsetManageroperator= (const DtIndirectUvOffsetManager &other)=delete
 Assignment Operator Not implemented – Assignment Not Allowed. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from makVrv::DtIndirectManager
static int managerType ()
 what type of manager is this class More...
 

Detailed Description

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

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,
float  uOffset,
float  vOffset 
)
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 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)