{"ast":null,"code":"import { Observable } from \"../Misc/observable.js\";\nimport { TmpVectors, Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { TransformNode } from \"../Meshes/transformNode.js\";\nimport { CreatePlane } from \"../Meshes/Builders/planeBuilder.js\";\nimport { PointerDragBehavior } from \"../Behaviors/Meshes/pointerDragBehavior.js\";\nimport { Gizmo } from \"./gizmo.js\";\nimport { UtilityLayerRenderer } from \"../Rendering/utilityLayerRenderer.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\n/**\n * Single plane drag gizmo\n */\nexport class PlaneDragGizmo 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 /**\n * @internal\n */\n static _CreatePlane(scene, material) {\n const plane = new TransformNode(\"plane\", scene);\n //make sure plane is double sided\n const dragPlane = CreatePlane(\"dragPlane\", {\n width: 0.1375,\n height: 0.1375,\n sideOrientation: 2\n }, scene);\n dragPlane.material = material;\n dragPlane.parent = plane;\n return plane;\n }\n /**\n * Creates a PlaneDragGizmo\n * @param dragPlaneNormal The axis normal to which the gizmo will be able to drag on\n * @param color The color of the gizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param parent\n * @param hoverColor The color of the gizmo when hovering over and dragging\n * @param disableColor The Color of the gizmo when its disabled\n */\n constructor(dragPlaneNormal, color = Color3.Gray(), gizmoLayer = UtilityLayerRenderer.DefaultUtilityLayer, parent = null, hoverColor = Color3.Yellow(), disableColor = Color3.Gray()) {\n var _this$_parent;\n super(gizmoLayer);\n this._pointerObserver = null;\n /**\n * Drag distance in babylon units that the gizmo will snap to when dragged (Default: 0)\n */\n this.snapDistance = 0;\n /**\n * Event that fires each time the gizmo snaps to a new location.\n * * snapDistance is the change in distance\n */\n this.onSnapObservable = new Observable();\n this._isEnabled = false;\n this._parent = null;\n this._dragging = false;\n this._parent = parent;\n // Create Material\n this._coloredMaterial = new StandardMaterial(\"\", gizmoLayer.utilityLayerScene);\n this._coloredMaterial.diffuseColor = color;\n this._coloredMaterial.specularColor = color.subtract(new Color3(0.1, 0.1, 0.1));\n this._hoverMaterial = new StandardMaterial(\"\", gizmoLayer.utilityLayerScene);\n this._hoverMaterial.diffuseColor = hoverColor;\n this._disableMaterial = new StandardMaterial(\"\", gizmoLayer.utilityLayerScene);\n this._disableMaterial.diffuseColor = disableColor;\n this._disableMaterial.alpha = 0.4;\n // Build plane mesh on root node\n this._gizmoMesh = PlaneDragGizmo._CreatePlane(gizmoLayer.utilityLayerScene, this._coloredMaterial);\n this._gizmoMesh.lookAt(this._rootMesh.position.add(dragPlaneNormal));\n this._gizmoMesh.scaling.scaleInPlace(1 / 3);\n this._gizmoMesh.parent = this._rootMesh;\n let currentSnapDragDistance = 0;\n const tmpVector = new Vector3();\n const tmpSnapEvent = {\n snapDistance: 0\n };\n // Add dragPlaneNormal drag behavior to handle events when the gizmo is dragged\n this.dragBehavior = new PointerDragBehavior({\n dragPlaneNormal: dragPlaneNormal\n });\n this.dragBehavior.moveAttached = false;\n this._rootMesh.addBehavior(this.dragBehavior);\n this.dragBehavior.onDragObservable.add(event => {\n if (this.attachedNode) {\n // Keep world translation and use it to update world transform\n // if the node has parent, the local transform properties (position, rotation, scale)\n // will be recomputed in _matrixChanged function\n // Snapping logic\n if (this.snapDistance == 0) {\n this.attachedNode.getWorldMatrix().getTranslationToRef(TmpVectors.Vector3[0]);\n TmpVectors.Vector3[0].addToRef(event.delta, TmpVectors.Vector3[0]);\n if (this.dragBehavior.validateDrag(TmpVectors.Vector3[0])) {\n this.attachedNode.getWorldMatrix().addTranslationFromFloats(event.delta.x, event.delta.y, event.delta.z);\n }\n } else {\n currentSnapDragDistance += event.dragDistance;\n if (Math.abs(currentSnapDragDistance) > this.snapDistance) {\n const dragSteps = Math.floor(Math.abs(currentSnapDragDistance) / this.snapDistance);\n currentSnapDragDistance = currentSnapDragDistance % this.snapDistance;\n event.delta.normalizeToRef(tmpVector);\n tmpVector.scaleInPlace(this.snapDistance * dragSteps);\n this.attachedNode.getWorldMatrix().getTranslationToRef(TmpVectors.Vector3[0]);\n TmpVectors.Vector3[0].addToRef(tmpVector, TmpVectors.Vector3[0]);\n if (this.dragBehavior.validateDrag(TmpVectors.Vector3[0])) {\n this.attachedNode.getWorldMatrix().addTranslationFromFloats(tmpVector.x, tmpVector.y, tmpVector.z);\n tmpSnapEvent.snapDistance = this.snapDistance * dragSteps;\n this.onSnapObservable.notifyObservers(tmpSnapEvent);\n }\n }\n }\n this._matrixChanged();\n }\n });\n this.dragBehavior.onDragStartObservable.add(() => {\n this._dragging = true;\n });\n this.dragBehavior.onDragEndObservable.add(() => {\n this._dragging = false;\n });\n const light = gizmoLayer._getSharedGizmoLight();\n light.includedOnlyMeshes = light.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes(false));\n const cache = {\n gizmoMeshes: this._gizmoMesh.getChildMeshes(),\n colliderMeshes: this._gizmoMesh.getChildMeshes(),\n material: this._coloredMaterial,\n hoverMaterial: this._hoverMaterial,\n disableMaterial: this._disableMaterial,\n active: false,\n dragBehavior: this.dragBehavior\n };\n (_this$_parent = this._parent) === null || _this$_parent === void 0 || _this$_parent.addToAxisCache(this._gizmoMesh, cache);\n this._pointerObserver = gizmoLayer.utilityLayerScene.onPointerObservable.add(pointerInfo => {\n var _pointerInfo$pickInfo;\n if (this._customMeshSet) {\n return;\n }\n this._isHovered = !!(cache.colliderMeshes.indexOf(pointerInfo === null || pointerInfo === void 0 || (_pointerInfo$pickInfo = pointerInfo.pickInfo) === null || _pointerInfo$pickInfo === void 0 ? void 0 : _pointerInfo$pickInfo.pickedMesh) != -1);\n if (!this._parent) {\n const material = cache.dragBehavior.enabled ? this._isHovered || this._dragging ? this._hoverMaterial : this._coloredMaterial : this._disableMaterial;\n this._setGizmoMeshMaterial(cache.gizmoMeshes, material);\n }\n });\n this.dragBehavior.onEnabledObservable.add(newState => {\n this._setGizmoMeshMaterial(cache.gizmoMeshes, newState ? this._coloredMaterial : this._disableMaterial);\n });\n }\n _attachedNodeChanged(value) {\n if (this.dragBehavior) {\n this.dragBehavior.enabled = value ? true : false;\n }\n }\n /**\n * If the gizmo is enabled\n */\n set isEnabled(value) {\n this._isEnabled = value;\n if (!value) {\n this.attachedNode = null;\n } else {\n if (this._parent) {\n this.attachedNode = this._parent.attachedNode;\n }\n }\n }\n get isEnabled() {\n return this._isEnabled;\n }\n /**\n * Disposes of the gizmo\n */\n dispose() {\n this.onSnapObservable.clear();\n this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver);\n this.dragBehavior.detach();\n super.dispose();\n if (this._gizmoMesh) {\n this._gizmoMesh.dispose();\n }\n [this._coloredMaterial, this._hoverMaterial, this._disableMaterial].forEach(matl => {\n if (matl) {\n matl.dispose();\n }\n });\n }\n}","map":{"version":3,"names":["Observable","TmpVectors","Vector3","Color3","TransformNode","CreatePlane","PointerDragBehavior","Gizmo","UtilityLayerRenderer","StandardMaterial","PlaneDragGizmo","coloredMaterial","_coloredMaterial","hoverMaterial","_hoverMaterial","disableMaterial","_disableMaterial","_CreatePlane","scene","material","plane","dragPlane","width","height","sideOrientation","parent","constructor","dragPlaneNormal","color","Gray","gizmoLayer","DefaultUtilityLayer","hoverColor","Yellow","disableColor","_this$_parent","_pointerObserver","snapDistance","onSnapObservable","_isEnabled","_parent","_dragging","utilityLayerScene","diffuseColor","specularColor","subtract","alpha","_gizmoMesh","lookAt","_rootMesh","position","add","scaling","scaleInPlace","currentSnapDragDistance","tmpVector","tmpSnapEvent","dragBehavior","moveAttached","addBehavior","onDragObservable","event","attachedNode","getWorldMatrix","getTranslationToRef","addToRef","delta","validateDrag","addTranslationFromFloats","x","y","z","dragDistance","Math","abs","dragSteps","floor","normalizeToRef","notifyObservers","_matrixChanged","onDragStartObservable","onDragEndObservable","light","_getSharedGizmoLight","includedOnlyMeshes","concat","getChildMeshes","cache","gizmoMeshes","colliderMeshes","active","addToAxisCache","onPointerObservable","pointerInfo","_pointerInfo$pickInfo","_customMeshSet","_isHovered","indexOf","pickInfo","pickedMesh","enabled","_setGizmoMeshMaterial","onEnabledObservable","newState","_attachedNodeChanged","value","isEnabled","dispose","clear","remove","detach","forEach","matl"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Gizmos/planeDragGizmo.js"],"sourcesContent":["import { Observable } from \"../Misc/observable.js\";\nimport { TmpVectors, Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3 } from \"../Maths/math.color.js\";\nimport { TransformNode } from \"../Meshes/transformNode.js\";\nimport { CreatePlane } from \"../Meshes/Builders/planeBuilder.js\";\nimport { PointerDragBehavior } from \"../Behaviors/Meshes/pointerDragBehavior.js\";\nimport { Gizmo } from \"./gizmo.js\";\nimport { UtilityLayerRenderer } from \"../Rendering/utilityLayerRenderer.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\n/**\n * Single plane drag gizmo\n */\nexport class PlaneDragGizmo 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 /**\n * @internal\n */\n static _CreatePlane(scene, material) {\n const plane = new TransformNode(\"plane\", scene);\n //make sure plane is double sided\n const dragPlane = CreatePlane(\"dragPlane\", { width: 0.1375, height: 0.1375, sideOrientation: 2 }, scene);\n dragPlane.material = material;\n dragPlane.parent = plane;\n return plane;\n }\n /**\n * Creates a PlaneDragGizmo\n * @param dragPlaneNormal The axis normal to which the gizmo will be able to drag on\n * @param color The color of the gizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param parent\n * @param hoverColor The color of the gizmo when hovering over and dragging\n * @param disableColor The Color of the gizmo when its disabled\n */\n constructor(dragPlaneNormal, color = Color3.Gray(), gizmoLayer = UtilityLayerRenderer.DefaultUtilityLayer, parent = null, hoverColor = Color3.Yellow(), disableColor = Color3.Gray()) {\n super(gizmoLayer);\n this._pointerObserver = null;\n /**\n * Drag distance in babylon units that the gizmo will snap to when dragged (Default: 0)\n */\n this.snapDistance = 0;\n /**\n * Event that fires each time the gizmo snaps to a new location.\n * * snapDistance is the change in distance\n */\n this.onSnapObservable = new Observable();\n this._isEnabled = false;\n this._parent = null;\n this._dragging = false;\n this._parent = parent;\n // Create Material\n this._coloredMaterial = new StandardMaterial(\"\", gizmoLayer.utilityLayerScene);\n this._coloredMaterial.diffuseColor = color;\n this._coloredMaterial.specularColor = color.subtract(new Color3(0.1, 0.1, 0.1));\n this._hoverMaterial = new StandardMaterial(\"\", gizmoLayer.utilityLayerScene);\n this._hoverMaterial.diffuseColor = hoverColor;\n this._disableMaterial = new StandardMaterial(\"\", gizmoLayer.utilityLayerScene);\n this._disableMaterial.diffuseColor = disableColor;\n this._disableMaterial.alpha = 0.4;\n // Build plane mesh on root node\n this._gizmoMesh = PlaneDragGizmo._CreatePlane(gizmoLayer.utilityLayerScene, this._coloredMaterial);\n this._gizmoMesh.lookAt(this._rootMesh.position.add(dragPlaneNormal));\n this._gizmoMesh.scaling.scaleInPlace(1 / 3);\n this._gizmoMesh.parent = this._rootMesh;\n let currentSnapDragDistance = 0;\n const tmpVector = new Vector3();\n const tmpSnapEvent = { snapDistance: 0 };\n // Add dragPlaneNormal drag behavior to handle events when the gizmo is dragged\n this.dragBehavior = new PointerDragBehavior({ dragPlaneNormal: dragPlaneNormal });\n this.dragBehavior.moveAttached = false;\n this._rootMesh.addBehavior(this.dragBehavior);\n this.dragBehavior.onDragObservable.add((event) => {\n if (this.attachedNode) {\n // Keep world translation and use it to update world transform\n // if the node has parent, the local transform properties (position, rotation, scale)\n // will be recomputed in _matrixChanged function\n // Snapping logic\n if (this.snapDistance == 0) {\n this.attachedNode.getWorldMatrix().getTranslationToRef(TmpVectors.Vector3[0]);\n TmpVectors.Vector3[0].addToRef(event.delta, TmpVectors.Vector3[0]);\n if (this.dragBehavior.validateDrag(TmpVectors.Vector3[0])) {\n this.attachedNode.getWorldMatrix().addTranslationFromFloats(event.delta.x, event.delta.y, event.delta.z);\n }\n }\n else {\n currentSnapDragDistance += event.dragDistance;\n if (Math.abs(currentSnapDragDistance) > this.snapDistance) {\n const dragSteps = Math.floor(Math.abs(currentSnapDragDistance) / this.snapDistance);\n currentSnapDragDistance = currentSnapDragDistance % this.snapDistance;\n event.delta.normalizeToRef(tmpVector);\n tmpVector.scaleInPlace(this.snapDistance * dragSteps);\n this.attachedNode.getWorldMatrix().getTranslationToRef(TmpVectors.Vector3[0]);\n TmpVectors.Vector3[0].addToRef(tmpVector, TmpVectors.Vector3[0]);\n if (this.dragBehavior.validateDrag(TmpVectors.Vector3[0])) {\n this.attachedNode.getWorldMatrix().addTranslationFromFloats(tmpVector.x, tmpVector.y, tmpVector.z);\n tmpSnapEvent.snapDistance = this.snapDistance * dragSteps;\n this.onSnapObservable.notifyObservers(tmpSnapEvent);\n }\n }\n }\n this._matrixChanged();\n }\n });\n this.dragBehavior.onDragStartObservable.add(() => {\n this._dragging = true;\n });\n this.dragBehavior.onDragEndObservable.add(() => {\n this._dragging = false;\n });\n const light = gizmoLayer._getSharedGizmoLight();\n light.includedOnlyMeshes = light.includedOnlyMeshes.concat(this._rootMesh.getChildMeshes(false));\n const cache = {\n gizmoMeshes: this._gizmoMesh.getChildMeshes(),\n colliderMeshes: this._gizmoMesh.getChildMeshes(),\n material: this._coloredMaterial,\n hoverMaterial: this._hoverMaterial,\n disableMaterial: this._disableMaterial,\n active: false,\n dragBehavior: this.dragBehavior,\n };\n this._parent?.addToAxisCache(this._gizmoMesh, cache);\n this._pointerObserver = gizmoLayer.utilityLayerScene.onPointerObservable.add((pointerInfo) => {\n if (this._customMeshSet) {\n return;\n }\n this._isHovered = !!(cache.colliderMeshes.indexOf(pointerInfo?.pickInfo?.pickedMesh) != -1);\n if (!this._parent) {\n const material = cache.dragBehavior.enabled ? (this._isHovered || this._dragging ? this._hoverMaterial : this._coloredMaterial) : this._disableMaterial;\n this._setGizmoMeshMaterial(cache.gizmoMeshes, material);\n }\n });\n this.dragBehavior.onEnabledObservable.add((newState) => {\n this._setGizmoMeshMaterial(cache.gizmoMeshes, newState ? this._coloredMaterial : this._disableMaterial);\n });\n }\n _attachedNodeChanged(value) {\n if (this.dragBehavior) {\n this.dragBehavior.enabled = value ? true : false;\n }\n }\n /**\n * If the gizmo is enabled\n */\n set isEnabled(value) {\n this._isEnabled = value;\n if (!value) {\n this.attachedNode = null;\n }\n else {\n if (this._parent) {\n this.attachedNode = this._parent.attachedNode;\n }\n }\n }\n get isEnabled() {\n return this._isEnabled;\n }\n /**\n * Disposes of the gizmo\n */\n dispose() {\n this.onSnapObservable.clear();\n this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver);\n this.dragBehavior.detach();\n super.dispose();\n if (this._gizmoMesh) {\n this._gizmoMesh.dispose();\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":[]}