//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
[ ] 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] Apply tilts to evaluated normals
[x] Evaluate control point indices and interpolation factors
[ ] Different interpolation settings for bezier curves
[ ] Curve to Mesh node (Extrude profile)
[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
[ ] 2D Curve to Mesh node
[x] Investigate different triangulation methods
[ ] Implement flat mesh generation
[ ] Implement mesh with extrusion and bevel
[x] Resample curve node
[x] Add generic constant length curve evaluation
[ ] 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
[ ] Position
[ ] Bezier Handles
[ ] Others
[ ] Write access to point attributes
[ ] Position
[ ] Bezier Handles
[ ] Others
[ ] Curve Deform node
[ ] Add non-even sampling method
[ ] Generic spline deformation
[ ] Extrapolation for
[ ] Add Point node
[ ] Change Direction node
[ ] Curve modifier stack changes
[x] Refactor to storing arrays separately
[x] Refactor to speed up poly splines
[ ] Add support for generic attributes
[ ] Support in attribute nodes
[ ] Support in the sample points node
[ ] Transfer to mesh in curve to mesh node
[ ] Add instancing directly on evaluated points
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.