From dec5d314721480ff96bf6dd366660917bd53c804 Mon Sep 17 00:00:00 2001 From: johanengelen Date: Sun, 29 Jun 2008 13:29:23 +0000 Subject: [PATCH] add SPCurve::first_segment and last_segment --- src/display/curve.cpp | 38 ++++++++++++++++++++++++++++++++++++-- src/display/curve.h | 2 ++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/display/curve.cpp b/src/display/curve.cpp index 1261cf9b0..065365973 100644 --- a/src/display/curve.cpp +++ b/src/display/curve.cpp @@ -894,6 +894,23 @@ SPCurve::last_bpath() const return _bpath + _end - 1; } +/** + * Return last pathsegment (possibly the closing path segment) in PathVector or NULL. + * equal in functionality to SPCurve::last_bpath() + */ +Geom::Curve const * +SPCurve::last_segment() const +{ + if (is_empty()) { + return NULL; + } + if (_pathv.back().empty()) { + return NULL; + } + + return &_pathv.back().back_default(); +} + /** * Return last path in PathVector or NULL. */ @@ -924,6 +941,23 @@ SPCurve::first_bpath() const return _bpath; } +/** + * Return first pathsegment in PathVector or NULL. + * equal in functionality to SPCurve::first_bpath() + */ +Geom::Curve const * +SPCurve::first_segment() const +{ + if (is_empty()) { + return NULL; + } + if (_pathv.front().empty()) { + return NULL; + } + + return &_pathv.front().front(); +} + /** * Return first path in PathVector or NULL. */ @@ -1020,8 +1054,8 @@ SPCurve::last_point() const return NR::Point(0, 0); debug_check("SPCurve::last_point", bpath->c(3) == _pathv.back().finalPoint() ); - return bpath->c(3); - // return from_2geom( _pathv.back().finalPoint() ); + //return bpath->c(3); + return from_2geom( _pathv.back().finalPoint() ); } inline static bool diff --git a/src/display/curve.h b/src/display/curve.h index 0bb456777..0ac5d069e 100644 --- a/src/display/curve.h +++ b/src/display/curve.h @@ -78,8 +78,10 @@ public: bool is_empty() const; bool is_closed() const; NArtBpath const * last_bpath() const; + Geom::Curve const * last_segment() const; Geom::Path const * last_path() const; NArtBpath const * first_bpath() const; + Geom::Curve const * first_segment() const; Geom::Path const * first_path() const; NR::Point first_point() const; NR::Point last_point() const; -- 2.30.2