/*-
*******************************************************************************
* 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.impl;
import java.util.Set;
import java.util.EnumSet;
import java.util.Map;
import org.eclipse.dawnsci.analysis.api.tree.DataNode;
import org.eclipse.january.dataset.IDataset;
import org.eclipse.dawnsci.nexus.*;
/**
* 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 class NXtransformationsImpl extends NXobjectImpl implements NXtransformations {
private static final long serialVersionUID = 1L; // no state in this class, so always compatible
public static final Set<NexusBaseClass> PERMITTED_CHILD_GROUP_CLASSES = EnumSet.noneOf(NexusBaseClass.class);
public NXtransformationsImpl() {
super();
}
public NXtransformationsImpl(final long oid) {
super(oid);
}
@Override
public Class<? extends NXobject> getNXclass() {
return NXtransformations.class;
}
@Override
public NexusBaseClass getNexusBaseClass() {
return NexusBaseClass.NX_TRANSFORMATIONS;
}
@Override
public Set<NexusBaseClass> getPermittedChildGroupClasses() {
return PERMITTED_CHILD_GROUP_CLASSES;
}
@Override
public IDataset getTRANSFORMATION() {
return getDataset(NX_TRANSFORMATION);
}
@Override
public Number getTRANSFORMATIONScalar() {
return getNumber(NX_TRANSFORMATION);
}
@Override
public DataNode setTRANSFORMATION(IDataset TRANSFORMATION) {
return setDataset(NX_TRANSFORMATION, TRANSFORMATION);
}
@Override
public DataNode setTRANSFORMATIONScalar(Number TRANSFORMATION) {
return setField(NX_TRANSFORMATION, TRANSFORMATION);
}
@Override
public Map<String, IDataset> getAllTRANSFORMATION() {
return getAllDatasets();
}
public void setTRANSFORMATION(String name, IDataset TRANSFORMATION) {
setDataset(name, TRANSFORMATION);
}
@Override
public String getTRANSFORMATIONAttributeTransformation_type() {
return getAttrString(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_TRANSFORMATION_TYPE);
}
@Override
public void setTRANSFORMATIONAttributeTransformation_type(String transformation_type) {
setAttribute(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_TRANSFORMATION_TYPE, transformation_type);
}
@Override
public Number getTRANSFORMATIONAttributeVector() {
return getAttrNumber(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_VECTOR);
}
@Override
public void setTRANSFORMATIONAttributeVector(Number vector) {
setAttribute(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_VECTOR, vector);
}
@Override
public Number getTRANSFORMATIONAttributeOffset() {
return getAttrNumber(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_OFFSET);
}
@Override
public void setTRANSFORMATIONAttributeOffset(Number offset) {
setAttribute(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_OFFSET, offset);
}
@Override
public String getTRANSFORMATIONAttributeOffset_units() {
return getAttrString(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_OFFSET_UNITS);
}
@Override
public void setTRANSFORMATIONAttributeOffset_units(String offset_units) {
setAttribute(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_OFFSET_UNITS, offset_units);
}
@Override
public String getTRANSFORMATIONAttributeDepends_on() {
return getAttrString(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_DEPENDS_ON);
}
@Override
public void setTRANSFORMATIONAttributeDepends_on(String depends_on) {
setAttribute(NX_TRANSFORMATION, NX_TRANSFORMATION_ATTRIBUTE_DEPENDS_ON, depends_on);
}
}