int Partition_Tree_Depth(void) const
void Update_Bounding_Boxes_Recursive(AABTreeNodeClass *node)
void Update_Bounding_Boxes(void)
void Partition_Tree_Depth_Recursive(AABTreeNodeClass *node, int cur_depth, int &max_depth) const
virtual void Load_Node_Contents(AABTreeNodeClass *, ChunkLoadClass &)
void Load_Object_Linkage(ChunkLoadClass &cload, CullableClass *obj)
void Add_Object_Internal(CullableClass *obj, int node_index=-1)
void Remove_Object_Internal(CullableClass *obj)
const AABoxClass & Get_Bounding_Box(void)
void Re_Index_Nodes_Recursive(AABTreeNodeClass *node, int &counter)
AABTreeNodeClass ** IndexedNodes
void Save_Object_Linkage(ChunkSaveClass &csave, CullableClass *obj)
void Add_Loaded_Object(AABTreeNodeClass *node, CullableClass *obj)
virtual void Update_Culling(CullableClass *obj)
int Object_Count(void) const
virtual ~AABTreeCullSystemClass(void)
friend class AABTreeIterator
int Partition_Node_Count_Recursive(AABTreeNodeClass *node) const
void Collect_Objects_Recursive(AABTreeNodeClass *node)
const StatsStruct & Get_Statistics(void)
virtual void Save_Node_Contents(AABTreeNodeClass *, ChunkSaveClass &)
int Partition_Node_Count(void) const
void NODE_TRIVIALLY_ACCEPTED(void)
void Get_Node_Bounds(int node_id, AABoxClass *set_bounds)
virtual void Collect_Objects(const Vector3 &point)
virtual void Load(ChunkLoadClass &cload)
void Re_Index_Nodes(void)
void Add_Object_Recursive(AABTreeNodeClass *node, CullableClass *obj)
void Save_Nodes(AABTreeNodeClass *node, ChunkSaveClass &csave)
AABTreeNodeClass * RootNode
virtual void Save(ChunkSaveClass &csave)
void Reset_Statistics(void)
AABTreeCullSystemClass(void)
void Collect_Objects_Recursive(AABTreeNodeClass *node, const FrustumClass &frustum)
void Load_Nodes(AABTreeNodeClass *node, ChunkLoadClass &cload)
bool Enter_Back_Child(void)
void Get_Current_Box(AABoxClass *set_box)
bool Has_Front_Child(void)
bool Has_Back_Child(void)
AABTreeIterator(AABTreeCullSystemClass *tree)
bool Enter_Front_Child(void)
int Get_Current_Node_Index(void)
AABTreeLinkClass(AABTreeCullSystemClass *system)
CullableClass * NextObject
void Add_Object(CullableClass *obj, bool update_bounds=true)
void Transfer_Objects(AABTreeNodeClass *dummy_node)
void Compute_Score(SplitChoiceStruct *sc, SimpleDynVecClass< AABoxClass > &boxes)
AABTreeNodeClass * Parent
void Split_Boxes(const SplitChoiceStruct &sc, SimpleDynVecClass< AABoxClass > &boxes, SimpleDynVecClass< AABoxClass > &frontboxes, SimpleDynVecClass< AABoxClass > &backboxes)
CullableClass * Peek_Object(int index)
float Compute_Volume(void)
void Select_Splitting_Plane_Brute_Force(SplitChoiceStruct *sc, SimpleDynVecClass< AABoxClass > &boxes)
void Select_Splitting_Plane(SplitChoiceStruct *sc, SimpleDynVecClass< AABoxClass > &boxes)
void Split_Objects(const SplitChoiceStruct &sc, AABTreeNodeClass *front, AABTreeNodeClass *back)
void Remove_Object(CullableClass *obj)
void Compute_Bounding_Box(void)
void Compute_Local_Bounding_Box(void)
WWINLINE CullLinkClass(CullSystemClass *system)
CullableClass * Get_Next_Collected_Object_Internal(CullableClass *obj)
CullableClass * Get_First_Collected_Object_Internal(void)
friend class CullableClass
CullableClass * Peek_First_Collected_Object_Internal(void)
CullableClass * Peek_Next_Collected_Object_Internal(CullableClass *obj)
T * Peek_Next_Collected_Object(T *obj)
T * Get_Next_Collected_Object(T *obj)
T * Get_First_Collected_Object(void)
T * Peek_First_Collected_Object(void)
virtual void Add_Object(T *obj, int node_index=-1)
virtual void Remove_Object(T *obj)
int NodesTriviallyAccepted
MinMaxAABoxClass FrontBox