proj home

Files   Classes   Functions   Hierarchy  

d3mincentroid Class Reference

#include <d3mincentroid.h>

Inheritance diagram for d3mincentroid:
Collaboration diagram for d3mincentroid:

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 12 of file d3mincentroid.h.


Constructor & Destructor Documentation

d3mincentroid::d3mincentroid ( d3tess tess_  ) 

Definition at line 14 of file d3mincentroid.cpp.

00015   : d3minoperator(tess_)
00016 {
00017 }


Member Function Documentation

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

Reimplemented from d3minoperator.

Definition at line 19 of file d3mincentroid.cpp.

References d3tess::flip(), d3tess::isconvex(), simplexD2linked::niInverse(), simplexD2linked::pi, d3tess::pt, d3minoperator::tess, and d3tess::vi.

00020 {
00021   if (tess.isconvex(a,b)==false)
00022     return false;
00023 
00024   simplexD2linked const & A(tess.vi[a]);
00025   simplexD2linked const & B(tess.vi[b]);
00026 
00027   uint ai = A.niInverse(b);
00028   uint bi = B.niInverse(a);
00029 
00030   uint p[4];
00031   p[0] = A.pi[ai];
00032   p[3] = B.pi[bi];
00033   p[1] = A.pi[(ai+1)%3];
00034   p[2] = A.pi[(ai+2)%3];
00035 
00036   vector<pt3> const & pt(tess.pt);
00037 
00038   pt2 P0(pt[p[0]]);
00039   pt2 P1(pt[p[1]]);
00040   pt2 P2(pt[p[2]]);
00041   pt2 P3(pt[p[3]]);
00042 
00043   // Calculate the centroid.
00044   pt2 C0(P0);
00045   C0 += P1;
00046   C0 += P2;
00047   C0 *= (1.0/3.0);
00048 
00049   // Calculate the average radius of points to the centroid.
00050   double radius(0.0);
00051   radius += (C0-P0).distance();
00052   radius += (C0-P1).distance();
00053   radius += (C0-P2).distance();
00054   radius /= 3.0;
00055 
00056   if ((C0-P3).dot() > radius*radius )
00057     return false;
00058 
00059   tess.flip(a,b);
00060 
00061   return true;
00062 }


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