From 70a05bc08bae10f00ba33415f5162b71e110d3b4 Mon Sep 17 00:00:00 2001 From: Maximilian Albert Date: Tue, 29 Jul 2008 14:49:40 +0000 Subject: LPE knotholder refactoring: PointParams are not knotholder entities any more; instead, every parameter type can now return entities (and then forget about them) (bzr r6446) --- src/live_effects/effect.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'src/live_effects/effect.cpp') diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 289d22172..c4bbc31e1 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -422,6 +422,9 @@ Effect::registerKnotHolderHandle(KnotHolderEntity* entity, const char* descr) */ void Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { + using namespace Inkscape::LivePathEffect; + + // add handles provided by the effect itself std::vector >::iterator i; for (i = kh_entity_vector.begin(); i != kh_entity_vector.end(); ++i) { KnotHolderEntity *entity = i->first; @@ -430,18 +433,10 @@ Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { entity->create(desktop, item, knotholder, descr); knotholder->add(entity); } -} -void -Effect::addPointParamHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { - using namespace Inkscape::LivePathEffect; + // add handles provided by the effect's parameters (if any) for (std::vector::iterator p = param_vector.begin(); p != param_vector.end(); ++p) { - if ( Inkscape::LivePathEffect::PointParam *pparam = dynamic_cast(*p) ) { - KnotHolderEntity *e = dynamic_cast(*p); - e->create(desktop, item, knotholder, pparam->handleTip(), - pparam->knotShape(), pparam->knotMode(), pparam->knotColor()); - knotholder->add(e); - } + (*p)->addKnotHolderEntities(knotholder, desktop, item); } } @@ -612,6 +607,7 @@ Effect::transform_multiply(Geom::Matrix const& postmul, bool set) } } +// TODO: take _all_ parameters into account, not only PointParams bool Effect::providesKnotholder() { -- cgit v1.2.3