export type CameraComponent = import("../../framework/components/camera/component.js").CameraComponent; export type GraphNode = import("../../scene/graph-node.js").GraphNode; export type Layer = import("../../scene/layer.js").Layer; /** * Scaling gizmo. * * @category Gizmo */ export class ScaleGizmo extends TransformGizmo { _shapes: { xyz: BoxShape; yz: PlaneShape; xz: PlaneShape; xy: PlaneShape; x: BoxLineShape; y: BoxLineShape; z: BoxLineShape; }; /** * Internal mapping from each attached node to their starting scale. * * @type {Map} * @private */ private _nodeScales; /** * Internal forward vector of the camera in the direction of the gizmo. * * @type {Vec3} * @private */ private _forward; /** * Internal state if transform should use uniform scaling. * * @type {boolean} * @protected */ protected _useUniformScaling: boolean; /** * Flips the planes to face the camera. * * @type {boolean} */ flipShapes: boolean; /** * The lower bound for scaling. * * @type {Vec3} */ lowerBoundScale: Vec3; /** * Sets the uniform scaling state for planes. * * @type {boolean} */ set uniform(value: boolean); /** * Gets the uniform scaling state for planes. * * @type {boolean} */ get uniform(): boolean; /** * Sets the axis gap. * * @type {number} */ set axisGap(value: number); /** * Gets the axis gap. * * @type {number} */ get axisGap(): number; /** * Sets the axis line thickness. * * @type {number} */ set axisLineThickness(value: number); /** * Gets the axis line thickness. * * @type {number} */ get axisLineThickness(): number; /** * Sets the axis line length. * * @type {number} */ set axisLineLength(value: number); /** * Gets the axis line length. * * @type {number} */ get axisLineLength(): number; /** * Sets the axis line tolerance. * * @type {number} */ set axisLineTolerance(value: number); /** * Gets the axis line tolerance. * * @type {number} */ get axisLineTolerance(): number; /** * Sets the axis box size. * * @type {number} */ set axisBoxSize(value: number); /** * Gets the axis box size. * * @type {number} */ get axisBoxSize(): number; /** * Sets the plane size. * * @type {number} */ set axisPlaneSize(value: number); /** * Gets the plane size. * * @type {number} */ get axisPlaneSize(): number; /** * Sets the plane gap. * * @type {number} */ set axisPlaneGap(value: number); /** * Gets the plane gap. * * @type {number} */ get axisPlaneGap(): number; /** * Sets the axis center size. * * @type {number} */ set axisCenterSize(value: number); /** * Gets the axis center size. * * @type {number} */ get axisCenterSize(): number; /** * Sets the axis center tolerance. * * @type {number} */ set axisCenterTolerance(value: number); /** * Gets the axis center tolerance. * * @type {number} */ get axisCenterTolerance(): number; /** * @param {string} prop - The property name. * @param {any} value - The property value. * @private */ private _setArrowProp; /** * @param {string} prop - The property name. * @param {any} value - The property value. * @private */ private _setPlaneProp; /** * @private */ private _shapesLookAtCamera; /** * @private */ private _storeNodeScales; /** * @param {Vec3} pointDelta - The point delta. * @private */ private _setNodeScales; /** * @param {number} x - The x coordinate. * @param {number} y - The y coordinate. * @returns {Vec3} The point in world space. * @protected */ protected _screenToPoint(x: number, y: number): Vec3; } import { TransformGizmo } from './transform-gizmo.js'; import { BoxShape } from './shape/box-shape.js'; import { PlaneShape } from './shape/plane-shape.js'; import { BoxLineShape } from './shape/boxline-shape.js'; import { Vec3 } from '../../core/math/vec3.js';