From fec0b349b78851c2f7d8f30b44b057eafe2bc1ac Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Fri, 28 Mar 2008 19:40:38 +0000 Subject: and two more files that were missed in lpe-group commit (bzr r5221) --- src/live_effects/lpegroupbbox.cpp | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/live_effects/lpegroupbbox.cpp (limited to 'src/live_effects/lpegroupbbox.cpp') diff --git a/src/live_effects/lpegroupbbox.cpp b/src/live_effects/lpegroupbbox.cpp new file mode 100644 index 000000000..1468e5dde --- /dev/null +++ b/src/live_effects/lpegroupbbox.cpp @@ -0,0 +1,75 @@ +#define INKSCAPE_LPEGROUPBBOX_CPP + +/* + * Copyright (C) Steren Giannini 2008 + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "live_effects/lpegroupbbox.h" +#include "sp-shape.h" +#include "sp-item.h" +#include "sp-path.h" +#include "sp-item-group.h" +#include "display/curve.h" +#include +#include +#include "live_effects/n-art-bpath-2geom.h" +#include "svg/svg.h" +#include "ui/widget/scalar.h" + +#include <2geom/sbasis.h> +#include <2geom/sbasis-geometric.h> +#include <2geom/bezier-to-sbasis.h> +#include <2geom/sbasis-to-bezier.h> +#include <2geom/d2.h> +#include <2geom/piecewise.h> + +#include + +using std::vector; + +namespace Inkscape { +namespace LivePathEffect { + +void +LivePathEffect_group_bbox::recursive_original_bbox(SPGroup *group, Geom::Piecewise > & pwd2, std::vector & temppath) +{ + std::vector tempsubpath; + GSList const *item_list = sp_item_group_item_list(group); + + for ( GSList const *iter = item_list; iter; iter = iter->next ) + { + SPObject *subitem = static_cast(iter->data); + if (SP_IS_PATH(subitem)) + { + //if there is not an original-d, just take the d + if(SP_OBJECT_REPR(subitem)->attribute("inkscape:original-d") != NULL) + tempsubpath = SVGD_to_2GeomPath(SP_OBJECT_REPR(subitem)->attribute("inkscape:original-d")); + else + tempsubpath = SVGD_to_2GeomPath(SP_OBJECT_REPR(subitem)->attribute("d")); + + temppath.insert(temppath.end(), tempsubpath.begin(), tempsubpath.end()); + }else + if (SP_IS_GROUP(subitem)) + { + recursive_original_bbox(SP_GROUP(subitem), pwd2, temppath); + } + + } +} + + +} // namespace LivePathEffect +} /* namespace Inkscape */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3