Transforms between coordinate systems
Users should be able to select a pair of coordinate system annotations (#240 (closed)) and apply them to a component. In aeva, this should be modeled as
- A property on the component being transformed (or a change to the base component class to allow aeva components to store them directly) that references the coordinate systems by reference (not value) so that changes to the coordinate frames results in the component's data being updated.
- Modifications to the aeva-session's Geometry class to be aware of the transform and apply it to the VTK data produced (leaving the component's original data untouched).
- The above imply that operations which edit coordinate systems need some way to identify components that reference them. If we use SMTK's property system, that would mean adding a "transform" property to component A would also require editing components holding the transforms themselves (either an attribute in the case of #240 (closed) option 1 or whatever component holds the matrix-valued property in #240 (closed) option 2).