Changeset 6b937bd for molecuilder/src/molecule.hpp
- Timestamp:
- Oct 19, 2009, 1:09:29 PM (16 years ago)
- Children:
- 3b0ba2
- Parents:
- 99bed3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/molecule.hpp
r99bed3 r6b937bd 146 146 147 147 // templates for allowing global manipulation of all atoms 148 template <typename res > void ActOnAllAtoms( res (atom::*f)() );149 template <typename res > void ActOnAllAtoms( res (atom::*f)() const );150 template <typename res > void ActOnAllAtoms( res (atom::*f)() ) const;151 template <typename res > void ActOnAllAtoms( res (atom::*f)() const) const;152 template <typename res, typename T> void ActOnAllAtoms( res (atom::*f)(T), T t );153 template <typename res, typename T> void ActOnAllAtoms( res (atom::*f)(T) const, T t );154 template <typename res, typename T> void ActOnAllAtoms( res (atom::*f)(T), T t ) const;155 template <typename res, typename T> void ActOnAllAtoms( res (atom::*f)(T) const, T t ) const;156 template <typename res, typename T, typename U> void ActOnAllAtoms( res (atom::*f)(T, U), T t, U u );157 template <typename res, typename T, typename U> void ActOnAllAtoms( res (atom::*f)(T, U) const, T t, U u );158 template <typename res, typename T, typename U> void ActOnAllAtoms( res (atom::*f)(T, U), T t, U u ) const;159 template <typename res, typename T, typename U> void ActOnAllAtoms( res (atom::*f)(T, U) const, T t, U u ) const;160 template <typename res, typename T, typename U, typename V> void ActOnAllAtoms( res (atom::*f)(T, U, V), T t, U u, V v);161 template <typename res, typename T, typename U, typename V> void ActOnAllAtoms( res (atom::*f)(T, U, V) const, T t, U u, V v);162 template <typename res, typename T, typename U, typename V> void ActOnAllAtoms( res (atom::*f)(T, U, V), T t, U u, V v) const;163 template <typename res, typename T, typename U, typename V> void ActOnAllAtoms( res (atom::*f)(T, U, V) const, T t, U u, V v) const;164 template <typename res, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (atom::*f)(T, U, V, W), T t, U u, V v, W w);165 template <typename res, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (atom::*f)(T, U, V, W) const, T t, U u, V v, W w);166 template <typename res, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (atom::*f)(T, U, V, W), T t, U u, V v, W w) const;167 template <typename res, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (atom::*f)(T, U, V, W) const, T t, U u, V v, W w) const;148 template <typename res, typename typ> void ActOnAllAtoms( res (typ::*f)() ); 149 template <typename res, typename typ> void ActOnAllAtoms( res (typ::*f)() const ); 150 template <typename res, typename typ> void ActOnAllAtoms( res (typ::*f)() ) const; 151 template <typename res, typename typ> void ActOnAllAtoms( res (typ::*f)() const) const; 152 template <typename res, typename typ, typename T> void ActOnAllAtoms( res (typ::*f)(T), T t ); 153 template <typename res, typename typ, typename T> void ActOnAllAtoms( res (typ::*f)(T) const, T t ); 154 template <typename res, typename typ, typename T> void ActOnAllAtoms( res (typ::*f)(T), T t ) const; 155 template <typename res, typename typ, typename T> void ActOnAllAtoms( res (typ::*f)(T) const, T t ) const; 156 template <typename res, typename typ, typename T, typename U> void ActOnAllAtoms( res (typ::*f)(T, U), T t, U u ); 157 template <typename res, typename typ, typename T, typename U> void ActOnAllAtoms( res (typ::*f)(T, U) const, T t, U u ); 158 template <typename res, typename typ, typename T, typename U> void ActOnAllAtoms( res (typ::*f)(T, U), T t, U u ) const; 159 template <typename res, typename typ, typename T, typename U> void ActOnAllAtoms( res (typ::*f)(T, U) const, T t, U u ) const; 160 template <typename res, typename typ, typename T, typename U, typename V> void ActOnAllAtoms( res (typ::*f)(T, U, V), T t, U u, V v); 161 template <typename res, typename typ, typename T, typename U, typename V> void ActOnAllAtoms( res (typ::*f)(T, U, V) const, T t, U u, V v); 162 template <typename res, typename typ, typename T, typename U, typename V> void ActOnAllAtoms( res (typ::*f)(T, U, V), T t, U u, V v) const; 163 template <typename res, typename typ, typename T, typename U, typename V> void ActOnAllAtoms( res (typ::*f)(T, U, V) const, T t, U u, V v) const; 164 template <typename res, typename typ, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (typ::*f)(T, U, V, W), T t, U u, V v, W w); 165 template <typename res, typename typ, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (typ::*f)(T, U, V, W) const, T t, U u, V v, W w); 166 template <typename res, typename typ, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (typ::*f)(T, U, V, W), T t, U u, V v, W w) const; 167 template <typename res, typename typ, typename T, typename U, typename V, typename W> void ActOnAllAtoms( res (typ::*f)(T, U, V, W) const, T t, U u, V v, W w) const; 168 168 169 169 // templates for allowing conditional global copying of molecule with each atom as single argument … … 174 174 175 175 // templates for allowing global manipulation of an array with one entry per atom 176 void SetIndexedArrayForEachAtomTo ( atom **array, int TesselPoint::* index);177 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::* index, void (*Setor)(T *, T *));178 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::* index, void (*Setor)(T *, T *), T t);179 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::* index, void (*Setor)(T *, T *), T *t);180 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int element::* index, void (*Setor)(T *, T *));181 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int element::* index, void (*Setor)(T *, T *), T t);182 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int element::* index, void (*Setor)(T *, T *), T *t);183 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::*index, T (atom::*Setor)(Vector &), Vector atom::*value);184 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int TesselPoint::*index, T (atom::*Setor)(Vector &), Vector &vect );176 void SetIndexedArrayForEachAtomTo ( atom **array, int ParticleInfo::* index); 177 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::* index, void (*Setor)(T *, T *)); 178 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::* index, void (*Setor)(T *, T *), T t); 179 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::* index, void (*Setor)(T *, T *), T *t); 180 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int element::* index, void (*Setor)(T *, T *)); 181 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int element::* index, void (*Setor)(T *, T *), T t); 182 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int element::* index, void (*Setor)(T *, T *), T *t); 183 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(Vector &), Vector atom::*value); 184 template <typename T> void SetIndexedArrayForEachAtomTo ( T *array, int ParticleInfo::*index, T (atom::*Setor)(Vector &), Vector &vect ); 185 185 186 186 // templates for allowing global manipulation of each atom by entries in an array 187 template <typename T> void SetAtomValueToIndexedArray ( T *array, int TesselPoint::*index, T atom::*value ); 188 template <typename T> void SetAtomValueToIndexedArray ( T *array, int element::*index, T atom::*value ); 189 template <typename T> void SetAtomValueToValue ( T value, T atom::*ptr ); 190 191 template <typename res> res SumPerAtom(res (atom::*f)() ); 192 template <typename res> res SumPerAtom(res (atom::*f)() const ); 193 template <typename res> res SumPerAtom(res (atom::*f)() ) const; 194 template <typename res> res SumPerAtom(res (atom::*f)() const ) const; 195 template <typename T, typename res> res SumPerAtom(res (atom::*f)(T) , T t ); 196 template <typename T, typename res> res SumPerAtom(res (atom::*f)(T) const, T t ); 197 template <typename T, typename res> res SumPerAtom(res (atom::*f)(T) , T t ) const; 198 template <typename T, typename res> res SumPerAtom(res (atom::*f)(T) const, T t ) const; 187 template <typename T, typename typ, typename typ2> void SetAtomValueToIndexedArray ( T *array, int typ::*index, T typ2::*value ); 188 template <typename T, typename typ> void SetAtomValueToValue ( T value, T typ::*ptr ); 189 190 template <typename res, typename typ> res SumPerAtom(res (typ::*f)() ); 191 template <typename res, typename typ> res SumPerAtom(res (typ::*f)() const ); 192 template <typename res, typename typ> res SumPerAtom(res (typ::*f)() ) const; 193 template <typename res, typename typ> res SumPerAtom(res (typ::*f)() const ) const; 194 template <typename res, typename typ, typename T> res SumPerAtom(res (typ::*f)(T) , T t ); 195 template <typename res, typename typ, typename T> res SumPerAtom(res (typ::*f)(T) const, T t ); 196 template <typename res, typename typ, typename T> res SumPerAtom(res (typ::*f)(T) , T t ) const; 197 template <typename res, typename typ, typename T> res SumPerAtom(res (typ::*f)(T) const, T t ) const; 199 198 200 199 /// remove atoms from molecule.
Note:
See TracChangeset
for help on using the changeset viewer.