diff options
author | Campbell Barton <ideasman42@gmail.com> | 2006-03-26 05:02:22 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2006-03-26 05:02:22 +0400 |
commit | 05fb90a8679ba03f7da45b9cea886aa164d755cc (patch) | |
tree | 5aeef9bbb2c639b67c1fd3c2b50ec27efa7172d8 /source/blender/blenlib | |
parent | 9fcf5f0957feefd2503064d371c9d4952e9df29d (diff) |
Made group work from multiple selection's (before it used the first selected face/vert/edge)
so you can select 2 faces and then get all coplaner faces around both.
Added fp to face and edge edit data so as to store edge length and face area/perimeter. (in the union so minimal overhead)
current implimentation is fairly optimized.
Change to arithb.c was just to command Inpf as being the dot producr.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/BLI_editVert.h | 20 | ||||
-rw-r--r-- | source/blender/blenlib/intern/arithb.c | 1 |
2 files changed, 14 insertions, 7 deletions
diff --git a/source/blender/blenlib/BLI_editVert.h b/source/blender/blenlib/BLI_editVert.h index 57fe08e5305..7a75e605e6c 100644 --- a/source/blender/blenlib/BLI_editVert.h +++ b/source/blender/blenlib/BLI_editVert.h @@ -55,14 +55,18 @@ typedef struct EditVert void *p; long l; } tmp; - float no[3]; - float co[3]; - short xs, ys; - unsigned char f, h, f1, f2; - short fast; /* only 0 or 1, for editmesh_fastmalloc */ - short totweight; /* __NLA */ + float no[3]; /*vertex normal */ + float co[3]; /*vertex location */ + short xs, ys; /* used to store a screenspace 2d projection of the verts */ + + /* f stores selection eg. if (eve->f & SELECT) {... + h for hidden. if (!eve->h) {... + f1 and f2 can be used for temp data, clear them first*/ + unsigned char f, h, f1, f2; + short fast; /* only 0 or 1, for editmesh_fastmalloc, do not store temp data here! */ + short totweight; /* __NLA total number of vertex weights for this vertex */ int hash; - struct MDeformWeight *dw; /* __NLA */ + struct MDeformWeight *dw; /* __NLA a pointer to an array of defirm weights */ int keyindex; /* original index #, for restoring key information */ } EditVert; @@ -87,6 +91,7 @@ typedef struct EditEdge struct EditFace *f; void *p; long l; + float fp; } tmp; short f1, f2; /* short, f1 is (ab)used in subdiv */ unsigned char f, h, dir, seam; @@ -111,6 +116,7 @@ typedef struct EditFace struct EditFace *f; void *p; long l; + float fp; } tmp; float n[3], cent[3]; struct TFace tf; /* a copy of original tface. */ diff --git a/source/blender/blenlib/intern/arithb.c b/source/blender/blenlib/intern/arithb.c index bbf2f88134c..4053b8307e1 100644 --- a/source/blender/blenlib/intern/arithb.c +++ b/source/blender/blenlib/intern/arithb.c @@ -114,6 +114,7 @@ void Crossf(float *c, float *a, float *b) c[2] = a[0] * b[1] - a[1] * b[0]; } +/* Inpf returns the dot product, also called the scalar product and inner product */ float Inpf( float *v1, float *v2) { return v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]; |