ray3D.h
Go to the documentation of this file.00001
00015 #ifndef DLR_GEOMETRY_RAY3D_H
00016 #define DLR_GEOMETRY_RAY3D_H
00017
00018 #include <iostream>
00019 #include <dlrNumeric/vector3D.h>
00020
00021 namespace dlr {
00022
00023 namespace geometry {
00024
00028 class Ray3D {
00029 public:
00030
00035 Ray3D()
00036 : m_origin(0.0, 0.0, 0.0), m_direction(1.0, 0.0, 0.0) {}
00037
00038
00050 Ray3D(const Vector3D& point,
00051 const Vector3D& direction,
00052 bool normalize = true);
00053
00054
00061 Ray3D(const Ray3D& source);
00062
00063
00067 ~Ray3D() {}
00068
00069
00078 Ray3D&
00079 operator=(const Ray3D& source);
00080
00081
00088 const Vector3D&
00089 getDirection() const {return m_direction;}
00090
00091
00098 const Vector3D&
00099 getDirectionVector() const {return this->getDirection();}
00100
00101
00108 const Vector3D&
00109 getOrigin() const {return m_origin;}
00110
00111
00112 private:
00113
00114
00115
00116 Vector3D m_origin;
00117 Vector3D m_direction;
00118
00119 };
00120
00121
00122
00123
00124
00125 std::ostream&
00126 operator<<(std::ostream& stream, const Ray3D& ray);
00127
00128
00129 }
00130
00131 }
00132
00133
00134
00135
00136 namespace dlr {
00137
00138 namespace geometry {
00139
00140
00141 }
00142
00143 }
00144
00145
00146 #endif