00001 // This is oxl/mvl/HomgLineSeg3D.h 00002 #ifndef HomgLineSeg3D_h_ 00003 #define HomgLineSeg3D_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief Homogeneous 3D line segment 00010 // 00011 // A class to hold a homogeneous representation of a 3D linesegment 00012 // 00013 // \verbatim 00014 // Modifications: 00015 // Peter Vanroose - 11 Mar 97 - added operator== 00016 // \endverbatim 00017 00018 #include <mvl/HomgLine3D.h> 00019 #include <mvl/HomgOperator3D.h> 00020 #include <mvl/HomgPoint3D.h> 00021 #include <vcl_iosfwd.h> 00022 00023 class HomgLineSeg3D : public HomgLine3D 00024 { 00025 // Data Members-------------------------------------------------------------- 00026 HomgPoint3D point1_; 00027 HomgPoint3D point2_; 00028 00029 public: 00030 // Constructors/Initializers/Destructors------------------------------------- 00031 00032 HomgLineSeg3D (); 00033 HomgLineSeg3D (const HomgPoint3D &point1, const HomgPoint3D& point2); 00034 ~HomgLineSeg3D (); 00035 00036 // Data Access--------------------------------------------------------------- 00037 00038 // get the line through the two points. 00039 const HomgLine3D& get_line () const; 00040 const HomgPoint3D& get_point1 () const; 00041 const HomgPoint3D& get_point2 () const; 00042 00043 void set (const HomgPoint3D& point1, const HomgPoint3D& point2); 00044 }; 00045 00046 vcl_ostream& operator<<(vcl_ostream& s, const HomgLineSeg3D& ); 00047 00048 #endif // HomgLineSeg3D_h_