23 #include <matrix/vlVector.h>
26 #include <unordered_map>
28 #include <tbb/concurrent_vector.h>
33 class DtCoordinateSystem;
35 class Dt3dSpheresStagingBuffer;
36 class DtGeom3dSpheresComponent;
103 virtual size_t registeredComponentCount(
const DtModelSetId modelSetId)
const;
114 virtual bool cull(
void* cameraContext,
const DtModelSetId modelSetId,
122 virtual void submit3dSpheresForDraw(
void* cameraContext,
123 std::vector<Dt3dSpheresStagingBuffer*>& buffers);
132 virtual void slot_preTick();
141 static bool isSphereVisible(
147 static void theCullJob(
void* data);
155 std::vector<DtGeom3dSpheresComponent*>* myComponents =
nullptr;
156 size_t myBeginIndex = 0;
157 size_t myEndIndex = 0;
159 const std::array<DtVector4<double>, 6>* myCullingPlanes =
nullptr;
160 unsigned int myCategoryFlags = 0;
179 bool myCameraWasUsedDuringCull =
true;
A class which represents a component for a set of 3d spheres.
Definition: DtGeom3dSpheresComponent.h:48
std::vector< DtGeom3dSpheresComponent * > myComponents
Definition: DtGeom3dSpheresSystem.h:186
DtSignalConnectionManager myConnections
Definition: DtGeom3dSpheresSystem.h:191
A structure to hold per camera data for staging. There will be one of these for every active camera T...
Definition: DtGeom3dSpheresSystem.h:176
DtJobSplitterJob myCullJob
Definition: DtGeom3dSpheresSystem.h:170
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
A class which represents a buffer used for staging 3d spheres. "staging" means collecting, formatting, prepping data to be handed to another process (usually a rendering process). Most likely, this staged data will be passed to a gpu buffer at when needed.
Definition: Dt3dSpheresStagingBuffer.h:34
A class responsible for processing DtGeom3dSpheresComponent objects.
Definition: DtGeom3dSpheresSystem.h:62
unsigned int myComponentCategoryFlags
Definition: DtGeom3dSpheresSystem.h:194
Camera forward declarations.
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
friend DtGeom3dSpheresSystemCreator
Definition: DtGeom3dSpheresSystem.h:64
DtDe & myDe
Definition: DtGeom3dSpheresSystem.h:189
Contains makVrv::DtJobSplitter class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
const char * creatorTypeName< DtGeom3dSpheresSystem >()
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtGeom3dSpheresSystem.h:44
A structure to hold per model set components.
Definition: DtGeom3dSpheresSystem.h:184
std::unordered_map< DtModelSetId, PerModelSetComponents * > myPerModelSetComponents
Definition: DtGeom3dSpheresSystem.h:198
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::unordered_map< void *, PerCameraStaging * > myPerCameraStagingMap
Definition: DtGeom3dSpheresSystem.h:202
CullJobData myCullJobData
Definition: DtGeom3dSpheresSystem.h:169
Base class to provide boost signal/slot management.
A generic structure to hold data for a job for use with DtJobSplitter.
Definition: DtJobSplitter.h:26
A structure used to hold culling data per cull job. This is used in multithread culling tasks...
Definition: DtGeom3dSpheresSystem.h:153
DtVirtualBaseClassCreator< DtGeom3dSpheresSystem > DtGeom3dSpheresSystemCreator
creator
Definition: DtGeom3dSpheresSystem.h:37
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
std::vector< Buffer * > myBuffers
Definition: DtGeom3dSpheresSystem.h:178
tbb::concurrent_vector< void * > myPendingCameras
Definition: DtGeom3dSpheresSystem.h:208
DtModelSetId
Definition: DtModelSetEnums.h:19
Contains various enum classes relating to model sets.
A structure to hold buffer data to use for culling and rendering. This is used in internal job splitt...
Definition: DtGeom3dSpheresSystem.h:166
Contains DLL export macros.