Go to the documentation of this file. 1 #ifndef GfxTL__VECTORKERNEL_HEADER__
2 #define GfxTL__VECTORKERNEL_HEADER__
28 template<
unsigned int DimT >
41 template<
class DimensionStrategyT,
class BaseT = NullClass >
44 ,
public DimensionStrategyT
48 template<
class Po
intAT,
class Po
intBT >
51 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
57 template<
class Po
intAT,
class Po
intBT,
class Po
intDT >
58 void Add(
const PointAT&
a,
const PointBT& b, PointDT* d)
const
60 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
62 (*d)[i] =
a[i] + b[i];
66 template<
class Po
intAT,
class Po
intBT,
class Po
intDT >
67 void Sub(
const PointAT&
a,
const PointBT& b, PointDT* d)
const
69 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
71 (*d)[i] =
a[i] - b[i];
75 template<
class Po
intAT,
class Po
intBT >
82 >::MultiplicationType,
88 >::AdditionType
Dot(
const PointAT&
a,
const PointBT& b)
const
96 >::MultiplicationType,
101 >::MultiplicationType
102 >::AdditionType d =
a[0] * b[0];
103 for (
unsigned int i = 1; i < DimensionStrategyT::m_dim; ++i)
110 template<
class Po
intAT,
class Po
intBT >
114 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
121 template<
class BaseT = NullClass >
122 struct DynVectorKernel
123 :
public VectorKernel< DynamicDimensionVectorKernelStrategy, BaseT >
126 template<
unsigned int DimT >
129 template<
class BaseT = NullClass >
131 :
public VectorKernel< FixedDimensionVectorKernelStrategy< DimT >, BaseT >
void Add(const PointAT &a, const PointBT &b, PointDT *d) const
void Dimension(unsigned int dim)
ScalarTypeConversion< typename ScalarTypeConversion< typename ScalarTypeDeferer< PointAT >::ScalarType, typename ScalarTypeDeferer< PointBT >::ScalarType >::MultiplicationType, typename ScalarTypeConversion< typename ScalarTypeDeferer< PointAT >::ScalarType, typename ScalarTypeDeferer< PointBT >::ScalarType >::MultiplicationType >::AdditionType Dot(const PointAT &a, const PointBT &b) const
PointT::value_type ScalarType
const unsigned int Dimension() const
double a(double t, double a0, double j)
void Sub(const PointAT &a, const PointBT &b, PointDT *d) const
DimensionStrategyT DimensionStrategyType
const unsigned int Dimension() const
void AssignVector(const PointAT &a, const PointBT *b) const
void Mul(typename ScalarTypeDeferer< PointAT >::ScalarType s, const PointAT &a, PointBT *b) const
double s(double t, double s0, double v0, double a0, double j)