Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2006-11-06 04:08:26 +0300
committerNicholas Bishop <nicholasbishop@gmail.com>2006-11-06 04:08:26 +0300
commit8e97a2955b2f99ec61189cb972c09676a013a60b (patch)
tree89e67578ceac5a670a309b72295156cbfc7f05c7 /source/blender/makesdna/DNA_meshdata_types.h
parent6feb2cc4f6d4c2131b959b77a8b87a5d7c9412a4 (diff)
Merged Google Summer of Code sculptmode/multires/retopo tools.
From the tracker: https://projects.blender.org/tracker/index.php?func=detail&aid=5018&group_id=9&atid=127
Diffstat (limited to 'source/blender/makesdna/DNA_meshdata_types.h')
-rw-r--r--source/blender/makesdna/DNA_meshdata_types.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h
index 34c3cc904f1..a091a2d4ce7 100644
--- a/source/blender/makesdna/DNA_meshdata_types.h
+++ b/source/blender/makesdna/DNA_meshdata_types.h
@@ -75,6 +75,66 @@ typedef struct MSelect {
int index;
int type;
} MSelect;
+
+/* Multiresolution modeling */
+typedef struct MultiresCol {
+ float a, r, g, b, u, v;
+} MultiresCol;
+typedef struct MultiresFace {
+ unsigned int v[4];
+ unsigned int mid;
+ unsigned int childrenstart;
+ char flag, pad[3];
+} MultiresFace;
+typedef struct MultiresEdge {
+ unsigned int v[2];
+ unsigned int mid;
+} MultiresEdge;
+
+typedef struct MultiresTexColFace {
+ /* vertex colors and texfaces */
+ void *tex_page;
+ MultiresCol col[4];
+ short tex_mode, tex_tile, tex_unwrap;
+ char tex_flag, tex_transp;
+} MultiresTexColFace;
+
+typedef struct MultiresMapNode {
+ struct MultiresMapNode *next, *prev;
+ int Index, pad;
+} MultiresMapNode;
+
+typedef struct MultiresLevel {
+ struct MultiresLevel *next, *prev;
+
+ MVert *verts;
+ MultiresFace *faces;
+ MultiresTexColFace *texcolfaces;
+ MultiresEdge *edges;
+ ListBase *vert_edge_map;
+ ListBase *vert_face_map;
+
+ unsigned int totvert, totface, totedge, pad;
+} MultiresLevel;
+
+typedef struct Multires {
+ ListBase levels;
+ unsigned char level_count, current, newlvl, edgelvl, pinlvl, renderlvl;
+ unsigned char use_col, use_tex;
+
+ /* Vertex groups are stored only for the level 1 mesh, for all other
+ * levels it's calculated when multires_level_to_mesh() is called */
+ MDeformVert *dverts;
+} Multires;
+
+typedef struct PartialVisibility {
+ unsigned int *vert_map; /* vert_map[Old Index]= New Index */
+ int *edge_map; /* edge_map[Old Index]= New Index, -1= hidden */
+ MFace *old_faces;
+ MEdge *old_edges;
+ unsigned int totface, totedge, totvert, pad;
+} PartialVisibility;
+
/* mvert->flag (1=SELECT) */
#define ME_SPHERETEST 2
#define ME_SPHERETEMP 4