src/rcrt/math/Point2D.cpp

Go to the documentation of this file.
00001 #include <cmath>
00002 #include "Point2D.h"
00003 
00004 namespace rcrt
00005 {
00006 
00007 
00008 Point2D::Point2D()
00009 {
00010         values[0] = values[1] = 0;
00011 }
00012 
00013 
00014 Point2D::Point2D(float xc, float yc)
00015 {
00016         values[0] = xc;
00017         values[1] = yc;
00018 }
00019 
00020 
00021 Point2D::Point2D(const Point2D& p)
00022 {
00023         assign(p);
00024 }
00025 
00026 
00027 Point2D::~Point2D()
00028 {
00029 }
00030 
00031 
00032 void Point2D::assign(const Point2D& p)
00033 {
00034         if(&p != this){
00035                 values[0] = p.values[0];
00036                 values[1] = p.values[1];
00037         }
00038 }
00039 
00040 
00041 
00042 const Point2D& Point2D::operator= (const Point2D& p)
00043 {
00044         assign(p);
00045                 
00046         return *this;
00047 }
00048 
00049 
00050 Point2D Point2D::operator+ (const Vec2D& vec) const
00051 {
00052         return Point2D(values[0]+vec.x(),
00053                         values[1]+vec.y());
00054 }
00055 
00056 
00057 Point2D Point2D::operator- (const Vec2D& vec) const
00058 {
00059         return Point2D(values[0]-vec.x(),
00060                         values[1]-vec.y());
00061 }
00062 
00063 
00064 Vec2D Point2D::operator+ (const Point2D& p) const
00065 {
00066         return Vec2D(values[0]+p.values[0],
00067                         values[1]+p.values[1]);
00068 }
00069 
00070 
00071 Vec2D Point2D::operator- (const Point2D& p) const
00072 {
00073         return Vec2D(values[0]-p.values[0],
00074                         values[1]-p.values[1]);
00075 }
00076 
00077 
00078 Point2D Point2D::operator* (const float f) const
00079 {
00080         return Point2D(values[0]*f,values[1]*f);
00081 }
00082 
00083 
00084 Point2D Point2D::operator/ (const float f) const
00085 {
00086         float g = 1/f;
00087         return Point2D(values[0]*g,values[1]*g);
00088 }
00089 
00090 float Point2D::operator[] (int i) const
00091 {
00092         return values[i];
00093 }
00094 
00095 float& Point2D::operator[] (int i)
00096 {
00097         return values[i];
00098 }
00099 
00100 
00101 Vec2D Point2D::getPosVec2D() const
00102 {
00103         return Vec2D(values[0], values[1]);
00104 }
00105 
00106 
00107 Point2D Point2D::abs() const
00108 {
00109         return Point2D(fabs(values[0]),fabs(values[1]));
00110 }
00111 
00112 
00113 const float& Point2D::x() const
00114 {
00115         return values[0];
00116 }
00117 
00118 
00119 const float& Point2D::y() const
00120 {
00121         return values[1];
00122 }
00123 
00124 }

Generated on Thu Jan 31 19:26:19 2008 for RenderingCompetitionRayTracer by  doxygen 1.5.3