Go to the documentation of this file. 1 #ifndef GfxTL__VECTORKERNEL_HEADER__
2 #define GfxTL__VECTORKERNEL_HEADER__
30 template <
unsigned int DimT>
47 template <
class DimensionStrategyT,
class BaseT = NullClass>
52 template <
class Po
intAT,
class Po
intBT>
56 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
62 template <
class Po
intAT,
class Po
intBT,
class Po
intDT>
64 Add(
const PointAT&
a,
const PointBT& b, PointDT* d)
const
66 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
68 (*d)[i] =
a[i] + b[i];
72 template <
class Po
intAT,
class Po
intBT,
class Po
intDT>
74 Sub(
const PointAT&
a,
const PointBT& b, PointDT* d)
const
76 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
78 (*d)[i] =
a[i] - b[i];
82 template <
class Po
intAT,
class Po
intBT>
90 Dot(
const PointAT&
a,
const PointBT& b)
const
98 MultiplicationType>::AdditionType d =
a[0] * b[0];
99 for (
unsigned int i = 1; i < DimensionStrategyT::m_dim; ++i)
106 template <
class Po
intAT,
class Po
intBT>
110 for (
unsigned int i = 0; i < DimensionStrategyT::m_dim; ++i)
117 template <
class BaseT = NullClass>
118 struct DynVectorKernel :
public VectorKernel<DynamicDimensionVectorKernelStrategy, BaseT>
122 template <
unsigned int DimT>
125 template <
class BaseT = NullClass>
127 public VectorKernel<FixedDimensionVectorKernelStrategy<DimT>, BaseT>
void Add(const PointAT &a, const PointBT &b, PointDT *d) const
void Dimension(unsigned int dim)
PointT::value_type ScalarType
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
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)