5 #ifndef BALL_STRUCTURE_RINGANALYSER_H
6 #define BALL_STRUCTURE_RINGANALYSER_H
8 #ifndef BALL_COMMON_GLOBAL_H
12 #ifndef BALL_KERNEL_ATOMCONTAINER_H
16 #ifndef BALL_CONCEPT_PROCESSOR_H
20 #ifndef BALL_CONCEPT_PROPERTY_H
59 Ring(std::vector<Atom*>
const& atoms_);
169 bool isCentralRing_(std::list<Position>::iterator ring, std::list<Position>& unassigned_rings);
174 bool peelNextRing_(std::list<Position>& unassigned_rings,
bool peel_fused =
false);
HashMap class based on the STL map (containing serveral convenience functions)
Methods for the analysis of the structure of ringsystems.
bool peelNextRing_(std::list< Position > &unassigned_rings, bool peel_fused=false)
virtual bool start()
Processor method which is called before the operator()-call.
virtual bool finish()
Processor method which is called after the operator()-call.
std::vector< std::vector< Position > > peeling_order_
the order in which rings are peeled from their respective ring systems
std::vector< Position > getPeelingOrder(Position i)
RingAnalyser()
Default-Constructor.
bool isCentralRing_(std::list< Position >::iterator ring, std::list< Position > &unassigned_rings)
bool isInRingSystem(const Atom *atom, Index i) const
helper-function; determines, whether an atom is part of a certain ring
virtual ~RingAnalyser()
Destructor.
void sequenceRing(std::vector< Atom * > &ring)
void peelRings_()
performs an analysis of the structure of a ringsystem
Size getNumberOfRingSystems()
bool assignRTD_(std::list< Position > &trial_system)
interface for a Ring Template Database (RTD), no functionality yet
std::vector< Ring > rings_
the smallest set of smallest rings of our molecule
std::vector< std::vector< Position > > ring_systems_
the ring systems, stored as indices into the smallest set of smallest rings
void clusterRings_()
performs an agglomerative clustering of single rings to ringsystems
bool isInRing(const Atom *atom, std::vector< Atom * > const &ring) const
helper-function; determines, whether an atom is part of a certain ring
std::vector< Ring > getRingSystem(Position i)
HashMap< Bond const *, std::deque< Position > > rings_per_bond_
the ring memberships per bond
Position predecessor(Position i) const
The predecessor of atom i in the ring.
std::set< Bond const * > shared_bonds
the bonds shared with other rings
Position successor(Position i) const
The successor of atom i in the ring.
Ring()
Default constructor.
std::vector< Atom * > atoms
the atoms of this ring
RingType type
the type of this ring
Ring(std::vector< Atom * > const &atoms_)
Detailed constructor.