00001 00004 /***************************************************************************** 00005 ** Ifdefs 00006 *****************************************************************************/ 00007 00008 #ifndef ecl_geometry_GEOMETRY_LINEAR_SEGMENT_HPP_ 00009 #define ecl_geometry_GEOMETRY_LINEAR_SEGMENT_HPP_ 00010 00011 /***************************************************************************** 00012 ** Includes 00013 *****************************************************************************/ 00014 00015 #include <ecl/utilities/parameter.hpp> 00016 00017 /***************************************************************************** 00018 ** Namespaces 00019 *****************************************************************************/ 00020 00021 namespace ecl { 00022 00023 /***************************************************************************** 00024 ** Interfaces 00025 *****************************************************************************/ 00026 00027 class LinearSegment { 00028 public: 00029 LinearSegment(const double& x_1, 00030 const double& y_1, 00031 const double& x_2, 00032 const double& y_2); 00033 00047 double squaredDistanceFromPoint(const double& x, const double& y) const; 00048 00049 ecl::Parameter<double> A, B, C; 00050 00051 private: 00052 double x_1, y_1; 00053 double x_2, y_2; 00054 }; 00055 00056 /***************************************************************************** 00057 ** Trailers 00058 *****************************************************************************/ 00059 00060 } // namespace ecl 00061 00062 #endif /* ecl_geometry_GEOMETRY_LINEAR_SEGMENT_HPP_ */