The SpatialLocationType is a subtype of the RelativeValueType. It is used for information about position or orientation. A concrete subtype of this abstract type shall be defined for use with the Relative Spatial Location AddIns, e.g., the CartesianFrameAngleOrientationType described in 7.3.
It is formally defined in Table 18.
Table 18 – SpatialLocationType Definition
Attribute |
Value |
|||||
BrowseName |
SpatialLocationType |
|||||
IsAbstract |
True |
|||||
ValueRank |
-2 (Any) |
|||||
DataType |
BaseDataType |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the RelativeValueType defined in 7.1 |
||||||
0:HasComponent |
Variable |
Position |
0:BaseDataType |
0:BaseDataVariableType |
O |
|
0:HasComponent |
Variable |
Orientation |
0:BaseDataType |
0:BaseDataVariableType |
O |
|
0:HasComponent |
Variable |
Base |
0:NodeId |
0:BaseDataVariableType |
M |
The Variable Position informs about a position. Note that the TypeDefinition is not defined in detail, so it is assumed to define, while subtyping from SpatialLocationType, specific type definitions to provide information about a position e.g., for cartesian, spherical or cylindrical positions.
The Variable Orientation informs about an orientation typically with respect to a position. In mathethamics, orientation defines a geometric notion. For example, in two dimensions it allows to say when a cycle goes clockwise or counterclockwise, or in three dimensions when a figure is left-handed or right-handed. Note that the TypeDefinition is not defined in detail, so it is assumed to define, while subtyping from SpatialLocationType, specific type definitions to provide information about orientation.
The mandatory Variable Base is used to point via NodeId to the location, where the described location is based on.
When used with subtypes of SpatialLocationType, if the Variable Base is NULL, the end of the frame chain is reached.
For this the Variable Base of the WorldFrame of SpatialObjectsListType is defined NULL.
For objects, which are on hold, e.g. configured in a system and so organised by a SpatialObjectsList, but not attached in a relative spatial way, the 0:NodeId can be NULL. Defining the Constant bit of the Variable Base with False brings awareness, that this object might be attached to a base without GeneralModelChangeEvent of the SpatialObjectsList.
To provide a display name for the base the client needs to follow the 0:NodeId which points to an instance with an Attribute DisplayName.