=bmesh= merge from trunk at r36529
[blender.git] / source / blender / makesdna / DNA_mesh_types.h
index 01c009a7971e4422089a1fcb6b3f7af1775c59c0..f4d64d1a99f46d5db0097caf71cc9104b8b3a358 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * $Id$ 
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
@@ -15,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.
 #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"
@@ -52,15 +56,15 @@ struct MLoopCol;
 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;
        
@@ -98,24 +102,22 @@ typedef struct Mesh {
         * of the last selected face and is similar to the old active face flag where
         * the face does not need to be selected, -1 is inactive */
        int act_face; 
-       
-       int texflag;
-       
+
        /* texture space, copied as one block in editobject.c */
        float loc[3];
        float size[3];
        float rot[3];
-       
-       float cubemapsize;
-       
-       int drawflag;
+
+       short texflag, drawflag;
        short smoothresh, flag;
 
        short subdiv, subdivr;
+       char subsurftype;               /* only kept for backwards compat, not used anymore */
+       char editflag;
+
        short totcol;
-       short subsurftype;              /* only kept for backwards compat, not used anymore */
 
-       struct Multires *mr;            /* Multiresolution modeling data */
+       struct Multires *mr;            /* deprecated multiresolution modeling data, only keep for loading old files */
        struct PartialVisibility *pv;
 } Mesh;
 
@@ -133,9 +135,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)
+
+
 /* 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
@@ -143,8 +154,9 @@ typedef struct TFace {
 #define ME_SMESH               64
 #define ME_SUBSURF             128
 #define ME_OPT_EDGES   256
+#define ME_DS_EXPAND   512
 
-/* me->drawflag, int */ 
+/* me->drawflag, short */
 #define ME_DRAWEDGES   (1 << 0)
 #define ME_DRAWFACES   (1 << 1)
 #define ME_DRAWNORMALS (1 << 2)
@@ -156,11 +168,13 @@ typedef struct TFace {
 #define ME_DRAWCREASES (1 << 6)
 #define ME_DRAWSEAMS    (1 << 7)
 #define ME_DRAWSHARP    (1 << 8)
-#define ME_DRAWBWEIGHTS        (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)
 
-#define ME_DRAW_EDGELEN  (1 << 10) 
-#define ME_DRAW_FACEAREA (1 << 11)
-#define ME_DRAW_EDGEANG  (1 << 12)
+#define ME_DRAW_PINS (1 << 13)
 
 /* old global flags:
 #define G_DRAWEDGES            (1 << 18)