BALL::ReducedSurface Class Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/reducedSurface.h>

List of all members.


Public Member Functions

Constructors and Destructors
 ReducedSurface ()
 ReducedSurface (const ReducedSurface &reduced_surface, bool=true)
 ReducedSurface (const std::vector< TSphere3< double > > &spheres, const double &probe_radius)
virtual ~ReducedSurface ()
Assignment
void operator= (const ReducedSurface &reduced_surface)
void set (const ReducedSurface &reduced_surface)
void clear ()
void clean ()
Accessors
Size numberOfAtoms () const
Size numberOfVertices () const
Size numberOfEdges () const
Size numberOfFaces () const
double getProbeRadius () const
TSphere3< doublegetSphere (Position i) const throw (Exception::IndexOverflow)
RSVertexgetVertex (Position i) const throw (Exception::IndexOverflow)
RSEdgegetEdge (Position i) const throw (Exception::IndexOverflow)
RSFacegetFace (Position i) const throw (Exception::IndexOverflow)
void insert (RSVertex *rsvertex)
void insert (RSEdge *rsedge)
void insert (RSFace *rsface)
double getMaximalRadius () const
TSimpleBox3< doublegetBoundingBox () const
void deleteSimilarFaces (RSFace *face1, RSFace *face2)
bool getAngle (RSFace *face1, RSFace *face2, RSVertex *vertex1, RSVertex *vertex2, TAngle< double > &angle, bool check=false) const
void compute () throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)

Protected Attributes

Size number_of_atoms_
std::vector< TSphere3< double > > atom_
double probe_radius_
Size number_of_vertices_
std::vector< RSVertex * > vertices_
Size number_of_edges_
std::vector< RSEdge * > edges_
Size number_of_faces_
std::vector< RSFace * > faces_
double r_max_
TSimpleBox3< doublebounding_box_

Private Member Functions

bool canBeCopied (const ReducedSurface &reduced_surface)
void copy (const ReducedSurface &reduced_surface)
void correctEdges (RSFace *face1, RSFace *face2, RSEdge *edge1, RSEdge *edge2)
void joinVertices (RSFace *face1, RSFace *face2, RSVertex *vertex1, RSVertex *vertex2)
void findSimilarVertices (RSFace *face1, RSFace *face2, std::vector< RSVertex * > &rsvertex1, std::vector< RSVertex * > &rsvertex2)
void findSimilarEdges (RSFace *face1, RSFace *face2, std::vector< RSEdge * > &rsedge1, std::vector< RSEdge * > &rsedge2)

Friends

Class friends
class RSComputer
class SolventExcludedSurface
class SESComputer
class SESSingularityCleaner
class SolventAccessibleSurface
class TriangulatedSES
class TriangulatedSAS
class SESTriangulator

Detailed Description

Generic ReducedSurface Class.


Constructor & Destructor Documentation

BALL::ReducedSurface::ReducedSurface (  ) 

Default constructor. All components are initialized to (T)0 or NULL, respectivly.

BALL::ReducedSurface::ReducedSurface ( const ReducedSurface reduced_surface,
bool  = true 
)

Copy constructor.

Parameters:
reduced_surface the ReducedSurface object to be copied
bool ignored - just for interface consistency
BALL::ReducedSurface::ReducedSurface ( const std::vector< TSphere3< double > > &  spheres,
const double probe_radius 
)

Detailed constructor. Create a new ReducedSurface object from a list of spheres.

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

Destructor.


Member Function Documentation

bool BALL::ReducedSurface::canBeCopied ( const ReducedSurface reduced_surface  )  [private]
void BALL::ReducedSurface::clean (  ) 

Remove all NULL-pointers

void BALL::ReducedSurface::clear (  ) 

Delete all vertices, edges and faces.

void BALL::ReducedSurface::compute (  )  throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)

Compute the reduced surface.

void BALL::ReducedSurface::copy ( const ReducedSurface reduced_surface  )  [private]
void BALL::ReducedSurface::correctEdges ( RSFace face1,
RSFace face2,
RSEdge edge1,
RSEdge edge2 
) [private]
void BALL::ReducedSurface::deleteSimilarFaces ( RSFace face1,
RSFace face2 
)

Delete a pair of similar faces.

Parameters:
face1 a pointer to the first face
face2 a pointer to the second face
void BALL::ReducedSurface::findSimilarEdges ( RSFace face1,
RSFace face2,
std::vector< RSEdge * > &  rsedge1,
std::vector< RSEdge * > &  rsedge2 
) [private]
void BALL::ReducedSurface::findSimilarVertices ( RSFace face1,
RSFace face2,
std::vector< RSVertex * > &  rsvertex1,
std::vector< RSVertex * > &  rsvertex2 
) [private]
bool BALL::ReducedSurface::getAngle ( RSFace face1,
RSFace face2,
RSVertex vertex1,
RSVertex vertex2,
TAngle< double > &  angle,
bool  check = false 
) const

Get the angle between two RSFaces.

Parameters:
face1 a pointer to the first face
face2 a pointer to the second face
vertex1 a pointer to the first vertex to roll over
vertex2 a pointer to the second vertex to roll over
angle the computed angle
check you kan ask to check whether the angle can be computed
TSimpleBox3<double> BALL::ReducedSurface::getBoundingBox (  )  const

Return the bounding box of the centers of the atoms of the molecule

Returns:
TSimpleBox3<double> the bounding box
RSEdge* BALL::ReducedSurface::getEdge ( Position  i  )  const throw (Exception::IndexOverflow)

Return the i'th rsedge.

Parameters:
i the index of the rsedge that should be given back
Returns:
RSEdge, the i'th rsedge
RSFace* BALL::ReducedSurface::getFace ( Position  i  )  const throw (Exception::IndexOverflow)

Return the i'th rsface.

Parameters:
i the index of the rsface that should be given back
Returns:
RSFace, the i'th rsface
double BALL::ReducedSurface::getMaximalRadius (  )  const

Return the maximal radius of te atoms of te molecule

Returns:
double the maximal radius
double BALL::ReducedSurface::getProbeRadius (  )  const

Return the probe radius.

Returns:
double the radius of the used probe sphere
TSphere3<double> BALL::ReducedSurface::getSphere ( Position  i  )  const throw (Exception::IndexOverflow)

Return the i'th sphere.

Parameters:
i the index of the sphere that should be given back
Returns:
TSphere3<double>, the i'th sphere
RSVertex* BALL::ReducedSurface::getVertex ( Position  i  )  const throw (Exception::IndexOverflow)

Return the i'th rsvertex.

Parameters:
i the index of the rsvertex that should be given back
Returns:
RSVertex, the i'th rsvertex
void BALL::ReducedSurface::insert ( RSFace rsface  ) 

Insert a new RSFace.

Parameters:
rsface a pointer to the RSFace to insert
void BALL::ReducedSurface::insert ( RSEdge rsedge  ) 

Insert a new RSEdge.

Parameters:
rsedge a pointer to the RSEdge to insert
void BALL::ReducedSurface::insert ( RSVertex rsvertex  ) 

Insert a new RSVertex.

Parameters:
rsvertex a pointer to the RSVertex to insert
void BALL::ReducedSurface::joinVertices ( RSFace face1,
RSFace face2,
RSVertex vertex1,
RSVertex vertex2 
) [private]
Size BALL::ReducedSurface::numberOfAtoms (  )  const

Return the number of atoms.

Returns:
Size the number of atoms
Size BALL::ReducedSurface::numberOfEdges (  )  const

Return the number of rsedges.

Returns:
Size the number of rsedges
Size BALL::ReducedSurface::numberOfFaces (  )  const

Return the number of rsfaces.

Returns:
Size the number of rsfaces
Size BALL::ReducedSurface::numberOfVertices (  )  const

Return the number of rsvertices.

Returns:
Size the number of rsvertices
void BALL::ReducedSurface::operator= ( const ReducedSurface reduced_surface  ) 

Assign from another ReducedSurface.

Parameters:
reduced_surface the ReducedSurface object to assign from
void BALL::ReducedSurface::set ( const ReducedSurface reduced_surface  ) 

Assign from another ReducedSurface.

Parameters:
reduced_surface the ReducedSurface object to assign from

Friends And Related Function Documentation

friend class RSComputer [friend]
friend class SESComputer [friend]
friend class SESSingularityCleaner [friend]
friend class SESTriangulator [friend]
friend class SolventAccessibleSurface [friend]
friend class SolventExcludedSurface [friend]
friend class TriangulatedSAS [friend]
friend class TriangulatedSES [friend]

Member Data Documentation

std::vector< TSphere3<double> > BALL::ReducedSurface::atom_ [protected]
std::vector< RSEdge* > BALL::ReducedSurface::edges_ [protected]
std::vector< RSFace* > BALL::ReducedSurface::faces_ [protected]
std::vector< RSVertex* > BALL::ReducedSurface::vertices_ [protected]