#include <BALL/STRUCTURE/triangulatedSES.h>
Public Member Functions | |
Constructors and Destructors | |
SESTriangulator () | |
SESTriangulator (TriangulatedSES *tses) | |
virtual | ~SESTriangulator () |
Protected Attributes | |
Accessors | |
TriangulatedSES * | tses_ |
std::vector< TrianglePoint * > | point_ |
std::vector< std::list < TriangleEdge * > > | edge_ |
HashMap< Size, std::list < TrianglePoint * > > | template_spheres_ |
double | sqrt_density_ |
Accessors | |
void | run () throw (Exception::GeneralException,Exception::DivisionByZero) |
void | preProcessing () |
void | triangulateToricFaces () |
void | partitionSingularEdges () |
void | triangulateContactFaces () |
void | triangulateSphericFaces () |
void | triangulateToricFace (SESFace *face, const double &probe_radius) |
void | triangulateFreeToricFace (SESFace *face, const double &probe_radius) |
void | triangulateSingularToricFace (SESFace *face, const double &probe_radius) |
void | triangulateNonSingularToricFace (SESFace *face, const double &probe_radius) |
void | partitionSingularEdge (SESEdge *singular_edge) |
void | partitionFreeSingularEdge (SESEdge *singular_edge) |
void | partitionNonFreeSingularEdge (SESEdge *singular_edge) |
void | triangulateContactFace (SESFace *face, const TSphere3< double > &sphere) |
bool | triangulateSphericFace (SESFace *face, const TSphere3< double > &sphere) |
bool | buildSphericTriangles (SESFace *face, TriangulatedSES &part, const TSphere3< double > &sphere, bool convex=true) |
bool | buildFirstTriangle (SESFace *face, TriangulatedSES &part, std::list< TriangleEdge * > &border, const TSphere3< double > &sphere, const HashSet< TrianglePoint * > &points, bool convex) |
SESEdge * | firstSESEdge (const std::list< SESEdge * > &sesedge) |
void | buildUnambiguousTriangle (TriangleEdge *edge, TrianglePoint *point, std::list< TriangleEdge * > &border, const TSphere3< double > &sphere, TriangulatedSES &part, bool convex) |
void | buildAmbiguousTriangles (TriangleEdge *edge, std::list< TrianglePoint * > points, std::list< TriangleEdge * > &border, const TSphere3< double > &sphere, TriangulatedSES &part, bool convex) |
void | createTriangleAndEdges (TriangleEdge *edge, TrianglePoint *point, const TSphere3< double > &sphere, TriangleEdge *&edge1, bool &old1, TriangleEdge *&edge2, bool &old2, Triangle *&triangle, bool convex) |
void | partitionOfCircle (const TCircle3< double > &circle, const TVector3< double > &p0, const TAngle< double > &phi, Size number_of_segments, vector< TVector3< double > > &partition, bool on_surface=true) |
Size | numberOfRefinements (const double &density, const double &radius) |
void | buildTemplateSpheres () |
void | buildTriangles (SESEdge *edge0, SESEdge *edge1, SESEdge *edge2, SESEdge *edge3, const std::vector< TVector3< double > > ¢ers, const std::vector< TVector3< double > > &edge1_points, const std::vector< TVector3< double > > &edge3_points, const double &probe_radius) |
Generic SESTriangulator Class.
BALL::SESTriangulator::SESTriangulator | ( | ) |
Default constructor. This method creates a new SESTriangulator object.
BALL::SESTriangulator::SESTriangulator | ( | TriangulatedSES * | tses | ) |
Detailed constructor.
tses | a pointer to the TriangulatedSES to compute |
virtual BALL::SESTriangulator::~SESTriangulator | ( | ) | [virtual] |
Destructor. Destructs the SESTriangulator object.
void BALL::SESTriangulator::buildAmbiguousTriangles | ( | TriangleEdge * | edge, | |
std::list< TrianglePoint * > | points, | |||
std::list< TriangleEdge * > & | border, | |||
const TSphere3< double > & | sphere, | |||
TriangulatedSES & | part, | |||
bool | convex | |||
) | [private] |
bool BALL::SESTriangulator::buildFirstTriangle | ( | SESFace * | face, | |
TriangulatedSES & | part, | |||
std::list< TriangleEdge * > & | border, | |||
const TSphere3< double > & | sphere, | |||
const HashSet< TrianglePoint * > & | points, | |||
bool | convex | |||
) | [private] |
bool BALL::SESTriangulator::buildSphericTriangles | ( | SESFace * | face, | |
TriangulatedSES & | part, | |||
const TSphere3< double > & | sphere, | |||
bool | convex = true | |||
) | [private] |
void BALL::SESTriangulator::buildTemplateSpheres | ( | ) | [private] |
void BALL::SESTriangulator::buildTriangles | ( | SESEdge * | edge0, | |
SESEdge * | edge1, | |||
SESEdge * | edge2, | |||
SESEdge * | edge3, | |||
const std::vector< TVector3< double > > & | centers, | |||
const std::vector< TVector3< double > > & | edge1_points, | |||
const std::vector< TVector3< double > > & | edge3_points, | |||
const double & | probe_radius | |||
) | [private] |
void BALL::SESTriangulator::buildUnambiguousTriangle | ( | TriangleEdge * | edge, | |
TrianglePoint * | point, | |||
std::list< TriangleEdge * > & | border, | |||
const TSphere3< double > & | sphere, | |||
TriangulatedSES & | part, | |||
bool | convex | |||
) | [private] |
void BALL::SESTriangulator::createTriangleAndEdges | ( | TriangleEdge * | edge, | |
TrianglePoint * | point, | |||
const TSphere3< double > & | sphere, | |||
TriangleEdge *& | edge1, | |||
bool & | old1, | |||
TriangleEdge *& | edge2, | |||
bool & | old2, | |||
Triangle *& | triangle, | |||
bool | convex | |||
) | [private] |
Size BALL::SESTriangulator::numberOfRefinements | ( | const double & | density, | |
const double & | radius | |||
) | [private] |
void BALL::SESTriangulator::partitionFreeSingularEdge | ( | SESEdge * | singular_edge | ) | [private] |
void BALL::SESTriangulator::partitionNonFreeSingularEdge | ( | SESEdge * | singular_edge | ) | [private] |
void BALL::SESTriangulator::partitionOfCircle | ( | const TCircle3< double > & | circle, | |
const TVector3< double > & | p0, | |||
const TAngle< double > & | phi, | |||
Size | number_of_segments, | |||
vector< TVector3< double > > & | partition, | |||
bool | on_surface = true | |||
) | [private] |
void BALL::SESTriangulator::partitionSingularEdge | ( | SESEdge * | singular_edge | ) | [private] |
void BALL::SESTriangulator::partitionSingularEdges | ( | ) | [private] |
void BALL::SESTriangulator::preProcessing | ( | ) | [private] |
void BALL::SESTriangulator::run | ( | ) | throw (Exception::GeneralException,Exception::DivisionByZero) |
void BALL::SESTriangulator::triangulateContactFace | ( | SESFace * | face, | |
const TSphere3< double > & | sphere | |||
) | [private] |
void BALL::SESTriangulator::triangulateContactFaces | ( | ) | [private] |
void BALL::SESTriangulator::triangulateFreeToricFace | ( | SESFace * | face, | |
const double & | probe_radius | |||
) | [private] |
void BALL::SESTriangulator::triangulateNonSingularToricFace | ( | SESFace * | face, | |
const double & | probe_radius | |||
) | [private] |
void BALL::SESTriangulator::triangulateSingularToricFace | ( | SESFace * | face, | |
const double & | probe_radius | |||
) | [private] |
bool BALL::SESTriangulator::triangulateSphericFace | ( | SESFace * | face, | |
const TSphere3< double > & | sphere | |||
) | [private] |
void BALL::SESTriangulator::triangulateSphericFaces | ( | ) | [private] |
void BALL::SESTriangulator::triangulateToricFace | ( | SESFace * | face, | |
const double & | probe_radius | |||
) | [private] |
void BALL::SESTriangulator::triangulateToricFaces | ( | ) | [private] |
std::vector<std::list<TriangleEdge*> > BALL::SESTriangulator::edge_ [protected] |
std::vector<TrianglePoint*> BALL::SESTriangulator::point_ [protected] |
double BALL::SESTriangulator::sqrt_density_ [protected] |
HashMap<Size, std::list<TrianglePoint*> > BALL::SESTriangulator::template_spheres_ [protected] |
TriangulatedSES* BALL::SESTriangulator::tses_ [protected] |