AxisDescription should be a protocol with axis_id and display_name.
axis_type will have to stay in protocol until other code is reworked, but should be considered private.
Generally, ids should only be used for persistence and should be lowercase
Subclasses of STEMController (AutoSTEMController) can create their own AxisDescription with more info (e.g., a searchable name field to associate the axis_id with the AS2 axis name)
STEM controller knows how to convert points between axes but doesn't necessarily know the matrix, so returning a matrix is not straightforward right now.
There is a difference between point and size transforms; do we need size transforms?
At the stage, we shouldn't make an assumption that STEM controller knows about every axis description. i.e. pass AxisDescriptor rather than axis_id to transform functions.
axis_transform_point is one descriptive name for the method to convert a point from one axis to another.
Offline discussion notes:
AxisDescription
should be a protocol withaxis_id
anddisplay_name
.axis_type
will have to stay in protocol until other code is reworked, but should be considered private.id
s should only be used for persistence and should be lowercaseSTEMController
(AutoSTEMController
) can create their ownAxisDescription
with more info (e.g., a searchable name field to associate theaxis_id
with the AS2 axis name)AxisDescriptor
rather thanaxis_id
to transform functions.axis_transform_point
is one descriptive name for the method to convert a point from one axis to another.