doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
idBrushBSP Class Reference

#include <BrushBSP.h>

Public Member Functions

 idBrushBSP (void)
 
 ~idBrushBSP (void)
 
void Build (idBrushList brushList, int skipContents, bool(*ChopAllowed)(idBrush *b1, idBrush *b2), bool(*MergeAllowed)(idBrush *b1, idBrush *b2))
 
void PruneTree (int contents)
 
void Portalize (void)
 
bool RemoveOutside (const idMapFile *mapFile, int contents, const idStrList &classNames)
 
void LeakFile (const idStr &fileName)
 
void MergePortals (int skipContents)
 
bool TryMergeLeafNodes (idBrushBSPPortal *portal, int side)
 
void PruneMergedTree_r (idBrushBSPNode *node)
 
void MeltPortals (int skipContents)
 
void WriteBrushMap (const idStr &fileName, const idStr &ext, int contents)
 
const idBounds & GetTreeBounds (void) const
 
idBrushBSPNode * GetRootNode (void) const
 

Private Member Functions

void RemoveMultipleLeafNodeReferences_r (idBrushBSPNode *node)
 
void Free_r (idBrushBSPNode *node)
 
void IncreaseNumSplits (void)
 
bool IsValidSplitter (const idBrushSide *side)
 
int BrushSplitterStats (const idBrush *brush, int planeNum, const idPlaneSet &planeList, bool *testedPlanes, struct splitterStats_s &stats)
 
int FindSplitter (idBrushBSPNode *node, const idPlaneSet &planeList, bool *testedPlanes, struct splitterStats_s &bestStats)
 
void SetSplitterUsed (idBrushBSPNode *node, int planeNum)
 
idBrushBSPNode * BuildBrushBSP_r (idBrushBSPNode *node, const idPlaneSet &planeList, bool *testedPlanes, int skipContents)
 
idBrushBSPNode * ProcessGridCell (idBrushBSPNode *node, int skipContents)
 
void BuildGrid_r (idList< idBrushBSPNode * > &gridCells, idBrushBSPNode *node)
 
void PruneTree_r (idBrushBSPNode *node, int contents)
 
void MakeOutsidePortals (void)
 
idWinding * BaseWindingForNode (idBrushBSPNode *node)
 
void MakeNodePortal (idBrushBSPNode *node)
 
void SplitNodePortals (idBrushBSPNode *node)
 
void MakeTreePortals_r (idBrushBSPNode *node)
 
void FloodThroughPortals_r (idBrushBSPNode *node, int contents, int depth)
 
bool FloodFromOrigin (const idVec3 &origin, int contents)
 
bool FloodFromEntities (const idMapFile *mapFile, int contents, const idStrList &classNames)
 
void RemoveOutside_r (idBrushBSPNode *node, int contents)
 
void SetPortalPlanes_r (idBrushBSPNode *node, idPlaneSet &planeList)
 
void SetPortalPlanes (void)
 
void MergePortals_r (idBrushBSPNode *node, int skipContents)
 
void MergeLeafNodePortals (idBrushBSPNode *node, int skipContents)
 
void UpdateTreeAfterMerge_r (idBrushBSPNode *node, const idBounds &bounds, idBrushBSPNode *oldNode, idBrushBSPNode *newNode)
 
void RemoveLeafNodeColinearPoints (idBrushBSPNode *node)
 
void RemoveColinearPoints_r (idBrushBSPNode *node, int skipContents)
 
void MeltFlood_r (idBrushBSPNode *node, int skipContents, idBounds &bounds, idVectorSet< idVec3, 3 > &vertexList)
 
void MeltLeafNodePortals (idBrushBSPNode *node, int skipContents, idVectorSet< idVec3, 3 > &vertexList)
 
void MeltPortals_r (idBrushBSPNode *node, int skipContents, idVectorSet< idVec3, 3 > &vertexList)
 

Private Attributes

idBrushBSPNode * root
 
idBrushBSPNode * outside
 
idBounds treeBounds
 
idPlaneSet portalPlanes
 
int numGridCells
 
int numSplits
 
int numGridCellSplits
 
int numPrunedSplits
 
int numPortals
 
int solidLeafNodes
 
int outsideLeafNodes
 
int insideLeafNodes
 
int numMergedPortals
 
int numInsertedPoints
 
idVec3 leakOrigin
 
int brushMapContents
 
idBrushMap * brushMap
 
bool(* BrushChopAllowed )(idBrush *b1, idBrush *b2)
 
bool(* BrushMergeAllowed )(idBrush *b1, idBrush *b2)
 

Detailed Description

Definition at line 147 of file BrushBSP.h.

Constructor & Destructor Documentation

idBrushBSP::idBrushBSP ( void  )

Definition at line 501 of file BrushBSP.cpp.

idBrushBSP::~idBrushBSP ( void  )

Definition at line 513 of file BrushBSP.cpp.

Member Function Documentation

idWinding * idBrushBSP::BaseWindingForNode ( idBrushBSPNode *  node)
private

Definition at line 1085 of file BrushBSP.cpp.

int idBrushBSP::BrushSplitterStats ( const idBrush *  brush,
int  planeNum,
const idPlaneSet &  planeList,
bool *  testedPlanes,
struct splitterStats_s &  stats 
)
private

Definition at line 589 of file BrushBSP.cpp.

void idBrushBSP::Build ( idBrushList  brushList,
int  skipContents,
bool(*)(idBrush *b1, idBrush *b2)  ChopAllowed,
bool(*)(idBrush *b1, idBrush *b2)  MergeAllowed 
)

Definition at line 964 of file BrushBSP.cpp.

idBrushBSPNode * idBrushBSP::BuildBrushBSP_r ( idBrushBSPNode *  node,
const idPlaneSet &  planeList,
bool *  testedPlanes,
int  skipContents 
)
private

Definition at line 789 of file BrushBSP.cpp.

void idBrushBSP::BuildGrid_r ( idList< idBrushBSPNode * > &  gridCells,
idBrushBSPNode *  node 
)
private

Definition at line 900 of file BrushBSP.cpp.

int idBrushBSP::FindSplitter ( idBrushBSPNode *  node,
const idPlaneSet &  planeList,
bool *  testedPlanes,
struct splitterStats_s &  bestStats 
)
private

Definition at line 677 of file BrushBSP.cpp.

bool idBrushBSP::FloodFromEntities ( const idMapFile *  mapFile,
int  contents,
const idStrList &  classNames 
)
private

Definition at line 1499 of file BrushBSP.cpp.

bool idBrushBSP::FloodFromOrigin ( const idVec3 &  origin,
int  contents 
)
private

Definition at line 1458 of file BrushBSP.cpp.

void idBrushBSP::FloodThroughPortals_r ( idBrushBSPNode *  node,
int  contents,
int  depth 
)
private

Definition at line 1417 of file BrushBSP.cpp.

void idBrushBSP::Free_r ( idBrushBSPNode *  node)
private

Definition at line 556 of file BrushBSP.cpp.

idBrushBSPNode* idBrushBSP::GetRootNode ( void  ) const
inline

Definition at line 176 of file BrushBSP.h.

const idBounds& idBrushBSP::GetTreeBounds ( void  ) const
inline

Definition at line 174 of file BrushBSP.h.

void idBrushBSP::IncreaseNumSplits ( void  )
private
ID_INLINE bool idBrushBSP::IsValidSplitter ( const idBrushSide *  side)
private

Definition at line 572 of file BrushBSP.cpp.

void idBrushBSP::LeakFile ( const idStr &  fileName)

Definition at line 1363 of file BrushBSP.cpp.

void idBrushBSP::MakeNodePortal ( idBrushBSPNode *  node)
private

Definition at line 1116 of file BrushBSP.cpp.

void idBrushBSP::MakeOutsidePortals ( void  )
private

Definition at line 1291 of file BrushBSP.cpp.

void idBrushBSP::MakeTreePortals_r ( idBrushBSPNode *  node)
private

Definition at line 1255 of file BrushBSP.cpp.

void idBrushBSP::MeltFlood_r ( idBrushBSPNode *  node,
int  skipContents,
idBounds &  bounds,
idVectorSet< idVec3, 3 > &  vertexList 
)
private

Definition at line 1988 of file BrushBSP.cpp.

void idBrushBSP::MeltLeafNodePortals ( idBrushBSPNode *  node,
int  skipContents,
idVectorSet< idVec3, 3 > &  vertexList 
)
private

Definition at line 2039 of file BrushBSP.cpp.

void idBrushBSP::MeltPortals ( int  skipContents)

Definition at line 2142 of file BrushBSP.cpp.

void idBrushBSP::MeltPortals_r ( idBrushBSPNode *  node,
int  skipContents,
idVectorSet< idVec3, 3 > &  vertexList 
)
private

Definition at line 2080 of file BrushBSP.cpp.

void idBrushBSP::MergeLeafNodePortals ( idBrushBSPNode *  node,
int  skipContents 
)
private

Definition at line 1650 of file BrushBSP.cpp.

void idBrushBSP::MergePortals ( int  skipContents)

Definition at line 1813 of file BrushBSP.cpp.

void idBrushBSP::MergePortals_r ( idBrushBSPNode *  node,
int  skipContents 
)
private

Definition at line 1789 of file BrushBSP.cpp.

void idBrushBSP::Portalize ( void  )

Definition at line 1346 of file BrushBSP.cpp.

idBrushBSPNode * idBrushBSP::ProcessGridCell ( idBrushBSPNode *  node,
int  skipContents 
)
private

Definition at line 858 of file BrushBSP.cpp.

void idBrushBSP::PruneMergedTree_r ( idBrushBSPNode *  node)

Definition at line 1826 of file BrushBSP.cpp.

void idBrushBSP::PruneTree ( int  contents)

Definition at line 1071 of file BrushBSP.cpp.

void idBrushBSP::PruneTree_r ( idBrushBSPNode *  node,
int  contents 
)
private

Definition at line 1024 of file BrushBSP.cpp.

void idBrushBSP::RemoveColinearPoints_r ( idBrushBSPNode *  node,
int  skipContents 
)
private

Definition at line 2119 of file BrushBSP.cpp.

void idBrushBSP::RemoveLeafNodeColinearPoints ( idBrushBSPNode *  node)
private

Definition at line 2103 of file BrushBSP.cpp.

void idBrushBSP::RemoveMultipleLeafNodeReferences_r ( idBrushBSPNode *  node)
private

Definition at line 528 of file BrushBSP.cpp.

bool idBrushBSP::RemoveOutside ( const idMapFile *  mapFile,
int  contents,
const idStrList &  classNames 
)

Definition at line 1591 of file BrushBSP.cpp.

void idBrushBSP::RemoveOutside_r ( idBrushBSPNode *  node,
int  contents 
)
private

Definition at line 1560 of file BrushBSP.cpp.

void idBrushBSP::SetPortalPlanes ( void  )
private

Definition at line 1641 of file BrushBSP.cpp.

void idBrushBSP::SetPortalPlanes_r ( idBrushBSPNode *  node,
idPlaneSet &  planeList 
)
private

Definition at line 1616 of file BrushBSP.cpp.

void idBrushBSP::SetSplitterUsed ( idBrushBSPNode *  node,
int  planeNum 
)
private

Definition at line 760 of file BrushBSP.cpp.

void idBrushBSP::SplitNodePortals ( idBrushBSPNode *  node)
private

Definition at line 1162 of file BrushBSP.cpp.

bool idBrushBSP::TryMergeLeafNodes ( idBrushBSPPortal *  portal,
int  side 
)

Definition at line 1894 of file BrushBSP.cpp.

void idBrushBSP::UpdateTreeAfterMerge_r ( idBrushBSPNode *  node,
const idBounds &  bounds,
idBrushBSPNode *  oldNode,
idBrushBSPNode *  newNode 
)
private

Definition at line 1856 of file BrushBSP.cpp.

void idBrushBSP::WriteBrushMap ( const idStr &  fileName,
const idStr &  ext,
int  contents 
)

Definition at line 1014 of file BrushBSP.cpp.

Member Data Documentation

bool(* idBrushBSP::BrushChopAllowed)(idBrush *b1, idBrush *b2)
private

Definition at line 197 of file BrushBSP.h.

idBrushMap* idBrushBSP::brushMap
private

Definition at line 195 of file BrushBSP.h.

int idBrushBSP::brushMapContents
private

Definition at line 194 of file BrushBSP.h.

bool(* idBrushBSP::BrushMergeAllowed)(idBrush *b1, idBrush *b2)
private

Definition at line 198 of file BrushBSP.h.

int idBrushBSP::insideLeafNodes
private

Definition at line 190 of file BrushBSP.h.

idVec3 idBrushBSP::leakOrigin
private

Definition at line 193 of file BrushBSP.h.

int idBrushBSP::numGridCells
private

Definition at line 183 of file BrushBSP.h.

int idBrushBSP::numGridCellSplits
private

Definition at line 185 of file BrushBSP.h.

int idBrushBSP::numInsertedPoints
private

Definition at line 192 of file BrushBSP.h.

int idBrushBSP::numMergedPortals
private

Definition at line 191 of file BrushBSP.h.

int idBrushBSP::numPortals
private

Definition at line 187 of file BrushBSP.h.

int idBrushBSP::numPrunedSplits
private

Definition at line 186 of file BrushBSP.h.

int idBrushBSP::numSplits
private

Definition at line 184 of file BrushBSP.h.

idBrushBSPNode* idBrushBSP::outside
private

Definition at line 180 of file BrushBSP.h.

int idBrushBSP::outsideLeafNodes
private

Definition at line 189 of file BrushBSP.h.

idPlaneSet idBrushBSP::portalPlanes
private

Definition at line 182 of file BrushBSP.h.

idBrushBSPNode* idBrushBSP::root
private

Definition at line 179 of file BrushBSP.h.

int idBrushBSP::solidLeafNodes
private

Definition at line 188 of file BrushBSP.h.

idBounds idBrushBSP::treeBounds
private

Definition at line 181 of file BrushBSP.h.


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