proj home

Files   Classes   Functions   Hierarchy  

d3mincircle Class Reference

#include <d3mincircle.h>

Inheritance diagram for d3mincircle:
Collaboration diagram for d3mincircle:

List of all members.

Public Member Functions

 d3mincircle (d3tess &tess_)
boolc eval (uintc a, uintc b)


Detailed Description

Definition at line 11 of file d3mincircle.h.


Constructor & Destructor Documentation

d3mincircle::d3mincircle ( d3tess tess_  ) 

Definition at line 16 of file d3mincircle.cpp.

00017   : d3minoperator(tess_)
00018 {
00019 }


Member Function Documentation

boolc d3mincircle::eval ( uintc  a,
uintc  b 
) [virtual]

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 }


The documentation for this class was generated from the following files:

Generated on Fri Mar 4 00:49:54 2011 for Chelton Evans Source by  doxygen 1.5.8