c8c6755356915461d875ee54f3f0575ba3f3e9461a08add45b15135146d726ce.json 37 KB

1
  1. {"ast":null,"code":"import { Logger } from \"../Misc/logger.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { CreatePolyhedron } from \"../Meshes/Builders/polyhedronBuilder.js\";\nimport { Gizmo } from \"./gizmo.js\";\nimport { AxisScaleGizmo } from \"./axisScaleGizmo.js\";\nimport { UtilityLayerRenderer } from \"../Rendering/utilityLayerRenderer.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\n/**\n * Gizmo that enables scaling a mesh along 3 axis\n */\nexport class ScaleGizmo extends Gizmo {\n /** Default material used to render when gizmo is not disabled or hovered */\n get coloredMaterial() {\n return this._coloredMaterial;\n }\n /** Material used to render when gizmo is hovered with mouse*/\n get hoverMaterial() {\n return this._hoverMaterial;\n }\n /** Material used to render when gizmo is disabled. typically grey.*/\n get disableMaterial() {\n return this._disableMaterial;\n }\n get attachedMesh() {\n return this._meshAttached;\n }\n set attachedMesh(mesh) {\n this._meshAttached = mesh;\n this._nodeAttached = mesh;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo.isEnabled) {\n gizmo.attachedMesh = mesh;\n } else {\n gizmo.attachedMesh = null;\n }\n });\n }\n get attachedNode() {\n return this._nodeAttached;\n }\n set attachedNode(node) {\n this._meshAttached = null;\n this._nodeAttached = node;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo.isEnabled) {\n gizmo.attachedNode = node;\n } else {\n gizmo.attachedNode = null;\n }\n });\n }\n set updateScale(value) {\n if (this.xGizmo) {\n this.xGizmo.updateScale = value;\n this.yGizmo.updateScale = value;\n this.zGizmo.updateScale = value;\n }\n }\n get updateScale() {\n return this.xGizmo.updateScale;\n }\n /**\n * True when the mouse pointer is hovering a gizmo mesh\n */\n get isHovered() {\n return this.xGizmo.isHovered || this.yGizmo.isHovered || this.zGizmo.isHovered || this.uniformScaleGizmo.isHovered;\n }\n /**\n * True when the mouse pointer is dragging a gizmo mesh\n */\n get isDragging() {\n return this.xGizmo.dragBehavior.dragging || this.yGizmo.dragBehavior.dragging || this.zGizmo.dragBehavior.dragging || this.uniformScaleGizmo.dragBehavior.dragging;\n }\n get additionalTransformNode() {\n return this._additionalTransformNode;\n }\n set additionalTransformNode(transformNode) {\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n gizmo.additionalTransformNode = transformNode;\n });\n }\n /**\n * Creates a ScaleGizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param thickness display gizmo axis thickness\n * @param gizmoManager\n * @param options More options\n */\n constructor(gizmoLayer = UtilityLayerRenderer.DefaultUtilityLayer, thickness = 1, gizmoManager, options) {\n super(gizmoLayer);\n this._meshAttached = null;\n this._nodeAttached = null;\n this._incrementalSnap = false;\n this._sensitivity = 1;\n this._observables = [];\n /** Node Caching for quick lookup */\n this._gizmoAxisCache = new Map();\n /** Fires an event when any of it's sub gizmos are dragged */\n this.onDragStartObservable = new Observable();\n /** Fires an event when any of it's sub gizmos are being dragged */\n this.onDragObservable = new Observable();\n /** Fires an event when any of it's sub gizmos are released from dragging */\n this.onDragEndObservable = new Observable();\n this.uniformScaleGizmo = this._createUniformScaleMesh();\n this.xGizmo = new AxisScaleGizmo(new Vector3(1, 0, 0), Color3.Red().scale(0.5), gizmoLayer, this, thickness);\n this.yGizmo = new AxisScaleGizmo(new Vector3(0, 1, 0), Color3.Green().scale(0.5), gizmoLayer, this, thickness);\n this.zGizmo = new AxisScaleGizmo(new Vector3(0, 0, 1), Color3.Blue().scale(0.5), gizmoLayer, this, thickness);\n this.additionalTransformNode = options === null || options === void 0 ? void 0 : options.additionalTransformNode;\n // Relay drag events\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n gizmo.dragBehavior.onDragStartObservable.add(() => {\n this.onDragStartObservable.notifyObservers({});\n });\n gizmo.dragBehavior.onDragObservable.add(() => {\n this.onDragObservable.notifyObservers({});\n });\n gizmo.dragBehavior.onDragEndObservable.add(() => {\n this.onDragEndObservable.notifyObservers({});\n });\n });\n this.attachedMesh = null;\n this.attachedNode = null;\n if (gizmoManager) {\n gizmoManager.addToAxisCache(this._gizmoAxisCache);\n } else {\n // Only subscribe to pointer event if gizmoManager isnt\n Gizmo.GizmoAxisPointerObserver(gizmoLayer, this._gizmoAxisCache);\n }\n }\n /**\n * @internal\n * Create Geometry for Gizmo\n */\n _createUniformScaleMesh() {\n this._coloredMaterial = new StandardMaterial(\"\", this.gizmoLayer.utilityLayerScene);\n this._coloredMaterial.diffuseColor = Color3.Gray();\n this._hoverMaterial = new StandardMaterial(\"\", this.gizmoLayer.utilityLayerScene);\n this._hoverMaterial.diffuseColor = Color3.Yellow();\n this._disableMaterial = new StandardMaterial(\"\", this.gizmoLayer.utilityLayerScene);\n this._disableMaterial.diffuseColor = Color3.Gray();\n this._disableMaterial.alpha = 0.4;\n const uniformScaleGizmo = new AxisScaleGizmo(new Vector3(0, 1, 0), Color3.Gray().scale(0.5), this.gizmoLayer, this);\n uniformScaleGizmo.updateGizmoRotationToMatchAttachedMesh = false;\n uniformScaleGizmo.uniformScaling = true;\n this._uniformScalingMesh = CreatePolyhedron(\"uniform\", {\n type: 1\n }, uniformScaleGizmo.gizmoLayer.utilityLayerScene);\n this._uniformScalingMesh.scaling.scaleInPlace(0.01);\n this._uniformScalingMesh.visibility = 0;\n this._octahedron = CreatePolyhedron(\"\", {\n type: 1\n }, uniformScaleGizmo.gizmoLayer.utilityLayerScene);\n this._octahedron.scaling.scaleInPlace(0.007);\n this._uniformScalingMesh.addChild(this._octahedron);\n uniformScaleGizmo.setCustomMesh(this._uniformScalingMesh, true);\n const light = this.gizmoLayer._getSharedGizmoLight();\n light.includedOnlyMeshes = light.includedOnlyMeshes.concat(this._octahedron);\n const cache = {\n gizmoMeshes: [this._octahedron, this._uniformScalingMesh],\n colliderMeshes: [this._octahedron, this._uniformScalingMesh],\n material: this._coloredMaterial,\n hoverMaterial: this._hoverMaterial,\n disableMaterial: this._disableMaterial,\n active: false,\n dragBehavior: uniformScaleGizmo.dragBehavior\n };\n this.addToAxisCache(uniformScaleGizmo._rootMesh, cache);\n return uniformScaleGizmo;\n }\n set updateGizmoRotationToMatchAttachedMesh(value) {\n if (!value) {\n Logger.Warn(\"Setting updateGizmoRotationToMatchAttachedMesh = false on scaling gizmo is not supported.\");\n } else {\n this._updateGizmoRotationToMatchAttachedMesh = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.updateGizmoRotationToMatchAttachedMesh = value;\n }\n });\n }\n }\n get updateGizmoRotationToMatchAttachedMesh() {\n return this._updateGizmoRotationToMatchAttachedMesh;\n }\n set anchorPoint(value) {\n this._anchorPoint = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.anchorPoint = value;\n }\n });\n }\n get anchorPoint() {\n return this._anchorPoint;\n }\n /**\n * posture that the gizmo will be display\n * When set null, default value will be used (Quaternion(0, 0, 0, 1))\n */\n get customRotationQuaternion() {\n return this._customRotationQuaternion;\n }\n set customRotationQuaternion(customRotationQuaternion) {\n this._customRotationQuaternion = customRotationQuaternion;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.customRotationQuaternion = customRotationQuaternion;\n }\n });\n }\n /**\n * Set the coordinate system to use. By default it's local.\n * But it's possible for a user to tweak so its local for translation and world for rotation.\n * In that case, setting the coordinate system will change `updateGizmoRotationToMatchAttachedMesh` and `updateGizmoPositionToMatchAttachedMesh`\n */\n set coordinatesMode(coordinatesMode) {\n if (coordinatesMode == 0 /* GizmoCoordinatesMode.World */) {\n Logger.Warn(\"Setting coordinates Mode to world on scaling gizmo is not supported.\");\n }\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n gizmo.coordinatesMode = 1 /* GizmoCoordinatesMode.Local */;\n });\n }\n /**\n * Drag distance in babylon units that the gizmo will snap to when dragged (Default: 0)\n */\n set snapDistance(value) {\n this._snapDistance = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.snapDistance = value;\n }\n });\n }\n get snapDistance() {\n return this._snapDistance;\n }\n /**\n * Incremental snap scaling (default is false). When true, with a snapDistance of 0.1, scaling will be 1.1,1.2,1.3 instead of, when false: 1.1,1.21,1.33,...\n */\n set incrementalSnap(value) {\n this._incrementalSnap = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.incrementalSnap = value;\n }\n });\n }\n get incrementalSnap() {\n return this._incrementalSnap;\n }\n /**\n * Ratio for the scale of the gizmo (Default: 1)\n */\n set scaleRatio(value) {\n this._scaleRatio = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.scaleRatio = value;\n }\n });\n }\n get scaleRatio() {\n return this._scaleRatio;\n }\n /**\n * Sensitivity factor for dragging (Default: 1)\n */\n set sensitivity(value) {\n this._sensitivity = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.sensitivity = value;\n }\n });\n }\n get sensitivity() {\n return this._sensitivity;\n }\n /**\n * Builds Gizmo Axis Cache to enable features such as hover state preservation and graying out other axis during manipulation\n * @param mesh Axis gizmo mesh\n * @param cache Gizmo axis definition used for reactive gizmo UI\n */\n addToAxisCache(mesh, cache) {\n this._gizmoAxisCache.set(mesh, cache);\n }\n /**\n * Get the cache set with addToAxisCache for a specific mesh\n * @param mesh Axis gizmo mesh\n * @returns Gizmo axis definition used for reactive gizmo UI\n */\n getAxisCache(mesh) {\n return this._gizmoAxisCache.get(mesh);\n }\n /**\n * Force release the drag action by code\n */\n releaseDrag() {\n this.xGizmo.dragBehavior.releaseDrag();\n this.yGizmo.dragBehavior.releaseDrag();\n this.zGizmo.dragBehavior.releaseDrag();\n this.uniformScaleGizmo.dragBehavior.releaseDrag();\n }\n /**\n * Disposes of the gizmo\n */\n dispose() {\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach(gizmo => {\n if (gizmo) {\n gizmo.dispose();\n }\n });\n this._observables.forEach(obs => {\n this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(obs);\n });\n this.onDragStartObservable.clear();\n this.onDragObservable.clear();\n this.onDragEndObservable.clear();\n [this._uniformScalingMesh, this._octahedron].forEach(msh => {\n if (msh) {\n msh.dispose();\n }\n });\n [this._coloredMaterial, this._hoverMaterial, this._disableMaterial].forEach(matl => {\n if (matl) {\n matl.dispose();\n }\n });\n }\n}","map":{"version":3,"names":["Logger","Observable","Vector3","Color3","CreatePolyhedron","Gizmo","AxisScaleGizmo","UtilityLayerRenderer","StandardMaterial","ScaleGizmo","coloredMaterial","_coloredMaterial","hoverMaterial","_hoverMaterial","disableMaterial","_disableMaterial","attachedMesh","_meshAttached","mesh","_nodeAttached","xGizmo","yGizmo","zGizmo","uniformScaleGizmo","forEach","gizmo","isEnabled","attachedNode","node","updateScale","value","isHovered","isDragging","dragBehavior","dragging","additionalTransformNode","_additionalTransformNode","transformNode","constructor","gizmoLayer","DefaultUtilityLayer","thickness","gizmoManager","options","_incrementalSnap","_sensitivity","_observables","_gizmoAxisCache","Map","onDragStartObservable","onDragObservable","onDragEndObservable","_createUniformScaleMesh","Red","scale","Green","Blue","add","notifyObservers","addToAxisCache","GizmoAxisPointerObserver","utilityLayerScene","diffuseColor","Gray","Yellow","alpha","updateGizmoRotationToMatchAttachedMesh","uniformScaling","_uniformScalingMesh","type","scaling","scaleInPlace","visibility","_octahedron","addChild","setCustomMesh","light","_getSharedGizmoLight","includedOnlyMeshes","concat","cache","gizmoMeshes","colliderMeshes","material","active","_rootMesh","Warn","_updateGizmoRotationToMatchAttachedMesh","anchorPoint","_anchorPoint","customRotationQuaternion","_customRotationQuaternion","coordinatesMode","snapDistance","_snapDistance","incrementalSnap","scaleRatio","_scaleRatio","sensitivity","set","getAxisCache","get","releaseDrag","dispose","obs","onPointerObservable","remove","clear","msh","matl"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Gizmos/scaleGizmo.js"],"sourcesContent":["import { Logger } from \"../Misc/logger.js\";\nimport { Observable } from \"../Misc/observable.js\";\nimport { Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { CreatePolyhedron } from \"../Meshes/Builders/polyhedronBuilder.js\";\nimport { Gizmo } from \"./gizmo.js\";\nimport { AxisScaleGizmo } from \"./axisScaleGizmo.js\";\nimport { UtilityLayerRenderer } from \"../Rendering/utilityLayerRenderer.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\n/**\n * Gizmo that enables scaling a mesh along 3 axis\n */\nexport class ScaleGizmo extends Gizmo {\n /** Default material used to render when gizmo is not disabled or hovered */\n get coloredMaterial() {\n return this._coloredMaterial;\n }\n /** Material used to render when gizmo is hovered with mouse*/\n get hoverMaterial() {\n return this._hoverMaterial;\n }\n /** Material used to render when gizmo is disabled. typically grey.*/\n get disableMaterial() {\n return this._disableMaterial;\n }\n get attachedMesh() {\n return this._meshAttached;\n }\n set attachedMesh(mesh) {\n this._meshAttached = mesh;\n this._nodeAttached = mesh;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo.isEnabled) {\n gizmo.attachedMesh = mesh;\n }\n else {\n gizmo.attachedMesh = null;\n }\n });\n }\n get attachedNode() {\n return this._nodeAttached;\n }\n set attachedNode(node) {\n this._meshAttached = null;\n this._nodeAttached = node;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo.isEnabled) {\n gizmo.attachedNode = node;\n }\n else {\n gizmo.attachedNode = null;\n }\n });\n }\n set updateScale(value) {\n if (this.xGizmo) {\n this.xGizmo.updateScale = value;\n this.yGizmo.updateScale = value;\n this.zGizmo.updateScale = value;\n }\n }\n get updateScale() {\n return this.xGizmo.updateScale;\n }\n /**\n * True when the mouse pointer is hovering a gizmo mesh\n */\n get isHovered() {\n return this.xGizmo.isHovered || this.yGizmo.isHovered || this.zGizmo.isHovered || this.uniformScaleGizmo.isHovered;\n }\n /**\n * True when the mouse pointer is dragging a gizmo mesh\n */\n get isDragging() {\n return this.xGizmo.dragBehavior.dragging || this.yGizmo.dragBehavior.dragging || this.zGizmo.dragBehavior.dragging || this.uniformScaleGizmo.dragBehavior.dragging;\n }\n get additionalTransformNode() {\n return this._additionalTransformNode;\n }\n set additionalTransformNode(transformNode) {\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n gizmo.additionalTransformNode = transformNode;\n });\n }\n /**\n * Creates a ScaleGizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param thickness display gizmo axis thickness\n * @param gizmoManager\n * @param options More options\n */\n constructor(gizmoLayer = UtilityLayerRenderer.DefaultUtilityLayer, thickness = 1, gizmoManager, options) {\n super(gizmoLayer);\n this._meshAttached = null;\n this._nodeAttached = null;\n this._incrementalSnap = false;\n this._sensitivity = 1;\n this._observables = [];\n /** Node Caching for quick lookup */\n this._gizmoAxisCache = new Map();\n /** Fires an event when any of it's sub gizmos are dragged */\n this.onDragStartObservable = new Observable();\n /** Fires an event when any of it's sub gizmos are being dragged */\n this.onDragObservable = new Observable();\n /** Fires an event when any of it's sub gizmos are released from dragging */\n this.onDragEndObservable = new Observable();\n this.uniformScaleGizmo = this._createUniformScaleMesh();\n this.xGizmo = new AxisScaleGizmo(new Vector3(1, 0, 0), Color3.Red().scale(0.5), gizmoLayer, this, thickness);\n this.yGizmo = new AxisScaleGizmo(new Vector3(0, 1, 0), Color3.Green().scale(0.5), gizmoLayer, this, thickness);\n this.zGizmo = new AxisScaleGizmo(new Vector3(0, 0, 1), Color3.Blue().scale(0.5), gizmoLayer, this, thickness);\n this.additionalTransformNode = options?.additionalTransformNode;\n // Relay drag events\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n gizmo.dragBehavior.onDragStartObservable.add(() => {\n this.onDragStartObservable.notifyObservers({});\n });\n gizmo.dragBehavior.onDragObservable.add(() => {\n this.onDragObservable.notifyObservers({});\n });\n gizmo.dragBehavior.onDragEndObservable.add(() => {\n this.onDragEndObservable.notifyObservers({});\n });\n });\n this.attachedMesh = null;\n this.attachedNode = null;\n if (gizmoManager) {\n gizmoManager.addToAxisCache(this._gizmoAxisCache);\n }\n else {\n // Only subscribe to pointer event if gizmoManager isnt\n Gizmo.GizmoAxisPointerObserver(gizmoLayer, this._gizmoAxisCache);\n }\n }\n /**\n * @internal\n * Create Geometry for Gizmo\n */\n _createUniformScaleMesh() {\n this._coloredMaterial = new StandardMaterial(\"\", this.gizmoLayer.utilityLayerScene);\n this._coloredMaterial.diffuseColor = Color3.Gray();\n this._hoverMaterial = new StandardMaterial(\"\", this.gizmoLayer.utilityLayerScene);\n this._hoverMaterial.diffuseColor = Color3.Yellow();\n this._disableMaterial = new StandardMaterial(\"\", this.gizmoLayer.utilityLayerScene);\n this._disableMaterial.diffuseColor = Color3.Gray();\n this._disableMaterial.alpha = 0.4;\n const uniformScaleGizmo = new AxisScaleGizmo(new Vector3(0, 1, 0), Color3.Gray().scale(0.5), this.gizmoLayer, this);\n uniformScaleGizmo.updateGizmoRotationToMatchAttachedMesh = false;\n uniformScaleGizmo.uniformScaling = true;\n this._uniformScalingMesh = CreatePolyhedron(\"uniform\", { type: 1 }, uniformScaleGizmo.gizmoLayer.utilityLayerScene);\n this._uniformScalingMesh.scaling.scaleInPlace(0.01);\n this._uniformScalingMesh.visibility = 0;\n this._octahedron = CreatePolyhedron(\"\", { type: 1 }, uniformScaleGizmo.gizmoLayer.utilityLayerScene);\n this._octahedron.scaling.scaleInPlace(0.007);\n this._uniformScalingMesh.addChild(this._octahedron);\n uniformScaleGizmo.setCustomMesh(this._uniformScalingMesh, true);\n const light = this.gizmoLayer._getSharedGizmoLight();\n light.includedOnlyMeshes = light.includedOnlyMeshes.concat(this._octahedron);\n const cache = {\n gizmoMeshes: [this._octahedron, this._uniformScalingMesh],\n colliderMeshes: [this._octahedron, this._uniformScalingMesh],\n material: this._coloredMaterial,\n hoverMaterial: this._hoverMaterial,\n disableMaterial: this._disableMaterial,\n active: false,\n dragBehavior: uniformScaleGizmo.dragBehavior,\n };\n this.addToAxisCache(uniformScaleGizmo._rootMesh, cache);\n return uniformScaleGizmo;\n }\n set updateGizmoRotationToMatchAttachedMesh(value) {\n if (!value) {\n Logger.Warn(\"Setting updateGizmoRotationToMatchAttachedMesh = false on scaling gizmo is not supported.\");\n }\n else {\n this._updateGizmoRotationToMatchAttachedMesh = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.updateGizmoRotationToMatchAttachedMesh = value;\n }\n });\n }\n }\n get updateGizmoRotationToMatchAttachedMesh() {\n return this._updateGizmoRotationToMatchAttachedMesh;\n }\n set anchorPoint(value) {\n this._anchorPoint = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.anchorPoint = value;\n }\n });\n }\n get anchorPoint() {\n return this._anchorPoint;\n }\n /**\n * posture that the gizmo will be display\n * When set null, default value will be used (Quaternion(0, 0, 0, 1))\n */\n get customRotationQuaternion() {\n return this._customRotationQuaternion;\n }\n set customRotationQuaternion(customRotationQuaternion) {\n this._customRotationQuaternion = customRotationQuaternion;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.customRotationQuaternion = customRotationQuaternion;\n }\n });\n }\n /**\n * Set the coordinate system to use. By default it's local.\n * But it's possible for a user to tweak so its local for translation and world for rotation.\n * In that case, setting the coordinate system will change `updateGizmoRotationToMatchAttachedMesh` and `updateGizmoPositionToMatchAttachedMesh`\n */\n set coordinatesMode(coordinatesMode) {\n if (coordinatesMode == 0 /* GizmoCoordinatesMode.World */) {\n Logger.Warn(\"Setting coordinates Mode to world on scaling gizmo is not supported.\");\n }\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n gizmo.coordinatesMode = 1 /* GizmoCoordinatesMode.Local */;\n });\n }\n /**\n * Drag distance in babylon units that the gizmo will snap to when dragged (Default: 0)\n */\n set snapDistance(value) {\n this._snapDistance = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.snapDistance = value;\n }\n });\n }\n get snapDistance() {\n return this._snapDistance;\n }\n /**\n * Incremental snap scaling (default is false). When true, with a snapDistance of 0.1, scaling will be 1.1,1.2,1.3 instead of, when false: 1.1,1.21,1.33,...\n */\n set incrementalSnap(value) {\n this._incrementalSnap = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.incrementalSnap = value;\n }\n });\n }\n get incrementalSnap() {\n return this._incrementalSnap;\n }\n /**\n * Ratio for the scale of the gizmo (Default: 1)\n */\n set scaleRatio(value) {\n this._scaleRatio = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.scaleRatio = value;\n }\n });\n }\n get scaleRatio() {\n return this._scaleRatio;\n }\n /**\n * Sensitivity factor for dragging (Default: 1)\n */\n set sensitivity(value) {\n this._sensitivity = value;\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.sensitivity = value;\n }\n });\n }\n get sensitivity() {\n return this._sensitivity;\n }\n /**\n * Builds Gizmo Axis Cache to enable features such as hover state preservation and graying out other axis during manipulation\n * @param mesh Axis gizmo mesh\n * @param cache Gizmo axis definition used for reactive gizmo UI\n */\n addToAxisCache(mesh, cache) {\n this._gizmoAxisCache.set(mesh, cache);\n }\n /**\n * Get the cache set with addToAxisCache for a specific mesh\n * @param mesh Axis gizmo mesh\n * @returns Gizmo axis definition used for reactive gizmo UI\n */\n getAxisCache(mesh) {\n return this._gizmoAxisCache.get(mesh);\n }\n /**\n * Force release the drag action by code\n */\n releaseDrag() {\n this.xGizmo.dragBehavior.releaseDrag();\n this.yGizmo.dragBehavior.releaseDrag();\n this.zGizmo.dragBehavior.releaseDrag();\n this.uniformScaleGizmo.dragBehavior.releaseDrag();\n }\n /**\n * Disposes of the gizmo\n */\n dispose() {\n [this.xGizmo, this.yGizmo, this.zGizmo, this.uniformScaleGizmo].forEach((gizmo) => {\n if (gizmo) {\n gizmo.dispose();\n }\n });\n this._observables.forEach((obs) => {\n this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(obs);\n });\n this.onDragStartObservable.clear();\n this.onDragObservable.clear();\n this.onDragEndObservable.clear();\n [this._uniformScalingMesh, this._octahedron].forEach((msh) => {\n if (msh) {\n msh.dispose();\n }\n });\n [this._coloredMaterial, this._hoverMaterial, this._disableMaterial].forEach((matl) => {\n if (matl) {\n matl.dispose();\n }\n });\n }\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}