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