OSDN Git Service

refactoring.
[meshio/meshio.git] / include / la.h
index e0fe84d..12935e4 100644 (file)
@@ -21,11 +21,13 @@ struct Vector2
                : 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
@@ -46,11 +48,13 @@ 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
@@ -67,11 +71,13 @@ 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
@@ -87,12 +93,19 @@ 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
 
 
 }