BALL::SDGenerator Class Reference

#include <BALL/STRUCTURE/sdGenerator.h>

List of all members.

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 > &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 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
Systemsystem_
 the system we are working on

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

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

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

Default-Constructor

virtual BALL::SDGenerator::~SDGenerator (  )  [virtual]

Destructor


Member Function Documentation

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

Parameters:
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

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

Angle BALL::SDGenerator::computeAngularDemand_ ( Atom seed  )  [protected]
Angle BALL::SDGenerator::computeAngularSeparation_ ( Atom seed  )  [protected]
Angle BALL::SDGenerator::computeCFS_ ( Vector3 const &  input  )  [protected]
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.

Parameters:
current_ring_system consecutive numbering of the molecule's ringsystems
void BALL::SDGenerator::depositPFU_ ( Atom seed_atom,
Atom next_neighbour 
) [protected]
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.

Parameters:
molecule_sys 
Angle BALL::SDGenerator::getBackupCFS_ ( Atom const *  ,
bool  hi 
) [protected]
Angle BALL::SDGenerator::getCFS_ ( Atom const *  atom,
bool  hi 
) [protected]
void BALL::SDGenerator::placeSubstituent_ ( Atom seed,
Atom head,
Atom next 
) [protected]
void BALL::SDGenerator::prepare_ (  )  [protected]

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

Parameters:
molecule_sys 
void BALL::SDGenerator::pushCFS_ ( Atom atom  )  [protected]
bool BALL::SDGenerator::ringIsClockwise_ ( const RingAnalyser::Ring ring,
Index  start_index = 0 
) const [protected]
std::vector<Atom*> BALL::SDGenerator::sequenceSubstituents_ ( Atom seed  )  [protected]
void BALL::SDGenerator::setCFS_ ( Atom atom,
Angle  cfs,
bool  high 
) [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


Member Data Documentation

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.

The ring analyser containing all information about ring systems.

Definition at line 261 of file sdGenerator.h.

the system we are working on

Definition at line 270 of file sdGenerator.h.

Generated by  doxygen 1.6.3