FlowVis 1.0

FlowVis/Framework/vec3.h

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);
00020     vec3& operator=(const vec3&);
00021         
00022         //arithmetic assignments
00024         vec3& operator+=(const vec3&);
00026         vec3& operator-=(const vec3&);
00028     vec3& operator*=(float);
00030         vec3& operator/=(float);
00031         
00032         //arithmetic operations
00034         const vec3 operator+(const vec3&) const;
00036         const vec3 operator-(const vec3&) const;
00038         const vec3 operator*(float) const;
00040         const vec3 operator/(float) const;
00041 
00042         //boolean operators
00044         bool operator==(const vec3&) const;
00046         bool operator!=(const vec3&) const;
00047 
00049         vec3& operator-();
00051         float norm() const;
00053         float length() const;
00055         vec3& operator!();
00057         float dist2(const vec3&);
00059         float dist(const vec3&);
00061         float operator*(const vec3&) const;
00063         const vec3 operator^(const vec3&) const;
00064 
00066         void print();
00067 };
00068 
00070 std::ostream& operator<<(std::ostream&, const vec3&);
00071 
00072 #endif
 All Classes Functions Variables Friends