54 :
public std::iterator<std::forward_iterator_tag, LineSegment>
58 std::size_t segment_number);
96 explicit Polyline(
const std::vector<Point*>& pnt_vec);
117 virtual bool addPoint(std::size_t pnt_id);
130 virtual bool insertPoint(std::size_t pos, std::size_t pnt_id);
182 void setPointID(std::size_t idx, std::size_t
id);
209 const double epsilon_radius)
const;
244 bool pointsAreIdentical(
const std::vector<Point*> &pnt_vec, std::size_t i, std::size_t j,
Base class for classes Point, Polyline, Surface.
Definition of the Point3d class.
GeoLib::Polyline const * _polyline
SegmentIterator & operator++()
SegmentIterator operator-(std::vector< GeoLib::Point >::difference_type n)
SegmentIterator & operator+=(std::vector< GeoLib::Point >::difference_type n)
LineSegment operator*() const
SegmentIterator & operator=(SegmentIterator const &rhs)
bool operator==(SegmentIterator const &other) const
~SegmentIterator()=default
SegmentIterator operator+(std::vector< GeoLib::Point >::difference_type n)
std::vector< GeoLib::Point * >::size_type _segment_number
std::size_t getSegmentNumber() const
bool operator!=(SegmentIterator const &other) const
SegmentIterator & operator-=(std::vector< GeoLib::Point >::difference_type n)
Class Polyline consists mainly of a reference to a point vector and a vector that stores the indices ...
GEOTYPE getGeoType() const override
return a geometry type
double getDistanceAlongPolyline(const MathLib::Point3d &pnt, const double epsilon_radius) const
~Polyline() override=default
std::size_t getPointID(std::size_t i) const
std::size_t getNumberOfSegments() const
static Polyline * constructPolylineFromSegments(const std::vector< Polyline * > &ply_vec, double prox=0.0)
std::size_t getNumberOfPoints() const
const Point * getPoint(std::size_t i) const
returns the i-th point contained in the polyline
virtual bool insertPoint(std::size_t pos, std::size_t pnt_id)
std::vector< std::size_t > _ply_pnt_ids
void setPointID(std::size_t idx, std::size_t id)
SegmentIterator begin() const
virtual bool addPoint(std::size_t pnt_id)
const std::vector< Point * > & _ply_pnts
Polyline & operator=(Polyline const &other)=delete
Location getLocationOfPoint(std::size_t k, MathLib::Point3d const &pnt) const
LineSegment getSegment(std::size_t i) const
Polyline(const std::vector< Point * > &pnt_vec)
bool isPointIDInPolyline(std::size_t pnt_id) const
SegmentIterator end() const
virtual void removePoint(std::size_t pos)
std::vector< Point * > const & getPointsVec() const
bool containsEdge(const Polyline &ply, std::size_t id0, std::size_t id1)
bool pointsAreIdentical(const std::vector< Point * > &pnt_vec, std::size_t i, std::size_t j, double prox)
bool operator==(LineSegment const &s0, LineSegment const &s1)