/*- ******************************************************************************* * Copyright (c) 2015 Diamond Light Source Ltd. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * This file was auto-generated from the NXDL XML definition. * Generated at: 2016-09-28T15:24:07.968+01:00 *******************************************************************************/ package org.eclipse.dawnsci.nexus; import java.util.Map; import org.eclipse.dawnsci.analysis.api.tree.DataNode; import org.eclipse.january.dataset.IDataset; /** * Collection of translations and rotations to describe a geometry * A sequence of transformations lists the * offset and rotation steps needed to describe the position and orientation * of any movable or fixed device. * This class will usually contain all axes of a sample stage or goniometer. * 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. * .. * Given an entry point :math:`\vec{p_i}`, the point :math:`\vec{p_{i+1}}` * resulting from the next transformation (the field in this group named * in the ``depends_on`` attribute of the entry point) * may be expressed: * .. math:: * \vec{p_{i+1}} = \vec{o_{i}} + \vec{V_{i}} * \vec{p_{i}} * where :math`\vec{o_{i}}` is the vector given in the ``@offset`` attribute * and :math`\vec{V_{i}}` is the vector given in the ``@vector`` attribute * TODO: this needs an equation (issue #484) * * @version 1.0 */ public interface NXtransformations extends NXobject { public static final String NX_TRANSFORMATION = "TRANSFORMATION"; public static final String NX_TRANSFORMATION_ATTRIBUTE_TRANSFORMATION_TYPE = "transformation_type"; public static final String NX_TRANSFORMATION_ATTRIBUTE_VECTOR = "vector"; public static final String NX_TRANSFORMATION_ATTRIBUTE_OFFSET = "offset"; public static final String NX_TRANSFORMATION_ATTRIBUTE_OFFSET_UNITS = "offset_units"; public static final String NX_TRANSFORMATION_ATTRIBUTE_DEPENDS_ON = "depends_on"; /** * Units need to be appropriate for translation or rotation * The name of this field is not defined. The user is free to use any name * that does not cause confusion. When using more than one TRANSFORMATION field, * make sure that each field name is unique in the same group, as required * by HDF5. * <p> * <b>Type:</b> NX_NUMBER * </p> * * @return the value. */ public IDataset getTRANSFORMATION(); /** * Units need to be appropriate for translation or rotation * The name of this field is not defined. The user is free to use any name * that does not cause confusion. When using more than one TRANSFORMATION field, * make sure that each field name is unique in the same group, as required * by HDF5. * <p> * <b>Type:</b> NX_NUMBER * </p> * * @param TRANSFORMATION the TRANSFORMATION */ public DataNode setTRANSFORMATION(IDataset TRANSFORMATION); /** * Units need to be appropriate for translation or rotation * The name of this field is not defined. The user is free to use any name * that does not cause confusion. When using more than one TRANSFORMATION field, * make sure that each field name is unique in the same group, as required * by HDF5. * <p> * <b>Type:</b> NX_NUMBER * </p> * * @return the value. */ public Number getTRANSFORMATIONScalar(); /** * Units need to be appropriate for translation or rotation * The name of this field is not defined. The user is free to use any name * that does not cause confusion. When using more than one TRANSFORMATION field, * make sure that each field name is unique in the same group, as required * by HDF5. * <p> * <b>Type:</b> NX_NUMBER * </p> * * @param TRANSFORMATION the TRANSFORMATION */ public DataNode setTRANSFORMATIONScalar(Number TRANSFORMATION); /** * Get all TRANSFORMATION fields: * * Units need to be appropriate for translation or rotation * The name of this field is not defined. The user is free to use any name * that does not cause confusion. When using more than one TRANSFORMATION field, * make sure that each field name is unique in the same group, as required * by HDF5. * <p> * <b>Type:</b> NX_NUMBER * </p> * * @return a map from node names to the ? extends IDataset for that node. */ public Map<String, ? extends IDataset> getAllTRANSFORMATION(); /** * <p> * <p><b>Enumeration:</b><ul> * <li><b>translation</b> </li> * <li><b>rotation</b> </li></ul></p> * </p> * * @return the value. */ public String getTRANSFORMATIONAttributeTransformation_type(); /** * <p> * <p><b>Enumeration:</b><ul> * <li><b>translation</b> </li> * <li><b>rotation</b> </li></ul></p> * </p> * * @param transformation_type the transformation_type */ public void setTRANSFORMATIONAttributeTransformation_type(String transformation_type); /** * Three values that define the axis for this transformation * * @return the value. */ public Number getTRANSFORMATIONAttributeVector(); /** * Three values that define the axis for this transformation * * @param vector the vector */ public void setTRANSFORMATIONAttributeVector(Number vector); /** * A fixed offset applied before the transformation (three vector components). * * @return the value. */ public Number getTRANSFORMATIONAttributeOffset(); /** * A fixed offset applied before the transformation (three vector components). * * @param offset the offset */ public void setTRANSFORMATIONAttributeOffset(Number offset); /** * Units of the offset. * * @return the value. */ public String getTRANSFORMATIONAttributeOffset_units(); /** * Units of the offset. * * @param offset_units the offset_units */ public void setTRANSFORMATIONAttributeOffset_units(String offset_units); /** * Points to the name of the next element in the geometry chain. * * @return the value. */ public String getTRANSFORMATIONAttributeDepends_on(); /** * Points to the name of the next element in the geometry chain. * * @param depends_on the depends_on */ public void setTRANSFORMATIONAttributeDepends_on(String depends_on); }