Loading...
Searching...
No Matches
BALL::SDGenerator Class Reference

`#include <BALL/STRUCTURE/sdGenerator.h>`

## Classes

struct | Option
| Option names. More...
struct | Default
| Default values for options. More...
class | AtomComparator

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

Constructors and Destructors.
| SDGenerator (bool show_hydrogens=false)
virtual | ~SDGenerator ()

## Public Attributes

Public Attributes
Options | options
| options

## Accessors

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
void | setDefaultOptions ()
void | generateSD (System &molecule_sys)
| Generates a structure Diagram from the input System.
void | clear ()
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 > &current_system, float x_start)
| construct the core-ring as a regular polygon
void | attachTemplate_ (Position current_ring, std::vector< RingAnalyser::Ring > &current_system)
| attach a ring template to a (partially) constructed ringsystem (no functionality yet)
void | attachFused_ (Position current_ring, std::vector< RingAnalyser::Ring > &current_system)
| attach a fused ring to a (partially) constructed ringsystem
void | attachBridged_ (Position current_ring, std::vector< RingAnalyser::Ring > &current_system)
| attach a bridged ring to a (partially) constructed ringsystem
void | attachSpiro_ (Position current_ring, std::vector< RingAnalyser::Ring > &current_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 bool | compareChains_ (const vector< Atom * > &x, const vector< Atom * > &y)
| Comparator for chains of atoms.

## Detailed Description

Structure Diagram Generation.

This class provides methods for analysis of the input.

Definition at line 33 of file sdGenerator.h.

## Member Enumeration Documentation

## Property

enum BALL::SDGenerator::Property

Properties, used to describe atoms and their status.

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

## Constructor & Destructor Documentation

## SDGenerator()

BALL::SDGenerator::SDGenerator | ( | bool | show_hydrogens = false | ) |

Default-Constructor

## ~SDGenerator()

virtual BALL::SDGenerator::~SDGenerator | ( |  | ) |

virtual

Destructor

## Member Function Documentation

## assembleSD_()

void BALL::SDGenerator::assembleSD_ | ( |  | ) |

protected

Assemble the final structure diagram

## attachBridged_()

void BALL::SDGenerator::attachBridged_ | ( | Position | current_ring,
|  | std::vector< RingAnalyser::Ring > & | current_system )

protected

attach a bridged ring to a (partially) constructed ringsystem

Parameters

  current_ring | the index of the ring to attach
  current_system | the index of the ring system

## attachCore_()

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

Parameters

  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)

## attachFused_()

void BALL::SDGenerator::attachFused_ | ( | Position | current_ring,
|  | std::vector< RingAnalyser::Ring > & | current_system )

protected

attach a fused ring to a (partially) constructed ringsystem

Parameters

  current_ring | the index of the ring to attach
  current_system | the index of the ring system

## attachSpiro_()

void BALL::SDGenerator::attachSpiro_ | ( | Position | current_ring,
|  | std::vector< RingAnalyser::Ring > & | current_system )

protected

attach a spiro ring to a (partially) constructed ringsystem

Parameters

  current_ring | the index of the ring to attach
  current_system | the index of the ring system

## attachTemplate_()

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)

Parameters

  current_ring | the index of the ring to attach
  current_system | the ring system

## buildOpenPolygon_()

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.

## buildRegularPolygon_()

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.

## checkOverlap_()

void BALL::SDGenerator::checkOverlap_ | ( | Atom * | atom | ) |

protected

## clear()

void BALL::SDGenerator::clear | ( |  | ) |

Clear all internal data structures.

## compareChains_()

bool BALL::SDGenerator::compareChains_ | ( | const vector< Atom * > & | x,
|  | const vector< Atom * > & | y )

static protected

Comparator for chains of atoms.

## computeAdjacencyMatrix_()

void BALL::SDGenerator::computeAdjacencyMatrix_ | ( | std::vector< Atom * > & | chain,
|  | std::vector< bool > & | result )

protected

Compute adjacency matrix of the given atoms.

## computeAngularDemand_()

Angle BALL::SDGenerator::computeAngularDemand_ | ( | Atom * | seed | ) |

protected

## computeAngularSeparation_()

Angle BALL::SDGenerator::computeAngularSeparation_ | ( | Atom * | seed | ) |

protected

## computeCFS_()

Angle BALL::SDGenerator::computeCFS_ | ( | Vector3 const & | input | ) |

protected

## computeCoreCFS_()

void BALL::SDGenerator::computeCoreCFS_ | ( | RingAnalyser::Ring & | ring,
|  | bool | clockwise )

protected

## computeShelleyPriorities_()

void BALL::SDGenerator::computeShelleyPriorities_ | ( |  | ) |

protected

Compute the Shelley priority values for each atom

## constructRingSystem_()

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.

Parameters

  current_ring_system | consecutive numbering of the molecule's ringsystems

## depositPFU_()

void BALL::SDGenerator::depositPFU_ | ( | Atom * | seed_atom,
|  | Atom * | next_neighbour )

protected

## findFloydWarshallPath_()

void BALL::SDGenerator::findFloydWarshallPath_ | ( | std::vector< int > & | path,
|  | std::vector< Index > & | next,
|  | Size | remaining_atoms,
|  | Position | i,
|  | Position | j,
|  | std::list< Index > & | output )

protected

## generateSD()

void BALL::SDGenerator::generateSD | ( | System & | molecule_sys | ) |

Generates a structure Diagram from the input System.

Parameters

  molecule_sys |

## getBackupCFS_()

Angle BALL::SDGenerator::getBackupCFS_ | ( | Atom const * | ,
|  | bool | hi )

protected

## getCFS_()

Angle BALL::SDGenerator::getCFS_ | ( | Atom const * | atom,
|  | bool | hi )

protected

## placeSubstituent_()

void BALL::SDGenerator::placeSubstituent_ | ( | Atom * | seed,
|  | Atom * | head,
|  | Atom * | next )

protected

## prepare_()

void BALL::SDGenerator::prepare_ | ( |  | ) |

protected

Distinguishes between ring-atoms and core-chain-atoms, removes all H-Atoms from the System.

Parameters

  molecule_sys |

## pushCFS_()

void BALL::SDGenerator::pushCFS_ | ( | Atom * | atom | ) |

protected

## ringIsClockwise_()

bool BALL::SDGenerator::ringIsClockwise_ | ( | const RingAnalyser::Ring & | ring,
|  | Index | start_index = 0 ) const

protected

## sequenceSubstituents_()

std::vector< Atom * > BALL::SDGenerator::sequenceSubstituents_ | ( | Atom * | seed | ) |

protected

## setCFS_()

void BALL::SDGenerator::setCFS_ | ( | Atom * | atom,
|  | Angle | cfs,
|  | bool | high )

protected

## setDefaultOptions()

void BALL::SDGenerator::setDefaultOptions | ( |  | ) |

Resets the options to default values.

## smoothCFSAngle_()

void BALL::SDGenerator::smoothCFSAngle_ | ( | Atom * | seed | ) |

protected

## treatChains_()

void BALL::SDGenerator::treatChains_ | ( |  | ) |

protected

cluster and arrange all chains in the system

## Member Data Documentation

## chains_

std::list<std::list<Atom*> > BALL::SDGenerator::chains_

protected

all chains

Definition at line 264 of file sdGenerator.h.

## options

Options BALL::SDGenerator::options

options

Definition at line 101 of file sdGenerator.h.

## redraw_queue_

std::priority_queue<Atom*, std::vector<Atom*>, AtomComparator> BALL::SDGenerator::redraw_queue_

protected

our redraw queue

Definition at line 267 of file sdGenerator.h.

## ring_analyser_

RingAnalyser BALL::SDGenerator::ring_analyser_

protected

The ring analyser containing all information about ring systems.

Definition at line 261 of file sdGenerator.h.

## system_

System* BALL::SDGenerator::system_

protected

the system we are working on

Definition at line 270 of file sdGenerator.h.