diff options
author | Ton Roosendaal <ton@blender.org> | 2004-07-09 00:38:27 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2004-07-09 00:38:27 +0400 |
commit | f77bc7eb7d56239f9dfab3663b79c474f8763bbd (patch) | |
tree | d5402fb4a8a2996945b8ef7607e927886434dce5 /source/blender/makesdna | |
parent | 6757a8159b7a64a4ac1444046f967bb2b88909ad (diff) |
Quite a large one this time... but now we have:
Edges in Mesh
- adds automatic when you use creases. For other situations; call the
void make_edges(Mesh *me) in mesh.c. Of course, once in editmode the
edges are automatically recreated.
- in F9 buttons you can add/remove edges too
- both for Mesh and DisplistMesh, so it speeds up drawing quite some in
wireframe
- render for edges can't work... edges have no material nor tface nor col..
so here still the faces are rendered in wire
Creases in Subsurf
- based on the code by Chris McFarlen
- main changes is that now edges are used, saving quite some data in file
- use SHIFT+E in editmode to set edges-sharpness. values go from 0-1
- in F9 buttons you can set draw-crease mode. It draws now blended from
wire color to edge-select color (as provided in Theme)
Known issue: setting sharpness on 1 cube (subdiv 2) gives weird results
with some values... Chris, can you check?
Further; code cleanups, changing 0 in NULL when needed, no warnings, etc etc
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_curve_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_mesh_types.h | 33 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_meshdata_types.h | 35 |
3 files changed, 42 insertions, 28 deletions
diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h index 734b0904102..2caff861bc1 100644 --- a/source/blender/makesdna/DNA_curve_types.h +++ b/source/blender/makesdna/DNA_curve_types.h @@ -181,7 +181,7 @@ typedef struct IpoCurve { #define CU_FLUSH 3 /* flag (nurb) */ -#define CU_SMOOTH ME_SMOOTH +#define CU_SMOOTH 1 /* type (nurb) */ #define CU_POLY 0 diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h index b80bdf62b2c..674c144923d 100644 --- a/source/blender/makesdna/DNA_mesh_types.h +++ b/source/blender/makesdna/DNA_mesh_types.h @@ -39,6 +39,7 @@ struct Ipo; struct Key; struct Material; struct MVert; +struct MEdge; struct MCol; struct MSticky; struct Mesh; @@ -69,6 +70,7 @@ typedef struct Mesh { void *mface, *dface, *tface; struct MVert *mvert; + struct MEdge *medge; struct MDeformVert *dvert; /* __NLA */ struct MCol *mcol; struct MSticky *msticky; @@ -78,20 +80,21 @@ typedef struct Mesh { struct OcInfo *oc; /* not written in file */ void *sumohandle; - int totvert, totface; - + int totvert, totedge, totface; int texflag; + float loc[3]; float size[3]; float rot[3]; short smoothresh, flag; + short subdiv, subdivr, subdivdone; short totcol; short subsurftype; short reserved1; /* Padding */ - float cubemapsize, rtf; + float cubemapsize; } Mesh; @@ -117,25 +120,6 @@ typedef struct Mesh { #define ME_CC_SUBSURF 0 #define ME_SIMPLE_SUBSURF 1 -/* puno = vertexnormal (mface) */ -#define ME_FLIPV1 1 -#define ME_FLIPV2 2 -#define ME_FLIPV3 4 -#define ME_FLIPV4 8 -#define ME_PROJXY 16 -#define ME_PROJXZ 32 -#define ME_PROJYZ 64 - -/* edcode (mface) */ -#define ME_V1V2 1 -#define ME_V2V3 2 -#define ME_V3V1 4 -#define ME_V3V4 4 -#define ME_V4V1 8 - -/* flag (mface) */ -#define ME_SMOOTH 1 - #define TF_DYNAMIC 1 /* #define TF_INVISIBLE 2 */ @@ -169,11 +153,6 @@ typedef struct Mesh { #define TF_ALPHA 2 #define TF_SUB 3 -/* mvert->flag (1=select) */ -#define ME_SPHERETEST 2 -#define ME_SPHERETEMP 4 -#define ME_HIDE 16 - #define MESH_MAX_VERTS 2000000000L #endif diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h index 5eaba97fc63..04de27f58b0 100644 --- a/source/blender/makesdna/DNA_meshdata_types.h +++ b/source/blender/makesdna/DNA_meshdata_types.h @@ -40,6 +40,12 @@ typedef struct MFace { char edcode, flag; } MFace; +typedef struct MEdge { + unsigned int v1, v2; + char crease, pad; + short flag; +} MEdge; + typedef struct MDeformWeight { int def_nr; float weight; @@ -66,4 +72,33 @@ typedef struct MSticky { float co[2]; } MSticky; +/* mvert->flag (1=SELECT) */ +#define ME_SPHERETEST 2 +#define ME_SPHERETEMP 4 +#define ME_HIDE 16 + +/* medge->flag (1=SELECT)*/ +#define ME_EDGEDRAW 2 + + +/* puno = vertexnormal (mface) */ +#define ME_FLIPV1 1 +#define ME_FLIPV2 2 +#define ME_FLIPV3 4 +#define ME_FLIPV4 8 +#define ME_PROJXY 16 +#define ME_PROJXZ 32 +#define ME_PROJYZ 64 + +/* edcode (mface) */ +#define ME_V1V2 1 +#define ME_V2V3 2 +#define ME_V3V1 4 +#define ME_V3V4 4 +#define ME_V4V1 8 + +/* flag (mface) */ +#define ME_SMOOTH 1 + + #endif |