vector class
[MicroTrace.git] / Vec3f.hxx
index 74f304b..7f0c77d 100644 (file)
--- a/Vec3f.hxx
+++ b/Vec3f.hxx
@@ -4,7 +4,6 @@
 #include <cmath>
 #include <iostream>
 
-
 #ifndef MIN
 #define MIN(a,b) ((a)<(b)?(a):(b))
 #define MAX(a,b) ((a)>(b)?(a):(b))
 #define Epsilon 1E-4
 #define Infinity HUGE_VAL
 
+// dimension
+#define DIM 3
+
 //! Standard operators and useful methods for 3d vectors
 //! Fill in the missing parts in Vec3f.cxx
-class Vec3f 
-{
+class Vec3f {
 public:
-  Vec3f();
-  Vec3f(float x, float y, float z);
-  
-  ~Vec3f();
-
-  Vec3f(const Vec3f& o);
-  Vec3f& operator=(const Vec3f& o);
-
-  //! dot product
-  float operator|(const Vec3f& o);
-  float dot(const Vec3f& o);
-  
-  //! cross product
-  Vec3f operator%(const Vec3f& o);
-  Vec3f cross(const Vec3f& o);
-  
-  //! normalize vector
-  void normalize();
-  //! length of a vector
-  float norm() const;
-
-  //! (self-)multiply with scalar
-  Vec3f operator*(const float t) const;
-  Vec3f& operator*=(const float t);
-
-  //! (self-)division by scalar
-  Vec3f operator/(const float t) const;
-  Vec3f& operator/=(const float t);
-
-  //! vector (self-)addition
-  Vec3f operator+(const Vec3f& o) const;
-  Vec3f& operator+=(const Vec3f& o);
-  
-  //! vector (self-)subtraction
-  Vec3f operator-(const Vec3f& o) const;
-  Vec3f& operator-=(const Vec3f& o);
-  
-  //! component-wise multiplication of two vectors
-  Vec3f operator*(const Vec3f& o) const;
-  Vec3f& operator*=(const Vec3f& o);
-
-  //! component-wise division of two vectors
-  Vec3f operator/(const Vec3f& o) const;
-  Vec3f& operator/=(const Vec3f& o);
-
-  //! element access functions ( read-only and read-write )
-  float operator[](unsigned int i) const;
-  float& operator[](unsigned int i);
+       Vec3f();
+       Vec3f(float x, float y, float z);
+
+       ~Vec3f();
+
+       Vec3f(const Vec3f& o);
+       Vec3f& operator=(const Vec3f& o);
+
+       //! dot product
+       float operator|(const Vec3f& o);
+       float dot(const Vec3f& o);
+
+       //! cross product
+       Vec3f operator%(const Vec3f& o);
+       Vec3f cross(const Vec3f& o);
+
+       //! normalize vector
+       void normalize();
+       //! length of a vector
+       float norm() const;
+
+       //! (self-)multiply with scalar
+       Vec3f operator*(const float t) const;
+       Vec3f& operator*=(const float t);
+
+       //! (self-)division by scalar
+       Vec3f operator/(const float t) const;
+       Vec3f& operator/=(const float t);
+
+       //! vector (self-)addition
+       Vec3f operator+(const Vec3f& o) const;
+       Vec3f& operator+=(const Vec3f& o);
+
+       //! vector (self-)subtraction
+       Vec3f operator-(const Vec3f& o) const;
+       Vec3f& operator-=(const Vec3f& o);
+
+       //! component-wise multiplication of two vectors
+       Vec3f operator*(const Vec3f& o) const;
+       Vec3f& operator*=(const Vec3f& o);
+
+       //! component-wise division of two vectors
+       Vec3f operator/(const Vec3f& o) const;
+       Vec3f& operator/=(const Vec3f& o);
+
+       //! element access functions ( read-only and read-write )
+       float operator[](unsigned int i) const;
+       float& operator[](unsigned int i);
+
 private:
-  float m_values[3];
+       float m_values[3];
 };
 
-inline std::ostream& operator<<(std::ostream& o, const Vec3f& v)
-{
-  o << "(" << v[0] << "," << v[1] << "," << v[2] << ")";
-  return o;
+inline std::ostream& operator<<(std::ostream& o, const Vec3f& v) {
+       o << "(" << v[0] << "," << v[1] << "," << v[2] << ")";
+       return o;
 }
 
 #endif
 
-
This page took 0.033286 seconds and 4 git commands to generate.