vec3.h

Go to the documentation of this file.
00001 #ifndef VEC3_H
00002 #define VEC3_H
00003 
00004 #include <iostream>
00005 #include <math.h>
00006 
00007 class vec3
00008 {
00009 public:
00011     float v[3];
00012     //constructors
00013     vec3();
00014         vec3(float x, float y, float z = 0.0f);
00015         vec3(const float* u);
00016         vec3(const vec3&);
00018         float& operator[](unsigned);
00019         float dot(vec3);
00021     vec3& operator=(const vec3&);
00022         
00023         //arithmetic assignments
00025         vec3& operator+=(const vec3&);
00027         vec3& operator-=(const vec3&);
00029     vec3& operator*=(float);
00031         vec3& operator/=(float);
00032         
00033         //arithmetic operations
00035         const vec3 operator+(const vec3&) const;
00037         const vec3 operator-(const vec3&) const;
00039         const vec3 operator*(float) const;
00041         const vec3 operator/(float) const;
00042         
00043         //boolean operators
00045         bool operator==(const vec3&) const;
00047         bool operator!=(const vec3&) const;
00048         
00050         vec3& operator-();
00052         float norm() const;
00054         float length() const;
00056         vec3& operator!();
00058         float dist2(const vec3&);
00060         float dist(const vec3&);
00062         float operator*(const vec3&) const;
00064         const vec3 operator^(const vec3&) const;
00065         
00067         void print();
00068 };
00069 
00071 std::ostream& operator<<(std::ostream&, const vec3&);
00072 
00073 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines