43 unsigned int zRes)
override;
78 virtual bool getVrfObjects(
const DtChord& chord, std::list<const DtSimObject*>& objects)
const override;
81 std::list<const DtSimObject*>& objects)
const override;
106 return myOctree->numObjects();
115 typedef std::map<unsigned long long, DtSimObjectReference>
Container;
119 bool IsVrfObjectsSinglePoint(
const DtSimObject* vrfObject);
123 void combineVrfObjectsSingleMultiPoint(
const std::list<const DtSimObject*>& vrfObjectsMultiPoint,
124 const std::list<const DtSimObject*>& vrfObjectsSinglePoint,
125 std::list<const DtSimObject*>& vrfObjects)
const;
126 void resetObjectMaxSize();
127 void updateObjectMaxSize(
const Dt3dBoundingVolume& boundingVolume);
130 void resetOctree(
const Container& vrfObjects);
131 void addVrfObjectsOctree(
const Container& vrfObjects);
132 void removeVrfObjectOctree(
const DtSimObject* vrfObject);
133 void clearVrfObjectsOctree();
137 bool getVrfObjectsOctree(
const DtChord& chord, std::list<const DtSimObject*>& objects)
const;
139 std::list<const DtSimObject*>& objects)
const;
144 void resetSpatialIndex(
const Container& vrfObjects);
145 void addVrfObjectsSpatialIndex(
const Container& vrfObjects);
146 void removeVrfObjectSpatialIndex(
const DtSimObject* vrfObject);
147 void clearVrfObjectsSpatialIndex();
151 bool getVrfObjectsSpatialIndex(
const DtChord& chord,
const double delta, std::list<const DtSimObject*>& objects)
const;
153 std::list<const DtSimObject*>& objects)
const;
158 double getChordDeltaSpatialIndex()
const;
162 bool getVrfObjectsWithinSpatialIndex(
const MAK::Vector3d& min,
const MAK::Vector3d& max,
165 const MAK::Vector3d& min,
const MAK::Vector3d& max,
167 bool getVrfObjectsNearChordSpatialIndex(
const MAK::Vector3d& pointA,
const MAK::Vector3d& pointB,
168 const double delta, std::list<const DtSimObject*>& objects)
const;
170 const MAK::Vector3d& pointA,
const MAK::Vector3d& pointB,
171 const double delta, std::list<const DtSimObject*>& objects)
const;
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtOctree< const DtSimObject > * myOctree
The octree being used to store the objects.
Definition: spatialVrfObjectManagerHybrid.h:180
std::vector< const DtSimObject * > DtVrfConstObjectUniqueContainer
Definition: spatialVrfObjectManager.h:94
Container myVrfObjectsSinglePoint
Definition: spatialVrfObjectManagerHybrid.h:190
const Coordinate_System * myCoordSys
Definition: spatialVrfObjectManagerHybrid.h:193
Container myVrfObjectsMultiPoint
Definition: spatialVrfObjectManagerHybrid.h:189
virtual void visitVrfObjects(const DtExtent &extent, DtSpatialSelectionFunctor &callback) const =0
Functions that call the specified functor for every object intersecting the requested region (whether...
virtual bool getVrfObjects(const DtExtent &extent, DtVrfConstObjectUniqueContainer &objects) const =0
The DtSpatialVrfObjectManager is responsible for maintaining a spatial organization of all specified ...
Definition: spatialVrfObjectManager.h:31
double myObjectMaxHeight
Definition: spatialVrfObjectManagerHybrid.h:187
virtual void reset(const DtManagedObjectListConstPtr &vrfObjects)=0
Clears out the current DtSimObjects, sets it to have the minimum extent, that contains all of the DtS...
unsigned int numObjects() const override
Number of objects in the octree.
Definition: spatialVrfObjectManagerHybrid.h:104
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
virtual void removeVrfObject(const DtSimObject *vrfObject)=0
Removes vrfObject from the set of vrfObjects we are maintaining.
double myObjectMaxWidth
Definition: spatialVrfObjectManagerHybrid.h:186
DtExtent myRootExtent
The extent of the octree.
Definition: spatialVrfObjectManagerHybrid.h:177
Contains the DtVrfObjectPredicate class declaration.
Definition: vrfObjectPredicate.h:20
Spatial object manager which uses both an octree and a spatialindex. It is a wrapper for the DtSpatia...
Definition: spatialVrfObjectManagerHybrid.h:18
std::shared_ptr< MAK::SpatialIndex< const DtSimObject * > > mySpatialIndex
The SpatialIndex being used to store the objects.
Definition: spatialVrfObjectManagerHybrid.h:183
Definition: coordSystem.h:54
std::map< unsigned long long, DtSimObjectReference > Container
Private class implementation details.
Definition: spatialVrfObjectManagerHybrid.h:115
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Abstract interface for a spatial object manager.
Definition: spatialVrfObjectManager.h:43
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:79
virtual void clearVrfObjects()=0
Clears all managed objects from the manager. Does not affect the spatial container, other than to empty its cells of any elements.
virtual bool setResolutions(unsigned int xRes, unsigned int yRes, unsigned int zRes)=0
Deprecated – doesn't apply to octree manager. Still necessary for DtSpatialVrfObjectManager. TODO need to push this all into the manager class, instead of having the DtPhysicalWorld assume that things are uniformly subdivided.
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList. These lists are used within VR-Fo...
Definition: managedObjectList.h:35
double myObjectMaxLength
Definition: spatialVrfObjectManagerHybrid.h:185
double myLastTimeEvaluated
Definition: spatialVrfObjectManagerHybrid.h:192
virtual void addVrfObjects(const DtManagedObjectListConstPtr &vrfObjects)=0
Spatially sorts the vrfObjects associated in the vrfObjects.