ScalarTypeDeferer.h
Go to the documentation of this file.
1 #ifndef GfxTL__SCALARTYPEDEFERER_HEADER__
2 #define GfxTL__SCALARTYPEDEFERER_HEADER__
3 #include <memory>
4 #include <vector>
5 
6 #include <GfxTL/Array.h>
7 #include <GfxTL/VectorXD.h>
8 #include <MiscLib/Vector.h>
9 
10 namespace GfxTL
11 {
12  template <class PointT>
14  {
15  typedef typename PointT::value_type ScalarType;
16  };
17 
18  template <class ScalarT>
19  struct ScalarTypeDeferer<ScalarT*>
20  {
21  typedef ScalarT ScalarType;
22  };
23 
24  template <class ScalarT>
25  struct ScalarTypeDeferer<const ScalarT*>
26  {
27  typedef ScalarT ScalarType;
28  };
29 
30  template <unsigned int DimT, class ScalarT>
31  struct ScalarTypeDeferer<VectorXD<DimT, ScalarT>>
32  {
33  typedef ScalarT ScalarType;
34  };
35 
36  template <>
38  {
39  typedef float ScalarType;
40  };
41 
42  template <>
43  struct ScalarTypeDeferer<double>
44  {
45  typedef double ScalarType;
46  };
47 
48  template <>
49  struct ScalarTypeDeferer<int>
50  {
51  typedef int ScalarType;
52  };
53 
54  template <>
55  struct ScalarTypeDeferer<char>
56  {
57  typedef char ScalarType;
58  };
59 
60  template <>
61  struct ScalarTypeDeferer<short>
62  {
63  typedef short ScalarType;
64  };
65 
66  template <class IteratorT>
67  struct ScalarTypeDeferer<ArrayAccessor<1, IteratorT>>
68  {
70  };
71 
72  template <class T>
73  struct ScalarTypeDeferer<std::auto_ptr<T>>
74  {
75  typedef T ScalarType;
76  };
77 
78  template <class T, class A>
80  {
81  typedef T ScalarType;
82  };
83 
84  template <class T, class A>
85  struct ScalarTypeDeferer<std::vector<T, A>>
86  {
87  typedef T ScalarType;
88  };
89 }; // namespace GfxTL
90 
91 #endif
GfxTL::VectorXD
Definition: MatrixXX.h:24
GfxTL::ScalarTypeDeferer
Definition: ScalarTypeDeferer.h:13
Vector.h
GfxTL::ScalarTypeDeferer< int >::ScalarType
int ScalarType
Definition: ScalarTypeDeferer.h:51
GfxTL::ScalarTypeDeferer< VectorXD< DimT, ScalarT > >::ScalarType
ScalarT ScalarType
Definition: ScalarTypeDeferer.h:33
GfxTL::ScalarTypeDeferer::ScalarType
PointT::value_type ScalarType
Definition: ScalarTypeDeferer.h:15
Array.h
VectorXD.h
GfxTL::ScalarTypeDeferer< float >::ScalarType
float ScalarType
Definition: ScalarTypeDeferer.h:39
GfxTL::ScalarTypeDeferer< ArrayAccessor< 1, IteratorT > >::ScalarType
ArrayAccessor< 1, IteratorT >::value_type ScalarType
Definition: ScalarTypeDeferer.h:69
MiscLib
Definition: AlignedAllocator.h:12
GfxTL::ScalarTypeDeferer< std::auto_ptr< T > >::ScalarType
T ScalarType
Definition: ScalarTypeDeferer.h:75
GfxTL::ScalarTypeDeferer< double >::ScalarType
double ScalarType
Definition: ScalarTypeDeferer.h:45
GfxTL
Definition: AABox.h:9
GfxTL::ScalarTypeDeferer< MiscLib::Vector< T, A > >::ScalarType
T ScalarType
Definition: ScalarTypeDeferer.h:81
GfxTL::ArrayAccessor
Definition: Array.h:10
float
#define float
Definition: 16_Level.h:22
std
Definition: Application.h:66
GfxTL::ScalarTypeDeferer< std::vector< T, A > >::ScalarType
T ScalarType
Definition: ScalarTypeDeferer.h:87
GfxTL::ScalarTypeDeferer< ScalarT * >::ScalarType
ScalarT ScalarType
Definition: ScalarTypeDeferer.h:21
Eigen::Matrix
Definition: EigenForwardDeclarations.h:27
GfxTL::ScalarTypeDeferer< short >::ScalarType
short ScalarType
Definition: ScalarTypeDeferer.h:63
T
float T
Definition: UnscentedKalmanFilterTest.cpp:38
GfxTL::ScalarTypeDeferer< char >::ScalarType
char ScalarType
Definition: ScalarTypeDeferer.h:57
GfxTL::ScalarTypeDeferer< const ScalarT * >::ScalarType
ScalarT ScalarType
Definition: ScalarTypeDeferer.h:27