BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
UnaryPredicate< Composite > KernelPredicateType
virtual bool isProtein() const
Definition: composite.h:767
virtual bool operator()(const Composite &composite) const
Constant virtual RTTI evaluation operator.
virtual bool isFragment() const
Definition: composite.h:772
virtual bool isChain() const
Definition: composite.h:782
virtual bool isAtom() const
Definition: composite.h:757
Kernel predicate class.
virtual bool isResidue() const
Definition: composite.h:777
char Atom[5]
Definition: PDBdefs.h:257
virtual bool isMolecule() const
Definition: composite.h:762