From 8dfef999153c79b5dab6dee48e4cd44323d6558e Mon Sep 17 00:00:00 2001 From: tobspr Date: Sun, 7 Feb 2016 19:45:01 +0100 Subject: [PATCH] Fix swizzle masks on vector types --- panda/src/linmath/lpoint3_src.h | 4 ++++ panda/src/linmath/lpoint4_src.I | 22 ++++++++++++++++++++++ panda/src/linmath/lpoint4_src.h | 6 ++++++ panda/src/linmath/lvecBase3_src.h | 2 ++ panda/src/linmath/lvecBase4_src.h | 3 ++- panda/src/linmath/lvector3_src.h | 5 +++++ panda/src/linmath/lvector4_src.I | 20 ++++++++++++++++++++ panda/src/linmath/lvector4_src.h | 6 ++++++ 8 files changed, 67 insertions(+), 1 deletion(-) diff --git a/panda/src/linmath/lpoint3_src.h b/panda/src/linmath/lpoint3_src.h index 0be8774815..37b92266d6 100644 --- a/panda/src/linmath/lpoint3_src.h +++ b/panda/src/linmath/lpoint3_src.h @@ -42,6 +42,10 @@ PUBLISHED: INLINE_LINMATH FLOATNAME(LPoint2) get_xz() const; INLINE_LINMATH FLOATNAME(LPoint2) get_yz() const; + MAKE_PROPERTY(xy, get_xy); + MAKE_PROPERTY(xz, get_xz); + MAKE_PROPERTY(yz, get_yz); + INLINE_LINMATH FLOATNAME(LPoint3) operator - () const; INLINE_LINMATH FLOATNAME(LVecBase3) diff --git a/panda/src/linmath/lpoint4_src.I b/panda/src/linmath/lpoint4_src.I index 0e37a0c533..d52b2eafa8 100644 --- a/panda/src/linmath/lpoint4_src.I +++ b/panda/src/linmath/lpoint4_src.I @@ -105,6 +105,28 @@ unit_w() { return (const FLOATNAME(LPoint4) &)FLOATNAME(LVecBase4)::unit_w(); } + +//////////////////////////////////////////////////////////////////// +// Function: LPoint4::get_xyz +// Access: Published +// Description: Returns the x, y and z component of this vector +//////////////////////////////////////////////////////////////////// +INLINE_LINMATH FLOATNAME(LPoint3) FLOATNAME(LPoint4):: +get_xyz() const { + return FLOATNAME(LPoint3)(_v(0), _v(1), _v(2)); +} + +//////////////////////////////////////////////////////////////////// +// Function: LPoint4::get_xy +// Access: Published +// Description: Returns the x and y component of this vector +//////////////////////////////////////////////////////////////////// +INLINE_LINMATH FLOATNAME(LPoint2) FLOATNAME(LPoint4):: +get_xy() const { + return FLOATNAME(LPoint2)(_v(0), _v(1)); +} + + //////////////////////////////////////////////////////////////////// // Function: LPoint4::unary - // Access: Public diff --git a/panda/src/linmath/lpoint4_src.h b/panda/src/linmath/lpoint4_src.h index a9c4ed59fe..d0702b2202 100644 --- a/panda/src/linmath/lpoint4_src.h +++ b/panda/src/linmath/lpoint4_src.h @@ -33,6 +33,12 @@ PUBLISHED: INLINE_LINMATH static const FLOATNAME(LPoint4) &unit_z(); INLINE_LINMATH static const FLOATNAME(LPoint4) &unit_w(); + INLINE_LINMATH FLOATNAME(LPoint3) get_xyz() const; + INLINE_LINMATH FLOATNAME(LPoint2) get_xy() const; + + MAKE_PROPERTY(xyz, get_xyz); + MAKE_PROPERTY(xy, get_xy); + INLINE_LINMATH FLOATNAME(LPoint4) operator - () const; INLINE_LINMATH FLOATNAME(LVecBase4) diff --git a/panda/src/linmath/lvecBase3_src.h b/panda/src/linmath/lvecBase3_src.h index f7641df367..ed7dfc5a7b 100644 --- a/panda/src/linmath/lvecBase3_src.h +++ b/panda/src/linmath/lvecBase3_src.h @@ -74,6 +74,8 @@ PUBLISHED: MAKE_PROPERTY(y, get_y, set_y); MAKE_PROPERTY(z, get_z, set_z); MAKE_PROPERTY(xy, get_xy); + MAKE_PROPERTY(xz, get_xz); + MAKE_PROPERTY(yz, get_yz); // These next functions add to an existing value. // i.e. foo.set_x(foo.get_x() + value) diff --git a/panda/src/linmath/lvecBase4_src.h b/panda/src/linmath/lvecBase4_src.h index 79b136eec1..3f43170eae 100644 --- a/panda/src/linmath/lvecBase4_src.h +++ b/panda/src/linmath/lvecBase4_src.h @@ -84,8 +84,9 @@ PUBLISHED: MAKE_PROPERTY(x, get_x, set_x); MAKE_PROPERTY(y, get_y, set_y); MAKE_PROPERTY(z, get_z, set_z); - MAKE_PROPERTY(xy, get_xy); + MAKE_PROPERTY(xyz, get_xyz); + MAKE_PROPERTY(xy, get_xy); // These next functions add to an existing value. // i.e. foo.set_x(foo.get_x() + value) diff --git a/panda/src/linmath/lvector3_src.h b/panda/src/linmath/lvector3_src.h index 926f5280bb..47ea8a0661 100644 --- a/panda/src/linmath/lvector3_src.h +++ b/panda/src/linmath/lvector3_src.h @@ -42,6 +42,11 @@ PUBLISHED: INLINE_LINMATH FLOATNAME(LVector2) get_xz() const; INLINE_LINMATH FLOATNAME(LVector2) get_yz() const; + MAKE_PROPERTY(xy, get_xy); + MAKE_PROPERTY(xz, get_xz); + MAKE_PROPERTY(yz, get_yz); + + INLINE_LINMATH FLOATNAME(LVector3) operator - () const; INLINE_LINMATH FLOATNAME(LVecBase3) operator + (const FLOATNAME(LVecBase3) &other) const; diff --git a/panda/src/linmath/lvector4_src.I b/panda/src/linmath/lvector4_src.I index 047b7b2232..25751638f2 100644 --- a/panda/src/linmath/lvector4_src.I +++ b/panda/src/linmath/lvector4_src.I @@ -105,6 +105,26 @@ unit_w() { return (const FLOATNAME(LVector4) &)FLOATNAME(LVecBase4)::unit_w(); } +//////////////////////////////////////////////////////////////////// +// Function: LVector4::get_xyz +// Access: Published +// Description: Returns the x, y and z component of this vector +//////////////////////////////////////////////////////////////////// +INLINE_LINMATH FLOATNAME(LVector3) FLOATNAME(LVector4):: +get_xyz() const { + return FLOATNAME(LVector3)(_v(0), _v(1), _v(2)); +} + +//////////////////////////////////////////////////////////////////// +// Function: LVector4::get_xy +// Access: Published +// Description: Returns the x and y component of this vector +//////////////////////////////////////////////////////////////////// +INLINE_LINMATH FLOATNAME(LVector2) FLOATNAME(LVector4):: +get_xy() const { + return FLOATNAME(LVector2)(_v(0), _v(1)); +} + //////////////////////////////////////////////////////////////////// // Function: LVector4::unary - // Access: Public diff --git a/panda/src/linmath/lvector4_src.h b/panda/src/linmath/lvector4_src.h index a4cda0f612..722d60d708 100644 --- a/panda/src/linmath/lvector4_src.h +++ b/panda/src/linmath/lvector4_src.h @@ -33,6 +33,12 @@ PUBLISHED: INLINE_LINMATH static const FLOATNAME(LVector4) &unit_z(); INLINE_LINMATH static const FLOATNAME(LVector4) &unit_w(); + INLINE_LINMATH FLOATNAME(LVector3) get_xyz() const; + INLINE_LINMATH FLOATNAME(LVector2) get_xy() const; + + MAKE_PROPERTY(xyz, get_xyz); + MAKE_PROPERTY(xy, get_xy); + INLINE_LINMATH FLOATNAME(LVector4) operator - () const; INLINE_LINMATH FLOATNAME(LVecBase4) operator + (const FLOATNAME(LVecBase4) &other) const;