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       // Private member functions.
00114 
00115       // Private data members.
00116       Vector3D m_origin;
00117       Vector3D m_direction;
00118 
00119     }; // class Ray3D
00120 
00121 
00122     
00123     /* ======= Non-member functions. ======= */
00124 
00125     std::ostream&
00126     operator<<(std::ostream& stream, const Ray3D& ray);
00127     
00128     
00129   } // namespace utilities
00130     
00131 } // namespace dlr
00132 
00133 
00134 /* ======= Inline and template function definitions. ======= */
00135 
00136 namespace dlr {
00137 
00138   namespace geometry {
00139 
00140     
00141   } // namespace geometry
00142   
00143 } // namespace dlr
00144 
00145 
00146 #endif /* #ifndef DLR_GEOMETRY_RAY3D_H */

Generated on Wed Nov 25 11:45:25 2009 for dlrGeometry Utility Library by  doxygen 1.5.8