From 649d115afbee233f5e0c68dcaa50056ed7416679 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Wed, 24 Oct 2018 07:15:35 +0200 Subject: [PATCH] Part: Geometry New Bounded-Trimmed-curve inheritance ==================================================== The new hierarchy is as this: GeomArcOfConic:GeomTrimmedCurve:GeomBoundedCurve:GeomCurve A bounded curve is one having a start and endpoint, like an arc, a line segment, or a b-spline A trimmed curve is one arising from trimming a basis curve, line an arc or a line segment, but NOT a b-spline. An arc of Conic is one arising from a conic section, line an arc, but neither a line segment, nor a b-spline. This new hierarchy enables a more consistent handling of geometry and it is closer to the OCCT hierarchy. --- src/Mod/Part/App/Geometry.cpp | 2 +- src/Mod/Part/App/Geometry.h | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index 8b4d4fae58..f6008415ff 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -1482,7 +1482,7 @@ bool GeomConic::isReversed() const // ------------------------------------------------- -TYPESYSTEM_SOURCE(Part::GeomTrimmedCurve,Part::GeomCurve) +TYPESYSTEM_SOURCE(Part::GeomTrimmedCurve,Part::GeomBoundedCurve) GeomTrimmedCurve::GeomTrimmedCurve() { diff --git a/src/Mod/Part/App/Geometry.h b/src/Mod/Part/App/Geometry.h index a692874958..62e1a07abd 100644 --- a/src/Mod/Part/App/Geometry.h +++ b/src/Mod/Part/App/Geometry.h @@ -333,7 +333,7 @@ public: const Handle(Geom_Geometry)& handle() const = 0; }; -class PartExport GeomTrimmedCurve : public GeomCurve +class PartExport GeomTrimmedCurve : public GeomBoundedCurve { TYPESYSTEM_HEADER(); public: @@ -373,9 +373,11 @@ public: virtual ~GeomArcOfConic(); virtual Geometry *copy(void) const = 0; - Base::Vector3d getStartPoint(bool emulateCCWXY=false) const; - Base::Vector3d getEndPoint(bool emulateCCWXY=false) const; + Base::Vector3d getStartPoint(bool emulateCCWXY) const; + Base::Vector3d getEndPoint(bool emulateCCWXY) const; + inline virtual Base::Vector3d getStartPoint() const {return getStartPoint(false);}; + inline virtual Base::Vector3d getEndPoint() const {return getEndPoint(false);}; /*! * \deprecated use getLocation * \brief getCenter