diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2015-03-14 10:22:32 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2015-03-14 10:22:32 +0000 |
| commit | 9dde2a95bdbe44c1acdfa4bb279ca554771bb0c8 (patch) | |
| tree | 613faaf93a3c4d3ced5e591daf0fe3cdab23afb1 /src/live_effects/lpe-lattice2.cpp | |
| parent | Fix for a potential (though unlikely) dereference of null pointer in the spra... (diff) | |
| download | inkscape-9dde2a95bdbe44c1acdfa4bb279ca554771bb0c8.tar.gz inkscape-9dde2a95bdbe44c1acdfa4bb279ca554771bb0c8.zip | |
Lattice 2 now handle in miror mode revase of axis, also fix a bug moving extem axis knots
(bzr r14001)
Diffstat (limited to 'src/live_effects/lpe-lattice2.cpp')
| -rw-r--r-- | src/live_effects/lpe-lattice2.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/live_effects/lpe-lattice2.cpp b/src/live_effects/lpe-lattice2.cpp index a0069042e..1916fc2d4 100644 --- a/src/live_effects/lpe-lattice2.cpp +++ b/src/live_effects/lpe-lattice2.cpp @@ -295,6 +295,9 @@ LPELattice2::vertical(PointParam ¶mA, PointParam ¶mB, Geom::Line vert){ double distA = Geom::distance(A,nearest); double distB = Geom::distance(B,nearest); double distanceMed = (distA + distB)/2; + if(A[Geom::X] > B[Geom::X]){ + distanceMed *= -1; + } A[Geom::X] = nearest[Geom::X] - distanceMed; B[Geom::X] = nearest[Geom::X] + distanceMed; paramA.param_setValue(A, true); @@ -312,6 +315,9 @@ LPELattice2::horizontal(PointParam ¶mA, PointParam ¶mB, Geom::Line horiz double distA = Geom::distance(A,nearest); double distB = Geom::distance(B,nearest); double distanceMed = (distA + distB)/2; + if(A[Geom::Y] > B[Geom::Y]){ + distanceMed *= -1; + } A[Geom::Y] = nearest[Geom::Y] - distanceMed; B[Geom::Y] = nearest[Geom::Y] + distanceMed; paramA.param_setValue(A, true); @@ -323,8 +329,8 @@ LPELattice2::doBeforeEffect (SPLPEItem const* lpeitem) { original_bbox(lpeitem); setDefaults(); - Geom::Line vert(grid_point8x9,grid_point10x11); - Geom::Line horiz(grid_point24x26,grid_point25x27); + Geom::Line vert(grid_point8x9.param_get_default(),grid_point10x11.param_get_default()); + Geom::Line horiz(grid_point24x26.param_get_default(),grid_point25x27.param_get_default()); if(verticalMirror){ vertical(grid_point0, grid_point1,vert); vertical(grid_point2, grid_point3,vert); |
