diff options
Diffstat (limited to 'src/sp-item.cpp')
| -rw-r--r-- | src/sp-item.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 3b9d70504..f24bf6ecc 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -51,6 +51,7 @@ #include "conn-avoid-ref.h" #include "conditions.h" #include "sp-filter-reference.h" +#include "sp-guide.h" #include "libnr/nr-matrix-div.h" #include "libnr/nr-matrix-fns.h" @@ -1576,6 +1577,30 @@ sp_item_first_item_child (SPObject *obj) return NULL; } +void +sp_item_convert_to_guides(SPItem *item) { + NR::Maybe<NR::Rect> bbox = sp_item_bbox_desktop(item, SPItem::GEOMETRIC_BBOX); + if (!bbox) { + g_print ("Cannot determine bounding box. Doing nothing.\n"); + return; + } + + std::list<std::pair<Geom::Point, Geom::Point> > pts; + + NR::Point A((*bbox).min()); + NR::Point C((*bbox).max()); + NR::Point B(A[NR::X], C[NR::Y]); + NR::Point D(C[NR::X], A[NR::Y]); + + pts.push_back(std::make_pair(A.to_2geom(), B.to_2geom())); + pts.push_back(std::make_pair(B.to_2geom(), C.to_2geom())); + pts.push_back(std::make_pair(C.to_2geom(), D.to_2geom())); + pts.push_back(std::make_pair(D.to_2geom(), A.to_2geom())); + + sp_guide_pt_pairs_to_guides(SP_OBJECT_DOCUMENT(item), pts); + + SP_OBJECT(item)->deleteObject(true); +} /* Local Variables: |
