#include <BALL/KERNEL/standardPredicates.h>
Public Member Functions | |
RingFinder () | |
Default constructor. | |
RingFinder (Size n) | |
virtual | ~RingFinder () |
Destructor. | |
bool | operator() (const Atom &atom) |
bool | dfs (const Atom &atom, const Size limit) |
void | setRingSize (Size n) |
const HashSet< const Bond * > & | getVisitedBonds () const |
const std::vector< const Atom * > & | getRingAtoms () const |
Private Attributes | |
const Atom * | first_atom_ |
Size | n_ |
bool | exact_ |
HashSet< const Bond * > | visited_bonds_ |
std::vector< const Atom * > | ring_atoms_ |
Helper class for all predicates that need ring information.
BALL::RingFinder::RingFinder | ( | ) |
Default constructor.
BALL::RingFinder::RingFinder | ( | Size | n | ) |
Detailed constructor. Initialize this instance with the size of the ring we want to find. Default setting is 0 which means that any ring size will match.
virtual BALL::RingFinder::~RingFinder | ( | ) | [virtual] |
Destructor.
Depth first search for finding rings.
const std::vector<const Atom*>& BALL::RingFinder::getRingAtoms | ( | ) | const |
Return the vector of ring atoms.
Return the hashset containing all visited bonds.
void BALL::RingFinder::setRingSize | ( | Size | n | ) |
Set the ring size we want to find. Ring sizes below 3 will always return false, except if the size is set to 0, then any ring size will match.
bool BALL::RingFinder::exact_ [private] |
const Atom* BALL::RingFinder::first_atom_ [private] |
Size BALL::RingFinder::n_ [private] |
std::vector<const Atom*> BALL::RingFinder::ring_atoms_ [private] |
HashSet<const Bond*> BALL::RingFinder::visited_bonds_ [private] |