def add_rotation( self, axis: QVector3D, angle: float, name: str = None, depends_on: Transformation = None, values: Dataset = Dataset( parent_node=None, name="", values=0, type=ValueTypes.DOUBLE, ), target_pos: int = -1, ) -> Transformation: """ Note, currently assumes angle is in degrees :param axis: axis :param angle: :param name: Name of the rotation group (Optional) :param depends_on: existing transformation which the new one depends on (otherwise relative to origin) :param values: The translation distance information. :param target_pos: Target position. """ values.parent_node = self return self._create_and_add_transform( name, TransformationType.ROTATION, angle, "degrees", axis, depends_on, values, target_pos, )
def add_translation( self, vector: QVector3D, name: str = None, depends_on: Transformation = None, values: Dataset = Dataset(parent_node=None, name="", values=0, type=ValueTypes.DOUBLE), target_pos: int = -1, ) -> Transformation: """ Note, currently assumes translation is in metres :param vector: direction and magnitude of translation as a 3D vector :param name: name of the translation group (Optional) :param depends_on: existing transformation which the new one depends on (otherwise relative to origin) :param values: The translation distance information. :param target_pos: Target position. """ values.parent_node = self unit_vector, _ = _normalise(vector) return self._create_and_add_transform( name, TransformationType.TRANSLATION, 0.0, "m", unit_vector, depends_on, values, target_pos, )