![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: spatialVrfObjectManagerOctree.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef spatialVrfObjectManagerOctree_H_ 00013 #define spatialVrfObjectManagerOctree_H_ 00014 00015 #include "vrfobjcore/spatialVrfObjectManager.h" 00016 #include "geometry/tdbextent.h" 00017 00018 template<class T> class DtOctree; 00019 00023 00024 class DT_DLL_vrfobjcore DtSpatialVrfObjectManagerOctree : public DtSpatialVrfObjectManagerInterface 00025 { 00026 private: 00028 00029 DtSpatialVrfObjectManagerOctree(); 00030 DtSpatialVrfObjectManagerOctree(const DtSpatialVrfObjectManagerOctree& orig); 00031 DtSpatialVrfObjectManagerOctree& operator=(const DtSpatialVrfObjectManagerOctree& orig); 00033 public: 00034 DtSpatialVrfObjectManagerOctree(const DtManagedObjectListConstPtr& vrfObjList); 00035 00036 virtual ~DtSpatialVrfObjectManagerOctree(); 00037 00039 virtual void addVrfObjects(const DtManagedObjectListConstPtr& vrfObjects); 00040 00044 virtual void removeVrfObject(DtVrfObject * vrfObject); 00045 00047 virtual bool setResolutions(unsigned int xRes, unsigned int yRes, 00048 unsigned int zRes); 00049 00052 virtual void clearVrfObjects(); 00053 00064 virtual void reset(const DtManagedObjectListConstPtr& vrfObjects); 00065 00066 00069 00078 00079 virtual bool getVrfObjects(const DtExtent& extent, std::set<DtVrfObject*>& objects); 00080 virtual bool getVrfObjects(const DtExtent& extent, std::set<const DtVrfObject*>& objects) const; 00081 00082 virtual bool getVrfObjects(DtVrfObjectPredicate& predicate, const DtExtent& extent, 00083 std::set<DtVrfObject*>& objects); 00084 virtual bool getVrfObjects(DtVrfObjectPredicate& predicate, const DtExtent& extent, 00085 std::set<const DtVrfObject*>& objects) const; 00086 00087 virtual bool getVrfObjects(DtChord& chord, std::list<DtVrfObject*>& objects); 00088 virtual bool getVrfObjects(DtChord& chord, std::list<const DtVrfObject*>& objects) const; 00089 00090 virtual bool getVrfObjects(DtVrfObjectPredicate& predicate, DtChord& chord, 00091 std::list<DtVrfObject*>& objects); 00092 virtual bool getVrfObjects(DtVrfObjectPredicate& predicate, DtChord& chord, 00093 std::list<const DtVrfObject*>& objects) const; 00095 00106 00107 virtual void visitVrfObjects(const DtExtent& extent, DtSpatialSelectionFunctor &callback) const; 00108 virtual void visitVrfObjects(const DtChord& chord, DtSpatialSelectionFunctor& callback) const; 00109 protected: 00110 00112 DtExtent myRootExtent; 00113 00115 DtOctree<DtVrfObject>* myOctree; 00116 }; 00117 00118 #endif