Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
GridCullSystemClass Class Reference

#include <gridcull.h>

Inherits CullSystemClass.

Inherited by TypedGridCullSystemClass< SoundCullObjClass >, and TypedGridCullSystemClass< T >.

Classes

struct  StatsStruct
 
struct  VolumeStruct
 

Public Member Functions

 GridCullSystemClass (void)
 
 ~GridCullSystemClass (void)
 
virtual void Collect_Objects (const Vector3 &point)
 
virtual void Collect_Objects (const AABoxClass &box)
 
virtual void Collect_Objects (const OBBoxClass &box)
 
virtual void Collect_Objects (const FrustumClass &frustum)
 
virtual void Re_Partition (const Vector3 &min, const Vector3 &max, float objdim)
 
virtual void Update_Culling (CullableClass *obj)
 
virtual void Load (ChunkLoadClass &cload)
 
virtual void Save (ChunkSaveClass &csave)
 
virtual int Get_Object_Count (void) const
 
void Reset_Statistics (void)
 
const StatsStructGet_Statistics (void)
 
void Get_Min_Cell_Size (Vector3 &size) const
 
void Set_Min_Cell_Size (const Vector3 &size)
 
int Get_Termination_Count (void) const
 
void Set_Termination_Count (int count)
 
- Public Member Functions inherited from CullSystemClass
 CullSystemClass (void)
 
virtual ~CullSystemClass (void)
 
void Reset_Collection (void)
 

Protected Types

enum  { TERMINATION_CELL_COUNT = 16384 , UNGRIDDED_ADDRESS = 0xFFFFFFFF }
 

Protected Member Functions

void Collect_And_Unlink_All (void)
 
void Add_Object_Internal (CullableClass *obj)
 
void Remove_Object_Internal (CullableClass *obj)
 
void link_object (CullableClass *obj)
 
void link_object (CullableClass *obj, int address)
 
void unlink_object (CullableClass *obj)
 
void link_object_to_list (CullableClass **head, CullableClass *obj)
 
void unlink_object_from_list (CullableClass **head, CullableClass *obj)
 
bool map_point_to_cell (const Vector3 &pt, int &set_i, int &set_j, int &set_k)
 
bool map_point_to_address (const Vector3 &pt, int &set_address)
 
WWINLINE int map_indices_to_address (int i, int j, int k)
 
void clamp_indices_to_grid (int *i, int *j, int *k)
 
int total_cell_count (void)
 
void compute_box (int i, int j, int k, AABoxClass *set_box)
 
void compute_box (const VolumeStruct &area, AABoxClass *set_box)
 
void init_volume (const Vector3 &bound_min, const Vector3 &bound_max, VolumeStruct *set_volume)
 
void init_volume (const Vector3 &point, VolumeStruct *set_volume)
 
void init_volume (const LineSegClass &line, VolumeStruct *set_volume)
 
void init_volume (const AABoxClass &box, VolumeStruct *set_volume)
 
void init_volume (const OBBoxClass &box, VolumeStruct *set_volume)
 
void init_volume (const FrustumClass &frustum, VolumeStruct *set_volume)
 
void collect_objects_in_leaf (const Vector3 &point, CullableClass *head)
 
void collect_objects_in_leaf (const AABoxClass &aabox, CullableClass *head)
 
void collect_objects_in_leaf (const OBBoxClass &obbox, CullableClass *head)
 
void collect_objects_in_leaf (const FrustumClass &frustum, CullableClass *head)
 
- Protected Member Functions inherited from CullSystemClass
CullableClassGet_First_Collected_Object_Internal (void)
 
CullableClassGet_Next_Collected_Object_Internal (CullableClass *obj)
 
CullableClassPeek_First_Collected_Object_Internal (void)
 
CullableClassPeek_Next_Collected_Object_Internal (CullableClass *obj)
 
void Add_To_Collection (CullableClass *obj)
 

Protected Attributes

Vector3 MinCellSize
 
float MaxObjExtent
 
int TerminationCellCount
 
Vector3 Origin
 
Vector3 CellDim
 
Vector3 OOCellDim
 
int CellCount [3]
 
CullableClass ** Cells
 
CullableClassNoGridList
 
int ObjCount
 
StatsStruct Stats
 
- Protected Attributes inherited from CullSystemClass
CullableClassCollectionHead
 

Detailed Description

Definition at line 85 of file gridcull.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
TERMINATION_CELL_COUNT 
UNGRIDDED_ADDRESS 

Definition at line 132 of file gridcull.h.

Constructor & Destructor Documentation

◆ GridCullSystemClass()

GridCullSystemClass::GridCullSystemClass ( void )

Definition at line 151 of file gridcull.cpp.

◆ ~GridCullSystemClass()

GridCullSystemClass::~GridCullSystemClass ( void )

Definition at line 179 of file gridcull.cpp.

Member Function Documentation

◆ Add_Object_Internal()

void GridCullSystemClass::Add_Object_Internal ( CullableClass * obj)
protected

Definition at line 757 of file gridcull.cpp.

◆ clamp_indices_to_grid()

WWINLINE void GridCullSystemClass::clamp_indices_to_grid ( int * i,
int * j,
int * k )
protected

Definition at line 302 of file gridcull.h.

◆ Collect_And_Unlink_All()

void GridCullSystemClass::Collect_And_Unlink_All ( void )
protected

Definition at line 507 of file gridcull.cpp.

◆ Collect_Objects() [1/4]

void GridCullSystemClass::Collect_Objects ( const AABoxClass & box)
virtual

Implements CullSystemClass.

Definition at line 246 of file gridcull.cpp.

◆ Collect_Objects() [2/4]

void GridCullSystemClass::Collect_Objects ( const FrustumClass & frustum)
virtual

Implements CullSystemClass.

Definition at line 340 of file gridcull.cpp.

◆ Collect_Objects() [3/4]

void GridCullSystemClass::Collect_Objects ( const OBBoxClass & box)
virtual

Implements CullSystemClass.

Definition at line 293 of file gridcull.cpp.

◆ Collect_Objects() [4/4]

void GridCullSystemClass::Collect_Objects ( const Vector3 & point)
virtual

Implements CullSystemClass.

Definition at line 200 of file gridcull.cpp.

◆ collect_objects_in_leaf() [1/4]

void GridCullSystemClass::collect_objects_in_leaf ( const AABoxClass & aabox,
CullableClass * head )
protected

Definition at line 987 of file gridcull.cpp.

◆ collect_objects_in_leaf() [2/4]

void GridCullSystemClass::collect_objects_in_leaf ( const FrustumClass & frustum,
CullableClass * head )
protected

Definition at line 1013 of file gridcull.cpp.

◆ collect_objects_in_leaf() [3/4]

void GridCullSystemClass::collect_objects_in_leaf ( const OBBoxClass & obbox,
CullableClass * head )
protected

Definition at line 1000 of file gridcull.cpp.

◆ collect_objects_in_leaf() [4/4]

void GridCullSystemClass::collect_objects_in_leaf ( const Vector3 & point,
CullableClass * head )
protected

Definition at line 974 of file gridcull.cpp.

◆ compute_box() [1/2]

WWINLINE void GridCullSystemClass::compute_box ( const VolumeStruct & area,
AABoxClass * set_box )
protected

Definition at line 448 of file gridcull.h.

◆ compute_box() [2/2]

WWINLINE void GridCullSystemClass::compute_box ( int i,
int j,
int k,
AABoxClass * set_box )
protected

Definition at line 416 of file gridcull.h.

◆ Get_Min_Cell_Size()

void GridCullSystemClass::Get_Min_Cell_Size ( Vector3 & size) const
inline

Definition at line 120 of file gridcull.h.

◆ Get_Object_Count()

virtual int GridCullSystemClass::Get_Object_Count ( void ) const
inlinevirtual

Definition at line 104 of file gridcull.h.

◆ Get_Statistics()

const GridCullSystemClass::StatsStruct & GridCullSystemClass::Get_Statistics ( void )

Definition at line 739 of file gridcull.cpp.

◆ Get_Termination_Count()

int GridCullSystemClass::Get_Termination_Count ( void ) const
inline

Definition at line 123 of file gridcull.h.

◆ init_volume() [1/6]

WWINLINE void GridCullSystemClass::init_volume ( const AABoxClass & box,
VolumeStruct * set_volume )
protected

Definition at line 552 of file gridcull.h.

◆ init_volume() [2/6]

WWINLINE void GridCullSystemClass::init_volume ( const FrustumClass & frustum,
VolumeStruct * set_volume )
protected

Definition at line 590 of file gridcull.h.

◆ init_volume() [3/6]

WWINLINE void GridCullSystemClass::init_volume ( const LineSegClass & line,
VolumeStruct * set_volume )
protected

Definition at line 527 of file gridcull.h.

◆ init_volume() [4/6]

WWINLINE void GridCullSystemClass::init_volume ( const OBBoxClass & box,
VolumeStruct * set_volume )
protected

Definition at line 570 of file gridcull.h.

◆ init_volume() [5/6]

WWINLINE void GridCullSystemClass::init_volume ( const Vector3 & bound_min,
const Vector3 & bound_max,
VolumeStruct * set_volume )
protected

Definition at line 482 of file gridcull.h.

◆ init_volume() [6/6]

void GridCullSystemClass::init_volume ( const Vector3 & point,
VolumeStruct * set_volume )
protected

◆ link_object() [1/2]

void GridCullSystemClass::link_object ( CullableClass * obj)
protected

Definition at line 811 of file gridcull.cpp.

◆ link_object() [2/2]

void GridCullSystemClass::link_object ( CullableClass * obj,
int address )
protected

Definition at line 822 of file gridcull.cpp.

◆ link_object_to_list()

void GridCullSystemClass::link_object_to_list ( CullableClass ** head,
CullableClass * obj )
protected

Definition at line 887 of file gridcull.cpp.

◆ Load()

void GridCullSystemClass::Load ( ChunkLoadClass & cload)
virtual

Definition at line 590 of file gridcull.cpp.

◆ map_indices_to_address()

WWINLINE int GridCullSystemClass::map_indices_to_address ( int i,
int j,
int k )
protected

Definition at line 380 of file gridcull.h.

◆ map_point_to_address()

WWINLINE bool GridCullSystemClass::map_point_to_address ( const Vector3 & pt,
int & set_address )
protected

Definition at line 353 of file gridcull.h.

◆ map_point_to_cell()

WWINLINE bool GridCullSystemClass::map_point_to_cell ( const Vector3 & pt,
int & set_i,
int & set_j,
int & set_k )
protected

Definition at line 325 of file gridcull.h.

◆ Re_Partition()

void GridCullSystemClass::Re_Partition ( const Vector3 & min,
const Vector3 & max,
float objdim )
virtual

Definition at line 393 of file gridcull.cpp.

◆ Remove_Object_Internal()

void GridCullSystemClass::Remove_Object_Internal ( CullableClass * obj)
protected

Definition at line 783 of file gridcull.cpp.

◆ Reset_Statistics()

void GridCullSystemClass::Reset_Statistics ( void )

Definition at line 717 of file gridcull.cpp.

◆ Save()

void GridCullSystemClass::Save ( ChunkSaveClass & csave)
virtual

Definition at line 670 of file gridcull.cpp.

◆ Set_Min_Cell_Size()

void GridCullSystemClass::Set_Min_Cell_Size ( const Vector3 & size)
inline

Definition at line 121 of file gridcull.h.

◆ Set_Termination_Count()

void GridCullSystemClass::Set_Termination_Count ( int count)
inline

Definition at line 124 of file gridcull.h.

◆ total_cell_count()

WWINLINE int GridCullSystemClass::total_cell_count ( void )
protected

Definition at line 398 of file gridcull.h.

◆ unlink_object()

void GridCullSystemClass::unlink_object ( CullableClass * obj)
protected

Definition at line 861 of file gridcull.cpp.

◆ unlink_object_from_list()

void GridCullSystemClass::unlink_object_from_list ( CullableClass ** head,
CullableClass * obj )
protected

Definition at line 921 of file gridcull.cpp.

◆ Update_Culling()

void GridCullSystemClass::Update_Culling ( CullableClass * obj)
virtual

Implements CullSystemClass.

Definition at line 562 of file gridcull.cpp.

Member Data Documentation

◆ CellCount

int GridCullSystemClass::CellCount[3]
protected

Definition at line 147 of file gridcull.h.

◆ CellDim

Vector3 GridCullSystemClass::CellDim
protected

Definition at line 145 of file gridcull.h.

◆ Cells

CullableClass** GridCullSystemClass::Cells
protected

Definition at line 150 of file gridcull.h.

◆ MaxObjExtent

float GridCullSystemClass::MaxObjExtent
protected

Definition at line 140 of file gridcull.h.

◆ MinCellSize

Vector3 GridCullSystemClass::MinCellSize
protected

Definition at line 139 of file gridcull.h.

◆ NoGridList

CullableClass* GridCullSystemClass::NoGridList
protected

Definition at line 153 of file gridcull.h.

◆ ObjCount

int GridCullSystemClass::ObjCount
protected

Definition at line 156 of file gridcull.h.

◆ OOCellDim

Vector3 GridCullSystemClass::OOCellDim
protected

Definition at line 146 of file gridcull.h.

◆ Origin

Vector3 GridCullSystemClass::Origin
protected

Definition at line 144 of file gridcull.h.

◆ Stats

StatsStruct GridCullSystemClass::Stats
protected

Definition at line 159 of file gridcull.h.

◆ TerminationCellCount

int GridCullSystemClass::TerminationCellCount
protected

Definition at line 141 of file gridcull.h.


The documentation for this class was generated from the following files: