triangle3D.h

Go to the documentation of this file.
00001 
00015 #ifndef DLR_GEOMETRY_TRIANGLE3D_H
00016 #define DLR_GEOMETRY_TRIANGLE3D_H
00017 
00018 #include <iostream>
00019 #include <dlrNumeric/vector3D.h>
00020 
00021 namespace dlr {
00022 
00023   namespace geometry {
00024     
00028     class Triangle3D {
00029     public:
00030       
00035       Triangle3D()
00036         : m_vertex0(0.0, 0.0, 0.0), m_vertex1(1.0, 0.0, 0.0),
00037           m_vertex2(0.0, 1.0, 0.0) {}
00038 
00039     
00052       Triangle3D(const Vector3D& vertex0,
00053                  const Vector3D& vertex1,
00054                  const Vector3D& vertex2);
00055 
00056     
00062       Triangle3D(const Triangle3D& source);
00063 
00064 
00068       ~Triangle3D() {}
00069 
00070 
00078       Triangle3D&
00079       operator=(const Triangle3D& source);
00080 
00081 
00089       const Vector3D&
00090       getVertex0() const {return m_vertex0;}
00091       
00092 
00100       const Vector3D&
00101       getVertex1() const {return m_vertex1;}
00102       
00103 
00111       const Vector3D&
00112       getVertex2() const {return m_vertex2;}
00113       
00114 
00115       Triangle3D&
00116       setValue(Vector3D const& vertex0,
00117                Vector3D const& vertex1,
00118                Vector3D const& vertex2) {
00119         m_vertex0 = vertex0;
00120         m_vertex1 = vertex1;
00121         m_vertex2 = vertex2;
00122         return *this;
00123       }
00124       
00125     private:
00126 
00127       // Private data members.
00128       Vector3D m_vertex0;
00129       Vector3D m_vertex1;
00130       Vector3D m_vertex2;
00131 
00132     }; // class Triangle3D
00133 
00134 
00135 
00136     /* ======= Non-member functions. ======= */
00137 
00138     std::ostream&
00139     operator<<(std::ostream& stream, const Triangle3D& triangle);
00140     
00141 
00142     std::istream&
00143     operator>>(std::istream& stream, Triangle3D& triangle);
00144     
00145     
00146   } // namespace utilities
00147     
00148 } // namespace dlr
00149 
00150 
00151 /* ======= Inline and template function definitions. ======= */
00152 
00153 #include <dlrLinearAlgebra/linearAlgebra.h>
00154 #include <dlrNumeric/subArray1D.h>
00155 
00156 namespace dlr {
00157 
00158   namespace geometry {
00159 
00160 
00161   } // namespace geometry
00162   
00163 } // namespace dlr
00164 
00165 
00166 #endif /* #ifndef DLR_GEOMETRY_TRIANGLE3D_H */

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