#include <BALL/STRUCTURE/reducedSurface.h>
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 | |
| ReducedSurface * | rs_ |
| std::vector< std::deque< Index > > | neighbours_ |
| std::vector< AtomStatus > | atom_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) |
| RSFace * | findFirstFace () throw (Exception::DivisionByZero) |
| RSFace * | findFace (Position direction, Position extrem) throw (Exception::DivisionByZero) |
| RSEdge * | findFirstEdge () |
| RSEdge * | findEdge (Position direction, Position extrem) |
| RSVertex * | findFirstVertex () |
| 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) |
| RSEdge * | createFreeEdge (RSVertex *vertex1, RSVertex *vertex2) |
| bool | getCircles (Index atom1, Index atom2, TCircle3< double > &circle1, TCircle3< double > &circle2, TCircle3< double > &circle3) |
| TVector3< double > | getFaceNormal (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) |
| RSFace * | faceExists (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) |
Generic RSComputer Class.
Definition at line 434 of file reducedSurface.h.
status of an atom 0 on surface 1 inside 2 outside
Definition at line 461 of file reducedSurface.h.
status of the probe positions of three atoms: 0 ok 1 not ok 2 not tested
Definition at line 449 of file reducedSurface.h.
| 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.
| 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] |
| void BALL::RSComputer::extendComponent | ( | ) | throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow) [private] |
| RSFace* BALL::RSComputer::faceExists | ( | RSFace * | face, | |
| const std::list< RSVertex * > & | vertices | |||
| ) | [private] |
| RSFace* BALL::RSComputer::findFace | ( | Position | direction, | |
| Position | extrem | |||
| ) | throw (Exception::DivisionByZero) [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] |
| void BALL::RSComputer::run | ( | ) | throw (Exception::GeneralException, Exception::DivisionByZero, Exception::IndexOverflow) |
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] |
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.
HashMap< SortedPosition2, std::deque<Index> > BALL::RSComputer::neighbours_of_two_ [protected] |
Definition at line 836 of file reducedSurface.h.
HashSet<RSFace*> BALL::RSComputer::new_faces_ [protected] |
Definition at line 848 of file reducedSurface.h.
HashSet<RSVertex*> BALL::RSComputer::new_vertices_ [protected] |
Definition at line 844 of file reducedSurface.h.
HashMap< SortedPosition3, ProbePosition* > BALL::RSComputer::probe_positions_ [protected] |
Definition at line 840 of file reducedSurface.h.
ReducedSurface* BALL::RSComputer::rs_ [protected] |
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.
1.6.3