linesegment2d.h
Go to the documentation of this file.
1 #ifndef LINESEGMENT2D_H
2 #define LINESEGMENT2D_H
3 
4 #include "tuw_geometry/line2d.h"
5 
6 namespace tuw {
7 
8 class LineSegment2D;
9 using LineSegment2DPtr = std::shared_ptr< LineSegment2D > ;
10 using LineSegment2DConstPtr = std::shared_ptr< LineSegment2D const>;
11 
15 class LineSegment2D : public Line2D {
16 protected:
18 public:
20  LineSegment2D();
25  LineSegment2D ( const LineSegment2D &l );
31  LineSegment2D ( const Point2D &p0, const Point2D &p1 );
39  LineSegment2D ( const double &x0, const double &y0, const double &x1, const double &y1 );
43  const double &x0() const;
47  const double &y0() const;
51  const double &x1() const;
55  const double &y1() const;
60  double angle() const;
64  const Point2D &p0() const;
68  const Point2D &p1() const;
72  Point2D pc() const;
76  const Line2D &line() const;
80  const double length() const;
85  bool operator == ( const LineSegment2D& o ) const;
93  LineSegment2D& set ( const double &x0, const double &y0, const double &x1, const double &y1 );
99  LineSegment2D& set ( const Point2D &p0, const Point2D &p1 );
107  double distanceTo ( const Point2D &p, double &dx, double &dy ) const;
115  double distanceSqrTo ( const Point2D &p, double &dx, double &dy ) const;
116 
117  double closestPointLineSegmentRatio(const Point2D& p) const;
122  Point2D closestPointTo(const Point2D& p) const;
127  double distanceTo ( const Point2D &p ) const;
128  friend std::ostream &operator << ( std::ostream &os, const LineSegment2D &o ) {
129  os << "[[" << o.x0() << ", " << o.y0() << "], [" << o.x1() << ", " << o.y1() << "] ]";
130  return os;
131  };
132 };
133 
134 };
135 #endif // LINESEGMENT2D_H
std::shared_ptr< LineSegment2D const > LineSegment2DConstPtr
Definition: linesegment2d.h:10
double closestPointLineSegmentRatio(const Point2D &p) const
const double & y1() const
const double & x1() const
bool operator==(const LineSegment2D &o) const
comparison operator
LineSegment2D()
the lines endpoints
const double length() const
Definition: command.h:8
const Line2D & line() const
friend std::ostream & operator<<(std::ostream &os, const LineSegment2D &o)
double angle() const
Point2D closestPointTo(const Point2D &p) const
const double & y0() const
Point2D pc() const
double distanceSqrTo(const Point2D &p, double &dx, double &dy) const
const Point2D & p0() const
std::shared_ptr< LineSegment2D > LineSegment2DPtr
Prototype.
Definition: linesegment2d.h:9
double distanceTo(const Point2D &p, double &dx, double &dy) const
const double & x0() const
const Point2D & p1() const


tuw_geometry
Author(s): Markus Bader
autogenerated on Mon Jun 10 2019 15:33:08