00001 00013 #ifndef __RAY__ 00014 #define __RAY__ 00015 #pragma once 00016 00017 #define RIGHT 0 00018 #define LEFT 1 00019 #define MIDDLE 2 00020 00021 #include "vector.h" 00022 #include "globals.h" 00023 #include "volume.h" 00028 class Ray 00029 { 00030 public: 00031 Ray() {}; 00032 Ray(Vector pos, Vector dir); 00033 float intersection(Volume *v); 00034 Vector intersectionPoint(); 00035 Vector getCurrent() { return this->mPos + this->mDir*t ;}; 00036 void advance(float t); 00037 Vector mPos, mDir; 00038 float t; 00039 }; 00040 00041 #endif