|
Gocator Development Kit
|
Multi-reference frame support allows a tool to transform data represented in different reference frames into a common one, so that meaning results can be produced.
Both internal and user-defined operations in the system may perform data transformations, putting the data into a new frame of reference. For example, taking a section from a surface puts the extracted data into a new reference frame. In this frame, z is still range, but x is now aligned with the sectioning line. This data can be in turn put into yet another frame of reference.
To support the transformation of data into previous frames, the system maintains a chain of reference frames for each message. An operation that performs a reference frame change inserts a new frame into this chain, identified by an unique ID. Algorithm code can use this chain to reverse transform data into any of the preceding reference frames.
A reference frame is represented by its basis and origin with respect to the parent frame. For example, if an operation transforms data by an offset of (10, 20, -15), it's equivalent to representing the data in a new frame with origin at (-10, -20, 15) with respect to the previous frame. In other words, the reference frame is the inverse of the data transformation.
The system currently does not have a consistent method for identifying reference frames. The user must come up with their own system for doing this. Note that the user-selected IDs must not conflict with the IDs used by the system. To ensure this, the user IDs must have a value of 2000 or greater.
Some internal pose IDs that might be useful:
Note that these IDs are not always available depending on the feature set enabled.
The reference frame chain can be accessed by the following functions:
The oldest reference frame has the lowest index. To transform data back to a preceding frame, the reference frames must be applied in decreasing index, starting with the last one.
Currently the reference system is represented by three values:
This means the reference frame currently can only represent transformations within the Z plane.