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

# deBrushOctree Class Reference

`#include <BrushOctree.hpp>`

Collaboration diagram for deBrushOctree:

[legend]
List of all members.

## Public Member Functions
| deBrushOctree ()
| ~deBrushOctree ()
deBoolean | AddPositions (deVec3d *VertArray, u16 NumVerts, u16 &Offset)
deBoolean | AddNormals (deVec3d *VertArray, u16 NumVerts, u16 &Offset)
deBoolean | AddVertMats (deVertMat *VertArray, u16 NumVerts, u16 &Offset)
deBoolean | AddPolyGetRef (deIndexedPoly *&poly)
deBoolean | AddPoly (deIndexedPoly *poly, u16 PosOffset, u16 NormOffset, u16 MatOffset)
deBoolean | GetPoly (deIndexedPoly *&poly, long PolyIndex)
deBoolean | RemovePoly (const deIndexedPoly *poly)
deBoolean | Generate ()
deBoolean | Clear ()
deBoolean | GetPolysInBox (const deVec3d &Min, const deVec3d &Max, deTArray< deIndexedPoly * > &PolyArray, OctNode *node=NULL)
deBoolean | GetAllPolys (deTArray< deIndexedPoly * > *&PolyArray)
deBoolean | GetPolyInfo (deIndexedPoly *poly, deVec3d *&PosArray, deVec3d *&NormArray, deVertMat *&VertMatArray)
## Private Member Functions
void | DestroyNode (OctNode *node)
deBoolean | InsertPolyIntoTree (long PolyIndex)
u8 | DecideChildNodes (long PolyIndex, OctNode *Node)
OctNode * | GetSmallestNodeForAABB (const deAABB &bbox)
deBoolean | InsertPolyIntoNode (long PolyIndex, OctNode *Node)
char | TriLineIntersect (const deIndexedPoly *T, u16 VertNum, const deVec3d &LinePt1, const deVec3d &LinePt2, deVec3d &Res, deBoolean &HitEdge)
deBoolean | PolyPlaneIntersect (const deVec3d &norm, const deDouble &dist, const deIndexedPoly *poly, deVec3d *&ResPair)
deBoolean | PolyPolyIntersect (const deIndexedPoly *p1, const deIndexedPoly *p2)
deBoolean | MakePlane (long PolyIndex)
deBoolean | MakePlane (deIndexedPoly *input)
deBoolean | SplitPoly (const deIndexedPoly *input, deIndexedPoly *&out1, deIndexedPoly *&out2)
u16 | SplitEdgePos (const HashEdge &Edge, deDouble &Percent)
u16 | SplitEdgeNorm (const HashEdge &Edge, const deDouble &Percent)
u16 | SplitEdgeMat (const HashEdge &Edge, const deDouble &Percent)
deBoolean | SplitAllPolys (deIndexedPoly *splitter)
deBoolean | AssembleVertexBuffer (IdeVertexBuffer *pVB)
deBoolean | AssembleVertexBufferNoNormals (IdeVertexBuffer *pVB)
deBoolean | TriangulateIndices (const deIndexedPoly *Poly, u16 LastVertIndex, u16 *IndexArray3)
void | TEST ()
## Static Private Member Functions
char | FrontmostOctNodeCorner (const deVec3d &norm)
void | OctNodeCorner (const OctNode *node, const char Corner, deVec3d &vec)
void | OctNodeMidPoint (const OctNode *node, const char MidPoint, deVec3d &vec)
deBoolean | OctNodeIntersectsPlane (OctNode *node, const dePlane &plane)
void | OctNodeCenter (const OctNode *node, deVec3d &vec)
## Private Attributes
OctNode * | m_Root
deTList< long > | m_PolyAddList
deTList< long > | m_PolyRemoveList
deTArray< deIndexedPoly * > | m_PolyArray
deTArray< deTArray< OctNode * > > | m_PolyNodes
deTArray< deVec3d > | m_Positions
deTArray< deVec3d > | m_Normals
deTArray< deVertMat > | m_VertMats
dePlane | m_SplittingPlane
deTHashFunctor< u16, HashEdge > | m_SplitPosHash
deTHashFunctor< u16, HashEdge > | m_SplitNormHash
deTHashFunctor< u16, HashEdge > | m_SplitMatHash

## Constructor & Destructor Documentation

deBrushOctree::deBrushOctree | ( |  | ) |

deBrushOctree::~deBrushOctree | ( |  | ) |

## Member Function Documentation

deBoolean deBrushOctree::AddNormals | ( | deVec3d * | VertArray,
|  | u16 | NumVerts,
|  | u16 & | Offset
| ) |

deBoolean deBrushOctree::AddPoly | ( | deIndexedPoly * | poly,
|  | u16 | PosOffset,
|  | u16 | NormOffset,
|  | u16 | MatOffset
| ) |

deBoolean deBrushOctree::AddPolyGetRef | ( | deIndexedPoly *& | poly | ) |

deBoolean deBrushOctree::AddPositions | ( | deVec3d * | VertArray,
|  | u16 | NumVerts,
|  | u16 & | Offset
| ) |

deBoolean deBrushOctree::AddVertMats | ( | deVertMat * | VertArray,
|  | u16 | NumVerts,
|  | u16 & | Offset
| ) |

deBoolean deBrushOctree::AssembleVertexBuffer | ( | IdeVertexBuffer * | pVB | ) | `[private]`

deBoolean deBrushOctree::AssembleVertexBufferNoNormals | ( | IdeVertexBuffer * | pVB | ) | `[private]`

deBoolean deBrushOctree::Clear | ( |  | ) |

u8 deBrushOctree::DecideChildNodes | ( | long | PolyIndex,
|  | OctNode * | Node
| ) | `[private]`

void deBrushOctree::DestroyNode | ( | OctNode * | node | ) | `[private]`

char deBrushOctree::FrontmostOctNodeCorner | ( | const deVec3d & | norm | ) | `[static, private]`

deBoolean deBrushOctree::Generate | ( |  | ) |

deBoolean deBrushOctree::GetAllPolys | ( | deTArray< deIndexedPoly * > *& | PolyArray | ) |

deBoolean deBrushOctree::GetPoly | ( | deIndexedPoly *& | poly,
|  | long | PolyIndex
| ) |

deBoolean deBrushOctree::GetPolyInfo | ( | deIndexedPoly * | poly,
|  | deVec3d *& | PosArray,
|  | deVec3d *& | NormArray,
|  | deVertMat *& | VertMatArray
| ) |

deBoolean deBrushOctree::GetPolysInBox | ( | const deVec3d & | Min,
|  | const deVec3d & | Max,
|  | deTArray< deIndexedPoly * > & | PolyArray,
|  | OctNode * | node = NULL
| ) |

deBrushOctree::OctNode * deBrushOctree::GetSmallestNodeForAABB | ( | const deAABB & | bbox | ) | `[private]`

deBoolean deBrushOctree::InsertPolyIntoNode | ( | long | PolyIndex,
|  | OctNode * | Node
| ) | `[private]`

deBoolean deBrushOctree::InsertPolyIntoTree | ( | long | PolyIndex | ) | `[private]`

deBoolean deBrushOctree::MakePlane | ( | deIndexedPoly * | input | ) | `[private]`

deBoolean deBrushOctree::MakePlane | ( | long | PolyIndex | ) | `[private]`

void deBrushOctree::OctNodeCenter | ( | const OctNode * | node,
|  | deVec3d & | vec
| ) | `[inline, static, private]`

void deBrushOctree::OctNodeCorner | ( | const OctNode * | node,
|  | const char | Corner,
|  | deVec3d & | vec
| ) | `[static, private]`

deBoolean deBrushOctree::OctNodeIntersectsPlane | ( | OctNode * | node,
|  | const dePlane & | plane
| ) | `[static, private]`

void deBrushOctree::OctNodeMidPoint | ( | const OctNode * | node,
|  | const char | MidPoint,
|  | deVec3d & | vec
| ) | `[static, private]`

deBoolean deBrushOctree::PolyPlaneIntersect | ( | const deVec3d & | norm,
|  | const deDouble & | dist,
|  | const deIndexedPoly * | poly,
|  | deVec3d *& | ResPair
| ) | `[private]`

deBoolean deBrushOctree::PolyPolyIntersect | ( | const deIndexedPoly * | p1,
|  | const deIndexedPoly * | p2
| ) | `[private]`

deBoolean deBrushOctree::RemovePoly | ( | const deIndexedPoly * | poly | ) |

deBoolean deBrushOctree::SplitAllPolys | ( | deIndexedPoly * | splitter | ) | `[private]`

u16 deBrushOctree::SplitEdgeMat | ( | const HashEdge & | Edge,
|  | const deDouble & | Percent
| ) | `[private]`

u16 deBrushOctree::SplitEdgeNorm | ( | const HashEdge & | Edge,
|  | const deDouble & | Percent
| ) | `[private]`

u16 deBrushOctree::SplitEdgePos | ( | const HashEdge & | Edge,
|  | deDouble & | Percent
| ) | `[private]`

deBoolean deBrushOctree::SplitPoly | ( | const deIndexedPoly * | input,
|  | deIndexedPoly *& | out1,
|  | deIndexedPoly *& | out2
| ) | `[private]`

void deBrushOctree::TEST | ( |  | ) | `[private]`

deBoolean deBrushOctree::TriangulateIndices | ( | const deIndexedPoly * | Poly,
|  | u16 | LastVertIndex,
|  | u16 * | IndexArray3
| ) | `[private]`

char deBrushOctree::TriLineIntersect | ( | const deIndexedPoly * | T,
|  | u16 | VertNum,
|  | const deVec3d & | LinePt1,
|  | const deVec3d & | LinePt2,
|  | deVec3d & | Res,
|  | deBoolean & | HitEdge
| ) | `[private]`

## Member Data Documentation

deTArray<deVec3d> deBrushOctree::m_Normals`[private]`

deTList<long> deBrushOctree::m_PolyAddList`[private]`

deTArray<deIndexedPoly*> deBrushOctree::m_PolyArray`[private]`

deTArray<deTArray<OctNode*> > deBrushOctree::m_PolyNodes`[private]`

deTList<long> deBrushOctree::m_PolyRemoveList`[private]`

deTArray<deVec3d> deBrushOctree::m_Positions`[private]`

OctNode* deBrushOctree::m_Root`[private]`

deTHashFunctor<u16,HashEdge> deBrushOctree::m_SplitMatHash`[private]`

deTHashFunctor<u16,HashEdge> deBrushOctree::m_SplitNormHash`[private]`

deTHashFunctor<u16,HashEdge> deBrushOctree::m_SplitPosHash`[private]`

dePlane deBrushOctree::m_SplittingPlane`[private]`

deTArray<deVertMat> deBrushOctree::m_VertMats`[private]`

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

- BrushOctree.hpp
- BrushOctree.cpp
- OctreeGeometry.cpp