aimstil  5.0.5
ScalingMap.h
Go to the documentation of this file.
1 #ifndef TIL_SCALING_MAP_H
2 #define TIL_SCALING_MAP_H
3 
4 // includes from TIL library
5 #include "til/numeric_array.h"
6 #include "til/scaling.h"
7 
8 namespace til
9 {
10 
11  template < typename T >
12  class ScalingMap : public Scaling<T>, public Mapping_label
13  {
14  public: // constructors & destructor
15 
17  ScalingMap(const numeric_array<T,3> & scale, const numeric_array<T,3> & transl)
18  : Scaling<T>(scale, transl) {}
19 
20 
21  public: // functions
22 
23  template < typename V >
24  INLINE
27  {
28  // TODO: EXTREMELY INEFFICIENT, I WANT TO THROW ALL THIS VECTOR/POINT SHIT
29  // OUT OF THE WINDOW!!!!!!!!!!
30  return numeric_array<typename combine<T,V>::type, 3>(static_cast<Scaling<T> >(*this) * v);
31  //return Point<typename combine<T,V>::type, 3>(static_cast<Scaling<T> >(*this)*v.data());
32  //return (*this)*v;
33  }
34  };
35 
36 } // namespace til
37 
38 // Package includes
39 #include "scalingMapTools.h"
40 
41 #endif
42 
43 
Belongs to package Box Do not include directly, include til/Box.h instead.
Definition: Accumulator.h:10
#define INLINE
Definition: til_common.h:26
INLINE numeric_array< typename combine< T, V >::type, 3 > operator()(const numeric_array< V, 3 > &v) const
Definition: ScalingMap.h:26
Namespace for all linear algebra related stuff.
Definition: scaling.h:17
ScalingMap(const numeric_array< T, 3 > &scale, const numeric_array< T, 3 > &transl)
Definition: ScalingMap.h:17