BALL  1.5.0
KERNEL/predicate.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: predicate.h,v 1.24 2005/10/23 12:02:19 oliver Exp $
5 //
6 
7 #ifndef BALL_KERNEL_PREDICATE_H
8 #define BALL_KERNEL_PREDICATE_H
9 
10 #ifndef BALL_COMMON_RTTI_H
11 # include <BALL/COMMON/rtti.h>
12 #endif
13 
14 #ifndef BALL_CONCEPT_PREDICATE_H
15 # include <BALL/CONCEPT/predicate.h>
16 #endif
17 
18 #ifndef BALL_CONCEPT_COMPOSITE_H
19 # include <BALL/CONCEPT/composite.h>
20 #endif
21 
22 namespace BALL
23 {
24  class Atom;
25  class Molecule;
26  class Protein;
27  class Fragment;
28  class Residue;
29  class Chain;
30 
55 
56 
57 #ifndef BALL_KERNEL_PREDICATE_TYPE
58 #define BALL_KERNEL_PREDICATE_TYPE
60 #endif
61 
63  template <class T>
65  : public UnaryPredicate<Composite>
66  {
67  public:
68 
70  virtual bool operator () (const Composite& composite) const;
71  virtual ~KernelPredicate() {}
72  };
73 
74  template <>
76  : public UnaryPredicate<Composite>
77  {
78  public:
79 
81  virtual bool operator () (const Composite& composite) const;
82  virtual ~KernelPredicate() {}
83  };
84 
85  template <>
87  : public UnaryPredicate<Composite>
88  {
89  public:
90 
92  virtual bool operator () (const Composite& composite) const;
93  virtual ~KernelPredicate() {}
94  };
95 
96  template <>
98  : public UnaryPredicate<Composite>
99  {
100  public:
101 
103  virtual bool operator () (const Composite& composite) const;
104  virtual ~KernelPredicate() {}
105  };
106 
107  template <>
109  : public UnaryPredicate<Composite>
110  {
111  public:
112 
114  virtual bool operator () (const Composite& composite) const;
115  virtual ~KernelPredicate() {}
116  };
117 
118  template <>
120  : public UnaryPredicate<Composite>
121  {
122  public:
123 
125  virtual bool operator () (const Composite& composite) const;
126  virtual ~KernelPredicate() {}
127  };
128 
129  template <>
131  : public UnaryPredicate<Composite>
132  {
133  public:
134 
136  virtual bool operator () (const Composite& composite) const;
137  virtual ~KernelPredicate() {}
138  };
139 
140  inline bool KernelPredicate<Atom>::operator () (const Composite& composite) const
141  {
142  return composite.isAtom();
143  }
144 
145  inline bool KernelPredicate<Molecule>::operator () (const Composite& composite) const
146  {
147  return composite.isMolecule();
148  }
149 
150  inline bool KernelPredicate<Protein>::operator () (const Composite& composite) const
151  {
152  return composite.isProtein();
153  }
154 
155  inline bool KernelPredicate<Fragment>::operator () (const Composite& composite) const
156  {
157  return composite.isFragment();
158  }
159 
160  inline bool KernelPredicate<Residue>::operator () (const Composite& composite) const
161  {
162  return composite.isResidue();
163  }
164 
165  inline bool KernelPredicate<Chain>::operator () (const Composite& composite) const
166  {
167  return composite.isChain();
168  }
169 
170  template <class T>
171  bool KernelPredicate<T>::operator () (const Composite& composite) const
172  {
173  return RTTI::isKindOf<T>(&composite);
174  }
175 
177 
178 } // namespace BALL
179 
180 
181 #endif // BALL_KERNEL_PREDICATE_H
rtti.h
BALL::KernelPredicate::operator()
virtual bool operator()(const Composite &composite) const
Constant virtual RTTI evaluation operator.
Definition: KERNEL/predicate.h:171
BALL::KernelPredicate< Protein >::~KernelPredicate
virtual ~KernelPredicate()
Definition: KERNEL/predicate.h:104
BALL::Chain
Definition: chain.h:32
BALL::KernelPredicate< Fragment >::~KernelPredicate
virtual ~KernelPredicate()
Definition: KERNEL/predicate.h:115
BALL::KernelPredicate::~KernelPredicate
virtual ~KernelPredicate()
Definition: KERNEL/predicate.h:71
BALL::Molecule
Definition: molecule.h:31
BALL::KernelPredicate
Kernel predicate class.
Definition: KERNEL/predicate.h:66
BALL::Atom
Definition: atom.h:90
BALL::Residue
Definition: residue.h:38
BALL::Protein
Definition: protein.h:30
BALL
Definition: constants.h:13
BALL::KernelPredicate< Residue >::~KernelPredicate
virtual ~KernelPredicate()
Definition: KERNEL/predicate.h:126
BALL::Composite::isChain
virtual bool isChain() const
Definition: composite.h:782
BALL::Composite::isFragment
virtual bool isFragment() const
Definition: composite.h:772
BALL::PDB::Atom
char Atom[5]
Definition: PDBdefs.h:257
BALL::Composite::isAtom
virtual bool isAtom() const
Definition: composite.h:757
BALL::Composite::isResidue
virtual bool isResidue() const
Definition: composite.h:777
BALL::UnaryPredicate< Composite >
BALL::Composite
Definition: composite.h:74
BALL::KernelPredicate< Molecule >::~KernelPredicate
virtual ~KernelPredicate()
Definition: KERNEL/predicate.h:93
predicate.h
BALL::Fragment
Definition: fragment.h:22
BALL::KernelPredicateType
UnaryPredicate< Composite > KernelPredicateType
Definition: KERNEL/predicate.h:59
composite.h
BALL::Composite::isProtein
virtual bool isProtein() const
Definition: composite.h:767
BALL::Composite::isMolecule
virtual bool isMolecule() const
Definition: composite.h:762
BALL::KernelPredicate< Atom >::~KernelPredicate
virtual ~KernelPredicate()
Definition: KERNEL/predicate.h:82
BALL::KernelPredicate< Chain >::~KernelPredicate
virtual ~KernelPredicate()
Definition: KERNEL/predicate.h:137