BALL 1.5.0
Loading...
Searching...
No Matches
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
16#endif
17
18#ifndef BALL_CONCEPT_COMPOSITE_H
20#endif
21
22namespace 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
bool isKindOf(const U *u)
Definition rtti.h:192
char Atom[5]
Definition PDBdefs.h:257
virtual bool isChain() const
Definition composite.h:782
virtual bool isResidue() const
Definition composite.h:777
virtual bool isAtom() const
Definition composite.h:757
virtual bool isProtein() const
Definition composite.h:767
virtual bool isFragment() const
Definition composite.h:772
virtual bool isMolecule() const
Definition composite.h:762
Kernel predicate class.
virtual bool operator()(const Composite &composite) const
Constant virtual RTTI evaluation operator.