[Bf-committers] finding co-planer faces.
Alexander Ewering
bf-committers@blender.org
Sat, 24 Jul 2004 14:27:00 +0200 (CEST)
On Sat, 24 Jul 2004, Campbell Barton wrote:
> Alex, how did you detect co planer faces?
> Id liek to know the formula.
Uhm, the formula is
if (VecCompare(evl->n, evl2->n, 0.01)) {
:)
Basically, I just do that for every adjacent face until
I don't find any face anymore that fulfills the
if statement.
The code is here, for your enjoyment:
void select_coplanar_mesh(void)
{
EditVlak *evl, *evl2;
int count= 1;
while (count) {
evl= G.edvl.first;
count= 0;
while(evl) {
if(vlakselectedAND(evl, 1)) {
evl2= G.edvl.first;
while(evl2) {
if (ELEM4(evl2->v1, evl->v1, evl->v2, evl->v3, evl->v4) ||
ELEM4(evl2->v2, evl->v1, evl->v2, evl->v3, evl->v4) ||
ELEM4(evl2->v3, evl->v1, evl->v2, evl->v3, evl->v4) ||
ELEM4(evl2->v4, evl->v1, evl->v2, evl->v3, evl->v4))
if (VecCompare(evl->n, evl2->n, 0.01)) {
if (!vlakselectedAND(evl2, 1)) {
count++;
evl2->v1->f |= 1;
evl2->v2->f |= 1;
evl2->v3->f |= 1;
evl2->v4->f |= 1;
}
}
evl2= evl2->next;
}
}
evl= evl->next;
}
}
}
| alexander ewering instinctive mediaworks
| ae[@]instinctive[.]de http://www[.]instinctive[.]de