4 * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version. The Blender
10 * Foundation also sells licenses for use in proprietary software under
11 * the Blender License. See http://www.blender.org/BL/ for information
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software Foundation,
21 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24 * All rights reserved.
26 * The Original Code is: all of this file.
28 * Contributor(s): none yet.
30 * ***** END GPL/BL DUAL LICENSE BLOCK *****
32 #ifndef DNA_MESH_TYPES_H
33 #define DNA_MESH_TYPES_H
35 #include "DNA_listBase.h"
47 typedef struct TFace {
49 /* this one gets interpreted as a image in texture.c */
52 float uv[4][2]; /* when you change this: also do function set_correct_uv in editmesh.c, and there are more locations that use the size of this part */
55 short mode, tile, pad;
68 struct Material **mat;
70 void *mface, *dface, *tface;
72 struct MDeformVert *dvert; /* __NLA */
74 struct MSticky *msticky;
75 struct Mesh *texcomesh;
78 struct OcInfo *oc; /* not written in file */
88 short smoothresh, flag;
89 short subdiv, subdivr, subdivdone;
92 short reserved1; /* Padding */
94 float cubemapsize, rtf;
100 /* **************** MESH ********************* */
107 #define ME_NOPUNOFLIP 2
108 #define ME_TWOSIDED 4
109 #define ME_UVEFFECT 8
110 #define ME_VCOLEFFECT 16
111 #define ME_AUTOSMOOTH 32
113 #define ME_SUBSURF 128
114 #define ME_OPT_EDGES 256
117 #define ME_CC_SUBSURF 0
118 #define ME_SIMPLE_SUBSURF 1
120 /* puno = vertexnormal (mface) */
141 /* #define TF_INVISIBLE 2 */
143 #define TF_SHAREDVERT 8
146 #define TF_SHAREDCOL 64
148 #define TF_BILLBOARD 256
149 #define TF_TWOSIDE 512
150 #define TF_INVISIBLE 1024
152 #define TF_OBCOL 2048
153 #define TF_BILLBOARD2 4096 /* with Z axis constraint */
154 #define TF_SHADOW 8192
155 #define TF_BMFONT 16384
157 /* tface->flag: 1=select 2=active*/
172 /* mvert->flag (1=select) */
173 #define ME_SPHERETEST 2
174 #define ME_SPHERETEMP 4
177 #define MESH_MAX_VERTS 2000000000L