AI_SDB_SpatialSector.h

Go to the documentation of this file.
00001 #ifndef AI_SDB_SPATIAL_SECTOR_H
00002 #define AI_SDB_SPATIAL_SECTOR_H
00003 
00004 #include "AI_SDB_SpatialListHierarchy.h"
00005 #include "AI_SDB_SpatialAABBTree.h"
00006 
00007 //--------------------------------------------------------------------
00028 class AI_SDB_SpatialSector
00029 {
00030 public:
00031     AI_SDB_SpatialSector();
00032     ~AI_SDB_SpatialSector();
00033 
00035     typedef AI_SDB_SpatialElement * ElementHandle;
00036 
00038     void Configure(const AI_Matrix44 &transformtoglobalspace);
00039 
00040     virtual ElementHandle AddElement(AI_SDB_SpatialElement *addme);
00041     virtual void UpdateElement(ElementHandle elementid, const AI_BBox &newbbox);
00042     virtual void RemoveElement(ElementHandle elementid);
00043 
00044     virtual void Accept(AI_SDB_VisibilityVisitor &v, int recursiondepth, AI_SDB_VisitorFlags flags = AI_SDB_VisitorFlags() );
00045     virtual void Accept(AI_SDB_SpatialVisitor &v, int recursiondepth, AI_SDB_VisitorFlags flags = AI_SDB_VisitorFlags() );
00046     virtual void Accept(AI_SDB_OcclusionVisitor &v, int recursiondepth, AI_SDB_VisitorFlags flags = AI_SDB_VisitorFlags());
00047 
00048 protected:
00049     // The elements of the sector are stashed in here...
00050     AI_SDB_SpatialAABBTree m_Nodeset;
00051 };
00052 
00053 
00054 #endif