//Currently I'm just treating this as a personal project, but I thought it would be nice to have some public place to track progress.//
Initial Design: https://wiki.blender.org/wiki/Modules/Physics_Nodes/Projects/EverythingNodes/CurveNodes
[x] Basic design for data structures
[x] Conversion from DNA `Curve` struct
[x] Bezier
[x] NURBS
[x] Poly
[x] Spline attributes
[x] Cyclic
[x] Length
[x] Resolution
[ ] Spline evaluation
[x] Position calculation
[x] Bezier
[x] NURBS
[x] Poly
[x] Tangents
[ ] Normals
[x] Z-up method
[ ] Minimum twist method
[ ] Tangent method
[x] Evaluate control point indices and interpolation factors
[ ] "Extrude Profile" node //AKA Curve to Mesh Node//
[x] Extrude single vertex
[x] Extrude another spline
[x] Set edge sharp flag based on sharp control points
[x] Use evaluated spline radius
[ ] Fill Caps option
[ ] Sample Curve to points node
[ ] Add generic constant length curve evaluation
[ ] Copy attributes to points
[ ] Trim Curve node
[x] Bezier support
[ ] Fix bezier handles
[ ] Poly support
[ ] Convert NURBS to poly
[ ] Bezier auto handle recalculation
[ ] Curve profile primitive node
[ ] Conversion from `CurveProfile` to `DCurve`
[ ] Add a "Cyclic" option
[ ] Option to draw without fill unless cyclic
[ ] Read only point attributes
[x] Position
[ ] Bezier Handles
[x] Others
[ ] Write access to point attributes
[ ] Position
[ ] Bezier Handles
[ ] Others
[ ] Curve Deform node
[ ] Add Point node
[ ] Change Direction node
[ ] Curve modifier stack changes
[x] Refactor to storing arrays separately
[ ] Refactor to speed up poly splines
I've limited this list to what I think the design is clear about. Other features may take a bit more design work before implementation.
The WIP changes are in the `geometry-nodes-curve-support` branch.