Browse Source

Added Point*D::vector() function.

Equivalent to xy() and xyz(), useful for seamless 2D/3D integration.
vectorfields
Vladimír Vondruš 14 years ago
parent
commit
6aa7e3e806
  1. 9
      src/Math/Point2D.h
  2. 9
      src/Math/Point3D.h

9
src/Math/Point2D.h

@ -58,6 +58,15 @@ template<class T> class Point2D: public Vector3<T> {
*/
inline constexpr Point2D(const Vector<2, T>& xy, T z = T(1)): Vector3<T>(xy, z) {}
/**
* @brief Vector part of the point
*
* Equivalent to calling xy(). Useful for seamless 2D/3D integration.
* @see Point3D::vector()
*/
inline Vector2<T>& vector() { return Vector3<T>::xy(); }
inline constexpr Vector2<T> vector() const { return Vector3<T>::xy(); } /**< @overload */
MAGNUM_VECTOR_SUBCLASS_IMPLEMENTATION(Point2D, 3)
MAGNUM_RECTANGULARMATRIX_SUBCLASS_OPERATOR_IMPLEMENTATION(1, 3, Point2D<T>)
};

9
src/Math/Point3D.h

@ -59,6 +59,15 @@ template<class T> class Point3D: public Vector4<T> {
*/
inline constexpr Point3D(const Vector<3, T>& xyz, T w = T(1)): Vector4<T>(xyz, w) {}
/**
* @brief Vector part of the point
*
* Equivalent to calling xyz(). Useful for seamless 2D/3D integration.
* @see Point2D::vector()
*/
inline Vector3<T>& vector() { return Vector4<T>::xyz(); }
inline constexpr Vector3<T> vector() const { return Vector4<T>::xyz(); } /**< @overload */
MAGNUM_VECTOR_SUBCLASS_IMPLEMENTATION(Point3D, 4)
MAGNUM_RECTANGULARMATRIX_SUBCLASS_OPERATOR_IMPLEMENTATION(1, 4, Point3D<T>)
};

Loading…
Cancel
Save