Ignore:
Timestamp:
Oct 19, 2009, 1:09:29 PM (16 years ago)
Author:
Frederik Heber <heber@…>
Children:
3b0ba2
Parents:
99bed3
Message:

Huge Refactoring: class atom split up into several inherited classes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • molecuilder/src/molecule.hpp

    r99bed3 r6b937bd  
    146146
    147147  // 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;
    168168
    169169  // templates for allowing conditional global copying of molecule with each atom as single argument
     
    174174
    175175  // 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 );
    185185
    186186  // 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;
    199198
    200199  /// remove atoms from molecule.
Note: See TracChangeset for help on using the changeset viewer.