BALL::RingFinder Class Reference

#include <BALL/KERNEL/standardPredicates.h>

List of all members.


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 Atomfirst_atom_
Size n_
bool exact_
HashSet< const Bond * > visited_bonds_
std::vector< const Atom * > ring_atoms_

Detailed Description

Helper class for all predicates that need ring information.


Constructor & Destructor Documentation

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.


Member Function Documentation

bool BALL::RingFinder::dfs ( const Atom atom,
const Size  limit 
)

Depth first search for finding rings.

const std::vector<const Atom*>& BALL::RingFinder::getRingAtoms (  )  const

Return the vector of ring atoms.

const HashSet<const Bond*>& BALL::RingFinder::getVisitedBonds (  )  const

Return the hashset containing all visited bonds.

bool BALL::RingFinder::operator() ( const Atom atom  ) 

Return true, if atom is in a ring.

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.


Member Data Documentation

std::vector<const Atom*> BALL::RingFinder::ring_atoms_ [private]