BALL::SESSingularityCleaner Class Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/solventExcludedSurface.h>

List of all members.

Classes

struct  ProbeIntersection

Public Types

typedef std::pair< std::pair
< TAngle< double >, Index >
, TVector3< double > > 
Intersection

Public Member Functions

Constructors and Destructors

 SESSingularityCleaner ()
 SESSingularityCleaner (SolventExcludedSurface *ses, HashGrid3< Index > *vertex_grid_)
virtual ~SESSingularityCleaner ()
Accessors

bool run () throw (Exception::GeneralException)

Protected Attributes

SolventExcludedSurfaceses_
HashGrid3< Index > * vertex_grid_
HashMap< Position, HashMap
< Position, HashMap< Position,
ProbeIntersection * > > > 
probe_intersections_

Private Member Functions

Treatment of singularities (private)

Index vertexExists (TVector3< double > point)
void treatSingularities ()
void getSingularFaces (std::list< SESFace * > &faces)
bool treatFirstCategory ()
void treatSecondCategory ()
void getFirstCategoryFaces (std::list< SESFace * > &first_category_faces)
void noCut (SESFace *face1, SESFace *face2)
void twoCuts (SESFace *face1, SESFace *face2)
void treatSingularEdge (SESEdge *edge, HashGrid3< Position > &grid,::std::list< SESEdge * > &deletable_edges)
void getIntersectionsOfSingularEdge (SESEdge *edge, const TAngle< double > &phi, HashGrid3< Position > &grid, std::list< Intersection > &intersections)
bool getIntersectionPointsAndAngles (const TCircle3< double > &circle, const TVector3< double > &point, Position index1, Position index2, Position probe_index, TAngle< double > &phi1, TVector3< double > &point1, TAngle< double > &phi2, TVector3< double > &point2)
bool isIntersection (const TAngle< double > &min_phi, const TAngle< double > &max_phi, const TAngle< double > &phi, const TVector3< double > &middle, const TSphere3< double > &probe)
void buildEndEdges (SESEdge *edge, const std::list< Intersection > &min, const std::list< Intersection > &max, SESVertex *&vertex1, SESVertex *&vertex2, Index &actual_min, Index &actual_max)
void buildEdge (SESEdge *edge, Index face1, Index &face2, Index end, SESVertex *&vertex, const HashSet< Index > &indices, bool minimum)
void getExtrema (const std::list< Intersection > &intersections, std::list< Intersection > &min, std::list< Intersection > &max)
void buildEndEdge (SESEdge *edge, const std::list< Intersection > &extrema, SESVertex *&vertex, Index &actual_extremum, bool min)
bool probeIntersection (Index face1, Index face2, Index face3, TVector3< double > &point1, TVector3< double > &point2)
void sort (SESFace *face1, SESFace *face2, std::vector< SESEdge * > &sesedge1, std::vector< SESEdge * > &sesedge2, std::vector< SESVertex * > &sesvertex1, std::vector< SESVertex * > &sesvertex2)
void sort (Index u1, Index u2, Index u3, Index &s1, Index &s2, Index &s3)

Friends

class SESComputer

Detailed Description

Generic SESComputer Class.

Definition at line 456 of file solventExcludedSurface.h.


Member Typedef Documentation

Definition at line 462 of file solventExcludedSurface.h.


Constructor & Destructor Documentation

BALL::SESSingularityCleaner::SESSingularityCleaner (  ) 

Default constructor. This method creates a new SESComputer object.

BALL::SESSingularityCleaner::SESSingularityCleaner ( SolventExcludedSurface ses,
HashGrid3< Index > *  vertex_grid_ 
)

Detailed constructor

virtual BALL::SESSingularityCleaner::~SESSingularityCleaner (  )  [virtual]

Destructor. As there are no dynamic data structures, nothing happens.


Member Function Documentation

void BALL::SESSingularityCleaner::buildEdge ( SESEdge edge,
Index  face1,
Index face2,
Index  end,
SESVertex *&  vertex,
const HashSet< Index > &  indices,
bool  minimum 
) [private]
void BALL::SESSingularityCleaner::buildEndEdge ( SESEdge edge,
const std::list< Intersection > &  extrema,
SESVertex *&  vertex,
Index actual_extremum,
bool  min 
) [private]
void BALL::SESSingularityCleaner::buildEndEdges ( SESEdge edge,
const std::list< Intersection > &  min,
const std::list< Intersection > &  max,
SESVertex *&  vertex1,
SESVertex *&  vertex2,
Index actual_min,
Index actual_max 
) [private]
void BALL::SESSingularityCleaner::getExtrema ( const std::list< Intersection > &  intersections,
std::list< Intersection > &  min,
std::list< Intersection > &  max 
) [private]
void BALL::SESSingularityCleaner::getFirstCategoryFaces ( std::list< SESFace * > &  first_category_faces  )  [private]
bool BALL::SESSingularityCleaner::getIntersectionPointsAndAngles ( const TCircle3< double > &  circle,
const TVector3< double > &  point,
Position  index1,
Position  index2,
Position  probe_index,
TAngle< double > &  phi1,
TVector3< double > &  point1,
TAngle< double > &  phi2,
TVector3< double > &  point2 
) [private]
void BALL::SESSingularityCleaner::getIntersectionsOfSingularEdge ( SESEdge edge,
const TAngle< double > &  phi,
HashGrid3< Position > &  grid,
std::list< Intersection > &  intersections 
) [private]
void BALL::SESSingularityCleaner::getSingularFaces ( std::list< SESFace * > &  faces  )  [private]
bool BALL::SESSingularityCleaner::isIntersection ( const TAngle< double > &  min_phi,
const TAngle< double > &  max_phi,
const TAngle< double > &  phi,
const TVector3< double > &  middle,
const TSphere3< double > &  probe 
) [private]
void BALL::SESSingularityCleaner::noCut ( SESFace face1,
SESFace face2 
) [private]
bool BALL::SESSingularityCleaner::probeIntersection ( Index  face1,
Index  face2,
Index  face3,
TVector3< double > &  point1,
TVector3< double > &  point2 
) [private]
bool BALL::SESSingularityCleaner::run (  )  throw (Exception::GeneralException)

Solves the singularities

void BALL::SESSingularityCleaner::sort ( Index  u1,
Index  u2,
Index  u3,
Index s1,
Index s2,
Index s3 
) [private]
void BALL::SESSingularityCleaner::sort ( SESFace face1,
SESFace face2,
std::vector< SESEdge * > &  sesedge1,
std::vector< SESEdge * > &  sesedge2,
std::vector< SESVertex * > &  sesvertex1,
std::vector< SESVertex * > &  sesvertex2 
) [private]
bool BALL::SESSingularityCleaner::treatFirstCategory (  )  [private]
void BALL::SESSingularityCleaner::treatSecondCategory (  )  [private]
void BALL::SESSingularityCleaner::treatSingularEdge ( SESEdge edge,
HashGrid3< Position > &  grid,
::std::list< SESEdge * > &  deletable_edges 
) [private]
void BALL::SESSingularityCleaner::treatSingularities (  )  [private]
void BALL::SESSingularityCleaner::twoCuts ( SESFace face1,
SESFace face2 
) [private]
Index BALL::SESSingularityCleaner::vertexExists ( TVector3< double point  )  [private]

Friends And Related Function Documentation

friend class SESComputer [friend]

Definition at line 469 of file solventExcludedSurface.h.


Member Data Documentation

Definition at line 639 of file solventExcludedSurface.h.

Definition at line 626 of file solventExcludedSurface.h.

Definition at line 630 of file solventExcludedSurface.h.

Generated by  doxygen 1.6.3