1 #ifndef GeometryVector_Vector2DBase_h 2 #define GeometryVector_Vector2DBase_h 7 template <
class T,
class FrameTag>
90 template <
class T,
class U,
class FrameTag>
97 template <
class T,
class U,
class FrameTag>
105 template <
class T,
class U,
class FrameTag>
114 template <
class T,
class FrameTag,
class Scalar>
120 template <
class T,
class FrameTag,
class Scalar>
128 template <
class T,
class FrameTag,
class Scalar>
133 #endif // GeometryVector_Vector2DBase_h Vector2DBase & operator+=(const Vector2DBase< U, FrameTag > &v)
PV2DBase< T, VectorTag, FrameTag > BaseClass
Vector2DBase & operator*=(const T &t)
Scaling by a scalar value (multiplication)
Vector2DBase & operator/=(const T &t)
Scaling by a scalar value (division)
Vector2DBase(const Vector2DBase< U, FrameTag > &p)
Vector2DBase(const T &x, const T &y)
construct from cartesian coordinates
Vector2DBase unit() const
Vector2DBase & operator-=(const Vector2DBase< U, FrameTag > &v)
Vector2DBase(const Basic2DVector< U > &v)
Vector2DBase< typename PreciseFloatType< T, U >::Type, FrameTag > operator-(const Vector2DBase< T, FrameTag > &v1, const Vector2DBase< U, FrameTag > &v2)
Vector2DBase< typename PreciseFloatType< T, U >::Type, FrameTag > operator+(const Vector2DBase< T, FrameTag > &v1, const Vector2DBase< U, FrameTag > &v2)
vector sum and subtraction of vectors of possibly different precision
Vector2DBase< T, FrameTag > operator/(const Vector2DBase< T, FrameTag > &v, const Scalar &s)
const BasicVectorType & basicVector() const
Vector2DBase operator-() const
Unary minus, returns a vector with components (-x(),-y())
PreciseFloatType< T, U >::Type dot(const Vector2DBase< U, FrameTag > &v) const
T dot(const Basic2DVector &lh) const
Scalar product, or "dot" product, with a vector of same type.
Vector2DBase(const Polar &set)
construct from polar coordinates
Basic2DVector< T > BasicVectorType
PreciseFloatType< T, U >::Type operator*(const Vector2DBase< T, FrameTag > &v1, const Vector2DBase< U, FrameTag > &v2)
scalar product of vectors of possibly different precision