Added select group meny to mesh editmode.

Currently only works for faces.
Try Shift+G in face/editmode.
This commit is contained in:
2006-03-25 04:37:40 +00:00
parent 927be3725a
commit 84d8b0cafe
8 changed files with 148 additions and 15 deletions

View File

@@ -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)
}
}