This doesn't compile yet. The ideaThe general idea here is to wrap the DNA`CurvesGeometry` dna struct with a C++
class soa C++ class that code that uses `CurveEval` doesn't have to be downgradedan do most of the heavy lifting for the curve geometry
in terms of readabilitya better way. Using a C++ class allows easier ways to group
methods, easier const correctness, and code that's more readable
and faster to write.
This way it can work much more like a version of `CurveEval`
that uses more efficient attribute storage. So far it's working out quite well I thinkThis also makes converting
existing code easier.
The worst part is the attribute API, part of which has to be implementednext steps after this patch:
- Implement conversion to and from `CurveEval`
for the class. The idea is that in the future a more general refactor to- Implement catmull-rom evaluation for `CurvesGeometry` and `CurveEval`
`AttributeData` would allow deduplicating that.- Implement Bezier, NURBS, and Poly evaluation for `CurvesGeometry`