import { DataService } from '../../../service/DataService'; import { AbsolutePosition } from '../../position/AbsolutePosition'; /** * A transformation space transforms absolute positions to another (global) space. */ export interface TransformationSpace { /** * Unique uuidv4 identifier of the transformation space */ uid: string; /** * Set the parent space * @param {TransformationSpace} space Parent space */ parent: TransformationSpace; /** * Update parent reference spaces * @param {DataService} service Service to use for updating * @returns {Promise} Update promise */ update(service: DataService): Promise; /** * Transform a position * @param {AbsolutePosition} position Position to transform * @param {SpaceTransformationOptions} [options] Transformation options * @returns {AbsolutePosition} Transformed position */ transform( position: In, options?: SpaceTransformationOptions, ): Out; } export interface SpaceTransformationOptions { /** * Perform an inverse transformation */ inverse?: boolean; }