Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/math/vector3f.cc17
-rw-r--r--src/math/vector3f.h24
2 files changed, 29 insertions, 12 deletions
diff --git a/src/math/vector3f.cc b/src/math/vector3f.cc
index 421d84e..03b4307 100644
--- a/src/math/vector3f.cc
+++ b/src/math/vector3f.cc
@@ -36,6 +36,15 @@ void Vector3f::clear()
memset(coord, 0, sizeof(coord));
}
+bool Vector3f::equals(const Vector3f &other) const
+{
+ return(
+ (coord[0] == other.coord[0]) &&
+ (coord[1] == other.coord[1]) &&
+ (coord[2] == other.coord[2])
+ );
+}
+
void Vector3f::assign(const float x, const float y, const float z)
{
coord[0] = x;
@@ -89,14 +98,6 @@ Vector3f &Vector3f::operator+=(const Vector3f &other)
return (*this);
}
-bool Vector3f::operator==(const Vector3f& other) const
-{
- for (int i = 0; i < 3; i++)
- if (coord[i] != other.coord[i])
- return (false);
- return (true);
-}
-
float Vector3f::lengthsquared() const
{
float r = 0;
diff --git a/src/math/vector3f.h b/src/math/vector3f.h
index 2ff4ba0..24a7610 100644
--- a/src/math/vector3f.h
+++ b/src/math/vector3f.h
@@ -39,7 +39,26 @@ public:
/// destructor
~Vector3f();
-
+
+ /**
+ * @brief comparison
+ * */
+ bool equals(const Vector3f &other) const;
+
+ /**
+ * @brief equality operator
+ * */
+ inline bool operator==(const Vector3f &other) const {
+ return (equals(other));
+ }
+
+ /**
+ * @brief inequality operator
+ * */
+ inline bool operator!=(const Vector3f &other) const {
+ return (!equals(other));
+ }
+
/* -- Assignment operators -- */
/// assign (0, 0, 0)
void clear();
@@ -98,9 +117,6 @@ public:
return v;
}
- /// comparison operator
- bool operator==(const Vector3f &other) const;
-
/// assign a value to an element of this vector
/*! range is not checked
* @param index the index of the element to assign to ( 0 <= index < 3 )