5#ifndef BALL_STRUCTURE_SOLVENTEXCLUDEDSURFACE_H
6#define BALL_STRUCTURE_SOLVENTEXCLUDEDSURFACE_H
8#ifndef BALL_STRUCTURE_SESEDGE_H
12#ifndef BALL_STRUCTURE_SESFACE_H
16#ifndef BALL_STRUCTURE_SESVERTEX_H
20#ifndef BALL_STRUCTURE_REDUCEDSURFACE_H
24#ifndef BALL_MATHS_ANGLE_H
28#ifndef BALL_MATHS_CIRCLE3_H
32#ifndef BALL_MATHS_SPHERE3_H
36#ifndef BALL_MATHS_VECTOR3_H
40#ifndef BALL_MATHS_VECTOR4_H
44#ifndef BALL_DATATYPE_HASHGRID_H
48#ifndef BALL_DATATYPE_HASHMAP_H
59 class SESSingularityCleaner;
60 class TriangulatedSES;
61 class SESTriangulator;
89 typedef std::vector<SESVertex*>::iterator
91 typedef std::vector<SESVertex*>::const_iterator
93 typedef std::vector<SESEdge*>::iterator
95 typedef std::vector<SESEdge*>::const_iterator
97 typedef std::list<SESEdge*>::iterator
99 typedef std::list<SESEdge*>::const_iterator
101 typedef std::vector<SESFace*>::iterator
103 typedef std::vector<SESFace*>::const_iterator
105 typedef std::vector<SESFace*>::iterator
107 typedef std::vector<SESFace*>::const_iterator
109 typedef std::vector<SESFace*>::iterator
111 typedef std::vector<SESFace*>::const_iterator
228 void deleteSmallToricFace(
SESFace* face)
231 void deleteSmallSingularToricFace(
SESFace* face)
234 bool cleanToricFace(
SESFace* face,
const double& sqrt_density)
237 bool cleanSingularToricFace(
SESFace* face,
const double& sqrt_density)
246 void cleanContactFaces()
249 void cleanToricFaces()
252 void cleanSphericFaces()
372 (const
TVector3<
double>& probe_center,
387 const
double& radius_of_probe)
394 const
double& radius_of_probe)
405 void treatSingularToricFace(
Position i)
408 void createFreeToricFace(
Position i)
515 void treatSingularities()
518 void getSingularFaces(std::list<SESFace*>& faces)
521 bool treatFirstCategory()
524 void treatSecondCategory()
527 void getFirstCategoryFaces(std::list<SESFace*>& first_category_faces)
536 void treatSingularEdge
539 ::std::list<SESEdge*>& deletable_edges)
542 void getIntersectionsOfSingularEdge
546 std::list<Intersection>& intersections)
549 bool getIntersectionPointsAndAngles
571 const std::list<Intersection>&
min,
572 const std::list<Intersection>&
max,
589 (
const std::list<Intersection>& intersections,
590 std::list<Intersection>&
min,
591 std::list<Intersection>&
max);
595 const std::list<Intersection>& extrema,
597 Index& actual_extremum,
600 bool probeIntersection
610 std::vector<SESEdge*>& sesedge1,
611 std::vector<SESEdge*>& sesedge2,
612 std::vector<SESVertex*>& sesvertex1,
613 std::vector<SESVertex*>& sesvertex2);
#define BALL_CREATE(name)
T max(const T &a, const T &b)
T min(const T &a, const T &b)
Three-dimensional Hash Grid Class.
HashMap class based on the STL map (containing serveral convenience functions)
Position number_of_edges_
std::list< SESEdge * >::const_iterator ConstSingularEdgeIterator
ConstEdgeIterator beginEdge() const
SphericFaceIterator endSphericFace()
VertexIterator endVertex()
std::vector< SESEdge * >::const_iterator ConstEdgeIterator
std::vector< SESFace * >::const_iterator ConstToricFaceIterator
SingularEdgeIterator endSingularEdge()
std::vector< SESFace * >::iterator ToricFaceIterator
::std::vector< SESEdge * > edges_
SolventExcludedSurface(ReducedSurface *reduced_surface)
ConstSphericFaceIterator beginSphericFace() const
Position number_of_vertices_
VertexIterator beginVertex()
ConstVertexIterator beginVertex() const
std::vector< SESVertex * >::const_iterator ConstVertexIterator
Position number_of_contact_faces_
ReducedSurface * reduced_surface_
SingularEdgeIterator beginSingularEdge()
std::vector< SESVertex * >::iterator VertexIterator
std::vector< SESFace * >::iterator SphericFaceIterator
std::vector< SESFace * >::iterator ContactFaceIterator
SphericFaceIterator beginSphericFace()
ConstToricFaceIterator endToricFace() const
ConstContactFaceIterator endContactFace() const
::std::list< SESEdge * > singular_edges_
ContactFaceIterator beginContactFace()
ToricFaceIterator beginToricFace()
ConstContactFaceIterator beginContactFace() const
::std::vector< SESFace * > spheric_faces_
std::vector< SESFace * >::const_iterator ConstContactFaceIterator
ConstSingularEdgeIterator beginSingularEdge() const
ToricFaceIterator endToricFace()
std::vector< SESFace * >::const_iterator ConstSphericFaceIterator
::std::vector< SESFace * > toric_faces_
virtual ~SolventExcludedSurface()
Position number_of_spheric_faces_
std::vector< SESEdge * >::iterator EdgeIterator
Position number_of_toric_faces_
ContactFaceIterator endContactFace()
ConstSingularEdgeIterator endSingularEdge() const
::std::vector< SESVertex * > vertices_
::std::vector< SESFace * > contact_faces_
ConstVertexIterator endVertex() const
Position number_of_singular_edges_
ConstEdgeIterator endEdge() const
std::list< SESEdge * >::iterator SingularEdgeIterator
SolventExcludedSurface(const SolventExcludedSurface &ses, bool=false)
ConstSphericFaceIterator endSphericFace() const
void clean(const double &density)
ConstToricFaceIterator beginToricFace() const
SolventExcludedSurface * ses_
std::pair< std::pair< TAngle< double >, Index >, TVector3< double > > Intersection
virtual ~SESSingularityCleaner()
HashMap< Position, HashMap< Position, HashMap< Position, ProbeIntersection * > > > probe_intersections_
SESSingularityCleaner(SolventExcludedSurface *ses, HashGrid3< Index > *vertex_grid_)
HashGrid3< Index > * vertex_grid_