3 #include "DM/config.hpp"
4 #include "DM/AutoLink.hpp"
5 #include "DM/IPoint.hpp"
6 #include "DM/IPolyline.hpp"
7 #include "DM/IWindow.hpp"
31 virtual void closest(
double distance,
unsigned idx,
const IPoint &basePt,
unsigned lineIdx1,
unsigned lineIdx2,
const IPoint &minDistPt) = 0;
35 virtual void exceeds(
unsigned idx) = 0;
42 namespace GeometricAlgorithms
DM_API DM::BoxHandle getBoundingBox(const IGeometry &geo)
Get the 3D bounding box of a geometry object.
DM_API DM::WindowHandle getBoundingWindow(const IGeometry &geo)
Get the 2D bounding window of a geometry object.
interface for analysing distances between polyline objects (see GeometricAlgorithms::analyseDistance)
Definition: GeometricAlgorithms.hpp:14
DM_API bool isSelfIntersecting(const DM::PolylineHandle &line)
test if a polyline is self intersecting
DM_API DM::PolylineHandle densify(const DM::PolylineHandle &line, double maxSpacing)
densify a polyline by inserting new points along the line segments
Base class of all geometry objects.
Definition: IGeometry.hpp:26
DM_API void analyseDistance(const PolylineHandle &base, const PolylineHandle &other, IAnalyseDistance &callback, double maxDist=-1, bool d3=true)
For analysing 2d/3d distances between vertices of the base polyline to the other provided polyline (o...
Smart pointer class using reference counting with support for DM objects (see ObjectBase)
Definition: Handle.hpp:75
3d point object
Definition: IPoint.hpp:14
DM_API DM::PolylineHandle thinOut(const DM::PolylineHandle &line, double maxOrthoDist)
Use the Douglas-Peucker algorithm to create a polyline with a subset of vertices of the provided line...