diff options
author | zakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-08-26 04:48:05 +0000 |
---|---|---|
committer | zakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-08-26 04:48:05 +0000 |
commit | 952c5c128f9efaea89d41d882c4ea3ade7df4591 (patch) | |
tree | 91b84d9be7afad7e99ac64a640a65b6cb5081900 /q3radiant/BRUSH.H | |
parent | c2c2e0d25d6cdb7d42d7dc981a863f65f94f281d (diff) | |
download | ioquake3-aero-952c5c128f9efaea89d41d882c4ea3ade7df4591.tar.gz ioquake3-aero-952c5c128f9efaea89d41d882c4ea3ade7df4591.zip |
Itsa me, quake3io!
git-svn-id: svn://svn.icculus.org/quake3/trunk@2 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'q3radiant/BRUSH.H')
-rwxr-xr-x | q3radiant/BRUSH.H | 124 |
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);
|