29 #ifndef __BRUSHBSP_H__
30 #define __BRUSHBSP_H__
90 #define NODE_VISITED BIT(30)
91 #define NODE_DONE BIT(31)
124 bool Split(
const idPlane &splitPlane,
int splitPlaneNum );
bool(* BrushChopAllowed)(idBrush *b1, idBrush *b2)
void MergePortals(int skipContents)
bool(* BrushMergeAllowed)(idBrush *b1, idBrush *b2)
int GetContents(void) const
void RemoveFlag(int flag)
void MeltPortals(int skipContents)
void IncreaseNumSplits(void)
bool RemoveOutside(const idMapFile *mapFile, int contents, const idStrList &classNames)
void FloodThroughPortals_r(idBrushBSPNode *node, int contents, int depth)
int FindSplitter(idBrushBSPNode *node, const idPlaneSet &planeList, bool *testedPlanes, struct splitterStats_s &bestStats)
void MergePortals_r(idBrushBSPNode *node, int skipContents)
const idPlane & GetPlane(void) const
void MakeTreePortals_r(idBrushBSPNode *node)
void SetSplitterUsed(idBrushBSPNode *node, int planeNum)
const idPlane & GetPlane(void) const
int BrushSplitterStats(const idBrush *brush, int planeNum, const idPlaneSet &planeList, bool *testedPlanes, struct splitterStats_s &stats)
GLint GLint GLsizei GLsizei GLsizei depth
int PlaneSide(const idPlane &plane, float epsilon=ON_EPSILON) const
bool TryMergeLeafNodes(idBrushBSPPortal *portal, int side)
idBrushBSPPortal * next[2]
void WriteBrushMap(const idStr &fileName, const idStr &ext, int contents)
void SplitNodePortals(idBrushBSPNode *node)
void SetPortalPlanes(void)
idBrushBSPNode * GetRootNode(void) const
void RemoveFlagRecurse(int flag)
idBrushBSPNode * nodes[2]
void SetContents(int contents)
idBrushBSPPortal * portals
void MergeLeafNodePortals(idBrushBSPNode *node, int skipContents)
int GetAreaNum(void) const
bool FloodFromEntities(const idMapFile *mapFile, int contents, const idStrList &classNames)
int GetFaceNum(void) const
idBrushBSPNode * GetNode(int side) const
bool IsValidSplitter(const idBrushSide *side)
void RemoveColinearPoints_r(idBrushBSPNode *node, int skipContents)
void MeltFlood_r(idBrushBSPNode *node, int skipContents, idBounds &bounds, idVectorSet< idVec3, 3 > &vertexList)
void UpdateTreeAfterMerge_r(idBrushBSPNode *node, const idBounds &bounds, idBrushBSPNode *oldNode, idBrushBSPNode *newNode)
void RemoveOutside_r(idBrushBSPNode *node, int contents)
void SetPortalPlanes_r(idBrushBSPNode *node, idPlaneSet &planeList)
void RemoveFlagFlood(int flag)
void LeakFile(const idStr &fileName)
idBrushBSPNode * children[2]
void MakeNodePortal(idBrushBSPNode *node)
void RemoveLeafNodeColinearPoints(idBrushBSPNode *node)
bool FloodFromOrigin(const idVec3 &origin, int contents)
void BuildGrid_r(idList< idBrushBSPNode * > &gridCells, idBrushBSPNode *node)
idBrushBSPNode * GetChild(int index) const
idWinding * BaseWindingForNode(idBrushBSPNode *node)
const idBounds & GetTreeBounds(void) const
idBrushBSPPortal * GetPortals(void) const
idBounds GetPortalBounds(void)
idBrushBSPNode * ProcessGridCell(idBrushBSPNode *node, int skipContents)
idWinding * GetWinding(void) const
void Build(idBrushList brushList, int skipContents, bool(*ChopAllowed)(idBrush *b1, idBrush *b2), bool(*MergeAllowed)(idBrush *b1, idBrush *b2))
idBrushBSPPortal * Next(int side) const
void RemoveFlagRecurseFlood(int flag)
void SetContentsFromBrushes(void)
int Split(const idPlane &splitPlane, idBrushBSPPortal **front, idBrushBSPPortal **back)
void RemoveMultipleLeafNodeReferences_r(idBrushBSPNode *node)
void MeltPortals_r(idBrushBSPNode *node, int skipContents, idVectorSet< idVec3, 3 > &vertexList)
idBrushBSPNode * BuildBrushBSP_r(idBrushBSPNode *node, const idPlaneSet &planeList, bool *testedPlanes, int skipContents)
bool MergeAllowed(idBrush *b1, idBrush *b2)
void RemoveFromNode(idBrushBSPNode *l)
idBrushBSPNode * GetParent(void) const
void MakeOutsidePortals(void)
void AddToNodes(idBrushBSPNode *front, idBrushBSPNode *back)
void PruneTree(int contents)
void RemoveFlag(int flag)
void Free_r(idBrushBSPNode *node)
void MeltLeafNodePortals(idBrushBSPNode *node, int skipContents, idVectorSet< idVec3, 3 > &vertexList)
bool Split(const idPlane &splitPlane, int splitPlaneNum)
void PruneTree_r(idBrushBSPNode *node, int contents)
void PruneMergedTree_r(idBrushBSPNode *node)