52 std::size_t segment_number);
74 std::vector<GeoLib::Point>::difference_type n);
77 std::vector<GeoLib::Point>::difference_type n);
80 std::vector<GeoLib::Point>::difference_type n);
83 std::vector<GeoLib::Point>::difference_type n);
94 explicit Polyline(
const std::vector<Point*>& pnt_vec);
115 virtual bool addPoint(std::size_t pnt_id);
128 virtual bool insertPoint(std::size_t pos, std::size_t pnt_id);
146 const std::vector<Polyline*>& ply_vec,
double prox = 0.0);
174 std::size_t
getPointID(std::size_t
const i)
const;
181 void setPointID(std::size_t idx, std::size_t
id);
207 const double epsilon_radius)
const;
244 std::size_t j,
double prox);
248 std::vector<std::size_t>&& point_ids);
Definition of the Point class.
Base class for classes Point, Polyline, Surface.
Definition of the Point3d class.
This class manages pointers to Points in a std::vector along with a name. It also handles the deletio...
GeoLib::Polyline const * _polyline
std::forward_iterator_tag iterator_category
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
std::ptrdiff_t difference_type
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
std::size_t getPointID(std::size_t const i) const
~Polyline() override=default
Polyline & operator=(Polyline const &other)=delete
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)
void reverseOrientation()
SegmentIterator begin() const
virtual bool addPoint(std::size_t pnt_id)
const std::vector< Point * > & _ply_pnts
LineSegment getSegment(std::size_t i) const
Polyline(const std::vector< Point * > &pnt_vec)
bool isPointIDInPolyline(std::size_t pnt_id) const
std::vector< std::size_t > const & getPolylinePointIDs() const
SegmentIterator end() const
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)
void markUsedPoints(Polyline const &polyline, std::vector< bool > &used_points)
Resets the point IDs of the polyline corresponding to the mapping.
void resetPointIDs(Polyline &polyline, std::vector< std::size_t > const &mapping)
Resets the point IDs of the polyline corresponding to the mapping.
bool operator==(LineSegment const &s0, LineSegment const &s1)
std::unique_ptr< Polyline > createPolyline(GeoLib::PointVec const &points_vec, std::vector< std::size_t > &&point_ids)
Create a polyline from given point ids.