Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/math
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2012-12-24 21:33:18 +0000
committerStijn Buys <ingar@osirion.org>2012-12-24 21:33:18 +0000
commitfee209b6769ee6b207e9101c4f15e16c0a67ad09 (patch)
tree6a8c39a549c9884b17baacba3b9da8b00851c6b7 /src/math
parent2b54cd13579abe2b277e305b7c5cd2eff78d82cd (diff)
Improved off-screen HUD target indicators.
Diffstat (limited to 'src/math')
-rw-r--r--src/math/matrix4f.cc3
-rw-r--r--src/math/matrix4f.h2
-rw-r--r--src/math/vector2f.cc24
-rw-r--r--src/math/vector2f.h19
4 files changed, 44 insertions, 4 deletions
diff --git a/src/math/matrix4f.cc b/src/math/matrix4f.cc
index b7953e9..caccae6 100644
--- a/src/math/matrix4f.cc
+++ b/src/math/matrix4f.cc
@@ -4,8 +4,7 @@
the terms of the GNU General Public License version 2
*/
-#include <string.h>
-
+#include <cstring>
#include <cmath>
#include "math/matrix4f.h"
diff --git a/src/math/matrix4f.h b/src/math/matrix4f.h
index 4148870..5442cb9 100644
--- a/src/math/matrix4f.h
+++ b/src/math/matrix4f.h
@@ -7,8 +7,6 @@
#ifndef __INCLUDED_MATH_MATRIX4F_H__
#define __INCLUDED_MATH_MATRIX4F_H__
-#include <iostream>
-
#include "math/axis.h"
namespace math
diff --git a/src/math/vector2f.cc b/src/math/vector2f.cc
index 878304f..bff60c9 100644
--- a/src/math/vector2f.cc
+++ b/src/math/vector2f.cc
@@ -63,6 +63,25 @@ Vector2f &Vector2f::operator-=(const Vector2f &other)
return (*this);
}
+Vector2f & Vector2f::operator*=(const float scalar)
+{
+ coord[0] *= scalar;
+ coord[1] *= scalar;
+ return (*this);
+}
+
+Vector2f & Vector2f::operator/=(const float scalar)
+{
+ coord[0] /= scalar;
+ coord[1] /= scalar;
+ return (*this);
+}
+
+float Vector2f::length() const
+{
+ return (sqrtf((coord[0] * coord[0]) + (coord[1] * coord[1])));
+}
+
float distance(const Vector2f& first, const Vector2f& second)
{
float r = 0;
@@ -80,4 +99,9 @@ float distancesquared(const Vector2f& first, const Vector2f& second)
return (r);
}
+Vector2f operator*(float scalar, const Vector2f &vector)
+{
+ return vector * scalar;
+}
+
}
diff --git a/src/math/vector2f.h b/src/math/vector2f.h
index 1a5f4de..7641cbc 100644
--- a/src/math/vector2f.h
+++ b/src/math/vector2f.h
@@ -43,6 +43,18 @@ public:
/// vector sum
Vector2f & operator+=(const Vector2f &other);
+
+ /**
+ * @brief scalar multiplication assignment
+ * @param scalar multiplication factor
+ * */
+ Vector2f& operator*=(const float scalar);
+
+ /**
+ * @brief scalar division assignment
+ * @param scalar divider
+ * */
+ Vector2f& operator/=(const float scalar);
/// vector subtraction
inline Vector2f operator+(const Vector2f &other) const {
@@ -97,6 +109,10 @@ public:
inline float y() const {
return coord[1];
}
+
+ /// cartesian length
+ float length() const;
+
/// mutable reference to the x coordinate
inline float & get_x() {
@@ -131,6 +147,9 @@ float distance(const Vector2f& first, const Vector2f& second);
/// distance between two vectors squared
float distancesquared(const Vector2f& first, const Vector2f& second);
+/// scalar * Vector2f operators
+Vector2f operator*(float scalar, const Vector2f & vector);
+
}
#endif // __INCLUDED_MATH_VECTOR2F_H__