#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.