aboutsummaryrefslogtreecommitdiffstats
path: root/q3radiant/BRUSH.H
diff options
context:
space:
mode:
Diffstat (limited to 'q3radiant/BRUSH.H')
-rwxr-xr-xq3radiant/BRUSH.H124
1 files changed, 124 insertions, 0 deletions
diff --git a/q3radiant/BRUSH.H b/q3radiant/BRUSH.H
new file mode 100755
index 0000000..13f17b6
--- /dev/null
+++ b/q3radiant/BRUSH.H
@@ -0,0 +1,124 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+// brush.h
+
+// all types moved to qertypes.h
+//--typedef struct
+//--{
+//-- int numpoints;
+//-- int maxpoints;
+//-- float points[8][5]; // variable sized
+//--} winding_t;
+
+
+// the normals on planes point OUT of the brush
+//--#define MAXPOINTS 16
+//--typedef struct face_s
+//--{
+//-- struct face_s *next;
+//-- vec3_t planepts[3];
+//-- texdef_t texdef;
+//-- plane_t plane;
+//--
+//-- winding_t *face_winding;
+//--
+//-- vec3_t d_color;
+//-- qtexture_t *d_texture;
+//--
+//--} face_t;
+//--
+//--typedef struct {
+//-- vec3_t xyz;
+//-- float sideST[2];
+//-- float capST[2];
+//--} curveVertex_t;
+//--
+//--typedef struct {
+//-- curveVertex_t v[2];
+//--} sideVertex_t;
+//--
+//--typedef struct brush_s
+//--{
+//-- struct brush_s *prev, *next; // links in active/selected
+//-- struct brush_s *oprev, *onext; // links in entity
+//-- struct entity_s *owner;
+//-- vec3_t mins, maxs;
+//-- face_t *brush_faces;
+//--
+//-- qboolean bModelFailed;
+//-- //
+//-- // curve brush extensions
+//-- // all are derived from brush_faces
+//-- qboolean curveBrush;
+//-- qboolean patchBrush;
+//-- int nPatchID;
+//--} brush_t;
+
+void Brush_AddToList (brush_t *b, brush_t *list);
+void Brush_Build(brush_t *b, bool bSnap = true, bool bMarkMap = true, bool bConvert = false);
+void Brush_BuildWindings( brush_t *b, bool bSnap = true );
+brush_t* Brush_Clone (brush_t *b);
+brush_t* Brush_FullClone(brush_t *b);
+brush_t* Brush_Create (vec3_t mins, vec3_t maxs, texdef_t *texdef);
+void Brush_Draw( brush_t *b );
+void Brush_DrawXY(brush_t *b, int nViewType);
+// set bRemoveNode to false to avoid trying to delete the item in group view tree control
+void Brush_Free (brush_t *b, bool bRemoveNode = true);
+int Brush_MemorySize(brush_t *b);
+void Brush_MakeSided (int sides);
+void Brush_MakeSidedCone (int sides);
+void Brush_Move (brush_t *b, const vec3_t move, bool bSnap = true);
+int Brush_MoveVertex(brush_t *b, vec3_t vertex, vec3_t delta, vec3_t end, bool bSnap = true);
+void Brush_ResetFaceOriginals(brush_t *b);
+brush_t* Brush_Parse (void);
+face_t* Brush_Ray (vec3_t origin, vec3_t dir, brush_t *b, float *dist);
+void Brush_RemoveFromList (brush_t *b);
+void Brush_SplitBrushByFace (brush_t *in, face_t *f, brush_t **front, brush_t **back);
+void Brush_SelectFaceForDragging (brush_t *b, face_t *f, qboolean shear);
+void Brush_SetTexture (brush_t *b, texdef_t *texdef, brushprimit_texdef_t *brushprimit_texdef, bool bFitScale = false, IPluginTexdef* pPlugTexdef=NULL );
+void Brush_SideSelect (brush_t *b, vec3_t origin, vec3_t dir, qboolean shear);
+void Brush_SnapToGrid(brush_t *pb);
+void Brush_Rotate(brush_t *b, vec3_t vAngle, vec3_t vOrigin, bool bBuild = true);
+void Brush_MakeSidedSphere(int sides);
+void Brush_Write (brush_t *b, FILE *f);
+void Brush_Write (brush_t *b, CMemFile* pMemFile);
+void Brush_RemoveEmptyFaces ( brush_t *b );
+winding_t* Brush_MakeFaceWinding (brush_t *b, face_t *face);
+
+int AddPlanept (float *f);
+float SetShadeForPlane (plane_t *p);
+
+face_t* Face_Alloc( void );
+void Face_Free( face_t *f );
+face_t* Face_Clone (face_t *f);
+void Face_MakePlane (face_t *f);
+void Face_Draw( face_t *face );
+void Face_TextureVectors (face_t *f, float STfromXYZ[2][4]);
+void SetFaceTexdef (brush_t *b, face_t *f, texdef_t *texdef, brushprimit_texdef_t *brushprimit_texdef, bool bFitScale = false, IPluginTexdef* pPlugTexdef = NULL );
+
+void Face_FitTexture( face_t * face, int nHeight, int nWidth );
+void Brush_FitTexture( brush_t *b, int nHeight, int nWidth );
+void Brush_SetEpair(brush_t *b, const char *pKey, const char *pValue);
+const char* Brush_GetKeyValue(brush_t *b, const char *pKey);
+brush_t *Brush_Alloc();
+const char* Brush_Name(brush_t *b);