BALL::SESTriangulator Class Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/triangulatedSES.h>

List of all members.


Public Member Functions

Constructors and Destructors
 SESTriangulator ()
 SESTriangulator (TriangulatedSES *tses)
virtual ~SESTriangulator ()

Protected Attributes

Accessors
TriangulatedSEStses_
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)
SESEdgefirstSESEdge (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 > > &centers, const std::vector< TVector3< double > > &edge1_points, const std::vector< TVector3< double > > &edge3_points, const double &probe_radius)

Detailed Description

Generic SESTriangulator Class.


Constructor & Destructor Documentation

BALL::SESTriangulator::SESTriangulator (  ) 

Default constructor. This method creates a new SESTriangulator object.

BALL::SESTriangulator::SESTriangulator ( TriangulatedSES tses  ) 

Detailed constructor.

Parameters:
tses a pointer to the TriangulatedSES to compute
virtual BALL::SESTriangulator::~SESTriangulator (  )  [virtual]

Destructor. Destructs the SESTriangulator object.


Member Function Documentation

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]
SESEdge* BALL::SESTriangulator::firstSESEdge ( const std::list< SESEdge * > &  sesedge  )  [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]

Member Data Documentation

std::vector<std::list<TriangleEdge*> > BALL::SESTriangulator::edge_ [protected]
std::vector<TrianglePoint*> BALL::SESTriangulator::point_ [protected]