svn merge ^/trunk/blender -r42920:42927
authorCampbell Barton <ideasman42@gmail.com>
Wed, 28 Dec 2011 13:33:35 +0000 (13:33 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 28 Dec 2011 13:33:35 +0000 (13:33 +0000)
1  2 
source/blender/makesdna/DNA_customdata_types.h
source/blender/makesdna/DNA_mesh_types.h

index b3ed49754bae8778afce3bc1e6e0303fe04e86a5,0b0ffb42ba899ebb4da4db02c60a109ed047f245..13a1f4fbe8a9b70d3a6adea321e942982ea13dc1
@@@ -29,6 -29,7 +29,6 @@@
   *  \ingroup DNA
   */
  
 -
  #ifndef DNA_CUSTOMDATA_TYPES_H
  #define DNA_CUSTOMDATA_TYPES_H
  
@@@ -36,6 -37,8 +36,8 @@@
  extern "C" {
  #endif
  
+ #include "DNA_defs.h" /* USE_BMESH_FORWARD_COMPAT */
  /** descriptor and storage for a custom data layer */
  typedef struct CustomDataLayer {
        int type;       /* type of data in layer */
@@@ -45,7 -48,7 +47,7 @@@
        int active_rnd; /* number of the layer to render*/
        int active_clone; /* number of the layer to render*/
        int active_mask; /* number of the layer to render*/
 -      char pad[4];
 +      int uid;        /* shape keyblock unique id reference*/
        char name[32];  /* layer name */
        void *data;     /* layer data */
  } CustomDataLayer;
@@@ -95,6 -98,8 +97,6 @@@ typedef struct CustomData 
  #define CD_CLOTH_ORCO 23
  #define CD_RECAST             24
  
 -#ifdef USE_BMESH_FORWARD_COMPAT
 -
  /* BMESH ONLY START */
  #define CD_MPOLY              25
  #define CD_MLOOP              26
  
  #define CD_NUMTYPES           32
  
 -#else
 -
 -#define CD_NUMTYPES           25
 -
 -#endif
 -
  /* Bits for CustomDataMask */
  #define CD_MASK_MVERT         (1 << CD_MVERT)
  #define CD_MASK_MSTICKY               (1 << CD_MSTICKY)
  #define CD_MASK_CLOTH_ORCO    (1 << CD_CLOTH_ORCO)
  #define CD_MASK_RECAST                (1 << CD_RECAST)
  
 -#ifdef USE_BMESH_FORWARD_COMPAT
 -
  /* BMESH ONLY START */
  #define CD_MASK_MPOLY         (1 << CD_MPOLY)
  #define CD_MASK_MLOOP         (1 << CD_MLOOP)
  #define CD_MASK_WEIGHT_MLOOPCOL (1 << CD_WEIGHT_MLOOPCOL)
  /* BMESH ONLY END */
  
 -#endif
 -
  /* CustomData.flag */
  
  /* indicates layer should not be copied by CustomData_from_template or
index 18dd682bfaf94efba23d0ebde9d02a8695a5a743,8e8c3b8743aa00de3958b91756956c626577bde7..bedb3e7429bbb6ea502c88876e1ce78f0b6e0d93
@@@ -36,6 -36,8 +36,8 @@@
  #include "DNA_ID.h"
  #include "DNA_customdata_types.h"
  
+ #include "DNA_defs.h" /* USE_BMESH_FORWARD_COMPAT */
  struct DerivedMesh;
  struct Ipo;
  struct Key;
@@@ -47,11 -49,6 +49,11 @@@ struct MCol
  struct MSticky;
  struct Mesh;
  struct OcInfo;
 +struct MPoly;
 +struct MTexPoly;
 +struct MLoop;
 +struct MLoopUV;
 +struct MLoopCol;
  struct Multires;
  struct EditMesh;
  struct AnimData;
@@@ -65,35 -62,23 +67,35 @@@ typedef struct Mesh 
        struct Ipo *ipo  DNA_DEPRECATED;  /* old animation system, deprecated for 2.5 */
        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
@@@ -212,7 -197,9 +214,7 @@@ typedef struct TFace 
  /* this is so we can save bmesh files that load in trunk, ignoring NGons
   * will eventually be removed */
  
 -#if 0 /* enable in bmesh branch only for now */
  #define USE_MESH_FORWARDS_COMAT
 -#endif
  
  
  #endif