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       getDirectionVector() const {return m_direction;}
00090       
00091 
00098       const Vector3D&
00099       getOrigin() const {return m_origin;}
00100 
00101 
00102    private:
00103       // Private member functions.
00104 
00105       // Private data members.
00106       Vector3D m_origin;
00107       Vector3D m_direction;
00108 
00109     }; // class Ray3D
00110 
00111 
00112     
00113     /* ======= Non-member functions. ======= */
00114 
00115     std::ostream&
00116     operator<<(std::ostream& stream, const Ray3D& plane);
00117     
00118     
00119   } // namespace utilities
00120     
00121 } // namespace dlr
00122 
00123 
00124 /* ======= Inline and template function definitions. ======= */
00125 
00126 namespace dlr {
00127 
00128   namespace geometry {
00129 
00130     
00131   } // namespace geometry
00132   
00133 } // namespace dlr
00134 
00135 
00136 #endif /* #ifndef _DLR_GEOMETRY_RAY3D_H_ */

Generated on Mon Jul 9 20:34:03 2007 for dlrLibs Utility Libraries by  doxygen 1.5.2