Dynamo
Dynamo copied to clipboard
[SPIKE] DYN-2473: Use light-weight geometry primitives lib for direct manipulation geometry
Purpose
Use lightweight geometry primitives lib for direct manipulation geometry.
Note: This PR still uses a mix of ProtoGeo and geometry primitive types as the Geometry primitives library doesn't support any geometric operations or calculations. This PR doesn't replace the following more complex operations on ProtoGeometry Curve with corresponding functions for geometry primitive types using in PointOnCurveManipulator.
- Curve.PointAtParameter
- Curve.TangentAtParameter
- Curve.ParameterAtPoint
- Curve.ClosesPointTo
TODO:
- The above methods need to be implemented for all Protogeo curve types. These could be implemented by hand in C# using references to common Math and computational geometry algorithms.
- The gizmo seems to jump to a new position on a camera changed event, for example, when orbiting - this needs some debugging
- The gizmo isn't redrawn while dragging to intermediate points, it's redrawn only at the final position on a mouse up event - this too is a deviation from the old behavior and needs to be fixed
Declarations
Check these if you believe they are true
- [ ] The codebase is in a better state after this PR
- [ ] Is documented according to the standards
- [ ] The level of testing this PR includes is appropriate
- [ ] User facing strings, if any, are extracted into
*.resxfiles - [ ] All tests pass using the self-service CI.
- [ ] Snapshot of UI changes, if any.
- [ ] Changes to the API follow Semantic Versioning and are documented in the API Changes document.
- [ ] This PR modifies some build requirements and the readme is updated
- [ ] This PR contains no files larger than 50 MB
UI Smoke Tests
Test: success. 2 passed, 0 failed. TestComplete Test Result Workflow Run: UI Smoke Tests Check: UI Smoke Tests - net8.0