#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] |