32 #include <osg/Geometry>
34 #include <tbb/concurrent_queue.h>
36 #include <boost/thread.hpp>
43 class DtCoreGlBufferCreator;
44 class DtAggregatedGeometry;
45 class DtAggregatedGeometryCopyDataAsync;
46 class DtIndirectGeometryAggregator;
47 class DtIndirectGeometryRegistrar;
48 class DtIndirectAggregateHelper;
50 struct DtAggregateModelInfo;
70 virtual tbb::task* execute()
override;
115 virtual void releaseGLObjects(osg::State* state)
const;
121 virtual bool hasDataToAsyncLoad()
const;
124 virtual bool hasDataToCopy()
const;
127 virtual boost::mutex& copyDataMutex();
130 virtual int isCopyingData()
const;
133 virtual int numModels(
void)
const;
136 virtual int modelId(
int index)
const;
153 virtual int vertexAndAttributesBufferSize(
void)
const;
156 virtual const osg::Geometry* aggregatedGeometry(
void)
const;
160 virtual osg::Geometry* aggregatedGeometry(
void);
163 virtual void testDrawUsingDrawElements();
167 virtual unsigned int vertexAndAttributesBufferHandle()
const;
171 virtual unsigned int colorBufferHandle()
const;
175 virtual unsigned int normalBufferHandle()
const;
178 virtual unsigned int uvBufferHandle()
const;
181 virtual unsigned int indexBufferHandle()
const;
184 virtual GLenum indicesType(
void)
const;
187 virtual void copyDataQueue();
190 virtual void printVertexBuffer(std::ostream& os);
193 virtual void printIndexBuffer(std::ostream& os);
196 virtual void printStats(std::ostream& os);
199 virtual bool updateBuffers();
202 virtual void bindBuffers();
205 virtual void unbindBuffers();
209 virtual void configureBuffers();
212 virtual void reserveMaxMemory();
219 virtual unsigned int vertexBufferSizeInBytes()
const;
223 virtual unsigned int vertexBufferNumElements()
const;
225 virtual unsigned int numVertices(
void)
const;
227 virtual const void* verticesPointer()
const;
230 virtual unsigned int normalBufferSizeInBytes()
const;
231 virtual unsigned int normalBufferNumElements()
const;
232 virtual const void* normalsPointer()
const;
233 virtual unsigned int numNormals(
void)
const;
236 virtual unsigned int colorBufferSizeInBytes()
const;
237 virtual unsigned int colorBufferNumElements()
const;
238 virtual const void* colorsPointer()
const;
239 virtual unsigned int numColors(
void)
const;
242 virtual unsigned int textureCoordsBufferSizeInBytes(
unsigned int unit)
const;
243 virtual unsigned int textureCoordsBufferNumElements(
unsigned int unit)
const;
244 virtual const void* textureCoordsPointer(
unsigned int unit)
const;
245 virtual unsigned int numTextureCoords(
unsigned int unit)
const;
248 virtual unsigned int textureBufferSizeInBytes()
const;
251 virtual void copyTextureData(
DtGlBuffer* vertexAndAttributesBuffer,
int &
offset)
const;
254 virtual const void* indexBufferPointer()
const;
255 virtual unsigned int indexBufferSizeInBytes()
const;
Contains makVrv::DtIndirectUvOffsetManager class.
int myLastIndex
Definition: DtAggregatedGeometry.h:278
Contains makVrv::DtLightPointNode class.
DtMaterial class declaration.
int myLastVertex
Definition: DtAggregatedGeometry.h:277
DtIndirectGeometryTexturesRefPtr myTextureForThisGeometry
Definition: DtAggregatedGeometry.h:57
contains the information which indirect needs for all geometry found by the geometry aggregator after...
Definition: DtAggregatedGeometry.h:91
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtIndirectAggregateHelper myAggregateHelper
Definition: DtAggregatedGeometry.h:270
Definition: DtAggregatedGeometry.h:53
DtGeometrySpecification class declaration.
DtAggregateModelInfo * myModelInfo
Definition: DtAggregatedGeometry.h:55
helper class to the DtIndirectGeometryAggregator.
Definition: DtIndirectAggregateHelper.h:35
DtGlBuffer * myColorBuffer
Definition: DtAggregatedGeometry.h:260
std::vector< DequeIndirectLodInfos > DequeIndirectLodInfoArray
Definition: DtIndirectLodManager.h:67
friend DtAggregatedGeometryCreator
only creator can create
Definition: DtAggregatedGeometry.h:95
Contains the DtIndirectAggregateHelper class declaration.
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtGlBuffer * myIndexBuffer
Definition: DtAggregatedGeometry.h:263
DtGlBuffer * myUVBuffer
Definition: DtAggregatedGeometry.h:262
DtGlBuffer * myVertexAndAttributesBuffer
Definition: DtAggregatedGeometry.h:259
std::deque< NodeDofInfoPair > DequeNodeDofInfoPairs
Definition: DtIndirectDofManager.h:74
std::vector< int > myScratchIndices
Definition: DtAggregatedGeometry.h:269
std::map< int, DtAggregateModelInfo * > MapModelsToModelInfo
Definition: DtAggregatedGeometry.h:265
Contains makVrv::DtIndirectDofManager class.
contains the Per Model info which DtAggregatedGeometry needs It is owned by the Indirect geometry reg...
Definition: DtAggregateModelInfo.h:31
std::vector< DequeNodeSwitchInfoPairs > DequeNodeSwitchInfoPairsArray
Definition: DtIndirectSwitchManager.h:76
boost::mutex myCopyDataMutex
Definition: DtAggregatedGeometry.h:281
osg::ref_ptr< osg::Geometry > myAggregatedGeometry
Definition: DtAggregatedGeometry.h:272
Contains makVrv::DtIndirectSwitchManager class.
tbb::atomic< int > myIsCopyingData
Definition: DtAggregatedGeometry.h:280
A generic OpenGL buffer.
Definition: DtGlBuffer.h:27
DtGlBuffer * myNormalBuffer
Definition: DtAggregatedGeometry.h:261
std::vector< int > myEnabledVertexAttribArrays
Definition: DtAggregatedGeometry.h:266
unsigned int GLenum
Definition: DtGlTextureBufferObject.h:18
Creates another thread to compress and mipmap data.
Definition: DtAggregatedGeometry.h:63
Contains makVrv::DtIndirectLodManager class.
boost::mutex myMutableMapModelsToModelInfoMutex
mutex needs to be used in const functions so must be mutable.
Definition: DtAggregatedGeometry.h:284
Contains DLL export macros.
tbb::atomic< int > myCancelTask
Definition: DtAggregatedGeometry.h:289
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::ref_ptr< osg::Geometry > myGeomToProcess
Definition: DtAggregatedGeometry.h:56
DtDe & myDe
reference to De
Definition: DtAggregatedGeometry.h:287
tbb::concurrent_queue< DtCopyModelDataStructure > myModelDataToCopy
Definition: DtAggregatedGeometry.h:275
voidpf uLong offset
Definition: ioapi.h:42
Contains the DtIndirectGeometryTextures class declaration.
MapModelsToModelInfo myMapModelsToModelInfo
Definition: DtAggregatedGeometry.h:267
DtAggregatedGeometry * myGeometry
Definition: DtAggregatedGeometry.h:74
osg::Matrix myMatrix
Definition: DtAggregatedGeometry.h:58
DtVirtualBaseClassCreator< DtAggregatedGeometry > DtAggregatedGeometryCreator
creator
Definition: DtAggregatedGeometry.h:78
DtPerGeomInstance class declaration.
const char * creatorTypeName< DtAggregatedGeometry >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtAggregatedGeometry.h:85