playcanvas
Version:
PlayCanvas WebGL game engine
203 lines (202 loc) • 4.27 kB
TypeScript
/**
* 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<GraphNode, Vec3>}
* @private
*/
private _nodeScales;
/**
* 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 {{ point: Vec3, angle: number }} The point and angle.
* @protected
*/
protected _screenToPoint(x: number, y: number): {
point: Vec3;
angle: number;
};
}
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';