BezierCurve BezierCurve::transformed(QTransform transformation) { BezierCurve transformedCurve = *this; // copy the curve if (isSelected(-1)) { transformedCurve.setOrigin(transformation.map(origin)); } for(int i=0; i< vertex.size(); i++) { if (isSelected(i-1)) { transformedCurve.setC1(i, transformation.map(c1.at(i))); } if (isSelected(i)) { transformedCurve.setC2(i, transformation.map(c2.at(i))); transformedCurve.setVertex(i, transformation.map(vertex.at(i))); } } //transformedCurve.smoothCurve(); /*QPointF newOrigin = origin; if (isSelected(-1)) { newOrigin = transformation.map(newOrigin); } transformedCurve.setOrigin( newOrigin ); for(int i=0; i< vertex.size(); i++) { QPointF newC1 = c1.at(i); QPointF newC2 = c2.at(i); QPointF newVertex = vertex.at(i); if (isSelected(i-1)) { newC1 = transformation.map(newC1); } if (isSelected(i)) { newC2 = transformation.map(newC2); newVertex = transformation.map(newVertex); } transformedCurve.appendCubic( newC1, newC2, newVertex, pressure.at(i) ); if (isSelected(i)) { transformedCurve.setSelected(i, true); } } transformedCurve.setWidth( width); transformedCurve.setVariableWidth( variableWidth ); //transformedCurve.setSelected(true); // or select only the selected elements of the orginal curve? */ return transformedCurve; }