=bmesh= merge from trunk at r36529
[blender.git] / source / blender / makesdna / DNA_mesh_types.h
index ae7f5e65316b94c0928bd648d1bf700060316c22..f4d64d1a99f46d5db0097caf71cc9104b8b3a358 100644 (file)
@@ -48,6 +48,11 @@ struct MCol;
 struct MSticky;
 struct Mesh;
 struct OcInfo;
+struct MPoly;
+struct MTexPoly;
+struct MLoop;
+struct MLoopUV;
+struct MLoopCol;
 struct Multires;
 struct PartialVisibility;
 struct EditMesh;
@@ -62,23 +67,35 @@ typedef struct Mesh {
        struct Ipo *ipo;                // XXX depreceated... old animation system
        struct Key *key;
        struct Material **mat;
-
-       struct MFace *mface;    /* array of mesh object mode faces */
-       struct MTFace *mtface;  /* store face UV's and texture here */
+       
+       /*new face structures*/
+       struct MPoly *mpoly;
+       struct MTexPoly *mtpoly;
+       struct MLoop *mloop;
+       struct MLoopUV *mloopuv;
+       struct MLoopCol *mloopcol;
+
+       /*mface stores the tesselation (triangulation) of the mesh,
+         real faces are now stored in nface.*/
+       struct MFace *mface;    /* array of mesh object mode faces for tesselation */
+       struct MTFace *mtface;  /* store tesselation face UV's and texture here */
        struct TFace *tface;    /* depecrated, use mtface */
        struct MVert *mvert;    /* array of verts */
        struct MEdge *medge;    /* array of edges */
        struct MDeformVert *dvert;      /* deformgroup vertices */
-       struct MCol *mcol;              /* array of colors, this must be the number of faces * 4 */
+       
+       /* array of colors for the tesselated faces, must be number of tesselated
+          faces * 4 in length */
+       struct MCol *mcol;              
        struct MSticky *msticky;
        struct Mesh *texcomesh;
        struct MSelect *mselect;
        
-       struct EditMesh *edit_mesh;     /* not saved in file! */
+       struct BMEditMesh *edit_btmesh; /* not saved in file! */
 
-       struct CustomData vdata, edata, fdata;
+       struct CustomData vdata, edata, fdata, pdata, ldata;
 
-       int totvert, totedge, totface, totselect;
+       int totvert, totedge, totface, totpoly, totloop, totselect;
        
        /* the last selected vertex/edge/face are used for the active face however
         * this means the active face must always be selected, this is to keep track
@@ -100,7 +117,7 @@ typedef struct Mesh {
 
        short totcol;
 
-       struct Multires *mr;            /* Multiresolution modeling data */
+       struct Multires *mr;            /* deprecated multiresolution modeling data, only keep for loading old files */
        struct PartialVisibility *pv;
 } Mesh;
 
@@ -157,6 +174,8 @@ typedef struct TFace {
 #define ME_DRAWEXTRA_FACEAREA (1 << 11)
 #define ME_DRAWEXTRA_FACEANG  (1 << 12)
 
+#define ME_DRAW_PINS (1 << 13)
+
 /* old global flags:
 #define G_DRAWEDGES            (1 << 18)
 #define G_DRAWFACES            (1 <<  7)