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