Fix for radd/rsub/rmul/rdiv operator convenience wrappers

This commit is contained in:
Wenzel Jakob
2015-09-11 17:09:47 +02:00
parent 38ffb5232f
commit 73a50a0441
3 changed files with 16 additions and 2 deletions

View File

@@ -42,10 +42,16 @@ public:
Vector2& operator-=(const Vector2 &v) { x -= v.x; y -= v.y; return *this; }
Vector2& operator*=(float v) { x *= v; y *= v; return *this; }
Vector2& operator/=(float v) { x /= v; y /= v; return *this; }
friend Vector2 operator+(float f, const Vector2 &v) { return Vector2(f + v.x, f + v.y); }
friend Vector2 operator-(float f, const Vector2 &v) { return Vector2(f - v.x, f - v.y); }
friend Vector2 operator*(float f, const Vector2 &v) { return Vector2(f * v.x, f * v.y); }
friend Vector2 operator/(float f, const Vector2 &v) { return Vector2(f / v.x, f / v.y); }
private:
float x, y;
};
void init_ex3(py::module &m) {
py::class_<Vector2>(m, "Vector2")
.def(py::init<float, float>())
@@ -59,6 +65,10 @@ void init_ex3(py::module &m) {
.def(py::self -= py::self)
.def(py::self *= float())
.def(py::self /= float())
.def(float() + py::self)
.def(float() - py::self)
.def(float() * py::self)
.def(float() / py::self)
.def("__str__", &Vector2::toString);
m.attr("Vector") = m.attr("Vector2");