Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# deSceneOctree Class Reference

`#include <deOctree.hpp>`

Collaboration diagram for deSceneOctree:

[legend]
List of all members.

## Public Member Functions
| deSceneOctree ()
int | Release ()
void | TEST ()
void | SetMinOctSize (deDouble MinSize)
deDouble | GetMinOctSize ()
void | SetMaxNodeNum (int MaxNum)
int | GetMaxNodeNum ()
IdeVertexBuffer * | GetVB (int MaxPoints)
deBoolean | WipeTree ()
deBoolean | AddNode (IdeSceneRoom *Node)
deBoolean | RemoveNode (IdeSceneRoom *Node)
IdeSceneRoom * | FindContainerNode (const deVec3d &Position)
IdeSceneRoom * | FindClosestNode (const deVec3d &Position)
deBoolean | FindIntersectingNodes (deTList< IdeSceneRoom * > &List, const deVec3d *Mins, const deVec3d *Maxs)
deBoolean | TraceRayCollision (const deVec3d &Start, const deVec3d &End, IdeCollision::deCollideInfo &Collision)
void | CleanUp ()
## Protected Member Functions
virtual | ~deSceneOctree ()
## Private Types
enum | Neighbor_t { n_None = -1, n_Left = 0, n_Right, n_Bottom, n_Top, n_Front, n_Back }
## Private Member Functions
deBoolean | FillOctantLinePoints (Octant *oct, deVertex *Buffer, int &LastPoint, int MaxPoints)
void | CleanUp (Octant *oct)
deBoolean | SubdivideOctant (Octant *oct)
deBoolean | Optimize (Octant *oct)
deBoolean | InsertNode (IdeSceneRoom *Node)
deBoolean | CalcNeighbors (Octant *oct)
Octant * | TraceNeighbor (Octant *Start, Octant *Current, Neighbor_t N, int Depth)
deBoolean | RayTestFromOctant (Octant *oct, const deVec3d &Start, const deVec3d &End, IdeCollision::deCollideInfo &Collision)
deBoolean | RayTestNodes (Octant *oct, const deVec3d &Start, const deVec3d &End, IdeCollision::deCollideInfo *Collision)
deBoolean | RayTestParents (Octant *oct, const deVec3d &Start, const deVec3d &Dir, IdeCollision::deCollideInfo *Collision)
Neighbor_t | RayToNeighbor (Octant *oct, const deVec3d &RayStart, const deVec3d &RayDir, deVec3d &ExitPoint)
int | DecideChildOctant (Octant *Parent, const deVec3d &Position)
int | DecideParentOctant (Octant *Child, const deVec3d &Position)
deBoolean | InitializeRoot ()
Octant * | MakeOctant (const deVec3d &Min, const deVec3d &Max, Octant *ParentChild, int ParentID)
Octant * | MakeSubOctant (Octant *ParentChild, int ParentID)
deBoolean | RemoveOctant (Octant *oct, deTList< IdeSceneRoom * > *DumpList, deBoolean RemoveChildren, deBoolean IgnoreNeighbors=deFALSE)
Octant * | FindOctant (const deVec3d &Position)
Octant * | FindSubOctant (Octant *oct, const deVec3d &Position)
Octant * | FindOctant (const deVec3d &Min, const deVec3d &Max)
Octant * | FindSubOctant (Octant *oct, const deVec3d &Min, const deVec3d &Max)
deBoolean | TestOctantPoint (Octant *oct, const deVec3d &Position)
deBoolean | TestOctantBBox (Octant *oct, const deVec3d &Min, const deVec3d &Max)
## Private Attributes
Octant * | m_Root
deDouble | m_MinSize
int | m_MaxNodes
int | m_TestNumber
IdeVertexBuffer * | m_LineListVB

## Member Enumeration Documentation

enum deSceneOctree::Neighbor_t`[private]`

  | Enumeration values:
  n_None |
  n_Left |
  n_Right |
  n_Bottom |
  n_Top |
  n_Front |
  n_Back |

## Constructor & Destructor Documentation

deSceneOctree::~deSceneOctree | ( |  | ) | `[protected, virtual]`

deSceneOctree::deSceneOctree | ( |  | ) |

## Member Function Documentation

deBoolean deSceneOctree::AddNode | ( | IdeSceneRoom * | Node | ) |

deBoolean deSceneOctree::CalcNeighbors | ( | Octant * | oct | ) | `[private]`

void deSceneOctree::CleanUp | ( | Octant * | oct | ) | `[private]`

void deSceneOctree::CleanUp | ( |  | ) |

int deSceneOctree::DecideChildOctant | ( | Octant * | Parent,
|  | const deVec3d & | Position
| ) | `[private]`

int deSceneOctree::DecideParentOctant | ( | Octant * | Child,
|  | const deVec3d & | Position
| ) | `[private]`

deBoolean deSceneOctree::FillOctantLinePoints | ( | Octant * | oct,
|  | deVertex * | Buffer,
|  | int & | LastPoint,
|  | int | MaxPoints
| ) | `[private]`

IdeSceneRoom * deSceneOctree::FindClosestNode | ( | const deVec3d & | Position | ) |

IdeSceneRoom * deSceneOctree::FindContainerNode | ( | const deVec3d & | Position | ) |

deBoolean deSceneOctree::FindIntersectingNodes | ( | deTList< IdeSceneRoom * > & | List,
|  | const deVec3d * | Mins,
|  | const deVec3d * | Maxs
| ) |

deSceneOctree::Octant * deSceneOctree::FindOctant | ( | const deVec3d & | Min,
|  | const deVec3d & | Max
| ) | `[private]`

deSceneOctree::Octant * deSceneOctree::FindOctant | ( | const deVec3d & | Position | ) | `[private]`

deSceneOctree::Octant * deSceneOctree::FindSubOctant | ( | Octant * | oct,
|  | const deVec3d & | Min,
|  | const deVec3d & | Max
| ) | `[private]`

deSceneOctree::Octant * deSceneOctree::FindSubOctant | ( | Octant * | oct,
|  | const deVec3d & | Position
| ) | `[private]`

int deSceneOctree::GetMaxNodeNum | ( |  | ) |

deDouble deSceneOctree::GetMinOctSize | ( |  | ) |

IdeVertexBuffer * deSceneOctree::GetVB | ( | int | MaxPoints | ) |

deBoolean deSceneOctree::InitializeRoot | ( |  | ) | `[private]`

deBoolean deSceneOctree::InsertNode | ( | IdeSceneRoom * | Node | ) | `[private]`

deSceneOctree::Octant * deSceneOctree::MakeOctant | ( | const deVec3d & | Min,
|  | const deVec3d & | Max,
|  | Octant * | ParentChild,
|  | int | ParentID
| ) | `[private]`

deSceneOctree::Octant * deSceneOctree::MakeSubOctant | ( | Octant * | ParentChild,
|  | int | ParentID
| ) | `[private]`

deBoolean deSceneOctree::Optimize | ( | Octant * | oct | ) | `[private]`

deBoolean deSceneOctree::RayTestFromOctant | ( | Octant * | oct,
|  | const deVec3d & | Start,
|  | const deVec3d & | End,
|  | IdeCollision::deCollideInfo & | Collision
| ) | `[private]`

deBoolean deSceneOctree::RayTestNodes | ( | Octant * | oct,
|  | const deVec3d & | Start,
|  | const deVec3d & | End,
|  | IdeCollision::deCollideInfo * | Collision
| ) | `[private]`

deBoolean deSceneOctree::RayTestParents | ( | Octant * | oct,
|  | const deVec3d & | Start,
|  | const deVec3d & | Dir,
|  | IdeCollision::deCollideInfo * | Collision
| ) | `[private]`

deSceneOctree::Neighbor_t deSceneOctree::RayToNeighbor | ( | Octant * | oct,
|  | const deVec3d & | RayStart,
|  | const deVec3d & | RayDir,
|  | deVec3d & | ExitPoint
| ) | `[private]`

int deSceneOctree::Release | ( |  | ) |

deBoolean deSceneOctree::RemoveNode | ( | IdeSceneRoom * | Node | ) |

deBoolean deSceneOctree::RemoveOctant | ( | Octant * | oct,
|  | deTList< IdeSceneRoom * > * | DumpList,
|  | deBoolean | RemoveChildren,
|  | deBoolean | IgnoreNeighbors = deFALSE
| ) | `[private]`

void deSceneOctree::SetMaxNodeNum | ( | int | MaxNum | ) |

void deSceneOctree::SetMinOctSize | ( | deDouble | MinSize | ) |

deBoolean deSceneOctree::SubdivideOctant | ( | Octant * | oct | ) | `[private]`

void deSceneOctree::TEST | ( |  | ) |

deBoolean deSceneOctree::TestOctantBBox | ( | Octant * | oct,
|  | const deVec3d & | Min,
|  | const deVec3d & | Max
| ) | `[private]`

deBoolean deSceneOctree::TestOctantPoint | ( | Octant * | oct,
|  | const deVec3d & | Position
| ) | `[private]`

deSceneOctree::Octant * deSceneOctree::TraceNeighbor | ( | Octant * | Start,
|  | Octant * | Current,
|  | Neighbor_t | N,
|  | int | Depth
| ) | `[private]`

deBoolean deSceneOctree::TraceRayCollision | ( | const deVec3d & | Start,
|  | const deVec3d & | End,
|  | IdeCollision::deCollideInfo & | Collision
| ) |

deBoolean deSceneOctree::WipeTree | ( |  | ) |

## Member Data Documentation

IdeVertexBuffer* deSceneOctree::m_LineListVB`[private]`

int deSceneOctree::m_MaxNodes`[private]`

deDouble deSceneOctree::m_MinSize`[private]`

Octant* deSceneOctree::m_Root`[private]`

int deSceneOctree::m_TestNumber`[private]`

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

- deOctree.hpp
- deOctree.cpp