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 Dimension(unsigned int dim)
const unsigned int Dimension() const
const unsigned int Dimension() const
PointT::value_type ScalarType
ScalarTypeConversion< typenameScalarTypeConversion< typenameScalarTypeDeferer< PointAT >::ScalarType, typenameScalarTypeDeferer< PointBT >::ScalarType >::MultiplicationType, typenameScalarTypeConversion< typenameScalarTypeDeferer< PointAT >::ScalarType, typenameScalarTypeDeferer< PointBT >::ScalarType >::MultiplicationType >::AdditionType Dot(const PointAT &a, const PointBT &b) const
void Mul(typename ScalarTypeDeferer< PointAT >::ScalarType s, const PointAT &a, PointBT *b) const
void AssignVector(const PointAT &a, const PointBT *b) const
void Add(const PointAT &a, const PointBT &b, PointDT *d) const
DimensionStrategyT DimensionStrategyType
void Sub(const PointAT &a, const PointBT &b, PointDT *d) const