00001 /* 00002 =========================================================================== 00003 Copyright (C) 1999-2005 Id Software, Inc. 00004 00005 This file is part of Quake III Arena source code. 00006 00007 Quake III Arena source code is free software; you can redistribute it 00008 and/or modify it under the terms of the GNU General Public License as 00009 published by the Free Software Foundation; either version 2 of the License, 00010 or (at your option) any later version. 00011 00012 Quake III Arena source code is distributed in the hope that it will be 00013 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with Foobar; if not, write to the Free Software 00019 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00020 =========================================================================== 00021 */ 00022 00023 // mesh.h 00024 00025 00026 typedef struct { 00027 int width, height; 00028 drawVert_t *verts; 00029 } mesh_t; 00030 00031 #define MAX_EXPANDED_AXIS 128 00032 00033 extern int originalWidths[MAX_EXPANDED_AXIS]; 00034 extern int originalHeights[MAX_EXPANDED_AXIS]; 00035 00036 void FreeMesh( mesh_t *m ); 00037 mesh_t *CopyMesh( mesh_t *mesh ); 00038 void PrintMesh( mesh_t *m ); 00039 mesh_t *TransposeMesh( mesh_t *in ); 00040 void InvertMesh( mesh_t *m ); 00041 mesh_t *SubdivideMesh( mesh_t in, float maxError, float minLength ); 00042 mesh_t *SubdivideMeshQuads( mesh_t *in, float minLength, int maxsize, int widthtable[], int heighttable[]); 00043 mesh_t *RemoveLinearMeshColumnsRows( mesh_t *in ); 00044 void MakeMeshNormals( mesh_t in ); 00045 void PutMeshOnCurve( mesh_t in ); 00046 00047 00048 void MakeNormalVectors (vec3_t forward, vec3_t right, vec3_t up);
1.3.9.1