|
"L. Spiro Engine"
|
Classes | |
| struct | LSP_NODE |
| struct | LSP_STACK |
Public Types | |
| typedef struct lsp::CSolidLeafBspBase::LSP_NODE * | LPLSP_NODE |
|
typedef struct lsp::CSolidLeafBspBase::LSP_NODE | LPCLSP_NODE |
Public Member Functions | |
| const LSP_NODE *LSE_CALL | Root () const |
| LSBOOL LSE_CALL | CreateBsp (const _tPolyType *_ppPolies, LSUINT32 _ui32Total, CStackAllocator *_psaAllocator, _tType _fThickness=static_cast< _tType >(LSM_PLANE_THICKNESS)) |
| LSBOOL LSE_CALL | CreateBspConvex (const _tPolyType *_ppPolies, LSUINT32 _ui32Total, CStackAllocator *_psaAllocator, _tType _fThickness=static_cast< _tType >(LSM_PLANE_THICKNESS)) |
| LSBOOL LSE_CALL | GetLeafs (CVectorPoD< LSP_NODE *, LSUINT32 > &_vArray) |
| LSBOOL LSE_CALL | GetLeafs (CVectorPoD< const LSP_NODE *, LSUINT32 > &_vArray, CVectorPoD< const LSP_NODE *, LSUINT32 > &_vStack) const |
| LSBOOL LSE_CALL | GetLeafs (LSP_NODE *_pnNode, CVectorPoD< LSP_NODE *, LSUINT32 > &_vArray) const |
| LSBOOL LSE_CALL | GetLeafs (const LSP_NODE *_pnNode, CVectorPoD< const LSP_NODE *, LSUINT32 > &_vArray, CVectorPoD< const LSP_NODE *, LSUINT32 > &_vStack) const |
Static Public Member Functions | |
| static LSBOOL LSE_CALL | GetParents (const LSP_NODE *_pnNode, CVectorPoD< LSP_NODE *, LSUINT32 > &_vArray) |
Protected Types | |
| typedef struct lsp::CSolidLeafBspBase::LSP_STACK * | LPLSP_STACK |
|
typedef struct lsp::CSolidLeafBspBase::LSP_STACK | LPCLSP_STACK |
Protected Member Functions | |
| LSBOOL LSE_CALL | CreateBsp (LSP_NODE &_nNode, const CVector< _tPolyType, LSUINT32, 4096UL > &_vPolies, CStackAllocator *_psaAllocator, _tType _fThickness=static_cast< _tType >(LSM_PLANE_THICKNESS)) |
| LSBOOL LSE_CALL | CreateBspConvex (LSP_NODE &_nNode, const CVector< _tPolyType, LSUINT32, 4096UL > &_vPolies, CStackAllocator *_psaAllocator, _tType _fThickness=static_cast< _tType >(LSM_PLANE_THICKNESS)) |
| _tPlaneType LSE_CALL | BestSplittingPlane (const CVector< _tPolyType, LSUINT32, 4096UL > &_vPolies, LSUINT32 &_ui32Index, _tType _fThickness=static_cast< _tType >(LSM_PLANE_THICKNESS)) |
| LSBOOL LSE_CALL | AllAreConvex (const CVector< _tPolyType, LSUINT32, 4096UL > &_vPlanePolies, const CVector< _tPolyType, LSUINT32, 4096UL > &_vPolies, _tType _fThickness=static_cast< _tType >(LSM_PLANE_THICKNESS)) |
| LSBOOL LSE_CALL | AllAreSplitters (const CVector< _tPolyType, LSUINT32, 4096UL > &_vPolies) |
Protected Attributes | |
| LSP_NODE | m_nRoot |
| typedef struct lsp::CSolidLeafBspBase::LSP_NODE * lsp::CSolidLeafBspBase::LPLSP_NODE |
A node in the BSP tree.
typedef struct lsp::CSolidLeafBspBase::LSP_STACK * lsp::CSolidLeafBspBase::LPLSP_STACK [protected] |
The explicit stack used during BSP construction.
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::AllAreConvex | ( | const CVector< _tPolyType, LSUINT32, 4096UL > & | _vPlanePolies, |
| const CVector< _tPolyType, LSUINT32, 4096UL > & | _vPolies, | ||
| _tType | _fThickness = static_cast<_tType>(LSM_PLANE_THICKNESS) |
||
| ) | [inline, protected] |
Determines if the polygons in the given array form a convex region of space.
| _vPlanePolies | The array of polygons on the splitting plane. |
| _vPolies | The array of polygons to check for forming a convex region of space. |
| _fThickness | Plane thickness. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::AllAreSplitters | ( | const CVector< _tPolyType, LSUINT32, 4096UL > & | _vPolies | ) | [inline, protected] |
Determines if all given polygons are splitters.
| _vPolies | The polygons to check. |
| _tPlaneType LSE_CALL lsp::CSolidLeafBspBase::BestSplittingPlane | ( | const CVector< _tPolyType, LSUINT32, 4096UL > & | _vPolies, |
| LSUINT32 & | _ui32Index, | ||
| _tType | _fThickness = static_cast<_tType>(LSM_PLANE_THICKNESS) |
||
| ) | [inline, protected] |
Finds the best splitting plane for the given set of input polygons.
| _vPolies | The polygons for which to find the best splitting plane. |
| _ui32Index | On return, holds the index of the polygon whose plane was used for the return. |
| _fThickness | Plane thickness. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::CreateBsp | ( | const _tPolyType * | _ppPolies, |
| LSUINT32 | _ui32Total, | ||
| CStackAllocator * | _psaAllocator, | ||
| _tType | _fThickness = static_cast<_tType>(LSM_PLANE_THICKNESS) |
||
| ) | [inline] |
Builds the BSP given an array of polygons.
| _ppPolies | The array of polygons. |
| _ui32Total | The total number of polygons. |
| _psaAllocator | The stack allocator to be used to allocate new nodes and polygon segments. |
| _fThickness | Plane thickness. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::CreateBsp | ( | LSP_NODE & | _nNode, |
| const CVector< _tPolyType, LSUINT32, 4096UL > & | _vPolies, | ||
| CStackAllocator * | _psaAllocator, | ||
| _tType | _fThickness = static_cast<_tType>(LSM_PLANE_THICKNESS) |
||
| ) | [inline, protected] |
Builds the BSP given an array of polygons and the node in which to store the results.
| _nNode | The node in which to store the results of the splitting. |
| _vPolies | The array of polygons. |
| _psaAllocator | The stack allocator to be used to allocate new nodes and polygon segments. |
| _fThickness | Plane thickness. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::CreateBspConvex | ( | LSP_NODE & | _nNode, |
| const CVector< _tPolyType, LSUINT32, 4096UL > & | _vPolies, | ||
| CStackAllocator * | _psaAllocator, | ||
| _tType | _fThickness = static_cast<_tType>(LSM_PLANE_THICKNESS) |
||
| ) | [inline, protected] |
Builds the BSP given an array of polygons and the node in which to store the results
| _nNode | The node in which to store the results of the splitting. |
| _vPolies | The array of polygons. |
| _psaAllocator | The stack allocator to be used to allocate new nodes and polygon segments. |
| _fThickness | Plane thickness. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::CreateBspConvex | ( | const _tPolyType * | _ppPolies, |
| LSUINT32 | _ui32Total, | ||
| CStackAllocator * | _psaAllocator, | ||
| _tType | _fThickness = static_cast<_tType>(LSM_PLANE_THICKNESS) |
||
| ) | [inline] |
Builds the BSP given an array of polygons in which the leafs store convex sets of polygons rather than just polygons coplanar to the leaf plane.
| _ppPolies | The array of polygons. |
| _ui32Total | The total number of polygons. |
| _psaAllocator | The stack allocator to be used to allocate new nodes and polygon segments. |
| _fThickness | Plane thickness. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::GetLeafs | ( | const LSP_NODE * | _pnNode, |
| CVectorPoD< const LSP_NODE *, LSUINT32 > & | _vArray, | ||
| CVectorPoD< const LSP_NODE *, LSUINT32 > & | _vStack | ||
| ) | const [inline] |
Fills the given array with pointers to the leafs on this tree.
| _pnNode | The node. |
| _vArray | Holds the returned array of leafs. |
| _vStack | Explicit stack to use. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::GetLeafs | ( | CVectorPoD< LSP_NODE *, LSUINT32 > & | _vArray | ) | [inline] |
Fills the given array with pointers to the leafs on this tree.
| _vArray | Holds the returned array of leafs. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::GetLeafs | ( | CVectorPoD< const LSP_NODE *, LSUINT32 > & | _vArray, |
| CVectorPoD< const LSP_NODE *, LSUINT32 > & | _vStack | ||
| ) | const [inline] |
Fills the given array with pointers to the leafs on this tree.
| _vArray | Holds the returned array of leafs. |
| _vStack | Explicit stack to use. |
| LSBOOL LSE_CALL lsp::CSolidLeafBspBase::GetLeafs | ( | LSP_NODE * | _pnNode, |
| CVectorPoD< LSP_NODE *, LSUINT32 > & | _vArray | ||
| ) | const [inline] |
Fills the given array with pointers to the leafs on this tree.
| _pnNode | The node. |
| _vArray | Holds the returned array of leafs. |
| static LSBOOL LSE_CALL lsp::CSolidLeafBspBase::GetParents | ( | const LSP_NODE * | _pnNode, |
| CVectorPoD< LSP_NODE *, LSUINT32 > & | _vArray | ||
| ) | [inline, static] |
Fills the given array with pointers to the parents of the given node.
| _pnNode | The node whose parents are to be returned. |
| _vArray | Holds the returned array of parent nodes. |
| const LSP_NODE* LSE_CALL lsp::CSolidLeafBspBase::Root | ( | ) | const [inline] |
Gets a pointer to the root node to the BSP tree. Never returns NULL.
LSP_NODE lsp::CSolidLeafBspBase::m_nRoot [protected] |
The root node.
1.7.3