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);
178 virtual bool setResolutions(
unsigned int xRes,
unsigned int yRes,
unsigned int zRes)
override;
181 virtual unsigned int xResolution()
const;
183 virtual unsigned int yResolution()
const;
185 virtual unsigned int zResolution()
const;
188 virtual void resolutions(
unsigned int& xRes,
unsigned int& yRes,
189 unsigned int& zRes)
const;
224 virtual bool getVrfObjects(
const DtChord& chord, std::list<const DtSimObject*>& objects)
const override;
227 std::list<const DtSimObject*>& objects)
const override;
257 virtual bool createSpatialContainer(
const DtExtent& extent,
unsigned int cellCountX,
258 unsigned int cellCountY,
unsigned int cellCountZ);
278 bool testInvariant()
const;
DtSpatialContainer * myVrfObjectSpatialContainer
Spatial container of DtSimObjects. (a pointer because it is not guaranteed to exist at construction...
Definition: spatialVrfObjectManager.h:285
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
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...
std::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 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 ~DtSpatialSelectionFunctor() override
Virtual Destructor which does nothing.
Definition: spatialVrfObjectManager.h:35
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:294
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:80
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.
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:291
virtual void addVrfObjects(const DtManagedObjectListConstPtr &vrfObjects)=0
Spatially sorts the vrfObjects associated in the vrfObjects.