Files Classes Functions Hierarchy
#include <d3mincircle.h>
Public Member Functions | |
| d3mincircle (d3tess &tess_) | |
| boolc | eval (uintc a, uintc b) |
Definition at line 11 of file d3mincircle.h.
| d3mincircle::d3mincircle | ( | d3tess & | tess_ | ) |
Reimplemented from d3minoperator.
Definition at line 45 of file d3mincircle.cpp.
References d3tess::flip(), d3tess::isconvex(), simplexD2linked::niInverse(), simplexD2linked::pi, d3tess::pt, SHOW, d3minoperator::tess, and d3tess::vi.
00046 { 00047 if (tess.isconvex(a,b)==false) 00048 return false; 00049 00050 simplexD2linked const & A(tess.vi[a]); 00051 simplexD2linked const & B(tess.vi[b]); 00052 00053 uint ai = A.niInverse(b); 00054 uint bi = B.niInverse(a); 00055 00056 uint p[4]; 00057 p[0] = A.pi[ai]; 00058 p[3] = B.pi[bi]; 00059 p[1] = A.pi[(ai+1)%3]; 00060 p[2] = A.pi[(ai+2)%3]; 00061 00062 vector<pt3> const & pt(tess.pt); 00063 00064 if ( testifinsidetriangle(pt[p[3]],pt[p[0]],pt[p[1]],pt[p[2]]) ) 00065 { 00066 tess.flip(a,b); 00067 return true; 00068 } 00069 00070 if ( testifinsidetriangle(pt[p[0]],pt[p[1]],pt[p[2]],pt[p[3]]) ) 00071 { 00072 cout << "f2 " << SHOW(a) << " " << SHOW(b) << endl; 00073 tess.flip(a,b); 00074 return true; 00075 } 00076 00077 return false; 00078 }
1.5.8