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_);
104 virtual bool finish();
120 bool isInRing(
const Atom* atom, std::vector<Atom*>
const& ring)
const;
128 bool isInRingSystem(
const Atom* atom,
Index i)
const;
137 void sequenceRing(std::vector<Atom*>& ring);
141 Size getNumberOfRingSystems();
145 std::vector<Ring> getRingSystem(
Position i);
149 std::vector<Position> getPeelingOrder(
Position i);
156 void clusterRings_();
161 void findSharedBonds_();
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);
180 bool assignRTD_(std::list<Position>& trial_system);
197 #endif // BALL_STRUCTURE_RINGANALYSER_H
RingType type
the type of this ring
std::vector< std::vector< Position > > ring_systems_
the ring systems, stored as indices into the smallest set of smallest rings
std::vector< std::vector< Position > > peeling_order_
the order in which rings are peeled from their respective ring systems
std::vector< Atom * > atoms
the atoms of this ring
std::set< Bond const * > shared_bonds
the bonds shared with other rings
std::vector< Ring > rings_
the smallest set of smallest rings of our molecule
-*- Mode: C++; tab-width: 2; -*-
Methods for the analysis of the structure of ringsystems.
HashMap class based on the STL map (containing serveral convenience functions)
HashMap< Bond const *, std::deque< Position > > rings_per_bond_
the ring memberships per bond