23 #include <matrix/vlVector.h>
26 #include <unordered_map>
28 #include <tbb/concurrent_vector.h>
33 class DtCoordinateSystem;
35 class Dt3dLinesStagingBuffer;
36 class DtGeom3dLinesComponent;
103 virtual size_t registeredComponentCount(
const DtModelSetId modelSetId)
const;
111 virtual double computeAltitude(
const DtVector& point,
bool& geoCentric)
const;
122 virtual bool cull(
void* cameraContext,
const DtModelSetId modelSetId,
130 virtual void submit3dLinesForDraw(
void* cameraContext,
131 std::vector<Dt3dLinesStagingBuffer*>& buffers);
141 virtual void slot_coordinateSystemChanged();
144 virtual void slot_preTick();
153 static bool isSphereVisible(
159 static void theCullJob(
void* data);
167 std::vector<DtGeom3dLinesComponent*>* myComponents =
nullptr;
168 size_t myBeginIndex = 0;
169 size_t myEndIndex = 0;
171 const std::array<DtVector4<double>, 6>* myCullingPlanes =
nullptr;
172 unsigned int myCategoryFlags = 0;
191 bool myCameraWasUsedDuringCull =
true;
std::vector< DtGeom3dLinesComponent * > myComponents
Definition: DtGeom3dLinesSystem.h:198
A class responsible for processing DtGeom3dLinesComponent objects.
Definition: DtGeom3dLinesSystem.h:62
A structure to hold per camera data for staging. There will be one of these for every active camera T...
Definition: DtGeom3dLinesSystem.h:188
unsigned int myComponentCategoryFlags
Definition: DtGeom3dLinesSystem.h:209
tbb::concurrent_vector< void * > myPendingCameras
Definition: DtGeom3dLinesSystem.h:223
const char * creatorTypeName< DtGeom3dLinesSystem >()
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtGeom3dLinesSystem.h:44
DtJobSplitterJob myCullJob
Definition: DtGeom3dLinesSystem.h:182
this class is used to split work up between threads.
Definition: DtJobSplitter.h:64
std::unordered_map< void *, PerCameraStaging * > myPerCameraStagingMap
Definition: DtGeom3dLinesSystem.h:217
A structure used to hold culling data per cull job. This is used in multithread culling tasks...
Definition: DtGeom3dLinesSystem.h:165
DtSignalConnectionManager myConnections
Definition: DtGeom3dLinesSystem.h:203
Camera forward declarations.
std::unordered_map< DtModelSetId, PerModelSetComponents * > myPerModelSetComponents
Definition: DtGeom3dLinesSystem.h:213
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtCoordinateSystem * myCoordinateSystem
Definition: DtGeom3dLinesSystem.h:206
Contains makVrv::DtJobSplitter class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
A class which represents a component for a set of 3d lines.
Definition: DtGeom3dLinesComponent.h:51
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtVirtualBaseClassCreator< DtGeom3dLinesSystem > DtGeom3dLinesSystemCreator
creator
Definition: DtGeom3dLinesSystem.h:37
A class which represents a buffer used for staging 3d line points. "staging" means collecting...
Definition: Dt3dLinesStagingBuffer.h:34
A structure to hold buffer data to use for culling and rendering. This is used in internal job splitt...
Definition: DtGeom3dLinesSystem.h:178
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
CullJobData myCullJobData
Definition: DtGeom3dLinesSystem.h:181
Base class to provide boost signal/slot management.
A structure to hold per model set components.
Definition: DtGeom3dLinesSystem.h:196
A generic structure to hold data for a job for use with DtJobSplitter.
Definition: DtJobSplitter.h:26
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
DtModelSetId
Definition: DtModelSetEnums.h:19
DtDe & myDe
Definition: DtGeom3dLinesSystem.h:201
Contains various enum classes relating to model sets.
std::vector< Buffer * > myBuffers
Definition: DtGeom3dLinesSystem.h:190
friend DtGeom3dLinesSystemCreator
Definition: DtGeom3dLinesSystem.h:64
Contains DLL export macros.