contrib/oxl/mvl/HomgLineSeg3D.h
Go to the documentation of this file.
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_