From 8b4276c2ccbcae42471d3dd7d85f2b7abf78a1e3 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Thu, 21 Oct 2021 19:31:29 +0200 Subject: [PATCH] Part: Geometry - Extend Geometry Curve to query the value at parameter point directly from D0 ============================================================================================= Use the geometry specific D0 to calculate value at parameter point. --- src/Mod/Part/App/Geometry.cpp | 9 +++++++++ src/Mod/Part/App/Geometry.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index 1d1d67d4f0..bc26e1f52b 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -634,6 +634,15 @@ bool GeomCurve::tangent(double u, Base::Vector3d& dir) const return false; } +Base::Vector3d GeomCurve::value(double u) const +{ + Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(handle()); + + const gp_Pnt &point = c->Value(u); + + return Base::Vector3d(point.X(),point.Y(),point.Z()); +} + Base::Vector3d GeomCurve::pointAtParameter(double u) const { Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(handle()); diff --git a/src/Mod/Part/App/Geometry.h b/src/Mod/Part/App/Geometry.h index 4cbd45c540..1dd2210dee 100644 --- a/src/Mod/Part/App/Geometry.h +++ b/src/Mod/Part/App/Geometry.h @@ -203,6 +203,8 @@ public: void reverse(void); + Base::Vector3d value(double u) const; + protected: static bool intersect(const Handle(Geom_Curve) c, const Handle(Geom_Curve) c2, std::vector>& points,