New particle collisions code:
[blender.git] / source / blender / makesdna / DNA_mesh_types.h
index 59f3a64ba5ed5ea5a4ec04c1b6962dc396d789be..bd2a6a996b554fbb6446fe77399ce388d8934959 100644 (file)
@@ -1,15 +1,12 @@
-/**
+/*
  * $Id$ 
  *
- * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ * ***** BEGIN GPL LICENSE BLOCK *****
  *
  * This program 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. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
+ * of the License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 #ifndef DNA_MESH_TYPES_H
 #define DNA_MESH_TYPES_H
 
+/** \file DNA_mesh_types.h
+ *  \ingroup DNA
+ */
+
 #include "DNA_listBase.h"
 #include "DNA_ID.h"
 #include "DNA_customdata_types.h"
@@ -49,15 +50,18 @@ struct Mesh;
 struct OcInfo;
 struct Multires;
 struct PartialVisibility;
+struct EditMesh;
+struct AnimData;
 
 typedef struct Mesh {
        ID id;
+       struct AnimData *adt;           /* animation data (must be immediately after id for utilities to use it) */
 
        struct BoundBox *bb;
 
        ListBase effect;
        
-       struct Ipo *ipo;
+       struct Ipo *ipo;                // XXX depreceated... old animation system
        struct Key *key;
        struct Material **mat;
 
@@ -66,11 +70,13 @@ typedef struct Mesh {
        struct TFace *tface;    /* depecrated, use mtface */
        struct MVert *mvert;    /* array of verts */
        struct MEdge *medge;    /* array of edges */
-       struct MDeformVert *dvert;      /* __NLA */
+       struct MDeformVert *dvert;      /* deformgroup vertices */
        struct MCol *mcol;              /* array of colors, this must be the number of faces * 4 */
        struct MSticky *msticky;
        struct Mesh *texcomesh;
        struct MSelect *mselect;
+       
+       struct EditMesh *edit_mesh;     /* not saved in file! */
 
        struct CustomData vdata, edata, fdata;
 
@@ -82,15 +88,16 @@ typedef struct Mesh {
         * the face does not need to be selected, -1 is inactive */
        int act_face; 
        
-       int texflag;
+       short texflag, editflag;
        
        /* texture space, copied as one block in editobject.c */
        float loc[3];
        float size[3];
        float rot[3];
        
-       float cubemapsize, pad;
-
+       float cubemapsize;
+       
+       int drawflag;
        short smoothresh, flag;
 
        short subdiv, subdivr;
@@ -99,10 +106,6 @@ typedef struct Mesh {
 
        struct Multires *mr;            /* Multiresolution modeling data */
        struct PartialVisibility *pv;
-/*ifdef WITH_VERSE*/
-       /* not written in file, pointer at geometry VerseNode */
-       void *vnode;
-/*#endif*/
 } Mesh;
 
 /* deprecated by MTFace, only here for file reading */
@@ -119,9 +122,18 @@ typedef struct TFace {
 /* texflag */
 #define AUTOSPACE      1
 
+/* me->editflag */
+#define ME_EDIT_MIRROR_X (1 << 0)
+#define ME_EDIT_MIRROR_Y (1 << 1) // unused so far
+#define ME_EDIT_MIRROR_Z (1 << 2) // unused so far
+
+#define ME_EDIT_PAINT_MASK (1 << 3)
+#define ME_EDIT_MIRROR_TOPO (1 << 4) // unused so far
+
+
 /* me->flag */
-#define ME_ISDONE              1
-#define ME_NOPUNOFLIP  2
+/* #define ME_ISDONE           1 */
+#define ME_DEPRECATED  2
 #define ME_TWOSIDED            4
 #define ME_UVEFFECT            8
 #define ME_VCOLEFFECT  16
@@ -129,6 +141,46 @@ typedef struct TFace {
 #define ME_SMESH               64
 #define ME_SUBSURF             128
 #define ME_OPT_EDGES   256
+#define ME_DS_EXPAND   512
+
+/* me->drawflag, int */ 
+#define ME_DRAWEDGES   (1 << 0)
+#define ME_DRAWFACES   (1 << 1)
+#define ME_DRAWNORMALS (1 << 2)
+#define ME_DRAW_VNORMALS (1 << 3)
+
+#define ME_ALLEDGES            (1 << 4)
+#define ME_HIDDENEDGES  (1 << 5)
+
+#define ME_DRAWCREASES (1 << 6)
+#define ME_DRAWSEAMS    (1 << 7)
+#define ME_DRAWSHARP    (1 << 8)
+#define ME_DRAWBWEIGHTS        (1 << 9)
+
+#define ME_DRAWEXTRA_EDGELEN  (1 << 10)
+#define ME_DRAWEXTRA_FACEAREA (1 << 11)
+#define ME_DRAWEXTRA_FACEANG  (1 << 12)
+
+/* old global flags:
+#define G_DRAWEDGES            (1 << 18)
+#define G_DRAWFACES            (1 <<  7)
+#define G_DRAWNORMALS  (1 <<  6)
+#define G_DRAW_VNORMALS        (1 << 14)
+
+#define G_ALLEDGES             (1 << 11)
+#define G_HIDDENEDGES   (1 << 21)
+
+#define G_DRAWCREASES  (1 << 19)
+#define G_DRAWSEAMS     (1 << 20)
+#define G_DRAWSHARP     (1 << 28)
+#define G_DRAWBWEIGHTS (1 << 31)
+
+#define G_DRAW_EDGELEN  (1 << 22) 
+#define G_DRAW_FACEAREA (1 << 23)
+#define G_DRAW_EDGEANG  (1 << 24)
+*/
+
+
 
 /* Subsurf Type */
 #define ME_CC_SUBSURF          0