#include <BALL/STRUCTURE/sdGenerator.h>
Classes | |
| class | AtomComparator |
| struct | Default |
| Default values for options. More... | |
| struct | Option |
| Option names. More... | |
Public Types | |
| enum | Property { FIRST_SDGENERATOR_PROPERTY = PDBAtom::NUMBER_OF_PROPERTIES+1, IN_RING, CORE_CHAIN, DEPOSITED, FXAS, EQAS, HEAD, EDGE, ASSEMBLED, ZIG, ZAG, INITIALIZED_HEAD_CFS, LAST_SDGENERATOR_PROPERTY } |
Properties, used to describe atoms and their status. More... | |
Public Member Functions | |
| void | generateSD (System &molecule_sys) |
| Generates a structure Diagram from the input System. | |
| void | clear () |
Constructors and Destructors. | |
| SDGenerator (bool show_hydrogens=false) | |
| virtual | ~SDGenerator () |
Accessors | |
| void | setDefaultOptions () |
Public Attributes | |
Public Attributes | |
| Options | options |
| options | |
Protected Member Functions | |
| void | prepare_ () |
| Distinguishes between ring-atoms and core-chain-atoms, removes all H-Atoms from the System. | |
| void | constructRingSystem_ (Position current_ring_system) |
| Constructs a ringsystem, providing the atoms with relative 2D-coordinates, starting in the point of origin. | |
| Angle | getCFS_ (Atom const *atom, bool hi) |
| Angle | computeCFS_ (Vector3 const &input) |
| void | setCFS_ (Atom *atom, Angle cfs, bool high) |
| void | pushCFS_ (Atom *atom) |
| Angle | getBackupCFS_ (Atom const *, bool hi) |
| void | computeCoreCFS_ (RingAnalyser::Ring &ring, bool clockwise) |
| Angle | computeAngularSeparation_ (Atom *seed) |
| Angle | computeAngularDemand_ (Atom *seed) |
| std::vector< Atom * > | sequenceSubstituents_ (Atom *seed) |
| void | computeShelleyPriorities_ () |
| void | buildRegularPolygon_ (RingAnalyser::Ring &ring, Position first_anchor_index, bool clockwise) |
| void | buildOpenPolygon_ (RingAnalyser::Ring &ring, Position first_anchor_index, Position second_anchor_index) |
| void | attachCore_ (Position current_ring, std::vector< RingAnalyser::Ring > ¤t_system, float x_start) |
| construct the core-ring as a regular polygon | |
| void | attachTemplate_ (Position current_ring, std::vector< RingAnalyser::Ring > ¤t_system) |
| attach a ring template to a (partially) constructed ringsystem (no functionality yet) | |
| void | attachFused_ (Position current_ring, std::vector< RingAnalyser::Ring > ¤t_system) |
| attach a fused ring to a (partially) constructed ringsystem | |
| void | attachBridged_ (Position current_ring, std::vector< RingAnalyser::Ring > ¤t_system) |
| attach a bridged ring to a (partially) constructed ringsystem | |
| void | attachSpiro_ (Position current_ring, std::vector< RingAnalyser::Ring > ¤t_system) |
| attach a spiro ring to a (partially) constructed ringsystem | |
| void | computeAdjacencyMatrix_ (std::vector< Atom * > &chain, std::vector< bool > &result) |
| Compute adjacency matrix of the given atoms. | |
| void | treatChains_ () |
| cluster and arrange all chains in the system | |
| void | smoothCFSAngle_ (Atom *seed) |
| void | placeSubstituent_ (Atom *seed, Atom *head, Atom *next) |
| void | depositPFU_ (Atom *seed_atom, Atom *next_neighbour) |
| void | checkOverlap_ (Atom *atom) |
| bool | ringIsClockwise_ (const RingAnalyser::Ring &ring, Index start_index=0) const |
| void | assembleSD_ () |
| void | findFloydWarshallPath_ (std::vector< int > &path, std::vector< Index > &next, Size remaining_atoms, Position i, Position j, std::list< Index > &output) |
Static Protected Member Functions | |
| static bool | compareChains_ (const vector< Atom * > &x, const vector< Atom * > &y) |
| Comparator for chains of atoms. | |
Protected Attributes | |
| RingAnalyser | ring_analyser_ |
| The ring analyser containing all information about ring systems. | |
| std::list< std::list< Atom * > > | chains_ |
| all chains | |
| std::priority_queue< Atom *, std::vector< Atom * > , AtomComparator > | redraw_queue_ |
| our redraw queue | |
| System * | system_ |
| the system we are working on | |
Structure Diagram Generation.
This class provides methods for analysis of the input.
Definition at line 33 of file sdGenerator.h.
Properties, used to describe atoms and their status.
| FIRST_SDGENERATOR_PROPERTY | |
| IN_RING | |
| CORE_CHAIN | |
| DEPOSITED | |
| FXAS | |
| EQAS | |
| HEAD | |
| EDGE | |
| ASSEMBLED | |
| ZIG | |
| ZAG | |
| INITIALIZED_HEAD_CFS | |
| LAST_SDGENERATOR_PROPERTY |
Definition at line 40 of file sdGenerator.h.
| BALL::SDGenerator::SDGenerator | ( | bool | show_hydrogens = false |
) |
Default-Constructor
| virtual BALL::SDGenerator::~SDGenerator | ( | ) | [virtual] |
Destructor
| void BALL::SDGenerator::assembleSD_ | ( | ) | [protected] |
Assemble the final structure diagram
| void BALL::SDGenerator::attachBridged_ | ( | Position | current_ring, | |
| std::vector< RingAnalyser::Ring > & | current_system | |||
| ) | [protected] |
attach a bridged ring to a (partially) constructed ringsystem
| current_ring | the index of the ring to attach | |
| current_system | the index of the ring system |
| void BALL::SDGenerator::attachCore_ | ( | Position | current_ring, | |
| std::vector< RingAnalyser::Ring > & | current_system, | |||
| float | x_start | |||
| ) | [protected] |
construct the core-ring as a regular polygon
| current_ring | the index of the ring to attach | |
| current_system | the ring system | |
| x_start | the ring is created in (x_start, 0, 0) |
| void BALL::SDGenerator::attachFused_ | ( | Position | current_ring, | |
| std::vector< RingAnalyser::Ring > & | current_system | |||
| ) | [protected] |
attach a fused ring to a (partially) constructed ringsystem
| current_ring | the index of the ring to attach | |
| current_system | the index of the ring system |
| void BALL::SDGenerator::attachSpiro_ | ( | Position | current_ring, | |
| std::vector< RingAnalyser::Ring > & | current_system | |||
| ) | [protected] |
attach a spiro ring to a (partially) constructed ringsystem
| current_ring | the index of the ring to attach | |
| current_system | the index of the ring system |
| void BALL::SDGenerator::attachTemplate_ | ( | Position | current_ring, | |
| std::vector< RingAnalyser::Ring > & | current_system | |||
| ) | [protected] |
attach a ring template to a (partially) constructed ringsystem (no functionality yet)
| current_ring | the index of the ring to attach | |
| current_system | the ring system |
| void BALL::SDGenerator::buildOpenPolygon_ | ( | RingAnalyser::Ring & | ring, | |
| Position | first_anchor_index, | |||
| Position | second_anchor_index | |||
| ) | [protected] |
Build an open polygon for a ring with two fixed points.
| void BALL::SDGenerator::buildRegularPolygon_ | ( | RingAnalyser::Ring & | ring, | |
| Position | first_anchor_index, | |||
| bool | clockwise | |||
| ) | [protected] |
Build a regular polygon for a ring with two fixed points.
| void BALL::SDGenerator::checkOverlap_ | ( | Atom * | atom | ) | [protected] |
| void BALL::SDGenerator::clear | ( | ) |
Clear all internal data structures.
| static bool BALL::SDGenerator::compareChains_ | ( | const vector< Atom * > & | x, | |
| const vector< Atom * > & | y | |||
| ) | [static, protected] |
Comparator for chains of atoms.
| void BALL::SDGenerator::computeAdjacencyMatrix_ | ( | std::vector< Atom * > & | chain, | |
| std::vector< bool > & | result | |||
| ) | [protected] |
Compute adjacency matrix of the given atoms.
| void BALL::SDGenerator::computeCoreCFS_ | ( | RingAnalyser::Ring & | ring, | |
| bool | clockwise | |||
| ) | [protected] |
| void BALL::SDGenerator::computeShelleyPriorities_ | ( | ) | [protected] |
Compute the Shelley priority values for each atom
| void BALL::SDGenerator::constructRingSystem_ | ( | Position | current_ring_system | ) | [protected] |
Constructs a ringsystem, providing the atoms with relative 2D-coordinates, starting in the point of origin.
| current_ring_system | consecutive numbering of the molecule's ringsystems |
| void BALL::SDGenerator::findFloydWarshallPath_ | ( | std::vector< int > & | path, | |
| std::vector< Index > & | next, | |||
| Size | remaining_atoms, | |||
| Position | i, | |||
| Position | j, | |||
| std::list< Index > & | output | |||
| ) | [protected] |
| void BALL::SDGenerator::generateSD | ( | System & | molecule_sys | ) |
Generates a structure Diagram from the input System.
| molecule_sys |
| void BALL::SDGenerator::prepare_ | ( | ) | [protected] |
Distinguishes between ring-atoms and core-chain-atoms, removes all H-Atoms from the System.
| molecule_sys |
| void BALL::SDGenerator::pushCFS_ | ( | Atom * | atom | ) | [protected] |
| bool BALL::SDGenerator::ringIsClockwise_ | ( | const RingAnalyser::Ring & | ring, | |
| Index | start_index = 0 | |||
| ) | const [protected] |
| void BALL::SDGenerator::setDefaultOptions | ( | ) |
Resets the options to default values.
| void BALL::SDGenerator::smoothCFSAngle_ | ( | Atom * | seed | ) | [protected] |
| void BALL::SDGenerator::treatChains_ | ( | ) | [protected] |
cluster and arrange all chains in the system
std::list<std::list<Atom*> > BALL::SDGenerator::chains_ [protected] |
all chains
Definition at line 264 of file sdGenerator.h.
options
Definition at line 101 of file sdGenerator.h.
std::priority_queue<Atom*, std::vector<Atom*>, AtomComparator> BALL::SDGenerator::redraw_queue_ [protected] |
our redraw queue
Definition at line 267 of file sdGenerator.h.
RingAnalyser BALL::SDGenerator::ring_analyser_ [protected] |
The ring analyser containing all information about ring systems.
Definition at line 261 of file sdGenerator.h.
System* BALL::SDGenerator::system_ [protected] |
the system we are working on
Definition at line 270 of file sdGenerator.h.
1.6.3