I wish to move multiple points on a spline at the same time. The way i currently achieve moving a point is through the X and Y properties on the ISketchPoint interface. Every time X or Y is modified the sketch is solved. If the sketch solving fails, e.g if there is a self intersection, the point is reset to its previous value. Now if i intend to mover several points on a spline, there is a pretty good chance that after moving one of the points, the spline might intersect itself even though the final spline is valid. This might even happen when moving a single point moving one coordinate before the other.
I have attached a scenario with a before and after picture. Here a single point is moved. The move requires the point to move upwards and to the right. If the X coordinate is updated the sketch solves fine, and the Y coordinate can be updated. If the order is the other way round, and the Y coordinate is update first the spline intersects it self and the move is rejected. When the X value is subsequently moved and the point would end up with the correct X coordinate but the wrong Y coordinate. If it was only a single point one could just try them in any order. However when moving multiple point this will not work.
It is fairly simple to create a curve C and alternative curve C' where each point c in C maps to a point c' in C' such that no point c can move to the matching point c' without C self intersecting. Thus this curve would be impossible to update one point at a time. Creating a new curve is also not an option as all auxillary data like relations etc. will be lost.
Is it possible to delay the sketch solve until all points are moved?