summaryrefslogtreecommitdiffstats
path: root/src/sp-mesh-array.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2015-10-08 10:15:34 +0000
committertavmjong-free <tavmjong@free.fr>2015-10-08 10:15:34 +0000
commit6ec542b8becf1a402c3109f44d2b028a8c87a26c (patch)
tree09c8d00924950836138bab8b1111bdf451952340 /src/sp-mesh-array.cpp
parentMore additions for 'mesh' attributes. (diff)
downloadinkscape-6ec542b8becf1a402c3109f44d2b028a8c87a26c.tar.gz
inkscape-6ec542b8becf1a402c3109f44d2b028a8c87a26c.zip
Correct transform when picking colors under mesh.
(bzr r14401)
Diffstat (limited to 'src/sp-mesh-array.cpp')
-rw-r--r--src/sp-mesh-array.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/sp-mesh-array.cpp b/src/sp-mesh-array.cpp
index 445c9a8f6..d76b884ae 100644
--- a/src/sp-mesh-array.cpp
+++ b/src/sp-mesh-array.cpp
@@ -313,7 +313,7 @@ bool SPMeshPatchI::tensorIsSet( unsigned int i ) {
/**
Return tensor control point for "corner" i.
- If not sest, returns calculated (Coons) point.
+ If not set, returns calculated (Coons) point.
*/
Geom::Point SPMeshPatchI::getTensorPoint( guint k ) {
@@ -1058,11 +1058,11 @@ void SPMeshNodeArray::create( SPMesh *mg, SPItem *item, Geom::OptRect bbox ) {
Geom::Point center = bbox->midpoint();
// Must keep repr and array in sync. We have two choices:
- // Build the repr first and the "read" it.
- // Construct the array and the "write" it.
+ // Build the repr first and then "read" it.
+ // Construct the array and then "write" it.
// We'll do the second.
- // Remove any existing mesh. We could chose to simply scale an existing mesh...
+ // Remove any existing mesh. We could choose to simply scale an existing mesh...
//clear();
// We get called twice when a new mesh is created...WHY?
@@ -2265,10 +2265,12 @@ guint SPMeshNodeArray::color_pick( std::vector<guint> icorners, SPItem* item ) {
// Region to average over
Geom::Point p = n->p;
- // std::cout << " p: " << p << std::endl;
+ // std::cout << " before transform: p: " << p << std::endl;
p *= gr->gradientTransform;
- // std::cout << " p: " << p << std::endl;
-
+ // std::cout << " after transform: p: " << p << std::endl;
+ p *= item->i2doc_affine();
+ // std::cout << " after transform: p: " << p << std::endl;
+
// If on edge, move inward
guint cols = patch_columns()+1;
guint rows = patch_rows()+1;
@@ -2277,7 +2279,7 @@ guint SPMeshNodeArray::color_pick( std::vector<guint> icorners, SPItem* item ) {
guint ncol = col * 3;
guint nrow = row * 3;
- double size = 3.0;
+ const double size = 3.0;
// Top edge
if( row == 0 ) {