svn merge ^/trunk/blender -r42550:42564
[blender.git] / source / blender / makesdna / DNA_meshdata_types.h
index 66e1333bf664ec051e036b8022c930fd10bbe3b6..d1b530dae731d3bbbeab1d256acfdee38ff24935 100644 (file)
@@ -37,6 +37,7 @@
 struct Bone;
 struct Image;
 
+/*tesselation face, see MLoop/MPoly for the real face data*/
 typedef struct MFace {
        unsigned int v1, v2, v3, v4;
        short mat_nr;
@@ -66,13 +67,29 @@ typedef struct MVert {
        char flag, bweight;
 } MVert;
 
-/* at the moment alpha is abused for vertex painting
- * and not used for transperency, note that red and blue are swapped */
+/* tesselation vertex color data.
+ * at the moment alpha is abused for vertex painting
+ * and not used for transparency, note that red and blue are swapped */
 typedef struct MCol {
        char a, r, g, b;        
 } MCol;
 
-/*bmesh custom data stuff*/
+/*new face structure, replaces MFace, which is now
+  only used for storing tesselations.*/
+typedef struct MPoly {
+       /*offset into loop array and number of loops in the face*/
+       int loopstart, totloop;
+       short mat_nr;
+       char flag, pad;
+} MPoly;
+
+/*the e here is because we want to move away from
+  relying on edge hashes.*/
+typedef struct MLoop {
+       int v; /*vertex index*/
+       int e; /*edge index*/
+} MLoop;
+
 typedef struct MTexPoly{
        struct Image *tpage;
        char flag, transp;
@@ -81,12 +98,19 @@ typedef struct MTexPoly{
 
 typedef struct MLoopUV{
        float uv[2];
+       int flag;
 }MLoopUV;
 
+/*mloopuv->flag*/
+#define MLOOPUV_EDGESEL        1
+#define MLOOPUV_VERTSEL        2
+#define MLOOPUV_PINNED 4
+
+/* at the moment alpha is abused for vertex painting
+ * and not used for transparency, note that red and blue are swapped */
 typedef struct MLoopCol{
        char a, r, g, b;
-       int pad;  /*waste!*/
-}MLoopCol;
+} MLoopCol;
 
 typedef struct MSticky {
        float co[2];
@@ -97,6 +121,7 @@ typedef struct MSelect {
        int type; /* EDITVERT/EDITEDGE/EDITFACE */
 } MSelect;
 
+/*tesselation uv face data*/
 typedef struct MTFace {
        float uv[4][2];
        struct Image *tpage;
@@ -210,7 +235,14 @@ typedef struct MRecast{
 /* flag (mface) */
 #define ME_SMOOTH                      1
 #define ME_FACE_SEL                    2
-                                               /* flag ME_HIDE==16 is used here too */ 
+/* flag ME_HIDE==16 is used here too */ 
+#define ME_DRAW_ACT                    4
+
+/* mselect->type */
+#define ME_VSEL        0
+#define ME_ESEL 1
+#define ME_FSEL 2
+
 /* mtface->flag */
 #define TF_SELECT      1 /* use MFace hide flag (after 2.43), should be able to reuse after 2.44 */
 #define TF_ACTIVE      2 /* deprecated! */