Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

qbsp.h File Reference

#include <malloc.h>
#include "l_cmd.h"
#include "l_math.h"
#include "l_poly.h"
#include "l_threads.h"
#include "../botlib/l_script.h"
#include "l_bsp_ent.h"
#include "q2files.h"
#include "l_mem.h"
#include "l_utils.h"
#include "l_log.h"
#include "l_qfiles.h"

Include dependency graph for qbsp.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Data Structures

struct  brush_texture_t
struct  bspbrush_s
struct  face_s
struct  map_texinfo_t
struct  mapbrush_s
struct  node_s
struct  plane_s
struct  portal_s
struct  side_s
struct  textureref_t
struct  tree_t

Defines

#define BOGUS_RANGE   (MAX_MAP_BOUNDS+128)
#define BSPC_VERSION   "2.1h"
#define CLIP_EPSILON   0.1
#define DEBUG
#define MAPTYPE_HALFLIFE   4
#define MAPTYPE_QUAKE1   1
#define MAPTYPE_QUAKE2   2
#define MAPTYPE_QUAKE3   3
#define MAPTYPE_SIN   5
#define MAX_BRUSH_SIDES   128
#define MAX_MAP_BOUNDS   65535
#define MAX_MAP_TEXTURES   1024
#define MAX_MAPFILE_BRUSHES   65535
#define MAX_MAPFILE_BRUSHSIDES   (MAX_MAPFILE_BRUSHES*8)
#define MAX_MAPFILE_PLANES   256000
#define MAX_MAPFILE_TEXINFO   8192
#define MAX_NODE_BRUSHES   8
#define MAXEDGES   20
#define ME
#define NODELIST
#define NODESTACKSIZE   1024
#define PLANENUM_LEAF   -1
#define PSIDE_BACK   2
#define PSIDE_BOTH   (PSIDE_FRONT|PSIDE_BACK)
#define PSIDE_FACING   4
#define PSIDE_FRONT   1
#define SFL_BEVEL   4
#define SFL_CURVE   16
#define SFL_TESTED   1
#define SFL_TEXTURED   8
#define SFL_VISIBLE   2
#define SIN
#define TEXINFO_NODE   -1

Typedefs

typedef bspbrush_s bspbrush_t
typedef face_s face_t
typedef mapbrush_s mapbrush_t
typedef node_s node_t
typedef plane_s plane_t
typedef portal_s portal_t
typedef side_s side_t

Functions

void AddBrushBevels (mapbrush_t *b)
bspbrush_tAllocBrush (int numsides)
node_tAllocNode (void)
void BoundBrush (bspbrush_t *brush)
tree_tBrushBSP (bspbrush_t *brushlist, vec3_t mins, vec3_t maxs)
int BrushExists (mapbrush_t *brush)
bspbrush_tBrushFromBounds (vec3_t mins, vec3_t maxs)
int BrushMostlyOnSide (bspbrush_t *brush, plane_t *plane)
vec_t BrushVolume (bspbrush_t *brush)
void BSPBrushWindings (bspbrush_t *brush)
void CheckBSPBrush (bspbrush_t *brush)
bspbrush_tChopBrushes (bspbrush_t *head)
bspbrush_tCopyBrush (bspbrush_t *brush)
int CountBrushList (bspbrush_t *brushes)
void Draw_ClearWindow (void)
void DrawWinding (winding_t *w)
void EmitAreaPortals (node_t *headnode)
void FillOutside (node_t *headnode)
int FindFloatPlane (vec3_t normal, vec_t dist)
int FindMiptex (char *name)
void FloodAreas (tree_t *tree)
qboolean FloodEntities (tree_t *tree)
void FreeBrush (bspbrush_t *brushes)
void FreeBrushList (bspbrush_t *brushes)
void FreePortal (portal_t *p)
void GLS_BeginScene (void)
void GLS_EndScene (void)
void GLS_Winding (winding_t *w, int code)
void HL_LoadMapFile (char *filename)
void HL_LoadMapFromBSP (char *filename, int offset, int length)
void HL_ResetMapLoading (void)
bspbrush_tInitialBrushList (bspbrush_t *list)
void LeakFile (tree_t *tree)
int LoadMapFromBSP (struct quakefile_s *qf)
qboolean MakeBrushWindings (mapbrush_t *ob)
bspbrush_tMakeBspBrushList (int startbrush, int endbrush, vec3_t clipmins, vec3_t clipmaxs)
void MakeHeadnodePortals (tree_t *tree)
void MakeNodePortal (node_t *node)
void MakeTreePortals (tree_t *tree)
void MarkBrushBevels (mapbrush_t *brush)
void MarkVisibleSides (tree_t *tree, int start, int end)
bspbrush_tOptimizedBrushList (bspbrush_t *list)
void OutputWinding (winding_t *w, FILE *glview)
int PlaneFromPoints (int *p0, int *p1, int *p2)
int PlaneTypeForNormal (vec3_t normal)
qboolean Portal_VisFlood (portal_t *p)
void PrintMapInfo (void)
tree_tProcessWorldBrushes (int brush_start, int brush_end)
void Q1_LoadMapFile (char *filename)
void Q1_LoadMapFromBSP (char *filename, int offset, int length)
void Q1_ResetMapLoading (void)
void Q2_LoadMapFile (char *filename)
void Q2_LoadMapFromBSP (char *filename, int offset, int length)
void Q2_ResetMapLoading (void)
void Q3_LoadMapFromBSP (struct quakefile_s *qf)
void Q3_ResetMapLoading (void)
void ResetBrushBSP (void)
void ResetMapLoading (void)
void Sin_LoadMapFile (char *filename)
void Sin_LoadMapFromBSP (char *filename, int offset, int length)
void Sin_ResetMapLoading (void)
void SplitBrush (bspbrush_t *brush, int planenum, bspbrush_t **front, bspbrush_t **back)
void SplitNodePortals (node_t *node)
int TexinfoForBrushTexture (plane_t *plane, brush_texture_t *bt, vec3_t origin)
void TextureAxisFromPlane (plane_t *pln, vec3_t xv, vec3_t yv)
tree_tTree_Alloc (void)
void Tree_Free (tree_t *tree)
void Tree_Free_r (node_t *node)
void Tree_FreePortals_r (node_t *node)
void Tree_Print_r (node_t *node, int depth)
void Tree_PruneNodes (node_t *node)
void Tree_PruneNodes_r (node_t *node)
bspbrush_tTryMergeBrushes (bspbrush_t *brush1, bspbrush_t *brush2)
int VisibleContents (int contents)
qboolean WindingIsHuge (winding_t *w)
qboolean WindingIsTiny (winding_t *w)
void WriteBrushList (char *name, bspbrush_t *brush, qboolean onlyvis)
void WriteBrushMap (char *name, bspbrush_t *list)
void WriteGLView (tree_t *tree, char *source)
void WriteMapFile (char *filename)

Variables

int brushmodelnumbers [MAX_MAPFILE_BRUSHES]
side_t brushsides [MAX_MAPFILE_BRUSHSIDES]
int c_areaportals
int c_boxbevels
int c_clipbrushes
int c_edgebevels
int c_squattbrushes
qboolean cancelconversion
qboolean capsule_collision
qboolean create_aas
int dbrushleafnums [MAX_MAPFILE_BRUSHES]
int dplanes2mapplanes [MAX_MAPFILE_PLANES]
vec3_t draw_maxs
vec3_t draw_mins
qboolean drawflag
int entity_num
qboolean freetree
qboolean fulldetail
qboolean lessbrushes
int loadedmaptype
vec3_t map_maxs
vec3_t map_mins
int map_numtexinfo
map_texinfo_t map_texinfo [MAX_MAPFILE_TEXINFO]
mapbrush_t mapbrushes [MAX_MAPFILE_BRUSHES]
plane_t mapplanes [MAX_MAPFILE_PLANES]
int mapplaneusers [MAX_MAPFILE_PLANES]
vec_t microvolume
qboolean nobrushmerge
qboolean nocsg
int nodestack [NODESTACKSIZE]
int * nodestackptr
int nodestacksize
qboolean nodetail
qboolean noliquids
qboolean nomerge
qboolean noprune
qboolean noshare
qboolean nosubdiv
qboolean notjunc
qboolean nowater
qboolean noweld
int nummapbrushes
int nummapbrushsides
int nummapplanes
qboolean onlyents
char outbase [32]
brush_texture_t side_brushtextures [MAX_MAPFILE_BRUSHSIDES]
char source [1024]
float subdivide_size
textureref_t textureref [MAX_MAP_TEXTURES]


Define Documentation

#define BOGUS_RANGE   (MAX_MAP_BOUNDS+128)
 

Definition at line 50 of file qbsp.h.

#define BSPC_VERSION   "2.1h"
 

Definition at line 40 of file qbsp.h.

Referenced by main(), and WriteMapFileSafe().

#define CLIP_EPSILON   0.1
 

Definition at line 48 of file qbsp.h.

Referenced by BuildFaceTree_r(), and MakeNodePortal().

#define DEBUG
 

Definition at line 43 of file qbsp.h.

#define MAPTYPE_HALFLIFE   4
 

Definition at line 274 of file qbsp.h.

#define MAPTYPE_QUAKE1   1
 

Definition at line 271 of file qbsp.h.

#define MAPTYPE_QUAKE2   2
 

Definition at line 272 of file qbsp.h.

Referenced by WriteMapFileSafe().

#define MAPTYPE_QUAKE3   3
 

Definition at line 273 of file qbsp.h.

#define MAPTYPE_SIN   5
 

Definition at line 275 of file qbsp.h.

Referenced by WriteMapBrush().

#define MAX_BRUSH_SIDES   128
 

Definition at line 47 of file qbsp.h.

#define MAX_MAP_BOUNDS   65535
 

Definition at line 49 of file qbsp.h.

Referenced by AAS_CreateCurveBrushes(), AAS_FixMapBrush(), AAS_HashVec(), AAS_MakeBrushWindings(), BaseWindingForPlane(), CheckBSPBrush(), CheckWinding(), MakeBrushWindings(), MakeTreePortals_r(), SplitBrush(), and TH_HashVec().

#define MAX_MAP_TEXTURES   1024
 

Definition at line 376 of file qbsp.h.

#define MAX_MAPFILE_BRUSHES   65535
 

Definition at line 237 of file qbsp.h.

Referenced by Q2_ResetMapLoading(), Q3_ResetMapLoading(), ResetMapLoading(), and Sin_ResetMapLoading().

#define MAX_MAPFILE_BRUSHSIDES   (MAX_MAPFILE_BRUSHES*8)
 

Definition at line 238 of file qbsp.h.

Referenced by ResetMapLoading().

#define MAX_MAPFILE_PLANES   256000
 

Definition at line 236 of file qbsp.h.

Referenced by ResetMapLoading().

#define MAX_MAPFILE_TEXINFO   8192
 

Definition at line 239 of file qbsp.h.

Referenced by ResetMapLoading().

#define MAX_NODE_BRUSHES   8
 

Definition at line 54 of file qbsp.h.

#define MAXEDGES   20
 

Definition at line 53 of file qbsp.h.

Referenced by FaceFromSuperverts().

#define ME
 

Definition at line 42 of file qbsp.h.

#define NODELIST
 

Definition at line 44 of file qbsp.h.

#define NODESTACKSIZE   1024
 

Definition at line 269 of file qbsp.h.

#define PLANENUM_LEAF   -1
 

Definition at line 52 of file qbsp.h.

Referenced by CreateVisPortals_r(), NumberLeafs_r(), Portal_EntityFlood(), Portal_Passable(), and WritePortalFile_r().

#define PSIDE_BACK   2
 

Definition at line 403 of file qbsp.h.

Referenced by QuickTestBrushToPlanenum(), and TestBrushToPlanenum().

#define PSIDE_BOTH   (PSIDE_FRONT|PSIDE_BACK)
 

Definition at line 404 of file qbsp.h.

#define PSIDE_FACING   4
 

Definition at line 405 of file qbsp.h.

#define PSIDE_FRONT   1
 

Definition at line 402 of file qbsp.h.

Referenced by QuickTestBrushToPlanenum(), and TestBrushToPlanenum().

#define SFL_BEVEL   4
 

Definition at line 58 of file qbsp.h.

Referenced by AAS_AddMapBrushSide().

#define SFL_CURVE   16
 

Definition at line 60 of file qbsp.h.

#define SFL_TESTED   1
 

Definition at line 56 of file qbsp.h.

#define SFL_TEXTURED   8
 

Definition at line 59 of file qbsp.h.

Referenced by AAS_CreateCurveBrushes(), AAS_SetTexinfo(), and Q3_BSPBrushToMapBrush().

#define SFL_VISIBLE   2
 

Definition at line 57 of file qbsp.h.

Referenced by AAS_CreateCurveBrushes().

#define SIN
 

Definition at line 45 of file qbsp.h.

#define TEXINFO_NODE   -1
 

Definition at line 51 of file qbsp.h.

Referenced by TryMergeBrushes().


Typedef Documentation

typedef struct bspbrush_s bspbrush_t
 

Referenced by AddBrushListToTail(), AdjustBrushesForOrigin(), AllocBrush(), BeginModel(), BoundBrush(), BrushBSP(), BrushesDisjoint(), BrushFromBounds(), BrushGE(), BrushMostlyOnSide(), BrushOutOfBounds(), BrushVolume(), BSPBrushWindings(), BuildTree_r(), BuildTreeThread(), CalcTerrainSize(), CheckAreas_r(), CheckBrushLists(), CheckBSPBrush(), CheckPlaneAgainstVolume(), ChopBrushes(), ChopFaceByBrush(), ChopPatchByBrush(), ClipBrushToBox(), ClipSidesIntoTree(), CopyBrush(), CountBrushList(), CreateBrushWindings(), CullList(), DrawBrushList(), DrawSurfaceForSide(), EmitBrushes(), EmitLeaf(), FilterBrushIntoTree_r(), FilterDetailBrushesIntoTree(), FilterStructuralBrushesIntoTree(), FindBrushInTree(), FindPortalSide(), FinishBrush(), FloodAreas_r(), FogDrawSurfs(), FreeBrush(), FreeBrushList(), HL_BSPBrushToMapBrush(), HL_CreateBrushes_r(), HL_CreateBrushesFromBSP(), HL_CreateMapBrushes(), HL_FixContentsTextures(), HL_MergeBrushes(), HL_SplitBrush(), HL_SplitBrushWithFace(), HL_TextureBrushes(), InitialBrushList(), IntersectBrush(), LeafNode(), LoadMapFile(), MakeBrushFromTriangle(), MakeBspBrushList(), MakeStructuralBspFaceList(), MakeVisibleBspFaceList(), MergeBrushes(), MoveBrushesToWorld(), OptimizedBrushList(), ParseBrush(), PrintBrush(), PrintTree_r(), ProcessSubModel(), ProcessWorldBrushes(), Q1_BSPBrushToMapBrush(), Q1_CreateBrushes_r(), Q1_CreateBrushesFromBSP(), Q1_CreateMapBrushes(), Q1_FixContentsTextures(), Q1_MergeBrushes(), Q1_SplitBrush(), Q1_SplitBrushWithFace(), Q1_TextureBrushes(), QuickTestBrushToPlanenum(), RemoveDuplicateBrushPlanes(), SelectSplitSide(), SetAreaPortalAreas_r(), SetBrushContents(), SetTerrainTextures(), SplitBrush(), SplitBrush2(), SplitBrushList(), SubtractBrush(), TestBrushToPlanenum(), Tree_Free_r(), Tree_Print_r(), Tree_PruneNodes_r(), TryMergeBrushes(), WriteBrushList(), and WriteBspBrushMap().

typedef struct face_s face_t
 

Referenced by _SetColor(), AbsoluteToLocal(), AddBrushForPatch(), AddBrushForTerrain(), CPlugInManager::AddFaceToBrushHandle(), AllocFace(), Brush_BestSplitFace(), Brush_BuildWindings(), Brush_Clone(), Brush_Convex(), Brush_Create(), Brush_CreatePyramid(), Brush_Draw(), Brush_DrawXY(), Brush_FitTexture(), Brush_Free(), Brush_FullClone(), Brush_InsertVertexBetween(), Brush_MakeConvexBrushes(), Brush_MakeFacePlanes(), Brush_MakeFaceWinding(), Brush_MakeSided(), Brush_MakeSidedCone(), Brush_MakeSidedSphere(), Brush_MemorySize(), Brush_Merge(), Brush_MergeList(), Brush_Move(), Brush_MoveVertex(), Brush_MoveVertex_old1(), Brush_MoveVertex_old2(), Brush_Parse(), Brush_Point(), Brush_Print(), Brush_Ray(), Brush_RebuildBrush(), Brush_RemoveEmptyFaces(), Brush_ResetFaceOriginals(), Brush_Resize(), Brush_Rotate(), Brush_Scale(), Brush_SelectFaceForDragging(), Brush_SetTexture(), Brush_SideSelect(), Brush_SnapPlanepts(), Brush_SnapToGrid(), Brush_SplitBrushByFace(), Brush_Subtract(), Brush_Write(), BrushPrimit_Parse(), CCamWnd::Cam_Draw(), ClipLineToFace(), ComputeAbsolute(), ComputeScale(), CSG_MakeHollow(), Drag_Setup(), EmitBrushPrimitTextureCoordinates(), EmitDrawNode_r(), EmitFace(), EmitFaceVertexes(), EmitLeaf(), EmitMarkFace(), EmitTextureCoordinates(), EmitVertexes_r(), Face_Alloc(), Face_Clone(), Face_Draw(), Face_FitTexture(), Face_Free(), Face_FullClone(), Face_MakePlane(), Face_MemorySize(), Face_MoveTexture(), Face_MoveTexture_BrushPrimit(), Face_SetColor(), Face_TextureVectors(), FaceFromPortal(), FaceFromSuperverts(), FaceToBrushPrimitFace(), FilterBrush(), FindEdge(), FindReplaceTextures(), FixEdges_r(), FixFaceEdges(), FreeFace(), GetEdge2(), CSurfaceDlg::GetTexMods(), MakeFace(), MergeNodeFaces(), NewFaceFromFace(), nextFace(), CSurfaceDlg::OnBtnFacefit(), CMainFrame::OnConvertcurves(), CXYWnd::OnPaint(), Patch_BuildPoints(), Patch_CapTexture(), Patch_GetAxisFace(), CXYWnd::ProduceSplitLists(), CXYWnd::ProduceSplits(), QERApp_AddFaceData(), QERApp_DeleteFace(), QERApp_GetFaceCount(), QERApp_GetFaceData(), QERApp_GetFaceInfo(), QERApp_GetTextureSize(), QERApp_ISelectedFace_GetTextureNumber(), QERApp_SetFaceData(), QERApp_SetFaceInfo(), QERApp_TextureBrush(), ReplaceQTexture(), RotateFaceTexture(), RotateFaceTexture_BrushPrimit(), RotateTextures(), Select_AllOfType(), Select_ApplyMatrix(), Select_FitTexture(), Select_MakeDetail(), Select_MakeStructural(), Select_RotateTexture(), Select_Scale(), Select_ScaleTexture(), Select_SetTexture(), Select_ShiftTexture(), Select_ShiftTexture_BrushPrimit(), SelectFaceEdge(), SelectVertex(), SetFaceTexdef(), CTextureBar::SetSurfaceAttributes(), CSurfaceDlg::SetTexMods(), SetupVertexSelection(), CCamWnd::ShiftTexture_BrushPrimit(), SubdivideFace(), SubdivideNodeFaces(), Test_Ray(), Texture_ShowInuse(), TryMerge(), and CSurfaceDlg::UpdateSpinners().

typedef struct mapbrush_s mapbrush_t
 

Referenced by AAS_AddMapBrushSide(), AAS_CopyMapBrush(), AAS_CreateCurveBrushes(), AAS_CreateMapBrushes(), AAS_ExpandMapBrush(), AAS_FixMapBrush(), AAS_MakeBrushWindings(), AAS_PositionBrush(), AAS_PositionFuncRotatingBrush(), AAS_SetTexinfo(), AddBrushBevels(), BeginModel(), BrushExists(), EmitBrushes(), FindPortalSide(), FreeBrushWindings(), GetAreaPortalBrush(), HL_BSPBrushToMapBrush(), MakeAreaPortalBrush(), MakeBrushWindings(), MakeBspBrushList(), MarkBrushBevels(), MarkVisibleBrushSides(), MarkVisibleSides(), Q1_BSPBrushToMapBrush(), Q2_BrushContents(), Q2_BSPBrushToMapBrush(), Q2_MoveBrushesToWorld(), Q2_ParseBrush(), Q2_ParseMapEntity(), Q3_BrushContents(), Q3_BSPBrushToMapBrush(), ResetMapLoading(), Sin_BrushContents(), Sin_BSPBrushToMapBrush(), TestExpandBrushes(), WriteMapBrush(), and WriteMapFileSafe().

typedef struct node_s node_t
 

Referenced by AAS_CreateArea(), AAS_CreateAreas(), AAS_CreateAreas_r(), AddNodeToQueue(), AddNodeToStack(), AddPortalToNodes(), AllocNode(), BaseWindingForNode(), BrushBSP(), BuildFaceTree_r(), BuildTree_r(), BuildTreeThread(), CalcNodeBounds(), CheckAreas_r(), CheckPlaneAgainstParents(), CheckPlaneAgainstVolume(), ClipSideIntoTree_r(), ClusterContents(), CreateVisPortals_r(), DrawBrushList(), EmitDrawNode_r(), EmitFaceVertexes(), EmitLeaf(), EmitVertexes_r(), EndModel(), FaceFromSuperverts(), FillLeafNumbers_r(), FillOutside(), FillOutside_r(), FilterBrushIntoTree_r(), FilterMapDrawSurfIntoTree(), FilterMapDrawSurfIntoTree_r(), FilterSideIntoTree_r(), FindAreas_r(), FindBrushInTree(), FindPortalSide(), FinishVisPortals2_r(), FinishVisPortals_r(), FixEdges_r(), FixFaceEdges(), FixTjuncs(), FloodAreas_r(), FloodEntities(), FloodPortals(), FloodPortals_r(), free_ppnode(), FreeTree_r(), FreeTreePortals_r(), get_ppnode(), Huff_addRef(), Huff_offsetReceive(), Huff_Receive(), increment(), LeafNode(), LeakFile(), MakeFaces(), MakeFaces_r(), MakeHeadnodePortals(), MakeNodePortal(), MakeTreePortals_r(), MarkVisibleSides_r(), MergeNodeFaces(), NextNodeFromList(), NodeForPoint(), NumberLeafs_r(), P_AddNodeToList(), P_NextNodeFromList(), PlaceOccupant(), PointInLeaf(), PrintTree_r(), ProcessSubModel(), ProcessWorldBrushes(), RemovePortalFromNode(), SaveClusters_r(), SelectSplitPlaneNum(), SelectSplitSide(), send(), SetAreaPortalAreas_r(), SplitBrushList(), SplitNodePortals(), SubdivideFace(), SubdivideNodeFaces(), swap(), swaplist(), Tree_Free_r(), Tree_FreePortals_r(), Tree_Print_r(), Tree_PruneNodes(), Tree_PruneNodes_r(), WriteBSP(), WriteFaceFile_r(), WriteGLView_r(), WritePortalFile(), and WritePortalFile_r().

typedef struct plane_s plane_t
 

Referenced by ResetMapLoading(), VL_SplitLightVolume(), and VS_SplitLightVolume().

typedef struct portal_s portal_t
 

Referenced by AAS_CreateArea(), AddPortalToNodes(), AllocPortal(), BspFaceForPortal(), CalcNodeBounds(), EmitLeaf(), FaceFromPortal(), FindPortalSide(), FloodAreas_r(), FloodPortals(), FloodPortals_r(), FreePortal(), FreeTreePortals_r(), LeakFile(), MakeFaces_r(), MakeHeadnodePortals(), MakeNodePortal(), MarkVisibleSides_r(), NumberLeafs_r(), OutputPortal(), Portal_EntityFlood(), Portal_Passable(), Portal_VisFlood(), PortalVisibleSides(), PrintPortal(), RemovePortalFromNode(), SplitNodePortals(), Tree_FreePortals_r(), WriteFaceFile_r(), WriteGLView_r(), and WritePortalFile_r().

typedef struct side_s side_t
 

Referenced by AAS_AddMapBrushSide(), AAS_CopyMapBrush(), AAS_CreateCurveBrushes(), AAS_ExpandMapBrush(), AAS_FixMapBrush(), AAS_MakeBrushWindings(), AAS_PositionBrush(), AAS_PositionFuncRotatingBrush(), AAS_SetTexinfo(), AddBrushBevels(), AddBrushSide(), AddSideRef(), AdjustBrushesForOrigin(), BrushExists(), BrushOutOfBounds(), BuildTree_r(), BuildTreeThread(), ChopFaceByBrush(), ChopPatchByBrush(), ClipSideIntoTree_r(), ClipSidesIntoTree(), CreateBrushWindings(), DrawBrushList(), DrawSurfaceForSide(), EmitTerrainVerts(), FaceFromPortal(), FilterSideIntoTree_r(), FindPortalSide(), FreeBrushWindings(), HL_BSPBrushToMapBrush(), HL_SplitBrush(), HL_TextureBrushes(), MakeAreaPortalBrush(), MakeBrushWindings(), MakeBspBrushList(), MakeStructuralBspFaceList(), MakeVisibleBspFaceList(), MarkBrushBevels(), MarkVisibleBrushSides(), ParseRawBrush(), Q1_BSPBrushToMapBrush(), Q1_SplitBrush(), Q1_TextureBrushes(), Q2_BrushContents(), Q2_BSPBrushToMapBrush(), Q2_ParseBrush(), Q2_ParseMapEntity(), Q3_BrushContents(), Q3_BSPBrushToMapBrush(), RemoveDuplicateBrushPlanes(), ResetMapLoading(), SelectSplitSide(), SetBrushContents(), SetTerrainTextures(), Sin_BrushContents(), Sin_BSPBrushToMapBrush(), SplitBrush(), SplitBrushList(), TestExpandBrushes(), TryMergeBrushes(), WriteBrushList(), WriteBspBrushMap(), and WriteMapBrush().


Function Documentation

void AddBrushBevels mapbrush_t b  ) 
 

Definition at line 336 of file map.c.

References b, c_boxbevels, c_edgebevels, side_s::contents, CrossProduct(), d, DotProduct, Error(), FindFloatPlane(), side_s::flags, i, j, k, l, side_s::lightinfo, mapbrush_t, mapplanes, mapbrush_s::maxs, mapbrush_s::mins, plane_t::normal, nummapbrushsides, winding_t::numpoints, mapbrush_s::numsides, order, mapbrush_s::original_sides, winding_t::p, PlaneEqual(), side_s::planenum, s, side_brushtextures, side_newrefs, side_t, SnapVector, side_s::texinfo, vec3_t, VectorClear, VectorNormalize(), VectorSubtract, w, and side_s::winding.

00337 {
00338     int     axis, dir;
00339     int     i, j, k, l, order;
00340     side_t  sidetemp;
00341     brush_texture_t tdtemp;
00342 #ifdef SIN
00343    textureref_t trtemp;
00344 #endif
00345     side_t  *s, *s2;
00346     vec3_t  normal;
00347     float   dist;
00348     winding_t   *w, *w2;
00349     vec3_t  vec, vec2;
00350     float   d;
00351 
00352     //
00353     // add the axial planes
00354     //
00355     order = 0;
00356     for (axis=0 ; axis <3 ; axis++)
00357     {
00358         for (dir=-1 ; dir <= 1 ; dir+=2, order++)
00359         {
00360             // see if the plane is allready present
00361             for (i=0, s=b->original_sides ; i<b->numsides ; i++,s++)
00362             {
00363                 if (mapplanes[s->planenum].normal[axis] == dir)
00364                     break;
00365             }
00366 
00367             if (i == b->numsides)
00368             {   // add a new side
00369                 if (nummapbrushsides == MAX_MAP_BRUSHSIDES)
00370                     Error ("MAX_MAP_BRUSHSIDES");
00371                 nummapbrushsides++;
00372                 b->numsides++;
00373                 VectorClear (normal);
00374                 normal[axis] = dir;
00375                 if (dir == 1)
00376                     dist = b->maxs[axis];
00377                 else
00378                     dist = -b->mins[axis];
00379                 s->planenum = FindFloatPlane (normal, dist);
00380                 s->texinfo = b->original_sides[0].texinfo;
00381 #ifdef SIN
00382                 s->lightinfo = b->original_sides[0].lightinfo;
00383 #endif
00384                 s->contents = b->original_sides[0].contents;
00385                 s->flags |= SFL_BEVEL;
00386                 c_boxbevels++;
00387             }
00388 
00389             // if the plane is not in it canonical order, swap it
00390             if (i != order)
00391             {
00392                 sidetemp = b->original_sides[order];
00393                 b->original_sides[order] = b->original_sides[i];
00394                 b->original_sides[i] = sidetemp;
00395 
00396                 j = b->original_sides - brushsides;
00397                 tdtemp = side_brushtextures[j+order];
00398                 side_brushtextures[j+order] = side_brushtextures[j+i];
00399                 side_brushtextures[j+i] = tdtemp;
00400 
00401 #ifdef SIN
00402                 trtemp = side_newrefs[j