7 #ifndef BALL_KERNEL_STANDARDPREDICATES_H
8 #define BALL_KERNEL_STANDARDPREDICATES_H
10 #ifndef BALL_DATATYPE_STRINGHASHMAP_H
14 #ifndef BALL_DATATYPE_HASHSET_H
18 #ifndef BALL_KERNEL_BOND_H
22 #ifndef BALL_KERNEL_EXPRESSION_H
26 #ifndef BALL_STRUCTURE_SMARTSMATCHER_H
30 #ifndef BALL_QSAR_AROMATICITYPROCESSOR_H
34 #ifndef BALL_QSAR_RINGPERCEPTIONPROCESSOR_H
64 virtual bool operator () (
const Atom& atom)
const;
81 virtual bool operator () (
const Atom& atom)
const;
98 virtual bool operator () (
const Atom& atom)
const;
115 virtual bool operator () (
const Atom& atom)
const;
131 virtual bool operator () (
const Atom& atom)
const;
147 virtual bool operator () (
const Atom& atom)
const;
164 virtual bool operator () (
const Atom& atom)
const;
181 virtual bool operator () (
const Atom& atom)
const;
198 virtual bool operator () (
const Atom& atom)
const;
215 virtual bool operator () (
const Atom& atom)
const;
232 virtual bool operator () (
const Atom& atom)
const;
253 virtual bool operator () (
const Atom& atom)
const;
269 virtual bool operator () (
const Atom& atom)
const;
286 virtual bool operator () (
const Atom& atom)
const;
301 virtual bool operator () (
const Atom& atom)
const;
317 virtual bool operator () (
const Atom& atom)
const;
342 virtual bool operator () (
const Atom& atom)
const;
367 virtual bool operator () (
const Atom& atom)
const;
388 virtual bool operator () (
const Atom& atom)
const;
406 virtual bool operator () (
const Atom& atom)
const;
425 virtual bool operator () (
const Atom& atom)
const;
449 virtual bool operator () (
const Atom& atom)
const;
452 bool testPredicate_(
const Atom& atom)
const;
492 BONDTYPE__UNINITIALISED = 0,
494 BONDTYPE__SINGLE = 2,
495 BONDTYPE__DOUBLE = 3,
496 BONDTYPE__TRIPLE = 4,
497 BONDTYPE__QUADRUPLE = 5,
498 BONDTYPE__AROMATIC = 6
518 virtual void destroy();
522 void setParent(
CTPNode* parent);
534 void removeChild(
CTPNode* child);
538 ::std::list<CTPNode*>& getChildren();
550 Size getNumberOfChildren()
const;
554 void setBondType(
Size type);
558 void setBondType(
char type);
562 Size getBondType()
const;
566 char getBondTypeChar()
const;
574 void setSymbol(
const String& symbol);
582 void unsetFinished();
586 bool isFinished()
const;
598 bool isLinked()
const;
602 void linkWith(
CTPNode* partner);
621 std::list<CTPNode*> children_;
642 :
public binary_function<const CTPNode*, const CTPNode*, bool>
647 if ((a != 0) && (b != 0))
660 Log.
error() <<
"greater_: got NULL pointers" << std::endl;
672 ConnectedToPredicate();
674 ConnectedToPredicate(const ConnectedToPredicate& predicate);
676 virtual ~ConnectedToPredicate();
678 virtual
void clear();
684 virtual
bool operator () (const
Atom& atom) const;
688 void dump(const CTPNode* current) const;
690 virtual
void setArgument(const String& argument);
699 HashMap<
char, std::pair<CTPNode*, CTPNode*> > link_map_;
707 CTPNode* createNewNode_(CTPNode* node);
714 void cleanUpNodes_(std::vector<CTPNode*>& all_nodes);
718 CTPNode* parse_(const String& input);
720 bool bondOrderMatch_(const Bond& bond, const CTPNode& node) const;
722 bool find_(const
Atom& atom, const CTPNode* current,
723 HashSet<const Bond*>& visited) const;
739 virtual bool operator () (
const Atom& atom)
const;
754 virtual bool operator () (
const Atom& atom)
const;
770 virtual bool operator () (
const Atom& atom)
const;
790 virtual bool operator () (
const Atom& atom)
const;
812 virtual bool operator () (
const Atom& atom)
const;
828 virtual bool operator () (
const Atom& atom)
const;
853 bool operator () (
const Atom& atom);
857 bool dfs(
const Atom& atom,
const Size limit);
863 void setRingSize(
Size n);
871 const std::vector<const Atom*>& getRingAtoms()
const;
877 const Atom* first_atom_;
893 std::vector<const Atom*> ring_atoms_;
919 virtual bool operator () (
const Atom& atom)
const;
935 #endif // BALL_KERNEL_STANDARDPREDICATES_H
Molecule * last_molecule_
#define BALL_CREATE(name)
HashSet< Atom * > matches_
BALL_EXPORT LogStream Log
std::list< CTPNode * >::const_iterator ConstIterator
LogStream & error(int n=0)
RingPerceptionProcessor ring_proc_
AromaticityProcessor arom_proc_
This processor provides methods for detection and assignment of aromaticity.
HashMap class based on the STL map (containing serveral convenience functions)
static HashMap< Molecule *, TimeStamp > call_time_map_
std::list< CTPNode * >::iterator Iterator
static Molecule dummy_molecule_