BALL::RSComputer Class Reference
[Molecular Surface Computation]

#include <BALL/STRUCTURE/reducedSurface.h>

List of all members.

Classes

struct  ProbePosition

Public Types

Enums

enum  ProbeStatus { STATUS_OK = 0, STATUS_NOT_OK, STATUS_NOT_TESTED }
enum  AtomStatus { STATUS_ON_SURFACE = 0, STATUS_INSIDE, STATUS_UNKNOWN }

Public Member Functions

Constructors and Destructors

 RSComputer ()
 RSComputer (ReducedSurface *rs)
virtual ~RSComputer ()
Accessors

void run () throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)

Protected Attributes

ReducedSurfacers_
std::vector< std::deque< Index > > neighbours_
std::vector< AtomStatusatom_status_
HashMap< SortedPosition2,
std::deque< Index > > 
neighbours_of_two_
HashMap< SortedPosition3,
ProbePosition * > 
probe_positions_
HashSet< RSVertex * > new_vertices_
HashSet< RSFace * > new_faces_
std::vector< std::list
< RSVertex * > > 
vertices_

Private Member Functions

void preProcessing ()
void getRSComponent () throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)
bool treatFace (RSFace *face) throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)
bool treatEdge (RSEdge *edge) throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)
void correct (Index atom)
void extendComponent () throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)
Index thirdAtom (RSVertex *vertex1, RSVertex *vertex2, RSFace *face, TSphere3< double > &probe, TAngle< double > &phi) throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow)

Position getStartPosition () throw (Exception::DivisionByZero)

RSFacefindFirstFace () throw (Exception::DivisionByZero)
RSFacefindFace (Position direction, Position extrem) throw (Exception::DivisionByZero)

RSEdgefindFirstEdge ()
RSEdgefindEdge (Position direction, Position extrem)

RSVertexfindFirstVertex ()
Index findFirstAtom (Position direction, Position extrem)
Index findSecondAtom (Index atom, Position direction, Position extrem)
void findThirdAtom (Index atom1, Index atom2, const std::deque< Index > &third, std::deque< std::pair< Index, TSphere3< double > > > &atoms)

const std::deque< Index > & neighboursOfTwoAtoms (const SortedPosition2 &pos)
void neighboursOfThreeAtoms (Index atom1, Index atom2, Index atom3, std::deque< Index > &output_list)
double getCircleExtremum (const TCircle3< double > &circle, Position direction, Position extrem)

RSEdgecreateFreeEdge (RSVertex *vertex1, RSVertex *vertex2)
bool getCircles (Index atom1, Index atom2, TCircle3< double > &circle1, TCircle3< double > &circle2, TCircle3< double > &circle3)
TVector3< doublegetFaceNormal (const TSphere3< double > &atom1, const TSphere3< double > &atom2, const TSphere3< double > &atom3, const TSphere3< double > &probe)
void updateFaceAndEdges (RSVertex *v1, RSVertex *v2, RSVertex *v3, RSEdge *e1, RSEdge *e2, RSEdge *e3, RSFace *f, const TSphere3< double > &probe)
RSFacefaceExists (RSFace *face, const std::list< RSVertex * > &vertices)

bool centerOfProbe (const SortedPosition3 &pos, TVector3< double > &c1, TVector3< double > &c2)
bool checkProbe (const TSphere3< double > &probe, const SortedPosition3 &pos)
void correctProbePosition (Position atom)
void correctProbePosition (const SortedPosition3 &pos)
void insert (RSVertex *vertex)
void insert (RSEdge *edge)
void insert (RSFace *face)

Detailed Description

Generic RSComputer Class.

Definition at line 434 of file reducedSurface.h.


Member Enumeration Documentation

status of an atom 0 on surface 1 inside 2 outside

Enumerator:
STATUS_ON_SURFACE 
STATUS_INSIDE 
STATUS_UNKNOWN 

Definition at line 461 of file reducedSurface.h.

status of the probe positions of three atoms: 0 ok 1 not ok 2 not tested

Enumerator:
STATUS_OK 
STATUS_NOT_OK 
STATUS_NOT_TESTED 

Definition at line 449 of file reducedSurface.h.


Constructor & Destructor Documentation

BALL::RSComputer::RSComputer (  ) 

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

BALL::RSComputer::RSComputer ( ReducedSurface rs  ) 

Detailed constructor.

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

Destructor.


Member Function Documentation

bool BALL::RSComputer::centerOfProbe ( const SortedPosition3 pos,
TVector3< double > &  c1,
TVector3< double > &  c2 
) [private]
bool BALL::RSComputer::checkProbe ( const TSphere3< double > &  probe,
const SortedPosition3 pos 
) [private]
void BALL::RSComputer::correct ( Index  atom  )  [private]
void BALL::RSComputer::correctProbePosition ( const SortedPosition3 pos  )  [private]
void BALL::RSComputer::correctProbePosition ( Position  atom  )  [private]
RSEdge* BALL::RSComputer::createFreeEdge ( RSVertex vertex1,
RSVertex vertex2 
) [private]
void BALL::RSComputer::extendComponent (  )  throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow) [private]
RSFace* BALL::RSComputer::faceExists ( RSFace face,
const std::list< RSVertex * > &  vertices 
) [private]
RSEdge* BALL::RSComputer::findEdge ( Position  direction,
Position  extrem 
) [private]
RSFace* BALL::RSComputer::findFace ( Position  direction,
Position  extrem 
) throw (Exception::DivisionByZero) [private]
Index BALL::RSComputer::findFirstAtom ( Position  direction,
Position  extrem 
) [private]
RSEdge* BALL::RSComputer::findFirstEdge (  )  [private]
RSFace* BALL::RSComputer::findFirstFace (  )  throw (Exception::DivisionByZero) [private]
RSVertex* BALL::RSComputer::findFirstVertex (  )  [private]
Index BALL::RSComputer::findSecondAtom ( Index  atom,
Position  direction,
Position  extrem 
) [private]
void BALL::RSComputer::findThirdAtom ( Index  atom1,
Index  atom2,
const std::deque< Index > &  third,
std::deque< std::pair< Index, TSphere3< double > > > &  atoms 
) [private]
double BALL::RSComputer::getCircleExtremum ( const TCircle3< double > &  circle,
Position  direction,
Position  extrem 
) [private]
bool BALL::RSComputer::getCircles ( Index  atom1,
Index  atom2,
TCircle3< double > &  circle1,
TCircle3< double > &  circle2,
TCircle3< double > &  circle3 
) [private]
TVector3<double> BALL::RSComputer::getFaceNormal ( const TSphere3< double > &  atom1,
const TSphere3< double > &  atom2,
const TSphere3< double > &  atom3,
const TSphere3< double > &  probe 
) [private]
void BALL::RSComputer::getRSComponent (  )  throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow) [private]
Position BALL::RSComputer::getStartPosition (  )  throw (Exception::DivisionByZero) [private]
void BALL::RSComputer::insert ( RSFace face  )  [private]
void BALL::RSComputer::insert ( RSEdge edge  )  [private]
void BALL::RSComputer::insert ( RSVertex vertex  )  [private]
void BALL::RSComputer::neighboursOfThreeAtoms ( Index  atom1,
Index  atom2,
Index  atom3,
std::deque< Index > &  output_list 
) [private]
const std::deque<Index>& BALL::RSComputer::neighboursOfTwoAtoms ( const SortedPosition2 pos  )  [private]
void BALL::RSComputer::preProcessing (  )  [private]

Compute the reduced surface

Index BALL::RSComputer::thirdAtom ( RSVertex vertex1,
RSVertex vertex2,
RSFace face,
TSphere3< double > &  probe,
TAngle< double > &  phi 
) throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow) [private]
bool BALL::RSComputer::treatEdge ( RSEdge edge  )  throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow) [private]
bool BALL::RSComputer::treatFace ( RSFace face  )  throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow) [private]
void BALL::RSComputer::updateFaceAndEdges ( RSVertex v1,
RSVertex v2,
RSVertex v3,
RSEdge e1,
RSEdge e2,
RSEdge e3,
RSFace f,
const TSphere3< double > &  probe 
) [private]

Member Data Documentation

std::vector< AtomStatus > BALL::RSComputer::atom_status_ [protected]

Definition at line 832 of file reducedSurface.h.

std::vector< std::deque<Index> > BALL::RSComputer::neighbours_ [protected]

Definition at line 828 of file reducedSurface.h.

Definition at line 836 of file reducedSurface.h.

Definition at line 848 of file reducedSurface.h.

Definition at line 844 of file reducedSurface.h.

Definition at line 840 of file reducedSurface.h.

Definition at line 824 of file reducedSurface.h.

std::vector< std::list<RSVertex*> > BALL::RSComputer::vertices_ [protected]

Definition at line 852 of file reducedSurface.h.

Generated by  doxygen 1.6.3