From e7bb1921ce0a29a94fe03c321ad409e7d407611d Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 17 Nov 2014 23:27:28 +0100 Subject: adding knot improvements pointed by su_v (bzr r13682.1.13) --- src/live_effects/lpe-mirror_symmetry.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 4024ff83e..1205476a4 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -80,10 +80,10 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) SPLPEItem * item = const_cast(lpeitem); std::vector mline(reflection_line.get_pathvector()); - Point A = mline[0].initialPoint(); - Point B = mline[0].finalPoint(); - Point C = mline[0].pointAt(0.5); + Point A(boundingbox_X.max(), boundingbox_Y.max()); + Point B(boundingbox_X.max(), boundingbox_Y.min()); double dist = distance(A,B); + Point C = mline[0].pointAt(0.5); if(mode == MT_X){ A = Geom::Point(center[X]+(dist/2.0),center[Y]); B = Geom::Point(center[X]-(dist/2.0),center[Y]); @@ -96,7 +96,19 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); reflection_line.set_new_value(rline, true); } else { - center.param_setValue(C); + A = mline[0].initialPoint(); + B = mline[0].finalPoint(); + lineSeparation.setPoints(A,B); + Geom::Rotate rot = Geom::Rotate(lineSeparation.angle()); + Geom::Translate trans = Geom::Translate(center); + A = Geom::Point(center[X],center[Y]+(dist/2.0)); + B = Geom::Point(center[X],center[Y]-(dist/2.0)); + Piecewise > rline = Piecewise >(D2(Linear(A[X], B[X]), Linear(A[Y], B[Y]))); + rline *= rot; + rline *= trans; + reflection_line.set_new_value(rline, true); + A = mline[0].initialPoint(); + B = mline[0].finalPoint(); } lineSeparation.setPoints(A,B); if(knot_holder){ -- cgit v1.2.3