: x(_x), y(_y)
{}
};
+#ifndef SWIG
inline std::ostream &operator<<(std::ostream &os, const Vector2 &rhs)
{
return os
<< '[' << rhs.x << ',' << rhs.y << ']';
}
+#endif
struct Vector3
return x==rhs.x && y==rhs.y && z==rhs.z;
}
};
+#ifndef SWIG
inline std::ostream &operator<<(std::ostream &os, const Vector3 &rhs)
{
return os
<< '[' << rhs.x << ',' << rhs.y << ',' << rhs.z << ']';
}
+#endif
struct Vector4
: x(_x), y(_y), z(_z), w(_w)
{}
};
+#ifndef SWIG
inline std::ostream &operator<<(std::ostream &os, const Vector4 &rhs)
{
return os
<< '[' << rhs.x << ',' << rhs.y << ',' << rhs.z << ',' << rhs.w << ']';
}
+#endif
struct Quaternion
Quaternion(float _x, float _y, float _z, float _w)
: x(_x), y(_y), z(_z), w(_w)
{}
+
+ float dot(const Quaternion &rhs)
+ {
+ return x*rhs.x + y*rhs.y + z*rhs.z + w*rhs.w;
+ }
};
+#ifndef SWIG
inline std::ostream &operator<<(std::ostream &os, const Quaternion &rhs)
{
return os
<< '[' << rhs.x << ',' << rhs.y << ',' << rhs.z << ',' << rhs.w << ']';
}
+#endif
}