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 idBoundsGetTreeBounds (void) const
 
idBrushBSPNodeGetRootNode (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)
 
idBrushBSPNodeBuildBrushBSP_r (idBrushBSPNode *node, const idPlaneSet &planeList, bool *testedPlanes, int skipContents)
 
idBrushBSPNodeProcessGridCell (idBrushBSPNode *node, int skipContents)
 
void BuildGrid_r (idList< idBrushBSPNode * > &gridCells, idBrushBSPNode *node)
 
void PruneTree_r (idBrushBSPNode *node, int contents)
 
void MakeOutsidePortals (void)
 
idWindingBaseWindingForNode (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

idBrushBSPNoderoot
 
idBrushBSPNodeoutside
 
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
 
idBrushMapbrushMap
 
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: