ab943e2642e2f1ed3d3a1c15f069f65f6e12ab688740dd5c8605666edbd884ab.json 27 KB

1
  1. {"ast":null,"code":"import { Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { Gizmo } from \"./gizmo.js\";\nimport { UtilityLayerRenderer } from \"../Rendering/utilityLayerRenderer.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\nimport { CreateBox } from \"../Meshes/Builders/boxBuilder.js\";\nimport { CreateCylinder } from \"../Meshes/Builders/cylinderBuilder.js\";\nimport { Matrix } from \"../Maths/math.js\";\nimport { CreateLines } from \"../Meshes/Builders/linesBuilder.js\";\nimport { PointerEventTypes } from \"../Events/pointerEvents.js\";\nimport { Observable } from \"../Misc/observable.js\";\n/**\n * Gizmo that enables viewing a camera\n */\nexport class CameraGizmo extends Gizmo {\n /**\n * Creates a CameraGizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param gizmoColor Camera mesh color. Default is Gray\n * @param frustumLinesColor Frustum lines color. Default is White\n */\n constructor(gizmoLayer = UtilityLayerRenderer.DefaultUtilityLayer, gizmoColor, frustumLinesColor) {\n super(gizmoLayer);\n this._pointerObserver = null;\n /**\n * Event that fires each time the gizmo is clicked\n */\n this.onClickedObservable = new Observable();\n this._camera = null;\n this._invProjection = new Matrix();\n this._material = new StandardMaterial(\"cameraGizmoMaterial\", this.gizmoLayer.utilityLayerScene);\n this._frustumLinesColor = frustumLinesColor;\n this._material.diffuseColor = gizmoColor !== null && gizmoColor !== void 0 ? gizmoColor : new Color3(0.5, 0.5, 0.5);\n this._material.specularColor = new Color3(0.1, 0.1, 0.1);\n this._pointerObserver = gizmoLayer.utilityLayerScene.onPointerObservable.add(pointerInfo => {\n if (!this._camera) {\n return;\n }\n this._isHovered = !!(pointerInfo.pickInfo && this._rootMesh.getChildMeshes().indexOf(pointerInfo.pickInfo.pickedMesh) != -1);\n if (this._isHovered && pointerInfo.event.button === 0) {\n this.onClickedObservable.notifyObservers(this._camera);\n }\n }, PointerEventTypes.POINTERDOWN);\n }\n /** Gets or sets a boolean indicating if frustum lines must be rendered (true by default)) */\n get displayFrustum() {\n return this._cameraLinesMesh.isEnabled();\n }\n set displayFrustum(value) {\n this._cameraLinesMesh.setEnabled(value);\n }\n /**\n * The camera that the gizmo is attached to\n */\n set camera(camera) {\n this._camera = camera;\n this.attachedNode = camera;\n if (camera) {\n var _this$_frustumLinesCo, _this$_frustumLinesCo2;\n // Create the mesh for the given camera\n if (!this._customMeshSet) {\n if (this._cameraMesh) {\n this._cameraMesh.dispose();\n }\n this._cameraMesh = CameraGizmo._CreateCameraMesh(this.gizmoLayer.utilityLayerScene);\n this._cameraMesh.getChildMeshes(false).forEach(m => {\n m.material = this._material;\n });\n this._cameraMesh.parent = this._rootMesh;\n }\n if (this._cameraLinesMesh) {\n this._cameraLinesMesh.dispose();\n }\n const linesColor = (_this$_frustumLinesCo = (_this$_frustumLinesCo2 = this._frustumLinesColor) === null || _this$_frustumLinesCo2 === void 0 ? void 0 : _this$_frustumLinesCo2.toColor4(1)) !== null && _this$_frustumLinesCo !== void 0 ? _this$_frustumLinesCo : new Color4(1, 1, 1, 1);\n this._cameraLinesMesh = CameraGizmo._CreateCameraFrustum(this.gizmoLayer.utilityLayerScene, linesColor);\n this._cameraLinesMesh.parent = this._rootMesh;\n if (this.gizmoLayer.utilityLayerScene.activeCamera && this.gizmoLayer.utilityLayerScene.activeCamera.maxZ < camera.maxZ * 1.5) {\n this.gizmoLayer.utilityLayerScene.activeCamera.maxZ = camera.maxZ * 1.5;\n }\n if (!this.attachedNode.reservedDataStore) {\n this.attachedNode.reservedDataStore = {};\n }\n this.attachedNode.reservedDataStore.cameraGizmo = this;\n // Add lighting to the camera gizmo\n const gizmoLight = this.gizmoLayer._getSharedGizmoLight();\n gizmoLight.includedOnlyMeshes = gizmoLight.includedOnlyMeshes.concat(this._cameraMesh.getChildMeshes(false));\n this._update();\n }\n }\n get camera() {\n return this._camera;\n }\n /**\n * Gets the material used to render the camera gizmo\n */\n get material() {\n return this._material;\n }\n /**\n * @internal\n * Updates the gizmo to match the attached mesh's position/rotation\n */\n _update() {\n super._update();\n if (!this._camera) {\n return;\n }\n // frustum matrix\n this._camera.getProjectionMatrix().invertToRef(this._invProjection);\n this._cameraLinesMesh.setPivotMatrix(this._invProjection, false);\n this._cameraLinesMesh.scaling.x = 1 / this._rootMesh.scaling.x;\n this._cameraLinesMesh.scaling.y = 1 / this._rootMesh.scaling.y;\n this._cameraLinesMesh.scaling.z = 1 / this._rootMesh.scaling.z;\n // take care of coordinate system in camera scene to properly display the mesh with the good Y axis orientation in this scene\n this._cameraMesh.parent = null;\n this._cameraMesh.rotation.y = Math.PI * 0.5 * (this._camera.getScene().useRightHandedSystem ? 1 : -1);\n this._cameraMesh.parent = this._rootMesh;\n }\n /**\n * Disposes and replaces the current camera mesh in the gizmo with the specified mesh\n * @param mesh The mesh to replace the default mesh of the camera gizmo\n */\n setCustomMesh(mesh) {\n if (mesh.getScene() != this.gizmoLayer.utilityLayerScene) {\n // eslint-disable-next-line no-throw-literal\n throw \"When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)\";\n }\n if (this._cameraMesh) {\n this._cameraMesh.dispose();\n }\n this._cameraMesh = mesh;\n this._cameraMesh.parent = this._rootMesh;\n this._customMeshSet = true;\n }\n /**\n * Disposes of the camera gizmo\n */\n dispose() {\n this.onClickedObservable.clear();\n this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver);\n if (this._cameraMesh) {\n this._cameraMesh.dispose();\n }\n if (this._cameraLinesMesh) {\n this._cameraLinesMesh.dispose();\n }\n this._material.dispose();\n super.dispose();\n }\n static _CreateCameraMesh(scene) {\n const root = new Mesh(\"rootCameraGizmo\", scene);\n const mesh = new Mesh(root.name, scene);\n mesh.parent = root;\n const box = CreateBox(root.name, {\n width: 1.0,\n height: 0.8,\n depth: 0.5\n }, scene);\n box.parent = mesh;\n const cyl1 = CreateCylinder(root.name, {\n height: 0.5,\n diameterTop: 0.8,\n diameterBottom: 0.8\n }, scene);\n cyl1.parent = mesh;\n cyl1.position.y = 0.3;\n cyl1.position.x = -0.6;\n cyl1.rotation.x = Math.PI * 0.5;\n const cyl2 = CreateCylinder(root.name, {\n height: 0.5,\n diameterTop: 0.6,\n diameterBottom: 0.6\n }, scene);\n cyl2.parent = mesh;\n cyl2.position.y = 0.5;\n cyl2.position.x = 0.4;\n cyl2.rotation.x = Math.PI * 0.5;\n const cyl3 = CreateCylinder(root.name, {\n height: 0.5,\n diameterTop: 0.5,\n diameterBottom: 0.5\n }, scene);\n cyl3.parent = mesh;\n cyl3.position.y = 0.0;\n cyl3.position.x = 0.6;\n cyl3.rotation.z = Math.PI * 0.5;\n root.scaling.scaleInPlace(CameraGizmo._Scale);\n mesh.position.x = -0.9;\n return root;\n }\n static _CreateCameraFrustum(scene, linesColor) {\n const root = new Mesh(\"rootCameraGizmo\", scene);\n const mesh = new Mesh(root.name, scene);\n mesh.parent = root;\n for (let y = 0; y < 4; y += 2) {\n for (let x = 0; x < 4; x += 2) {\n let line = CreateLines(\"lines\", {\n points: [new Vector3(-1 + x, -1 + y, -1), new Vector3(-1 + x, -1 + y, 1)],\n colors: [linesColor, linesColor]\n }, scene);\n line.parent = mesh;\n line.alwaysSelectAsActiveMesh = true;\n line.isPickable = false;\n line = CreateLines(\"lines\", {\n points: [new Vector3(-1, -1 + x, -1 + y), new Vector3(1, -1 + x, -1 + y)],\n colors: [linesColor, linesColor]\n }, scene);\n line.parent = mesh;\n line.alwaysSelectAsActiveMesh = true;\n line.isPickable = false;\n line = CreateLines(\"lines\", {\n points: [new Vector3(-1 + x, -1, -1 + y), new Vector3(-1 + x, 1, -1 + y)],\n colors: [linesColor, linesColor]\n }, scene);\n line.parent = mesh;\n line.alwaysSelectAsActiveMesh = true;\n line.isPickable = false;\n }\n }\n return root;\n }\n}\n// Static helper methods\nCameraGizmo._Scale = 0.05;","map":{"version":3,"names":["Vector3","Color3","Color4","Mesh","Gizmo","UtilityLayerRenderer","StandardMaterial","CreateBox","CreateCylinder","Matrix","CreateLines","PointerEventTypes","Observable","CameraGizmo","constructor","gizmoLayer","DefaultUtilityLayer","gizmoColor","frustumLinesColor","_pointerObserver","onClickedObservable","_camera","_invProjection","_material","utilityLayerScene","_frustumLinesColor","diffuseColor","specularColor","onPointerObservable","add","pointerInfo","_isHovered","pickInfo","_rootMesh","getChildMeshes","indexOf","pickedMesh","event","button","notifyObservers","POINTERDOWN","displayFrustum","_cameraLinesMesh","isEnabled","value","setEnabled","camera","attachedNode","_this$_frustumLinesCo","_this$_frustumLinesCo2","_customMeshSet","_cameraMesh","dispose","_CreateCameraMesh","forEach","m","material","parent","linesColor","toColor4","_CreateCameraFrustum","activeCamera","maxZ","reservedDataStore","cameraGizmo","gizmoLight","_getSharedGizmoLight","includedOnlyMeshes","concat","_update","getProjectionMatrix","invertToRef","setPivotMatrix","scaling","x","y","z","rotation","Math","PI","getScene","useRightHandedSystem","setCustomMesh","mesh","clear","remove","scene","root","name","box","width","height","depth","cyl1","diameterTop","diameterBottom","position","cyl2","cyl3","scaleInPlace","_Scale","line","points","colors","alwaysSelectAsActiveMesh","isPickable"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Gizmos/cameraGizmo.js"],"sourcesContent":["import { Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { Mesh } from \"../Meshes/mesh.js\";\nimport { Gizmo } from \"./gizmo.js\";\nimport { UtilityLayerRenderer } from \"../Rendering/utilityLayerRenderer.js\";\nimport { StandardMaterial } from \"../Materials/standardMaterial.js\";\nimport { CreateBox } from \"../Meshes/Builders/boxBuilder.js\";\nimport { CreateCylinder } from \"../Meshes/Builders/cylinderBuilder.js\";\nimport { Matrix } from \"../Maths/math.js\";\nimport { CreateLines } from \"../Meshes/Builders/linesBuilder.js\";\nimport { PointerEventTypes } from \"../Events/pointerEvents.js\";\nimport { Observable } from \"../Misc/observable.js\";\n/**\n * Gizmo that enables viewing a camera\n */\nexport class CameraGizmo extends Gizmo {\n /**\n * Creates a CameraGizmo\n * @param gizmoLayer The utility layer the gizmo will be added to\n * @param gizmoColor Camera mesh color. Default is Gray\n * @param frustumLinesColor Frustum lines color. Default is White\n */\n constructor(gizmoLayer = UtilityLayerRenderer.DefaultUtilityLayer, gizmoColor, frustumLinesColor) {\n super(gizmoLayer);\n this._pointerObserver = null;\n /**\n * Event that fires each time the gizmo is clicked\n */\n this.onClickedObservable = new Observable();\n this._camera = null;\n this._invProjection = new Matrix();\n this._material = new StandardMaterial(\"cameraGizmoMaterial\", this.gizmoLayer.utilityLayerScene);\n this._frustumLinesColor = frustumLinesColor;\n this._material.diffuseColor = gizmoColor ?? new Color3(0.5, 0.5, 0.5);\n this._material.specularColor = new Color3(0.1, 0.1, 0.1);\n this._pointerObserver = gizmoLayer.utilityLayerScene.onPointerObservable.add((pointerInfo) => {\n if (!this._camera) {\n return;\n }\n this._isHovered = !!(pointerInfo.pickInfo && this._rootMesh.getChildMeshes().indexOf(pointerInfo.pickInfo.pickedMesh) != -1);\n if (this._isHovered && pointerInfo.event.button === 0) {\n this.onClickedObservable.notifyObservers(this._camera);\n }\n }, PointerEventTypes.POINTERDOWN);\n }\n /** Gets or sets a boolean indicating if frustum lines must be rendered (true by default)) */\n get displayFrustum() {\n return this._cameraLinesMesh.isEnabled();\n }\n set displayFrustum(value) {\n this._cameraLinesMesh.setEnabled(value);\n }\n /**\n * The camera that the gizmo is attached to\n */\n set camera(camera) {\n this._camera = camera;\n this.attachedNode = camera;\n if (camera) {\n // Create the mesh for the given camera\n if (!this._customMeshSet) {\n if (this._cameraMesh) {\n this._cameraMesh.dispose();\n }\n this._cameraMesh = CameraGizmo._CreateCameraMesh(this.gizmoLayer.utilityLayerScene);\n this._cameraMesh.getChildMeshes(false).forEach((m) => {\n m.material = this._material;\n });\n this._cameraMesh.parent = this._rootMesh;\n }\n if (this._cameraLinesMesh) {\n this._cameraLinesMesh.dispose();\n }\n const linesColor = this._frustumLinesColor?.toColor4(1) ?? new Color4(1, 1, 1, 1);\n this._cameraLinesMesh = CameraGizmo._CreateCameraFrustum(this.gizmoLayer.utilityLayerScene, linesColor);\n this._cameraLinesMesh.parent = this._rootMesh;\n if (this.gizmoLayer.utilityLayerScene.activeCamera && this.gizmoLayer.utilityLayerScene.activeCamera.maxZ < camera.maxZ * 1.5) {\n this.gizmoLayer.utilityLayerScene.activeCamera.maxZ = camera.maxZ * 1.5;\n }\n if (!this.attachedNode.reservedDataStore) {\n this.attachedNode.reservedDataStore = {};\n }\n this.attachedNode.reservedDataStore.cameraGizmo = this;\n // Add lighting to the camera gizmo\n const gizmoLight = this.gizmoLayer._getSharedGizmoLight();\n gizmoLight.includedOnlyMeshes = gizmoLight.includedOnlyMeshes.concat(this._cameraMesh.getChildMeshes(false));\n this._update();\n }\n }\n get camera() {\n return this._camera;\n }\n /**\n * Gets the material used to render the camera gizmo\n */\n get material() {\n return this._material;\n }\n /**\n * @internal\n * Updates the gizmo to match the attached mesh's position/rotation\n */\n _update() {\n super._update();\n if (!this._camera) {\n return;\n }\n // frustum matrix\n this._camera.getProjectionMatrix().invertToRef(this._invProjection);\n this._cameraLinesMesh.setPivotMatrix(this._invProjection, false);\n this._cameraLinesMesh.scaling.x = 1 / this._rootMesh.scaling.x;\n this._cameraLinesMesh.scaling.y = 1 / this._rootMesh.scaling.y;\n this._cameraLinesMesh.scaling.z = 1 / this._rootMesh.scaling.z;\n // take care of coordinate system in camera scene to properly display the mesh with the good Y axis orientation in this scene\n this._cameraMesh.parent = null;\n this._cameraMesh.rotation.y = Math.PI * 0.5 * (this._camera.getScene().useRightHandedSystem ? 1 : -1);\n this._cameraMesh.parent = this._rootMesh;\n }\n /**\n * Disposes and replaces the current camera mesh in the gizmo with the specified mesh\n * @param mesh The mesh to replace the default mesh of the camera gizmo\n */\n setCustomMesh(mesh) {\n if (mesh.getScene() != this.gizmoLayer.utilityLayerScene) {\n // eslint-disable-next-line no-throw-literal\n throw \"When setting a custom mesh on a gizmo, the custom meshes scene must be the same as the gizmos (eg. gizmo.gizmoLayer.utilityLayerScene)\";\n }\n if (this._cameraMesh) {\n this._cameraMesh.dispose();\n }\n this._cameraMesh = mesh;\n this._cameraMesh.parent = this._rootMesh;\n this._customMeshSet = true;\n }\n /**\n * Disposes of the camera gizmo\n */\n dispose() {\n this.onClickedObservable.clear();\n this.gizmoLayer.utilityLayerScene.onPointerObservable.remove(this._pointerObserver);\n if (this._cameraMesh) {\n this._cameraMesh.dispose();\n }\n if (this._cameraLinesMesh) {\n this._cameraLinesMesh.dispose();\n }\n this._material.dispose();\n super.dispose();\n }\n static _CreateCameraMesh(scene) {\n const root = new Mesh(\"rootCameraGizmo\", scene);\n const mesh = new Mesh(root.name, scene);\n mesh.parent = root;\n const box = CreateBox(root.name, { width: 1.0, height: 0.8, depth: 0.5 }, scene);\n box.parent = mesh;\n const cyl1 = CreateCylinder(root.name, { height: 0.5, diameterTop: 0.8, diameterBottom: 0.8 }, scene);\n cyl1.parent = mesh;\n cyl1.position.y = 0.3;\n cyl1.position.x = -0.6;\n cyl1.rotation.x = Math.PI * 0.5;\n const cyl2 = CreateCylinder(root.name, { height: 0.5, diameterTop: 0.6, diameterBottom: 0.6 }, scene);\n cyl2.parent = mesh;\n cyl2.position.y = 0.5;\n cyl2.position.x = 0.4;\n cyl2.rotation.x = Math.PI * 0.5;\n const cyl3 = CreateCylinder(root.name, { height: 0.5, diameterTop: 0.5, diameterBottom: 0.5 }, scene);\n cyl3.parent = mesh;\n cyl3.position.y = 0.0;\n cyl3.position.x = 0.6;\n cyl3.rotation.z = Math.PI * 0.5;\n root.scaling.scaleInPlace(CameraGizmo._Scale);\n mesh.position.x = -0.9;\n return root;\n }\n static _CreateCameraFrustum(scene, linesColor) {\n const root = new Mesh(\"rootCameraGizmo\", scene);\n const mesh = new Mesh(root.name, scene);\n mesh.parent = root;\n for (let y = 0; y < 4; y += 2) {\n for (let x = 0; x < 4; x += 2) {\n let line = CreateLines(\"lines\", { points: [new Vector3(-1 + x, -1 + y, -1), new Vector3(-1 + x, -1 + y, 1)], colors: [linesColor, linesColor] }, scene);\n line.parent = mesh;\n line.alwaysSelectAsActiveMesh = true;\n line.isPickable = false;\n line = CreateLines(\"lines\", { points: [new Vector3(-1, -1 + x, -1 + y), new Vector3(1, -1 + x, -1 + y)], colors: [linesColor, linesColor] }, scene);\n line.parent = mesh;\n line.alwaysSelectAsActiveMesh = true;\n line.isPickable = false;\n line = CreateLines(\"lines\", { points: [new Vector3(-1 + x, -1, -1 + y), new Vector3(-1 + x, 1, -1 + y)], colors: [linesColor, linesColor] }, scene);\n line.parent = mesh;\n line.alwaysSelectAsActiveMesh = true;\n line.isPickable = false;\n }\n }\n return root;\n }\n}\n// Static helper methods\nCameraGizmo._Scale = 0.05;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}