diff options
author | Campbell Barton <ideasman42@gmail.com> | 2006-03-25 07:37:40 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2006-03-25 07:37:40 +0300 |
commit | 84d8b0cafe387ee873749f2777c39e26a4ebeee0 (patch) | |
tree | e947f8f3f3f593c89e135e0ffd5df1add8665b8e /source/blender/src/editmesh_lib.c | |
parent | 927be3725aa01d847dc9a10b0c5fc0eec5114564 (diff) |
Added select group meny to mesh editmode.
Currently only works for faces.
Try Shift+G in face/editmode.
Diffstat (limited to 'source/blender/src/editmesh_lib.c')
-rw-r--r-- | source/blender/src/editmesh_lib.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/source/blender/src/editmesh_lib.c b/source/blender/src/editmesh_lib.c index 9d67f62db2a..c3cd12f1ebf 100644 --- a/source/blender/src/editmesh_lib.c +++ b/source/blender/src/editmesh_lib.c @@ -1573,12 +1573,26 @@ int convex(float *v1, float *v2, float *v3, float *v4) - edges having ->fgoni index set (for select) */ -static float editface_area(EditFace *efa) +float EM_face_area(EditFace *efa) { if(efa->v4) return AreaQ3Dfl(efa->v1->co, efa->v2->co, efa->v3->co, efa->v4->co); else return AreaT3Dfl(efa->v1->co, efa->v2->co, efa->v3->co); } +float EM_face_perimeter(EditFace *efa) +{ + if(efa->v4) return + VecLenf(efa->v1->co, efa->v2->co)+ + VecLenf(efa->v2->co, efa->v3->co)+ + VecLenf(efa->v3->co, efa->v4->co)+ + VecLenf(efa->v4->co, efa->v1->co); + + else return + VecLenf(efa->v1->co, efa->v2->co)+ + VecLenf(efa->v2->co, efa->v3->co)+ + VecLenf(efa->v3->co, efa->v1->co); +} + void EM_fgon_flags(void) { EditMesh *em = G.editMesh; @@ -1616,7 +1630,7 @@ void EM_fgon_flags(void) if(efa->e4 && (efa->e4->h & EM_FGON)) efa->e4->fgoni= curindex; // we search for largest face, to give facedot drawing rights - maxsize= editface_area(efa); + maxsize= EM_face_area(efa); efamax= efa; // now flush curendex over edges and set faceflags @@ -1636,7 +1650,7 @@ void EM_fgon_flags(void) if(efan->e3->h & EM_FGON) efan->e3->fgoni= curindex; if(efan->e4 && (efan->e4->h & EM_FGON)) efan->e4->fgoni= curindex; - size= editface_area(efan); + size= EM_face_area(efan); if(size>maxsize) { efamax= efan; maxsize= size; @@ -1668,7 +1682,3 @@ void EM_fgon_flags(void) } } - - - - |