No matter, how the Inkscape team is trying to solve the problems with Spiros. You could go your own way.

Quote Originally Posted by covoxer View Post
Quote Originally Posted by PhilM View Post
Or if that's not acceptable, the C4 points could be converted to beziers (that's what libSpiro does) as soon as any transform is applied that would give non-affine results.
Well, it doesn't sound like a good idea to make such a conversion permanent and automatic. So it's better to make it on the rendering stage dynamically.
It is also probably simpler to implement this as a separate class.
It seems to be a clever idea to use the Spiro mode as a simple input mode and convert all Spiros internally to Beziers (that's the whole point of libspiro). With this way all transformations could be handled with the normal algorithms:
  • If the user creates a path with Spiro points, the path is internally converted to Splines. The interface shows the generated Spline together with his Spiro points.
  • Whenever the user starts a transformation, the normal algorithms for Splines are used for this.
  • At the end of such a method, there is only one additional step to do: Calculate the resulting Spiro points starting from the transformed Bezier path. It's simply the reverse operation of the normal Spiro algorithm.
  • The only difference between a normal path and a Spiro path is, that the Spiro mode/tool is calculating, storing and showing the new Spiro points after such a transformation.


Remi