When you set a curve to 2d, it flattens all curve shapes within an object to the same z position. It would be better if it instead flattened all SHAPES in the object to their own z position. This way a user can position 2d curves at different z-positions within a single object. This makes setting up shapekeys for these curve objects a lot easier to manage and would be exceptionally useful to 2d Animators.
I downloaded the Blender source and I navigated to the Curve.h and Curve.cpp files, but I’m currently confused (first time in Blender source). My understanding is that the function ‘getPoint2d()’ in the header is where a 2d vector is assigned only an x,y position.
I’m thinking that if I can access the shapeID for the currently active vertex, I can save the first z-position of a vertex and then test the next vertex to see if it’s a part of the same shape. If it is, it’ll assign it the same z-position and continue doing this until the shapeID is different. If it is, it’ll store a new z-value and continue until all shapes have been assigned a position.
Is this a reasonable plan?