All Downloads are FREE. Search and download functionalities are using the official Maven repository.

generated.docs.javadoc.org.eclipse.dawnsci.nexus.impl.NXtransformationsImpl.html Maven / Gradle / Ivy






NXtransformationsImpl (h5jan API)












org.eclipse.dawnsci.nexus.impl

Class NXtransformationsImpl

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable<NodeLink>, GroupNode, Node, NXobject, NXtransformations


    public class NXtransformationsImpl
    extends NXobjectImpl
    implements NXtransformations
    Collection of axis-based translations and rotations to describe a geometry. May also contain axes that do not move and therefore do not have a transformation type specified, but are useful in understanding coordinate frames within which transformations are done, or in documenting important directions, such as the direction of gravity. A nested sequence of transformations lists the offset and rotation steps needed to describe the position and orientation of any movable or fixed device. There will be one or more transformations (axes) defined by one or more fields for each transformation. The all-caps name ``AXISNAME`` designates the particular axis generating a transformation (e.g. a rotation axis or a translation axis or a general axis). The attribute ``units="NX_TRANSFORMATION"`` designates the units will be appropriate to the ``transformation_type`` attribute: * ``NX_LENGTH`` for ``translation`` * ``NX_ANGLE`` for ``rotation`` * ``NX_UNITLESS`` for axes for which no transformation type is specified This class will usually contain all axes of a sample stage or goniometer or a detector. The NeXus default McSTAS coordinate frame is assumed, but additional useful coordinate axes may be defined by using axes for which no transformation type has been specified. The entry point (``depends_on``) will be outside of this class and point to a field in here. Following the chain may also require following ``depends_on`` links to transformations outside, for example to a common base table. If a relative path is given, it is relative to the group enclosing the ``depends_on`` specification. For a chain of three transformations, where :math:`T_1` depends on :math:`T_2` and that in turn depends on :math:`T_3`, the final transformation :math:`T_f` is .. math:: T_f = T_3 T_2 T_1 In explicit terms, the transformations are a subset of affine transformations expressed as 4x4 matrices that act on homogeneous coordinates, :math:`w=(x,y,z,1)^T`. For rotation and translation, .. math:: T_r &= \begin{pmatrix} R & o \\ 0_3 & 1 \end{pmatrix} \\ T_t &= \begin{pmatrix} I_3 & t + o \\ 0_3 & 1 \end{pmatrix} where :math:`R` is the usual 3x3 rotation matrix, :math:`o` is an offset vector, :math:`0_3` is a row of 3 zeros, :math:`I_3` is the 3x3 identity matrix and :math:`t` is the translation vector. :math:`o` is given the ``offset`` attribute, :math:`t` is given by the ``vector`` attribute multiplied by the field value, and :math:`R` is defined as a rotation about an axis in the direction of ``vector``, of angle of the field value.
    See Also:
    Serialized Form
    • Field Detail

      • PERMITTED_CHILD_GROUP_CLASSES

        public static final java.util.Set<NexusBaseClass> PERMITTED_CHILD_GROUP_CLASSES
    • Constructor Detail

      • NXtransformationsImpl

        public NXtransformationsImpl()
      • NXtransformationsImpl

        public NXtransformationsImpl(long oid)
    • Method Detail

      • getNXclass

        public java.lang.Class<? extends NXobject> getNXclass()
        Description copied from interface: NXobject
        Java Class object of the interface for this base class, e.g. NXsample.class.
        Specified by:
        getNXclass in interface NXobject
        Returns:
        name of Nexus class
      • getAXISNAME

        public IDataset getAXISNAME()
        Description copied from interface: NXtransformations
        Units need to be appropriate for translation or rotation The name of this field is not forced. The user is free to use any name that does not cause confusion. When using more than one ``AXISNAME`` field, make sure that each field name is unique in the same group, as required by HDF5. The values given should be the start points of exposures for the corresponding frames. The end points should be given in ``AXISNAME_end``.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAXISNAME in interface NXtransformations
        Returns:
        the value.
      • getAXISNAMEScalar

        public java.lang.Number getAXISNAMEScalar()
        Description copied from interface: NXtransformations
        Units need to be appropriate for translation or rotation The name of this field is not forced. The user is free to use any name that does not cause confusion. When using more than one ``AXISNAME`` field, make sure that each field name is unique in the same group, as required by HDF5. The values given should be the start points of exposures for the corresponding frames. The end points should be given in ``AXISNAME_end``.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAXISNAMEScalar in interface NXtransformations
        Returns:
        the value.
      • setAXISNAME

        public DataNode setAXISNAME(IDataset AXISNAME)
        Description copied from interface: NXtransformations
        Units need to be appropriate for translation or rotation The name of this field is not forced. The user is free to use any name that does not cause confusion. When using more than one ``AXISNAME`` field, make sure that each field name is unique in the same group, as required by HDF5. The values given should be the start points of exposures for the corresponding frames. The end points should be given in ``AXISNAME_end``.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        setAXISNAME in interface NXtransformations
        Parameters:
        AXISNAME - the AXISNAME
      • setAXISNAMEScalar

        public DataNode setAXISNAMEScalar(java.lang.Number AXISNAME)
        Description copied from interface: NXtransformations
        Units need to be appropriate for translation or rotation The name of this field is not forced. The user is free to use any name that does not cause confusion. When using more than one ``AXISNAME`` field, make sure that each field name is unique in the same group, as required by HDF5. The values given should be the start points of exposures for the corresponding frames. The end points should be given in ``AXISNAME_end``.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        setAXISNAMEScalar in interface NXtransformations
        Parameters:
        AXISNAME - the AXISNAME
      • getAllAXISNAME

        public java.util.Map<java.lang.String,IDataset> getAllAXISNAME()
        Description copied from interface: NXtransformations
        Get all AXISNAME fields: Units need to be appropriate for translation or rotation The name of this field is not forced. The user is free to use any name that does not cause confusion. When using more than one ``AXISNAME`` field, make sure that each field name is unique in the same group, as required by HDF5. The values given should be the start points of exposures for the corresponding frames. The end points should be given in ``AXISNAME_end``.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAllAXISNAME in interface NXtransformations
        Returns:
        a map from node names to the ? extends IDataset for that node.
      • setAXISNAME

        public void setAXISNAME(java.lang.String name,
                                IDataset AXISNAME)
      • getAXISNAMEAttributeTransformation_type

        public java.lang.String getAXISNAMEAttributeTransformation_type()
        Description copied from interface: NXtransformations
        The transformation_type may be ``translation``, in which case the values are linear displacements along the axis, ``rotation``, in which case the values are angular rotations around the axis. If this attribute is omitted, this is an axis for which there is no motion to be specifies, such as the direction of gravity, or the direction to the source, or a basis vector of a coordinate frame.

        Enumeration:

        • translation
        • rotation

        Specified by:
        getAXISNAMEAttributeTransformation_type in interface NXtransformations
        Returns:
        the value.
      • setAXISNAMEAttributeTransformation_type

        public void setAXISNAMEAttributeTransformation_type(java.lang.String transformation_type)
        Description copied from interface: NXtransformations
        The transformation_type may be ``translation``, in which case the values are linear displacements along the axis, ``rotation``, in which case the values are angular rotations around the axis. If this attribute is omitted, this is an axis for which there is no motion to be specifies, such as the direction of gravity, or the direction to the source, or a basis vector of a coordinate frame.

        Enumeration:

        • translation
        • rotation

        Specified by:
        setAXISNAMEAttributeTransformation_type in interface NXtransformations
        Parameters:
        transformation_type - the transformation_type
      • getAXISNAMEAttributeVector

        public java.lang.Number getAXISNAMEAttributeVector()
        Description copied from interface: NXtransformations
        Three values that define the axis for this transformation. The axis should be normalized to unit length, making it dimensionless. For ``rotation`` axes, the direction should be chosen for a right-handed rotation with increasing angle. For ``translation`` axes the direction should be chosen for increasing displacement.

        1: 3;

        Specified by:
        getAXISNAMEAttributeVector in interface NXtransformations
        Returns:
        the value.
      • setAXISNAMEAttributeVector

        public void setAXISNAMEAttributeVector(java.lang.Number vector)
        Description copied from interface: NXtransformations
        Three values that define the axis for this transformation. The axis should be normalized to unit length, making it dimensionless. For ``rotation`` axes, the direction should be chosen for a right-handed rotation with increasing angle. For ``translation`` axes the direction should be chosen for increasing displacement.

        1: 3;

        Specified by:
        setAXISNAMEAttributeVector in interface NXtransformations
        Parameters:
        vector - the vector
      • getAXISNAMEAttributeOffset

        public java.lang.Number getAXISNAMEAttributeOffset()
        Description copied from interface: NXtransformations
        A fixed offset applied before the transformation (three vector components).

        1: 3;

        Specified by:
        getAXISNAMEAttributeOffset in interface NXtransformations
        Returns:
        the value.
      • setAXISNAMEAttributeOffset

        public void setAXISNAMEAttributeOffset(java.lang.Number offset)
        Description copied from interface: NXtransformations
        A fixed offset applied before the transformation (three vector components).

        1: 3;

        Specified by:
        setAXISNAMEAttributeOffset in interface NXtransformations
        Parameters:
        offset - the offset
      • setAXISNAMEAttributeOffset_units

        public void setAXISNAMEAttributeOffset_units(java.lang.String offset_units)
        Description copied from interface: NXtransformations
        Units of the offset. Values should be consistent with NX_LENGTH.
        Specified by:
        setAXISNAMEAttributeOffset_units in interface NXtransformations
        Parameters:
        offset_units - the offset_units
      • getAXISNAMEAttributeDepends_on

        public java.lang.String getAXISNAMEAttributeDepends_on()
        Description copied from interface: NXtransformations
        Points to the path to a field defining the axis on which this depends or the string ".".
        Specified by:
        getAXISNAMEAttributeDepends_on in interface NXtransformations
        Returns:
        the value.
      • setAXISNAMEAttributeDepends_on

        public void setAXISNAMEAttributeDepends_on(java.lang.String depends_on)
        Description copied from interface: NXtransformations
        Points to the path to a field defining the axis on which this depends or the string ".".
        Specified by:
        setAXISNAMEAttributeDepends_on in interface NXtransformations
        Parameters:
        depends_on - the depends_on
      • getAXISNAME_end

        public IDataset getAXISNAME_end()
        Description copied from interface: NXtransformations
        ``AXISNAME_end`` is a placeholder for a name constructed from the actual name of an axis to which ``_end`` has been appended. The values in this field are the end points of the motions that start at the corresponding positions given in the ``AXISNAME`` field.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAXISNAME_end in interface NXtransformations
        Returns:
        the value.
      • getAXISNAME_endScalar

        public java.lang.Number getAXISNAME_endScalar()
        Description copied from interface: NXtransformations
        ``AXISNAME_end`` is a placeholder for a name constructed from the actual name of an axis to which ``_end`` has been appended. The values in this field are the end points of the motions that start at the corresponding positions given in the ``AXISNAME`` field.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAXISNAME_endScalar in interface NXtransformations
        Returns:
        the value.
      • setAXISNAME_end

        public DataNode setAXISNAME_end(IDataset AXISNAME_end)
        Description copied from interface: NXtransformations
        ``AXISNAME_end`` is a placeholder for a name constructed from the actual name of an axis to which ``_end`` has been appended. The values in this field are the end points of the motions that start at the corresponding positions given in the ``AXISNAME`` field.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        setAXISNAME_end in interface NXtransformations
        Parameters:
        AXISNAME_end - the AXISNAME_end
      • setAXISNAME_endScalar

        public DataNode setAXISNAME_endScalar(java.lang.Number AXISNAME_end)
        Description copied from interface: NXtransformations
        ``AXISNAME_end`` is a placeholder for a name constructed from the actual name of an axis to which ``_end`` has been appended. The values in this field are the end points of the motions that start at the corresponding positions given in the ``AXISNAME`` field.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        setAXISNAME_endScalar in interface NXtransformations
        Parameters:
        AXISNAME_end - the AXISNAME_end
      • getAllAXISNAME_end

        public java.util.Map<java.lang.String,IDataset> getAllAXISNAME_end()
        Description copied from interface: NXtransformations
        Get all AXISNAME_end fields: ``AXISNAME_end`` is a placeholder for a name constructed from the actual name of an axis to which ``_end`` has been appended. The values in this field are the end points of the motions that start at the corresponding positions given in the ``AXISNAME`` field.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAllAXISNAME_end in interface NXtransformations
        Returns:
        a map from node names to the ? extends IDataset for that node.
      • setAXISNAME_end

        public void setAXISNAME_end(java.lang.String name,
                                    IDataset AXISNAME_end)
      • getAXISNAME_increment_set

        public IDataset getAXISNAME_increment_set()
        Description copied from interface: NXtransformations
        ``AXISNAME_increment_set`` is a placeholder for a name constructed from the actual name of an axis to which ``_increment_set`` has been appended. The value of this optional field is the intended average range through which the corresponding axis moves during the exposure of a frame. Ideally, the value of this field added to each value of ``AXISNAME`` would agree with the corresponding values of ``AXISNAME_end``, but there is a possibility of significant differences. Use of ``AXISNAME_end`` is recommended.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAXISNAME_increment_set in interface NXtransformations
        Returns:
        the value.
      • getAXISNAME_increment_setScalar

        public java.lang.Number getAXISNAME_increment_setScalar()
        Description copied from interface: NXtransformations
        ``AXISNAME_increment_set`` is a placeholder for a name constructed from the actual name of an axis to which ``_increment_set`` has been appended. The value of this optional field is the intended average range through which the corresponding axis moves during the exposure of a frame. Ideally, the value of this field added to each value of ``AXISNAME`` would agree with the corresponding values of ``AXISNAME_end``, but there is a possibility of significant differences. Use of ``AXISNAME_end`` is recommended.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAXISNAME_increment_setScalar in interface NXtransformations
        Returns:
        the value.
      • setAXISNAME_increment_set

        public DataNode setAXISNAME_increment_set(IDataset AXISNAME_increment_set)
        Description copied from interface: NXtransformations
        ``AXISNAME_increment_set`` is a placeholder for a name constructed from the actual name of an axis to which ``_increment_set`` has been appended. The value of this optional field is the intended average range through which the corresponding axis moves during the exposure of a frame. Ideally, the value of this field added to each value of ``AXISNAME`` would agree with the corresponding values of ``AXISNAME_end``, but there is a possibility of significant differences. Use of ``AXISNAME_end`` is recommended.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        setAXISNAME_increment_set in interface NXtransformations
        Parameters:
        AXISNAME_increment_set - the AXISNAME_increment_set
      • setAXISNAME_increment_setScalar

        public DataNode setAXISNAME_increment_setScalar(java.lang.Number AXISNAME_increment_set)
        Description copied from interface: NXtransformations
        ``AXISNAME_increment_set`` is a placeholder for a name constructed from the actual name of an axis to which ``_increment_set`` has been appended. The value of this optional field is the intended average range through which the corresponding axis moves during the exposure of a frame. Ideally, the value of this field added to each value of ``AXISNAME`` would agree with the corresponding values of ``AXISNAME_end``, but there is a possibility of significant differences. Use of ``AXISNAME_end`` is recommended.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        setAXISNAME_increment_setScalar in interface NXtransformations
        Parameters:
        AXISNAME_increment_set - the AXISNAME_increment_set
      • getAllAXISNAME_increment_set

        public java.util.Map<java.lang.String,IDataset> getAllAXISNAME_increment_set()
        Description copied from interface: NXtransformations
        Get all AXISNAME_increment_set fields: ``AXISNAME_increment_set`` is a placeholder for a name constructed from the actual name of an axis to which ``_increment_set`` has been appended. The value of this optional field is the intended average range through which the corresponding axis moves during the exposure of a frame. Ideally, the value of this field added to each value of ``AXISNAME`` would agree with the corresponding values of ``AXISNAME_end``, but there is a possibility of significant differences. Use of ``AXISNAME_end`` is recommended.

        Units: NX_TRANSFORMATION Type: NX_NUMBER

        Specified by:
        getAllAXISNAME_increment_set in interface NXtransformations
        Returns:
        a map from node names to the ? extends IDataset for that node.
      • setAXISNAME_increment_set

        public void setAXISNAME_increment_set(java.lang.String name,
                                              IDataset AXISNAME_increment_set)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy