12 #include <vlutil/vlConfig.h>
17 #include <boost/unordered_set.hpp>
54 virtual void removeVrfObject(
const DtSimObject * vrfObject) = 0;
59 virtual bool setResolutions(
unsigned int xRes,
unsigned int yRes,
60 unsigned int zRes) = 0;
64 virtual void clearVrfObjects() = 0;
98 virtual bool getVrfObjects(
const DtExtent& extent,
104 virtual bool getVrfObjects(
const DtChord& chord, std::list<const DtSimObject*>& objects)
const = 0;
107 std::list<const DtSimObject*>& objects)
const = 0;
125 virtual unsigned int numObjects()
const = 0;
143 unsigned int zRes = 1);
161 unsigned int cellCountX,
unsigned int cellCountY,
unsigned int cellCountZ);
182 virtual unsigned int xResolution()
const;
184 virtual unsigned int yResolution()
const;
186 virtual unsigned int zResolution()
const;
189 virtual void resolutions(
unsigned int& xRes,
unsigned int& yRes,
190 unsigned int& zRes)
const;
225 bool getVrfObjects(
const DtChord& chord, std::list<const DtSimObject*>& objects)
const override;
228 std::list<const DtSimObject*>& objects)
const override;
258 virtual bool createSpatialContainer(
const DtExtent& extent,
unsigned int cellCountX,
259 unsigned int cellCountY,
unsigned int cellCountZ);
279 bool testInvariant()
const;
DtSpatialContainer * myVrfObjectSpatialContainer
Spatial container of DtSimObjects. (a pointer because it is not guaranteed to exist at construction...
Definition: spatialVrfObjectManager.h:286
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
std::vector< const DtSimObject * > DtVrfConstObjectUniqueContainer
Definition: spatialVrfObjectManager.h:94
Implementation of a spatial object manager based on DtSpatialSubdivision.
Definition: spatialVrfObjectManager.h:130
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
virtual ~DtSpatialSelectionFunctor()
Virtual Destructor which does nothing.
Definition: spatialVrfObjectManager.h:35
std::vector< const DtSimObject * > DtNonSpatialContainer
Definition: spatialVrfObjectManager.h:134
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...
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
virtual ~DtSpatialVrfObjectManagerInterface()
Definition: spatialVrfObjectManager.h:46
virtual void removeVrfObject(const DtSimObject *vrfObject)=0
Removes vrfObject from the set of vrfObjects we are maintaining.
Contains the DtVrfObjectPredicate class declaration.
Definition: vrfObjectPredicate.h:20
virtual bool operator()(const T *object)=0
Abstract function call interface.
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
static DtOctree< const DtSimObject > * createOctree(const DtExtent &extent)
Definition: spatialVrfObjectManager.h:295
std::vector< const DtSimObject * > DtVrfObjectUniqueContainer
Set of functions used to get the relevant DtSimObjects from the object manager. If a primitive is spe...
Definition: spatialVrfObjectManager.h:93
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:88
DtSpatialSubdivision< const DtSimObject * > DtSpatialContainer
Definition: spatialVrfObjectManager.h:133
DtNonSpatialContainer::const_iterator DtNonSpatialVrfObjectConstIter
Definition: spatialVrfObjectManager.h:136
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.
DtNonSpatialContainer::iterator DtNonSpatialVrfObjectIter
Definition: spatialVrfObjectManager.h:135
std::vector< const DtSimObject * > DtVrfObjectContainer
Definition: spatialVrfObjectManager.h:96
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
The DtSpatialSubdivision class represents a uniform spatial container. The container is divided up in...
Definition: spatialSubdivision.h:169
DtNonSpatialContainer myNonSpatiallyOrganizedObjects
Container of objects that fall outside of the spatial subdivision. This is necessary because the spat...
Definition: spatialVrfObjectManager.h:292
virtual void addVrfObjects(const DtManagedObjectListConstPtr &vrfObjects)=0
Spatially sorts the vrfObjects associated in the vrfObjects.