@anov/3d 0.0.101 → 0.0.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["AudioListener","AudioLoader","Clock","Color","EdgesGeometry","Euler","Group","LineBasicMaterial","LineCurve3","LineSegments","MathUtils","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","PlaneGeometry","PositionalAudio","Quaternion","RepeatWrapping","TextureLoader","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","isCheck","targetProgresspoints","TubeGeometryV2","modelLoader","InspectionObject","inspection","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","temp","load","wrapS","wrapT","repeat","set","rotation","Math","PI","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","poi2","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","planeGeometry","planeMaterial","map","transparent","plyMap","x","copy","layers","group","name","add","minCamera","clone","z","getSportsProgress","isLock","stop","checkAnimation","y","rotateY","initialMinCameraQuaternion","model","gobal","interactionManager","visible","addEventListener","traverse","child","enable","loadPosAudio","breathinglamp","target","startColor","endColor","breathingSpeed","elapsedTime","getElapsedTime","t","sin","currentColor","lerp","material","handleMouseMove","listener","posAudio","audioLoader","audioBuffer","setBuffer","setVolume","setRefDistance","setLoop","emitter","on","isStartUp","play","removeEventListener","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","setTimeout","sendCompassInfo","groundMaterial","uniforms","u_time","value","mapMaterial","mapAnchorObject","forEach","mapAnchor","uColor","Event","Success","undefined","percentage","setInterval","updateMatrixWorld","worldQuaternion","getWorldQuaternion","worldEuler","setFromQuaternion","rotationY","rotationYInDegrees","round","radToDeg","rotate","abs","degree","distance","getLength","verticalSpeed","horizontalSpeed","getProgress","Promise","resolve","data","progress","isAnimation","defaultFirstPerspectiveControls","enabled","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","targetMesh","pipeline","realModl","contineMove","currentAnchor","anchorObject","get","currentMapAnchor","numberKey","Number","rotationMatrix","startQuaternion","startCameraQuaternion","targetMeshPosition","up","setFromRotationMatrix","forwardTween","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetPosition","tube","tempPathMesh","depthTest","tempDemo","offset","dispose","removeFromParent","upCurve","upControl","loop","lookat","contine","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","speed","setSpeed","Error","contineCount","takeOffAnimation","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve, Object3D } from '@anov/3d-core'\nimport { AudioListener, AudioLoader, BoxGeometry, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MeshStandardMaterial, MirroredRepeatWrapping, ModelLoader, PlaneGeometry, PointLight, PositionalAudio, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, TubeGeometry, Vector3, Vector4, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { isCheck, targetProgresspoints } from './lineData'\nimport TubeGeometryV2 from './tubeGeometry'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n tempPathMesh\n css2d: Css2DPoi\n temp\n tempDemo\n isStartUp = false\n initialMinCameraQuaternion\n contineCount = 0\n\n constructor(inspection) {\n this.inspection = inspection\n\n const temp = new TextureLoader().load(`${usePath}test07.png`)\n temp.wrapS = RepeatWrapping\n temp.wrapT = MirroredRepeatWrapping\n temp.repeat.set(1, 2)\n temp.rotation = Math.PI\n\n this.temp = temp\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.position = 'absolute'\n span.style.top = '10px'\n span.style.left = '50%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 400 * 2,\n height: 160 * 2,\n })\n\n poi.scale.set(100, 40, 1)\n poi2.scale.set(400, 160, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n const planeGeometry = new PlaneGeometry(50, 50)\n const planeMaterial = new MeshBasicMaterial({ map: new TextureLoader().load(`${usePath}fly.png`), transparent: true })\n const plyMap = new Mesh(planeGeometry, planeMaterial)\n\n plyMap.rotation.x = -Math.PI / 2\n plyMap.position.copy(glb.scene.position)\n plyMap.layers.set(5)\n\n const group = new Group()\n glb.scene.name = 'ply'\n group.add(glb.scene)\n group.add(poi)\n group.add(plyMap)\n group.add(this.inspection.minCamera)\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n }\n })\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 18\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n this.initialMinCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n this.inspection.gobal.interactionManager.add(poi2)\n\n poi2.visible = false\n\n poi.addEventListener('click', () => {\n group.add(poi2)\n poi2.visible = true\n poi.visible = false\n })\n\n poi2.addEventListener('click', () => {\n group.add(poi2)\n poi.visible = true\n poi2.visible = false\n })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n // child.layers.enable(2)\n child.layers.enable(5)\n })\n\n this.inspection.gobal.scene.add(this.model)\n\n this.loadPosAudio()\n this.breathinglamp(this.model)\n }\n\n private breathinglamp(model: Group) {\n const target = model.getObjectByName('网格004_5')\n\n const startColor = new Color('#999')\n const endColor = new Color('#2df3ee')\n\n const clock = new Clock()\n const breathingSpeed = 1\n\n use.useframe(() => {\n const elapsedTime = clock.getElapsedTime()\n const t = (Math.sin(elapsedTime * Math.PI * breathingSpeed) + 1) / 2\n const currentColor = startColor.clone().lerp(endColor, t)\n\n // @ts-ignore\n target.material.color.set(currentColor)\n })\n }\n\n private loadPosAudio() {\n const handleMouseMove = () => {\n const listener = new AudioListener()\n this.inspection.minCamera.add(listener)\n\n const posAudio = new PositionalAudio(listener)\n this.model.add(posAudio)\n\n const audioLoader = new AudioLoader()\n\n audioLoader.load(`${usePath}demo.mp3`, (audioBuffer) => {\n posAudio.setBuffer(audioBuffer)\n posAudio.setVolume(0.8)\n posAudio.setRefDistance(200)\n posAudio.setLoop(true)\n })\n\n utils.emitter.on('play', () => {\n this.isStartUp && posAudio.play()\n })\n\n utils.emitter.on('stop', () => {\n posAudio.stop()\n })\n\n document.removeEventListener('mousemove', handleMouseMove)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n setTimeout(() => {\n this.stop();\n ((this.model) as Object3D).position.y = (this.model.position.y - 20)\n }, 20)\n\n this.sendCompassInfo()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n this.inspection.mapMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n\n if (this.getSportsProgress > 0 && this.getSportsProgress < 0.01) {\n this.inspection.mapAnchorObject.forEach((mapAnchor) => {\n mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n }\n\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress,\n })\n })\n }\n\n /**\n * send compass info\n * not use useframe, because useframe will be lose some frame\n */\n private sendCompassInfo() {\n setInterval(() => {\n const mesh = this.model\n mesh.updateMatrixWorld(true)\n\n const worldQuaternion = new Quaternion()\n mesh.getWorldQuaternion(worldQuaternion)\n\n const worldEuler = new Euler().setFromQuaternion(worldQuaternion, 'YXZ')\n const rotationY = worldEuler.y\n const rotationYInDegrees = Math.round(MathUtils.radToDeg(rotationY))\n\n sendToMessage(MessageType.Event, 'onCompassInfo', EMessageStatus.Success, undefined, {\n rotate: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees),\n degree: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees) + 360,\n distance: this.getSportsProgress * this.inspection.curve.getLength(),\n verticalSpeed: 0,\n horizontalSpeed: 10,\n })\n }, 100)\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n this.inspection.defaultFirstPerspectiveControls.enabled = false\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n const currentMapAnchor = this.inspection.mapAnchorObject\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n });\n\n (currentMapAnchor as Map<string, Mesh>).forEach((mapAnchor, key) => {\n const numberKey = Number(key)\n\n // @ts-ignore\n this.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 0, 0, 0.8)\n\n // @ts-ignore\n this.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n const startCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n const targetMeshPosition = targetMesh.position.clone()\n targetMeshPosition.y = targetMeshPosition.y + ((Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40) ? 20 : 0)\n\n rotationMatrix.lookAt(targetMeshPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n this.inspection.minCamera.quaternion.copy(startCameraQuaternion).slerp(this.initialMinCameraQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('#08A6E3', 4.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: '#08A6E3' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n // 异常点\n if (Number(key) === 0.15 || Number(key) === 0.24) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n // if (Number(key) === 0.40)\n // finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.inspection.defaultFirstPerspectiveControls.enabled = true\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n private generateTempPathMesh(curve: Curve<Vector3>) {\n // @ts-ignore\n const tube = new TubeGeometryV2(curve, 100, 5, 2, false)\n const tempPathMesh = new Mesh(tube, new MeshBasicMaterial({ map: this.temp, transparent: true, depthTest: true }))\n\n this.inspection.gobal.scene.add(tempPathMesh)\n this.tempPathMesh = tempPathMesh\n\n tempPathMesh.layers.enable(5)\n\n this.temp.repeat.set(curve.getLength() / 500, 2)\n this.tempDemo = use.useframe(() => {\n this.temp.offset.x -= -0.0009\n })\n }\n\n private cleanTempPathMesh() {\n if (this.tempPathMesh) {\n this.tempDemo()\n this.tempPathMesh.geometry.dispose()\n this.tempPathMesh.material.dispose();\n (this.tempPathMesh as Mesh).removeFromParent()\n }\n }\n\n private takeOffAnimation() {\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 20, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: false })\n\n upControl.addEventListener('end', () => {\n this.control.contine()\n })\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z)\n this.generateTempPathMesh(this.generateTempPath(new Vector3(this.model.position.x, 1.1, this.model.position.z), tempPathMeshtargetPosition))\n\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 50, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n // up end\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 50, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 60, { loop: false, lookat: false })\n\n // temp end\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 50, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n // down end\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.cleanTempPathMesh()\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (!this.control)\n throw new Error('control not init')\n\n if (this.contineCount === 0)\n this.takeOffAnimation()\n\n else\n this.control.contine()\n\n this.contineCount++\n\n this.isStartUp = true\n\n utils.emitter.emit('continue', true)\n\n if (this.inspection.minCamera === this.inspection.gobal.scene.camera)\n utils.emitter.emit('play')\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
1
+ {"version":3,"names":["AudioListener","AudioLoader","Clock","Color","EdgesGeometry","Euler","Group","LineBasicMaterial","LineCurve3","LineSegments","MathUtils","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","PlaneGeometry","PositionalAudio","Quaternion","RepeatWrapping","TextureLoader","Vector3","use","utils","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","isCheck","targetProgresspoints","TubeGeometryV2","modelLoader","InspectionObject","inspection","verticalSpeed","horizontalSpeed","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","temp","load","wrapS","wrapT","repeat","set","rotation","Math","PI","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","poi2","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","planeGeometry","planeMaterial","map","transparent","plyMap","x","copy","layers","group","name","add","minCamera","clone","z","getSportsProgress","isLock","stop","checkAnimation","compassInfo","y","rotateY","initialMinCameraQuaternion","model","gobal","interactionManager","visible","addEventListener","traverse","child","enable","loadPosAudio","breathinglamp","target","startColor","endColor","breathingSpeed","elapsedTime","getElapsedTime","t","sin","currentColor","lerp","material","handleMouseMove","listener","posAudio","audioLoader","audioBuffer","setBuffer","setVolume","setRefDistance","setLoop","emitter","on","isStartUp","play","removeEventListener","curve","loadModel","control","moveWithLine","groundCurve","getPointAt","setTimeout","sendCompassInfo","groundMaterial","uniforms","u_time","value","mapMaterial","mapAnchorObject","forEach","mapAnchor","uColor","Event","Success","undefined","percentage","setInterval","updateMatrixWorld","worldQuaternion","getWorldQuaternion","worldEuler","setFromQuaternion","rotationY","rotationYInDegrees","round","radToDeg","rotate","abs","degree","distance","getLength","getProgress","Promise","resolve","data","progress","isAnimation","defaultFirstPerspectiveControls","enabled","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","targetMesh","pipeline","realModl","contineMove","currentAnchor","anchorObject","get","currentMapAnchor","numberKey","Number","rotationMatrix","startQuaternion","startCameraQuaternion","targetMeshPosition","up","setFromRotationMatrix","forwardTween","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetPosition","tube","tempPathMesh","depthTest","tempDemo","offset","dispose","removeFromParent","upCurve","upControl","loop","lookat","contine","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","speed","setSpeed","Error","contineCount","takeOffAnimation","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve, Object3D } from '@anov/3d-core'\nimport { AudioListener, AudioLoader, BoxGeometry, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MeshStandardMaterial, MirroredRepeatWrapping, ModelLoader, PlaneGeometry, PointLight, PositionalAudio, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, TubeGeometry, Vector3, Vector4, use, utils } from '@anov/3d-core'\nimport type { Css2DPoi } from '@anov/3d-ability'\nimport { SpritePoi, addColorifyPass, createHighSelectedTool } from '@anov/3d-ability'\nimport { Tween } from '@tweenjs/tween.js'\nimport { createFinirMaterial } from '../../utils/finirMaterial'\nimport { usePath } from '../../3d'\nimport { MessageType, sendToMessage } from '../../../utils/messageFn'\nimport { EMessageStatus } from '../../../messageStatus'\nimport { isCheck, targetProgresspoints } from './lineData'\nimport TubeGeometryV2 from './tubeGeometry'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n tempPathMesh\n css2d: Css2DPoi\n temp\n tempDemo\n isStartUp = false\n initialMinCameraQuaternion\n contineCount = 0\n\n compassInfo = {\n verticalSpeed: 0,\n horizontalSpeed: 10,\n }\n\n constructor(inspection) {\n this.inspection = inspection\n\n const temp = new TextureLoader().load(`${usePath}test07.png`)\n temp.wrapS = RepeatWrapping\n temp.wrapT = MirroredRepeatWrapping\n temp.repeat.set(1, 2)\n temp.rotation = Math.PI\n\n this.temp = temp\n }\n\n private async loadModel() {\n const glb = await (await modelLoader.loadGLTF(`${usePath}car.glb`, false, true, './draco/'))\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}aerialVehicle02.png`\n\n const span = document.createElement('span')\n span.innerText = '巡检无人机'\n span.style.position = 'absolute'\n span.style.top = '10px'\n span.style.left = '45%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = 'white'\n span.style.fontSize = '20px'\n span.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n\n const poi = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}aerialVehicle01.png`\n\n const poi2 = new SpritePoi(img2, {\n width: 400 * 2,\n height: 160 * 2,\n })\n\n poi.scale.set(80, 30, 1)\n poi2.scale.set(400, 160, 1)\n\n const fly1 = glb.scene.getObjectByName('fly1')\n const fly2 = glb.scene.getObjectByName('fly1_1')\n const fly3 = glb.scene.getObjectByName('fly1_2')\n const fly4 = glb.scene.getObjectByName('fly1_3')\n\n const planeGeometry = new PlaneGeometry(50, 50)\n const planeMaterial = new MeshBasicMaterial({ map: new TextureLoader().load(`${usePath}fly.png`), transparent: true })\n const plyMap = new Mesh(planeGeometry, planeMaterial)\n\n plyMap.rotation.x = -Math.PI / 2\n plyMap.position.copy(glb.scene.position)\n plyMap.layers.set(5)\n\n const group = new Group()\n glb.scene.name = 'ply'\n group.add(glb.scene)\n group.add(poi)\n group.add(plyMap)\n group.add(this.inspection.minCamera)\n\n use.useframe(() => {\n poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)))\n\n fly1.rotation.z += 1.3\n fly2.rotation.z += 1.3\n fly3.rotation.z += 1.3\n fly4.rotation.z += 1.3\n\n if (isCheck(this.getSportsProgress)\n && !this.isLock) {\n this.stop()\n this.checkAnimation(this.getSportsProgress)\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 0\n }\n })\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 18\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\n this.initialMinCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n this.model = group\n\n this.inspection.gobal.interactionManager.add(poi)\n this.inspection.gobal.interactionManager.add(poi2)\n\n poi2.visible = false\n\n poi.addEventListener('click', () => {\n group.add(poi2)\n poi2.visible = true\n poi.visible = false\n })\n\n poi2.addEventListener('click', () => {\n group.add(poi2)\n poi.visible = true\n poi2.visible = false\n })\n\n glb.scene.scale.set(5, 5, 5)\n glb.scene.traverse((child) => {\n // child.layers.enable(2)\n child.layers.enable(5)\n })\n\n this.inspection.gobal.scene.add(this.model)\n\n this.loadPosAudio()\n this.breathinglamp(this.model)\n }\n\n private breathinglamp(model: Group) {\n const target = model.getObjectByName('网格004_5')\n\n const startColor = new Color('#999')\n const endColor = new Color('#2df3ee')\n\n const clock = new Clock()\n const breathingSpeed = 1\n\n use.useframe(() => {\n const elapsedTime = clock.getElapsedTime()\n const t = (Math.sin(elapsedTime * Math.PI * breathingSpeed) + 1) / 2\n const currentColor = startColor.clone().lerp(endColor, t)\n\n // @ts-ignore\n target.material.color.set(currentColor)\n })\n }\n\n private loadPosAudio() {\n const handleMouseMove = () => {\n const listener = new AudioListener()\n this.inspection.minCamera.add(listener)\n\n const posAudio = new PositionalAudio(listener)\n this.model.add(posAudio)\n\n const audioLoader = new AudioLoader()\n\n audioLoader.load(`${usePath}demo.mp3`, (audioBuffer) => {\n posAudio.setBuffer(audioBuffer)\n posAudio.setVolume(0.8)\n posAudio.setRefDistance(200)\n posAudio.setLoop(true)\n })\n\n utils.emitter.on('play', () => {\n this.isStartUp && posAudio.play()\n })\n\n utils.emitter.on('stop', () => {\n posAudio.stop()\n })\n\n document.removeEventListener('mousemove', handleMouseMove)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n }\n\n async startMove(curve) {\n if (!this.model)\n await this.loadModel()\n\n this.control = utils.moveWithLine(this.model, curve, 10, {\n groundCurve: this.inspection.groundCurve,\n })\n\n this.model.position.copy(curve.getPointAt(0))\n\n setTimeout(() => {\n this.stop();\n ((this.model) as Object3D).position.y = (this.model.position.y - 20)\n }, 20)\n\n this.sendCompassInfo()\n\n use.useframe(() => {\n this.inspection.groundMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n this.inspection.mapMaterial.uniforms.u_time.value = this.getSportsProgress - 0.01\n\n if (this.getSportsProgress > 0 && this.getSportsProgress < 0.01) {\n this.inspection.mapAnchorObject.forEach((mapAnchor) => {\n mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n }\n\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress * 1000,\n })\n })\n }\n\n /**\n * send compass info\n * not use useframe, because useframe will be lose some frame\n */\n private sendCompassInfo() {\n setInterval(() => {\n const mesh = this.model\n mesh.updateMatrixWorld(true)\n\n const worldQuaternion = new Quaternion()\n mesh.getWorldQuaternion(worldQuaternion)\n\n const worldEuler = new Euler().setFromQuaternion(worldQuaternion, 'YXZ')\n const rotationY = worldEuler.y\n const rotationYInDegrees = Math.round(MathUtils.radToDeg(rotationY))\n\n sendToMessage(MessageType.Event, 'onCompassInfo', EMessageStatus.Success, undefined, {\n rotate: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees),\n degree: rotationYInDegrees >= 0 ? 180 - rotationYInDegrees : -180 + Math.abs(rotationYInDegrees) + 360,\n distance: this.getSportsProgress * this.inspection.curve.getLength(),\n verticalSpeed: this.compassInfo.verticalSpeed * 3.6,\n horizontalSpeed: this.compassInfo.horizontalSpeed * 3.6,\n })\n }, 100)\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n subscription() {\n return new Promise((resolve) => {\n utils.emitter.on('continue', (data) => {\n resolve(data)\n })\n })\n }\n\n private checkAnimation(progress: number) {\n this.isLock = true\n this.isAnimation = true\n this.inspection.defaultFirstPerspectiveControls.enabled = false\n\n const key = Object.keys(targetProgresspoints).find((p) => {\n const num = parseFloat(p)\n if (progress >= num && progress < num + 0.01)\n return true\n })\n\n const targetMeshId = targetProgresspoints[key].lookAt\n\n let targetMesh: Group | null = null\n\n if (targetMeshId === 'GY_GD_guandaofamen_5')\n targetMesh = this.inspection.gobal.pipeline.getObjectByName(targetMeshId) as Group\n\n else\n targetMesh = this.inspection.gobal.realModl.getObjectByName(targetMeshId) as Group\n\n if (!targetMesh) {\n this.contineMove()\n this.isAnimation = false\n setTimeout(() => {\n this.isLock = false\n }, 500)\n return\n }\n\n const currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name)\n const currentMapAnchor = this.inspection.mapAnchorObject\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n });\n\n (currentMapAnchor as Map<string, Mesh>).forEach((mapAnchor, key) => {\n const numberKey = Number(key)\n\n // @ts-ignore\n this.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 0, 0, 0.8)\n\n // @ts-ignore\n this.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1)\n })\n\n setTimeout(() => {\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n const startCameraQuaternion = this.inspection.minCamera.quaternion.clone()\n\n const targetMeshPosition = targetMesh.position.clone()\n targetMeshPosition.y = targetMeshPosition.y + ((Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40) ? 20 : 0)\n\n rotationMatrix.lookAt(targetMeshPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n const forwardTween = new Tween({ t: 0 })\n .to({ t: 1 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n this.inspection.minCamera.quaternion.copy(startCameraQuaternion).slerp(this.initialMinCameraQuaternion, obj.t)\n })\n\n const backwardTween = new Tween({ t: 1 })\n .to({ t: 0 }, 2000)\n .onUpdate((obj) => {\n this.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t)\n })\n\n forwardTween.onComplete(() => {\n let finirMesh: Group | null = null\n\n sendToMessage(MessageType.Event, 'onReachTarget', EMessageStatus.Success, undefined, {\n target: targetProgresspoints[key].name,\n })\n\n if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24) {\n (this.inspection.minCamera as Camera).layers.enable(3)\n // @ts-ignore\n if (!targetMesh.finirMesh) {\n finirMesh = targetMesh.clone() as any as Group\n\n const finirMaterialV2 = createFinirMaterial('#08A6E3', 4.3)\n\n finirMesh.traverse((child) => {\n child.layers.set(3)\n\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = finirMaterialV2\n\n // @ts-ignore\n const lineSegments = new LineSegments(new EdgesGeometry(child.geometry as any), new LineBasicMaterial({ color: '#08A6E3' }))\n\n lineSegments.layers.set(3)\n finirMesh.add(lineSegments)\n }\n })\n\n // @ts-ignore\n targetMesh.finirMesh = finirMesh\n\n this.inspection.gobal.scene.add(finirMesh)\n }\n else {\n // @ts-ignore\n finirMesh = targetMesh.finirMesh\n\n finirMesh.visible = true\n }\n }\n\n // 异常点\n if (Number(key) === 0.15 || Number(key) === 0.24) {\n this.subscription().then((data) => {\n if (data) {\n finirMesh.visible = false\n backwardTween.start()\n\n utils.emitter.off('continue')\n }\n })\n }\n else {\n setTimeout(() => {\n if (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40)\n (this.inspection.minCamera as Camera).layers.set(0)\n\n // if (Number(key) === 0.40)\n // finirMesh.visible = false\n\n backwardTween.start()\n }, 6000)\n }\n })\n\n setTimeout(() => {\n forwardTween.start()\n }, 1000)\n\n backwardTween.onComplete(() => {\n this.isAnimation = false\n this.contineMove()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n\n setTimeout(() => {\n this.inspection.defaultFirstPerspectiveControls.enabled = true\n this.isLock = false\n }, 500)\n })\n }, 1000)\n }\n\n generateTempPath(currentPosition: Vector3, targetPosition: Vector3) {\n return new LineCurve3(currentPosition, targetPosition)\n }\n\n private startRotate = (targetQuaternion: Quaternion, mesh: Group, cb: () => void) => {\n const clock = new Clock()\n\n if (mesh.quaternion.equals(targetQuaternion))\n return cb()\n\n const animation = use.useframe(() => {\n const delta = clock.getDelta()\n if (!mesh.quaternion.equals(targetQuaternion)) {\n const step = 1 * delta\n mesh.quaternion.rotateTowards(targetQuaternion, step)\n }\n else {\n animation()\n cb()\n }\n },\n )\n }\n\n private generateTempPathMesh(curve: Curve<Vector3>) {\n // @ts-ignore\n const tube = new TubeGeometryV2(curve, 100, 5, 2, false)\n const tempPathMesh = new Mesh(tube, new MeshBasicMaterial({ map: this.temp, transparent: true, depthTest: true }))\n\n this.inspection.gobal.scene.add(tempPathMesh)\n this.tempPathMesh = tempPathMesh\n\n tempPathMesh.layers.enable(5)\n\n this.temp.repeat.set(curve.getLength() / 500, 2)\n this.tempDemo = use.useframe(() => {\n this.temp.offset.x -= -0.0009\n })\n }\n\n private cleanTempPathMesh() {\n if (this.tempPathMesh) {\n this.tempDemo()\n this.tempPathMesh.geometry.dispose()\n this.tempPathMesh.material.dispose();\n (this.tempPathMesh as Mesh).removeFromParent()\n }\n }\n\n private takeOffAnimation() {\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 20, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.horizontalSpeed = 0\n this.compassInfo.verticalSpeed = 10\n\n upControl.addEventListener('end', () => {\n this.control.contine()\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n })\n }\n\n gotoTarget(targetPosition: Vector3, targetProgress: number) {\n if (this.isAnimation)\n return\n\n this.isAnimation = true\n\n this.control.stop()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 0\n\n const rotationMatrix = new Matrix4()\n const targetQuaternion = new Quaternion()\n\n rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up)\n targetQuaternion.setFromRotationMatrix(rotationMatrix)\n\n this.startRotate(targetQuaternion, this.model,\n () => {\n const tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z)\n this.generateTempPathMesh(this.generateTempPath(new Vector3(this.model.position.x, 1.1, this.model.position.z), tempPathMeshtargetPosition))\n\n const currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 50, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // up end\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 50, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 60, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 60\n\n // temp end\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 50, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\n this.compassInfo.verticalSpeed = 10\n this.compassInfo.horizontalSpeed = 0\n\n // down end\n downControl.addEventListener('end', () => {\n const rotationMatrix2 = new Matrix4()\n const targetQuaternion2 = new Quaternion()\n\n const targetPosition2 = this.inspection.curve.getPointAt((targetProgress + 0.01) % 1)\n\n rotationMatrix2.lookAt(targetPosition2, this.model.position, this.model.up)\n targetQuaternion2.setFromRotationMatrix(rotationMatrix2)\n\n this.startRotate(targetQuaternion2, this.model, () => {\n setTimeout(() => {\n this.cleanTempPathMesh()\n this.isAnimation = false\n this.control.setProgress(targetProgress)\n this.control.contine()\n\n this.compassInfo.verticalSpeed = 0\n this.compassInfo.horizontalSpeed = 10\n }, 500)\n })\n })\n })\n })\n })\n }\n\n setSpeed(speed: number) {\n if (this.control)\n this.control.setSpeed(speed)\n }\n\n stop() {\n if (this.control)\n this.control.stop()\n }\n\n contineMove() {\n if (!this.control)\n throw new Error('control not init')\n\n if (this.contineCount === 0)\n this.takeOffAnimation()\n\n else\n this.control.contine()\n\n this.contineCount++\n\n this.isStartUp = true\n\n utils.emitter.emit('continue', true)\n\n if (this.inspection.minCamera === this.inspection.gobal.scene.camera)\n utils.emitter.emit('play')\n }\n\n /**\n * todo: now temporarily not implemented\n */\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
@@ -172,7 +172,7 @@ var PoiManage = /*#__PURE__*/function () {
172
172
  if (!ratio && poi.scale) ratio = poi.scale.x / poi.scale.y;
173
173
 
174
174
  // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值
175
- poi.scale.copy(new Vector3(scaleValue * ratio, scaleValue, 1));
175
+ poi.scale.copy(new Vector3(scaleValue * ratio * 0.8, scaleValue * 0.8, 1));
176
176
  }
177
177
  }, {
178
178
  key: "getDom",
@@ -180,13 +180,14 @@ var PoiManage = /*#__PURE__*/function () {
180
180
  var dom = document.createElement('div');
181
181
  var wordLength = data.title.length;
182
182
  Object.assign(dom.style, {
183
- fontSize: '18px',
184
- backgroundImage: "url(".concat(usePath, "poi.png)"),
183
+ fontSize: '22px',
184
+ backgroundImage: "url(".concat(usePath, "/poi.png)"),
185
185
  backgroundSize: '100% 100%',
186
186
  backgroundRepeat: 'no-repeat',
187
187
  display: 'flex',
188
188
  justifyContent: 'center',
189
189
  alignItems: 'flex-start',
190
+ fontFamily: 'YouSheBiaoTiHei',
190
191
  textAlign: 'center',
191
192
  color: '#fff',
192
193
  pointerEvents: 'auto',
@@ -198,12 +199,13 @@ var PoiManage = /*#__PURE__*/function () {
198
199
  position: 'relative'
199
200
  });
200
201
  var img = document.createElement('img');
201
- img.src = "".concat(usePath, "icon.png");
202
+ img.src = "".concat(usePath).concat(data.title, "\u56FE\u6807.png");
202
203
  img.style.position = 'absolute';
203
204
  img.style.left = '25px';
204
- img.style.top = '5px';
205
+ img.style.top = '10px';
205
206
  dom.appendChild(img);
206
207
  var label = document.createElement('label');
208
+ label.style.marginLeft = '10px';
207
209
  label.innerText = data.title;
208
210
  label.style.fontWeight = 'bold';
209
211
  dom.appendChild(label);
@@ -1 +1 @@
1
- {"version":3,"names":["Vector3","use","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","SceneTag","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","wordLength","title","length","ratio","Math","max","poiHeight","option","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","updateScale","poiMesh","set","id","target","regionPlane","planeMesh","changeWallState","show","dialogPoi","visible","wallMesh","uniforms","value","wallGrowFrame","useframe","addEventListener","tag","overview","unClick","event","reset","addDialogPanel","point","poiEventListener","unFrame","minDistance","maxDistance","useScene","camera","distance","distanceTo","clampedDistance","min","scaleValue","scale","x","y","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","textAlign","color","pointerEvents","cursor","height","minWidth","width","padding","img","src","left","top","appendChild","label","innerText","fontWeight","remove","removeFromParent","f","clear","content","print","clone","setTimeout"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Mesh, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport { SceneTag } from '../utils/constant'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n private poiWidth: number\n private poiHeight = 262\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n let wordLength, ratio\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n wordLength = region.title.length\n ratio = Math.max(wordLength * (wordLength > 6 ? 34 : 40), 180) / this.poiHeight\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n this.scene.add(sprite)\n this.updateScale(sprite, ratio)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n // let wallGrowFrame\n\n // if (wallGrowFrame)\n // wallGrowFrame()\n\n // walllMaterial.uniforms.grow.value = 0\n\n // wallGrowFrame = use.useframe(() => {\n // walllMaterial.uniforms.grow.value += 3\n // })\n\n this.addDialogPanel(region, event.point)\n }) as Function\n this.poiEventListener.add(unClick)\n })\n\n const unFrame = use.useframe(() => {\n this.poiMesh.forEach((poi: SpritePoi) => {\n this.updateScale(poi)\n })\n })\n this.poiEventListener.add(unFrame)\n // // 控制POI始终是一个大小\n // const orbitControls = use.useScene().orbitControls\n // orbitControls?.addEventListener('change', fn)\n // this.poiEventListener.add(() => orbitControls?.removeEventListener('change', fn))\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0) {\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio, scaleValue, 1))\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n const wordLength = data.title.length\n Object.assign(dom.style, {\n fontSize: '18px',\n backgroundImage: `url(${usePath}poi.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: `${this.poiHeight}px`,\n minWidth: '180px',\n width: `${wordLength * (wordLength > 6 ? 34 : 40)}px`,\n padding: '12px 0 0 25px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}icon.png`\n img.style.position = 'absolute'\n img.style.left = '25px'\n img.style.top = '5px'\n dom.appendChild(img)\n const label = document.createElement('label')\n label.innerText = data.title\n label.style.fontWeight = 'bold'\n dom.appendChild(label)\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n this.poiEventListener.clear()\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n // , {\n // type: EAnimationType.fadeIn,\n // duration: 0.3,\n // }\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n })\n this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)))\n setTimeout(() => this.scene.add(this.dialogPoi))\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
1
+ {"version":3,"names":["Vector3","use","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","SceneTag","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","wordLength","title","length","ratio","Math","max","poiHeight","option","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","updateScale","poiMesh","set","id","target","regionPlane","planeMesh","changeWallState","show","dialogPoi","visible","wallMesh","uniforms","value","wallGrowFrame","useframe","addEventListener","tag","overview","unClick","event","reset","addDialogPanel","point","poiEventListener","unFrame","minDistance","maxDistance","useScene","camera","distance","distanceTo","clampedDistance","min","scaleValue","scale","x","y","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","fontFamily","textAlign","color","pointerEvents","cursor","height","minWidth","width","padding","img","src","left","top","appendChild","label","marginLeft","innerText","fontWeight","remove","removeFromParent","f","clear","content","print","clone","setTimeout"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Mesh, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport { SceneTag } from '../utils/constant'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n private poiWidth: number\n private poiHeight = 262\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n let wordLength, ratio\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n wordLength = region.title.length\n ratio = Math.max(wordLength * (wordLength > 6 ? 34 : 40), 180) / this.poiHeight\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n this.scene.add(sprite)\n this.updateScale(sprite, ratio)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n // let wallGrowFrame\n\n // if (wallGrowFrame)\n // wallGrowFrame()\n\n // walllMaterial.uniforms.grow.value = 0\n\n // wallGrowFrame = use.useframe(() => {\n // walllMaterial.uniforms.grow.value += 3\n // })\n\n this.addDialogPanel(region, event.point)\n }) as Function\n this.poiEventListener.add(unClick)\n })\n\n const unFrame = use.useframe(() => {\n this.poiMesh.forEach((poi: SpritePoi) => {\n this.updateScale(poi)\n })\n })\n this.poiEventListener.add(unFrame)\n // // 控制POI始终是一个大小\n // const orbitControls = use.useScene().orbitControls\n // orbitControls?.addEventListener('change', fn)\n // this.poiEventListener.add(() => orbitControls?.removeEventListener('change', fn))\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0) {\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio * 0.8, scaleValue * 0.8, 1))\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n const wordLength = data.title.length\n Object.assign(dom.style, {\n fontSize: '22px',\n backgroundImage: `url(${usePath}/poi.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n fontFamily: 'YouSheBiaoTiHei',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: `${this.poiHeight}px`,\n minWidth: '180px',\n width: `${wordLength * (wordLength > 6 ? 34 : 40)}px`,\n padding: '12px 0 0 25px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}${data.title}图标.png`\n img.style.position = 'absolute'\n img.style.left = '25px'\n img.style.top = '10px'\n dom.appendChild(img)\n const label = document.createElement('label')\n label.style.marginLeft = '10px'\n label.innerText = data.title\n label.style.fontWeight = 'bold'\n dom.appendChild(label)\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n this.poiEventListener.clear()\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n // , {\n // type: EAnimationType.fadeIn,\n // duration: 0.3,\n // }\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n })\n this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)))\n setTimeout(() => this.scene.add(this.dialogPoi))\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
@@ -8,7 +8,7 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
8
8
  import { Clock, DoubleSide, Group, Mesh, PlaneGeometry, RepeatWrapping, ShaderMaterial, TextureLoader, Vector3, use } from '@anov/3d-core';
9
9
  import { usePath } from "../3d";
10
10
  var shader = {
11
- fragmentShader: "\n uniform float time;\n uniform float meshid;\n uniform float HeatDate[1000];////\u6570\u636E\u8FD9\u5757\u5FC5\u987B\u5199\u6B7B\u7684\u4E2A\u6570 \u4E0D\u7136\u62A5\u9519\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform sampler2D texture3;\n uniform sampler2D texture4;\n uniform sampler2D texture5;\n uniform sampler2D texture6;\n uniform sampler2D texture7;\n uniform sampler2D texture8;\n uniform sampler2D texture9;\n varying vec2 vUv;\n varying vec3 Position;\n varying vec3 vNormal;\n varying vec4 worldPosition;\n \n/////-------------------------\nfloat N2(vec2 p) {\t\nvec3 p3 = fract(vec3(p.xyx) * vec3(443.897, 441.423, 437.195));\np3 += dot(p3, p3.yzx + 19.19);\nreturn fract((p3.x + p3.y) * p3.z);\n}\n void main( void ) {\n vec2 uv=vUv;\n // uv*=3.;\n //vec2 uv1=vec2(fract(uv.x),fract(uv.y));\n // uv/=8.;\n vec2 w_uv= worldPosition.xz;\n w_uv *=0.0005;\n w_uv*=20.;\n w_uv =floor(w_uv*10.) /10.;\n\nvec2 gv=fract(w_uv)-0.5;\nvec2 id=floor(w_uv);\n//\nfloat ran = N2(id);\nfloat ran2 = N2(id+64.0); \n\n float num =1.+floor(fract(time*0.15*ran2+ran2)*63.);////1-64\n vec2 pic_xy= vec2(mod(num,8.)-1.,7.-floor((num-1.)/8.));\n vec2 zuv= (mod(uv*1.,1.) + pic_xy) / 8.;\t\t\t\t\t \n // uv*= 2.;\n // vec2 zuv= (mod(uv*1.,1.) + vec2(0.)) / 8.;\t\t\t\n vec4 sequ1 = texture2D( texture1, zuv);\n vec4 sequ2 = texture2D( texture2, zuv);\n vec4 sequ3 = texture2D( texture3, zuv);\n vec4 sequ4 = texture2D( texture4, zuv);\n vec4 sequ5 = texture2D( texture5, zuv);\n vec4 sequ6 = texture2D( texture6, zuv);\n vec4 sequ7 = texture2D( texture7, zuv);\n vec4 sequ8 = texture2D( texture8, zuv);\n vec4 sequ9 = texture2D( texture9, zuv);\n \n vec4 color = vec4 (1.,0.5,0.12,.5);\n vec4 color1 = vec4 (1.,0.2,0.12,.5);\n vec4 color2 = vec4 (1.,0.7,0.12,0.6);\n vec4 color3 = vec4 (1.,0.3,0.12,.6);\n // gl_FragColor =pow(sequ1,vec4(.5,.5,0.5,0.1))*color;\n vec4 coX[9] ;\n coX[0]= pow(texture2D( texture1, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[1]= pow(texture2D( texture2, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[2]= pow(texture2D( texture3, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[3]= pow(texture2D( texture4, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[4]= pow(texture2D( texture5, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[5]= pow(texture2D( texture6, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[6]= pow(texture2D( texture7, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[7]= pow(texture2D( texture8, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[8]= pow(texture2D( texture9, zuv),vec4(.5,.5,0.5,0.1))*color;\n\nfloat Tid =floor(ran2*9.) ;\ngl_FragColor = coX[int(Tid)];\n//gl_FragColor = vec4(ran);\n\n }",
11
+ fragmentShader: "\n uniform float time;\n uniform float meshid;\n uniform float HeatDate[1000];////\u6570\u636E\u8FD9\u5757\u5FC5\u987B\u5199\u6B7B\u7684\u4E2A\u6570 \u4E0D\u7136\u62A5\u9519\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform sampler2D texture3;\n uniform sampler2D texture4;\n uniform sampler2D texture5;\n uniform sampler2D texture6;\n uniform sampler2D texture7;\n uniform sampler2D texture8;\n uniform sampler2D texture9;\n varying vec2 vUv;\n varying vec3 Position;\n varying vec3 vNormal;\n varying vec4 worldPosition;\n \n/////-------------------------\nfloat N2(vec2 p) {\nvec3 p3 = fract(vec3(p.xyx) * vec3(443.897, 441.423, 437.195));\np3 += dot(p3, p3.yzx + 19.19);\nreturn fract((p3.x + p3.y) * p3.z);\n}\n void main( void ) {\n vec2 uv=vUv;\n // uv*=3.;\n //vec2 uv1=vec2(fract(uv.x),fract(uv.y));\n // uv/=8.;\n vec2 w_uv= worldPosition.xz;\n w_uv *=0.0005;\n w_uv*=20.;\n w_uv =floor(w_uv*10.) /10.;\n\nvec2 gv=fract(w_uv)-0.5;\nvec2 id=floor(w_uv);\n//\nfloat ran = N2(id);\nfloat ran2 = N2(id+64.0); \n\n float num =1.+floor(fract(time*0.15*ran2+ran2)*63.);////1-64\n vec2 pic_xy= vec2(mod(num,8.)-1.,7.-floor((num-1.)/8.));\n vec2 zuv= (mod(uv*1.,1.) + pic_xy) / 8.; \n // uv*= 2.;\n // vec2 zuv= (mod(uv*1.,1.) + vec2(0.)) / 8.;\n vec4 sequ1 = texture2D( texture1, zuv);\n vec4 sequ2 = texture2D( texture2, zuv);\n vec4 sequ3 = texture2D( texture3, zuv);\n vec4 sequ4 = texture2D( texture4, zuv);\n vec4 sequ5 = texture2D( texture5, zuv);\n vec4 sequ6 = texture2D( texture6, zuv);\n vec4 sequ7 = texture2D( texture7, zuv);\n vec4 sequ8 = texture2D( texture8, zuv);\n vec4 sequ9 = texture2D( texture9, zuv);\n \n vec4 color = vec4 (1.,0.5,0.12,.5);\n vec4 color1 = vec4 (1.,0.2,0.12,.5);\n vec4 color2 = vec4 (1.,0.7,0.12,0.6);\n vec4 color3 = vec4 (1.,0.3,0.12,.6);\n // gl_FragColor =pow(sequ1,vec4(.5,.5,0.5,0.1))*color;\n vec4 coX[9] ;\n coX[0]= pow(texture2D( texture1, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[1]= pow(texture2D( texture2, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[2]= pow(texture2D( texture3, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[3]= pow(texture2D( texture4, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[4]= pow(texture2D( texture5, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[5]= pow(texture2D( texture6, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[6]= pow(texture2D( texture7, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[7]= pow(texture2D( texture8, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[8]= pow(texture2D( texture9, zuv),vec4(.5,.5,0.5,0.1))*color;\n\nfloat Tid =floor(ran2*9.) ;\ngl_FragColor = coX[int(Tid)];\n//gl_FragColor = vec4(ran);\n\n }",
12
12
  vertexShader: "varying vec2 vUv;\n varying vec3 vNormal;\n varying vec3 Position;\n varying vec4 worldPosition;\n \n\n void main()\n {\n vUv = uv;\n Position = position;\n \n vNormal =normalize( normal ) ;\n worldPosition = modelMatrix * vec4( position, 1.0 );\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n\n\n }"
13
13
  };
14
14
  var SliceManage = /*#__PURE__*/function () {
@@ -1 +1 @@
1
- {"version":3,"names":["Clock","DoubleSide","Group","Mesh","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","Vector3","use","usePath","shader","fragmentShader","vertexShader","SliceManage","gobal","scene","textureLoader","uniforms","fogDensity","value","fogColor","time","HeatDate","texture1","load","texture2","texture3","texture4","texture5","texture6","texture7","texture8","texture9","meshid","wrapS","wrapT","material","transparent","side","depthTest","mesh","createRandomPlane","add","clock","useframe","getDelta","size","Math","random","group","i","pointCount","geometry","plane","x","y","floor","position","set","rotateX","PI"],"sources":["../../../src/factory/unit/slice.ts"],"sourcesContent":["import { Clock, DoubleSide, Group, Mesh, PlaneGeometry, RepeatWrapping, ShaderMaterial, TextureLoader, Vector3, use, utils } from '@anov/3d-core'\nimport type { Scene } from '@anov/3d-core'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\n\nconst shader = {\n fragmentShader: `\n uniform float time;\n uniform float meshid;\n uniform float HeatDate[1000];////数据这块必须写死的个数 不然报错\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform sampler2D texture3;\n uniform sampler2D texture4;\n uniform sampler2D texture5;\n uniform sampler2D texture6;\n uniform sampler2D texture7;\n uniform sampler2D texture8;\n uniform sampler2D texture9;\n varying vec2 vUv;\n varying vec3 Position;\n varying vec3 vNormal;\n varying vec4 worldPosition;\n \n/////-------------------------\nfloat N2(vec2 p) {\t\nvec3 p3 = fract(vec3(p.xyx) * vec3(443.897, 441.423, 437.195));\np3 += dot(p3, p3.yzx + 19.19);\nreturn fract((p3.x + p3.y) * p3.z);\n}\n void main( void ) {\n vec2 uv=vUv;\n // uv*=3.;\n //vec2 uv1=vec2(fract(uv.x),fract(uv.y));\n // uv/=8.;\n vec2 w_uv= worldPosition.xz;\n w_uv *=0.0005;\n w_uv*=20.;\n w_uv =floor(w_uv*10.) /10.;\n\nvec2 gv=fract(w_uv)-0.5;\nvec2 id=floor(w_uv);\n//\nfloat ran = N2(id);\nfloat ran2 = N2(id+64.0); \n\n float num =1.+floor(fract(time*0.15*ran2+ran2)*63.);////1-64\n vec2 pic_xy= vec2(mod(num,8.)-1.,7.-floor((num-1.)/8.));\n vec2 zuv= (mod(uv*1.,1.) + pic_xy) / 8.;\t\t\t\t\t \n // uv*= 2.;\n // vec2 zuv= (mod(uv*1.,1.) + vec2(0.)) / 8.;\t\t\t\n vec4 sequ1 = texture2D( texture1, zuv);\n vec4 sequ2 = texture2D( texture2, zuv);\n vec4 sequ3 = texture2D( texture3, zuv);\n vec4 sequ4 = texture2D( texture4, zuv);\n vec4 sequ5 = texture2D( texture5, zuv);\n vec4 sequ6 = texture2D( texture6, zuv);\n vec4 sequ7 = texture2D( texture7, zuv);\n vec4 sequ8 = texture2D( texture8, zuv);\n vec4 sequ9 = texture2D( texture9, zuv);\n \n vec4 color = vec4 (1.,0.5,0.12,.5);\n vec4 color1 = vec4 (1.,0.2,0.12,.5);\n vec4 color2 = vec4 (1.,0.7,0.12,0.6);\n vec4 color3 = vec4 (1.,0.3,0.12,.6);\n // gl_FragColor =pow(sequ1,vec4(.5,.5,0.5,0.1))*color;\n vec4 coX[9] ;\n coX[0]= pow(texture2D( texture1, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[1]= pow(texture2D( texture2, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[2]= pow(texture2D( texture3, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[3]= pow(texture2D( texture4, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[4]= pow(texture2D( texture5, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[5]= pow(texture2D( texture6, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[6]= pow(texture2D( texture7, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[7]= pow(texture2D( texture8, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[8]= pow(texture2D( texture9, zuv),vec4(.5,.5,0.5,0.1))*color;\n\nfloat Tid =floor(ran2*9.) ;\ngl_FragColor = coX[int(Tid)];\n//gl_FragColor = vec4(ran);\n\n }`,\n vertexShader: `varying vec2 vUv;\n varying vec3 vNormal;\n varying vec3 Position;\n varying vec4 worldPosition;\n \n\n void main()\n {\n vUv = uv;\n Position = position;\n \n vNormal =normalize( normal ) ;\n worldPosition = modelMatrix * vec4( position, 1.0 );\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n\n\n }`,\n}\nclass SliceManage {\n private gobal: Factory3D\n private scene: Scene\n mesh: Group\n private pointCount = 400\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n }\n\n generateSlice() {\n const textureLoader = new TextureLoader()\n const uniforms = {\n fogDensity: { value: 0.45 },\n fogColor: { value: new Vector3(0, 0, 0) },\n time: { value: 1.0 },\n HeatDate: { value: [] },\n texture1: { value: textureLoader.load(`${usePath}p2/sequ/xuebi01.png`) },\n texture2: { value: textureLoader.load(`${usePath}p2/sequ/xuebi02.png`) },\n texture3: { value: textureLoader.load(`${usePath}p2/sequ/xuebi03.png`) },\n texture4: { value: textureLoader.load(`${usePath}p2/sequ/xuebi04.png`) },\n texture5: { value: textureLoader.load(`${usePath}p2/sequ/xuebi05.png`) },\n texture6: { value: textureLoader.load(`${usePath}p2/sequ/xuebi06.png`) },\n texture7: { value: textureLoader.load(`${usePath}p2/sequ/xuebi07.png`) },\n texture8: { value: textureLoader.load(`${usePath}p2/sequ/xuebi08.png`) },\n texture9: { value: textureLoader.load(`${usePath}p2/sequ/xuebi09.png`) },\n meshid: { value: 1.0 },\n }\n\n uniforms.texture1.value.wrapS = uniforms.texture1.value.wrapT = RepeatWrapping\n uniforms.texture2.value.wrapS = uniforms.texture2.value.wrapT = RepeatWrapping\n uniforms.texture3.value.wrapS = uniforms.texture3.value.wrapT = RepeatWrapping\n uniforms.texture4.value.wrapS = uniforms.texture4.value.wrapT = RepeatWrapping\n uniforms.texture5.value.wrapS = uniforms.texture5.value.wrapT = RepeatWrapping\n uniforms.texture6.value.wrapS = uniforms.texture6.value.wrapT = RepeatWrapping\n uniforms.texture7.value.wrapS = uniforms.texture7.value.wrapT = RepeatWrapping\n uniforms.texture8.value.wrapS = uniforms.texture8.value.wrapT = RepeatWrapping\n uniforms.texture9.value.wrapS = uniforms.texture9.value.wrapT = RepeatWrapping\n\n const material = new ShaderMaterial({\n uniforms,\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n transparent: true,\n side: DoubleSide,\n depthTest: false,\n })\n\n this.mesh = this.createRandomPlane(material)\n this.scene.add(this.mesh)\n\n const clock = new Clock()\n use.useframe(() => {\n uniforms.time.value += clock.getDelta()\n })\n }\n\n createRandomPlane(material: ShaderMaterial) {\n const size = Math.random() * 25 // 随机高度,最大50\n const group = new Group()\n for (let i = 0; i < this.pointCount; i++) {\n const geometry = new PlaneGeometry(size, size)\n const plane = new Mesh(geometry, material)\n // 随机位置\n let x, y\n while (true) {\n x = (Math.random()) * (100 - 2 * size) + size + (Math.floor((Math.random() - 0.5) * 40) * 100)\n y = (Math.random()) * (100 - 2 * size) + size + (Math.floor((Math.random() - 0.5) * 30) * 100)\n if (x > 520 || x < -520 || y > 350 || y < -350)\n break\n }\n\n plane.position.set(x, -0.5, y)\n plane.rotateX(-Math.PI / 2)\n group.add(plane)\n }\n return group\n }\n}\n\nexport default SliceManage"],"mappings":"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"}
1
+ {"version":3,"names":["Clock","DoubleSide","Group","Mesh","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","Vector3","use","usePath","shader","fragmentShader","vertexShader","SliceManage","gobal","scene","textureLoader","uniforms","fogDensity","value","fogColor","time","HeatDate","texture1","load","texture2","texture3","texture4","texture5","texture6","texture7","texture8","texture9","meshid","wrapS","wrapT","material","transparent","side","depthTest","mesh","createRandomPlane","add","clock","useframe","getDelta","size","Math","random","group","i","pointCount","geometry","plane","x","y","floor","position","set","rotateX","PI"],"sources":["../../../src/factory/unit/slice.ts"],"sourcesContent":["import { Clock, DoubleSide, Group, Mesh, PlaneGeometry, RepeatWrapping, ShaderMaterial, TextureLoader, Vector3, use, utils } from '@anov/3d-core'\nimport type { Scene } from '@anov/3d-core'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\n\nconst shader = {\n fragmentShader: `\n uniform float time;\n uniform float meshid;\n uniform float HeatDate[1000];////数据这块必须写死的个数 不然报错\n uniform sampler2D texture1;\n uniform sampler2D texture2;\n uniform sampler2D texture3;\n uniform sampler2D texture4;\n uniform sampler2D texture5;\n uniform sampler2D texture6;\n uniform sampler2D texture7;\n uniform sampler2D texture8;\n uniform sampler2D texture9;\n varying vec2 vUv;\n varying vec3 Position;\n varying vec3 vNormal;\n varying vec4 worldPosition;\n \n/////-------------------------\nfloat N2(vec2 p) {\nvec3 p3 = fract(vec3(p.xyx) * vec3(443.897, 441.423, 437.195));\np3 += dot(p3, p3.yzx + 19.19);\nreturn fract((p3.x + p3.y) * p3.z);\n}\n void main( void ) {\n vec2 uv=vUv;\n // uv*=3.;\n //vec2 uv1=vec2(fract(uv.x),fract(uv.y));\n // uv/=8.;\n vec2 w_uv= worldPosition.xz;\n w_uv *=0.0005;\n w_uv*=20.;\n w_uv =floor(w_uv*10.) /10.;\n\nvec2 gv=fract(w_uv)-0.5;\nvec2 id=floor(w_uv);\n//\nfloat ran = N2(id);\nfloat ran2 = N2(id+64.0); \n\n float num =1.+floor(fract(time*0.15*ran2+ran2)*63.);////1-64\n vec2 pic_xy= vec2(mod(num,8.)-1.,7.-floor((num-1.)/8.));\n vec2 zuv= (mod(uv*1.,1.) + pic_xy) / 8.; \n // uv*= 2.;\n // vec2 zuv= (mod(uv*1.,1.) + vec2(0.)) / 8.;\n vec4 sequ1 = texture2D( texture1, zuv);\n vec4 sequ2 = texture2D( texture2, zuv);\n vec4 sequ3 = texture2D( texture3, zuv);\n vec4 sequ4 = texture2D( texture4, zuv);\n vec4 sequ5 = texture2D( texture5, zuv);\n vec4 sequ6 = texture2D( texture6, zuv);\n vec4 sequ7 = texture2D( texture7, zuv);\n vec4 sequ8 = texture2D( texture8, zuv);\n vec4 sequ9 = texture2D( texture9, zuv);\n \n vec4 color = vec4 (1.,0.5,0.12,.5);\n vec4 color1 = vec4 (1.,0.2,0.12,.5);\n vec4 color2 = vec4 (1.,0.7,0.12,0.6);\n vec4 color3 = vec4 (1.,0.3,0.12,.6);\n // gl_FragColor =pow(sequ1,vec4(.5,.5,0.5,0.1))*color;\n vec4 coX[9] ;\n coX[0]= pow(texture2D( texture1, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[1]= pow(texture2D( texture2, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[2]= pow(texture2D( texture3, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[3]= pow(texture2D( texture4, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[4]= pow(texture2D( texture5, zuv),vec4(.5,.5,0.5,0.1))*color;\n coX[5]= pow(texture2D( texture6, zuv),vec4(.5,.5,0.5,0.1))*color1;\n coX[6]= pow(texture2D( texture7, zuv),vec4(.5,.5,0.5,0.1))*color2;\n coX[7]= pow(texture2D( texture8, zuv),vec4(.5,.5,0.5,0.1))*color3;\n coX[8]= pow(texture2D( texture9, zuv),vec4(.5,.5,0.5,0.1))*color;\n\nfloat Tid =floor(ran2*9.) ;\ngl_FragColor = coX[int(Tid)];\n//gl_FragColor = vec4(ran);\n\n }`,\n vertexShader: `varying vec2 vUv;\n varying vec3 vNormal;\n varying vec3 Position;\n varying vec4 worldPosition;\n \n\n void main()\n {\n vUv = uv;\n Position = position;\n \n vNormal =normalize( normal ) ;\n worldPosition = modelMatrix * vec4( position, 1.0 );\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n\n\n }`,\n}\nclass SliceManage {\n private gobal: Factory3D\n private scene: Scene\n mesh: Group\n private pointCount = 400\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n }\n\n generateSlice() {\n const textureLoader = new TextureLoader()\n const uniforms = {\n fogDensity: { value: 0.45 },\n fogColor: { value: new Vector3(0, 0, 0) },\n time: { value: 1.0 },\n HeatDate: { value: [] },\n texture1: { value: textureLoader.load(`${usePath}p2/sequ/xuebi01.png`) },\n texture2: { value: textureLoader.load(`${usePath}p2/sequ/xuebi02.png`) },\n texture3: { value: textureLoader.load(`${usePath}p2/sequ/xuebi03.png`) },\n texture4: { value: textureLoader.load(`${usePath}p2/sequ/xuebi04.png`) },\n texture5: { value: textureLoader.load(`${usePath}p2/sequ/xuebi05.png`) },\n texture6: { value: textureLoader.load(`${usePath}p2/sequ/xuebi06.png`) },\n texture7: { value: textureLoader.load(`${usePath}p2/sequ/xuebi07.png`) },\n texture8: { value: textureLoader.load(`${usePath}p2/sequ/xuebi08.png`) },\n texture9: { value: textureLoader.load(`${usePath}p2/sequ/xuebi09.png`) },\n meshid: { value: 1.0 },\n }\n\n uniforms.texture1.value.wrapS = uniforms.texture1.value.wrapT = RepeatWrapping\n uniforms.texture2.value.wrapS = uniforms.texture2.value.wrapT = RepeatWrapping\n uniforms.texture3.value.wrapS = uniforms.texture3.value.wrapT = RepeatWrapping\n uniforms.texture4.value.wrapS = uniforms.texture4.value.wrapT = RepeatWrapping\n uniforms.texture5.value.wrapS = uniforms.texture5.value.wrapT = RepeatWrapping\n uniforms.texture6.value.wrapS = uniforms.texture6.value.wrapT = RepeatWrapping\n uniforms.texture7.value.wrapS = uniforms.texture7.value.wrapT = RepeatWrapping\n uniforms.texture8.value.wrapS = uniforms.texture8.value.wrapT = RepeatWrapping\n uniforms.texture9.value.wrapS = uniforms.texture9.value.wrapT = RepeatWrapping\n\n const material = new ShaderMaterial({\n uniforms,\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n transparent: true,\n side: DoubleSide,\n depthTest: false,\n })\n\n this.mesh = this.createRandomPlane(material)\n this.scene.add(this.mesh)\n\n const clock = new Clock()\n use.useframe(() => {\n uniforms.time.value += clock.getDelta()\n })\n }\n\n createRandomPlane(material: ShaderMaterial) {\n const size = Math.random() * 25 // 随机高度,最大50\n const group = new Group()\n for (let i = 0; i < this.pointCount; i++) {\n const geometry = new PlaneGeometry(size, size)\n const plane = new Mesh(geometry, material)\n // 随机位置\n let x, y\n while (true) {\n x = (Math.random()) * (100 - 2 * size) + size + (Math.floor((Math.random() - 0.5) * 40) * 100)\n y = (Math.random()) * (100 - 2 * size) + size + (Math.floor((Math.random() - 0.5) * 30) * 100)\n if (x > 520 || x < -520 || y > 350 || y < -350)\n break\n }\n\n plane.position.set(x, -0.5, y)\n plane.rotateX(-Math.PI / 2)\n group.add(plane)\n }\n return group\n }\n}\n\nexport default SliceManage"],"mappings":"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"}
@@ -11,6 +11,7 @@ declare class Environment implements BaseModule {
11
11
  private cloudReturn;
12
12
  private sky;
13
13
  private renderer;
14
+ private seasonSystem;
14
15
  sunPosition: Vector3;
15
16
  sun: ReturnType<typeof createTimeSkySystem>['sun'];
16
17
  skyControl: ReturnType<typeof createTimeSkySystem>['skyControl'];
@@ -39,5 +40,11 @@ declare class Environment implements BaseModule {
39
40
  }): {
40
41
  weatherType: string;
41
42
  };
43
+ setSeason(params: {
44
+ season: string;
45
+ duration?: number;
46
+ }): {
47
+ season: string;
48
+ };
42
49
  }
43
50
  export default Environment;
@@ -14,6 +14,7 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
14
14
  import { use } from '@anov/3d-core';
15
15
  import { createRain, createSkyCloud, createSnow } from '@anov/3d-ability';
16
16
  import createTimeSkySystem from "./time";
17
+ import SeasonSystem from "./season/index";
17
18
  var Environment = /*#__PURE__*/function () {
18
19
  function Environment(app) {
19
20
  var _this = this,
@@ -27,6 +28,7 @@ var Environment = /*#__PURE__*/function () {
27
28
  _defineProperty(this, "cloudReturn", null);
28
29
  _defineProperty(this, "sky", void 0);
29
30
  _defineProperty(this, "renderer", void 0);
31
+ _defineProperty(this, "seasonSystem", void 0);
30
32
  _defineProperty(this, "sunPosition", void 0);
31
33
  _defineProperty(this, "sun", void 0);
32
34
  _defineProperty(this, "skyControl", void 0);
@@ -130,6 +132,15 @@ var Environment = /*#__PURE__*/function () {
130
132
  weatherType: params.weatherType
131
133
  };
132
134
  }
135
+ }, {
136
+ key: "setSeason",
137
+ value: function setSeason(params) {
138
+ if (!this.seasonSystem) this.seasonSystem = new SeasonSystem(this.app);
139
+ this.seasonSystem.setSeason(params.season);
140
+ return {
141
+ season: params.season
142
+ };
143
+ }
133
144
  }]);
134
145
  return Environment;
135
146
  }();
@@ -1 +1 @@
1
- {"version":3,"names":["use","createRain","createSkyCloud","createSnow","createTimeSkySystem","Environment","app","Snow","snow","x","y","z","renderer","toneMappingExposure","Rain","rain","Cloudy","cloudReturn","Clear_Skies","_","clear","Date","setDate","sun","sky","skyControl","useScene","sunPosition","position","opts","environment","initConfigSet","weather","time","setWeather","weatherType","duration","setTime","params","undefined","Error","date","setHours","getTime","Math","floor","newTime","setWeatherStrategy"],"sources":["../../../src/module/environment/index.ts"],"sourcesContent":["import type { Vector3, WebGLRenderer, lib } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport { createRain, createSkyCloud, createSnow } from '@anov/3d-ability'\nimport type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\nimport createTimeSkySystem from './time'\n\ntype EnvironmentOptions = {\n weather?: string\n time?: number\n}\n\nclass Environment implements BaseModule {\n app: Anov3D\n private opts?: EnvironmentOptions\n private setDate: (currentDate?: Date | undefined) => Vector3\n private snow: any = null\n private rain: any = null\n private cloudReturn: ReturnType<typeof createSkyCloud> | null = null\n private sky: lib.Sky\n private renderer: WebGLRenderer\n\n sunPosition: Vector3\n\n sun: ReturnType<typeof createTimeSkySystem>['sun']\n skyControl: ReturnType<typeof createTimeSkySystem>['skyControl']\n\n constructor(app: Anov3D) {\n this.app = app\n\n const { setDate, sun, sky, skyControl } = createTimeSkySystem(new Date(), 40, 116, 100)\n\n this.renderer = use.useScene().renderer!\n this.sunPosition = sun.position\n\n this.setDate = setDate as any\n this.sky = sky\n this.sun = sun\n this.skyControl = skyControl\n\n this.opts = app.opts.environment ?? {}\n this.initConfigSet()\n }\n\n private initConfigSet() {\n const { weather, time } = this.opts as Required<EnvironmentOptions>\n\n if (!weather)\n return\n this.setWeather({ weatherType: weather ?? 'Snow', duration: 0 })\n this.setTime({ time: time ?? 1700, duration: 0 })\n }\n\n private setWeatherStrategy = {\n Snow: () => {\n !this.snow && (this.snow = createSnow(15, 10000, { x: 0, y: 3, z: 0 }, 0.5, 50000))\n this.snow[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Rain: () => {\n !this.rain && (this.rain = createRain(4, 10000, { x: 0, y: 10, z: 0 }, 0.8, 100000))\n this.rain[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Cloudy: () => {\n !this.cloudReturn && (this.cloudReturn = createSkyCloud())\n },\n Clear_Skies: () => {\n this.snow?.[1]()\n this.rain?.[1]()\n this.renderer.toneMappingExposure = 0.6\n\n if (this.cloudReturn) {\n const [_, clear] = this.cloudReturn\n clear()\n this.cloudReturn = null\n }\n },\n }\n\n /**\n * setTime\n * @param newTime\n * @param changeTime\n */\n setTime(params: { time: number; duration?: number }) {\n if (params.time === undefined || (params.time > 2400 && params.time < 0))\n throw new Error('time must be between 0 and 2400')\n\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400))\n this.setDate(date)\n\n return {\n newTime: params.time,\n }\n }\n\n /**\n * setWeather\n * @param type\n * @param changeTime\n */\n setWeather(params: { weatherType: string; duration?: number }) {\n // @ts-ignore\n this.setWeatherStrategy[params.weatherType]()\n\n return {\n weatherType: params.weatherType,\n }\n }\n}\n\nexport default Environment"],"mappings":";;;;;;;;;;;;;AACA,SAASA,GAAG,QAAQ,eAAe;AACnC,SAASC,UAAU,EAAEC,cAAc,EAAEC,UAAU,QAAQ,kBAAkB;AAGzE,OAAOC,mBAAmB;AAAc,IAOlCC,WAAW;EAef,qBAAYC,GAAW,EAAE;IAAA;MAAA;IAAA;IAAA;IAAA;IAAA;IAAA,8BAXL,IAAI;IAAA,8BACJ,IAAI;IAAA,qCACwC,IAAI;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,4CAmCvC;MAC3BC,IAAI,EAAE,gBAAM;QACV,CAAC,KAAI,CAACC,IAAI,KAAK,KAAI,CAACA,IAAI,GAAGL,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE;UAAEM,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACnF,KAAI,CAACH,IAAI,CAAC,CAAC,CAAC,EAAE;QACd,KAAI,CAACI,QAAQ,CAACC,mBAAmB,GAAG,GAAG;MACzC,CAAC;MACDC,IAAI,EAAE,gBAAM;QACV,CAAC,KAAI,CAACC,IAAI,KAAK,KAAI,CAACA,IAAI,GAAGd,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE;UAAEQ,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE,EAAE;UAAEC,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACpF,KAAI,CAACI,IAAI,CAAC,CAAC,CAAC,EAAE;QACd,KAAI,CAACH,QAAQ,CAACC,mBAAmB,GAAG,GAAG;MACzC,CAAC;MACDG,MAAM,EAAE,kBAAM;QACZ,CAAC,KAAI,CAACC,WAAW,KAAK,KAAI,CAACA,WAAW,GAAGf,cAAc,EAAE,CAAC;MAC5D,CAAC;MACDgB,WAAW,EAAE,uBAAM;QAAA;QACjB,mBAAI,CAACV,IAAI,+CAAT,WAAY,CAAC,CAAC,EAAE;QAChB,mBAAI,CAACO,IAAI,+CAAT,WAAY,CAAC,CAAC,EAAE;QAChB,KAAI,CAACH,QAAQ,CAACC,mBAAmB,GAAG,GAAG;QAEvC,IAAI,KAAI,CAACI,WAAW,EAAE;UACpB,uCAAmB,KAAI,CAACA,WAAW;YAA5BE,CAAC;YAAEC,KAAK;UACfA,KAAK,EAAE;UACP,KAAI,CAACH,WAAW,GAAG,IAAI;QACzB;MACF;IACF,CAAC;IAlDC,IAAI,CAACX,GAAG,GAAGA,GAAG;IAEd,2BAA0CF,mBAAmB,CAAC,IAAIiB,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC;MAA/EC,OAAO,wBAAPA,OAAO;MAAEC,GAAG,wBAAHA,GAAG;MAAEC,GAAG,wBAAHA,GAAG;MAAEC,UAAU,wBAAVA,UAAU;IAErC,IAAI,CAACb,QAAQ,GAAGZ,GAAG,CAAC0B,QAAQ,EAAE,CAACd,QAAS;IACxC,IAAI,CAACe,WAAW,GAAGJ,GAAG,CAACK,QAAQ;IAE/B,IAAI,CAACN,OAAO,GAAGA,OAAc;IAC7B,IAAI,CAACE,GAAG,GAAGA,GAAG;IACd,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACE,UAAU,GAAGA,UAAU;IAE5B,IAAI,CAACI,IAAI,4BAAGvB,GAAG,CAACuB,IAAI,CAACC,WAAW,yEAAI,CAAC,CAAC;IACtC,IAAI,CAACC,aAAa,EAAE;EACtB;EAAC;IAAA;IAAA,OAED,yBAAwB;MACtB,WAA0B,IAAI,CAACF,IAAI;QAA3BG,OAAO,QAAPA,OAAO;QAAEC,IAAI,QAAJA,IAAI;MAErB,IAAI,CAACD,OAAO,EACV;MACF,IAAI,CAACE,UAAU,CAAC;QAAEC,WAAW,EAAEH,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,MAAM;QAAEI,QAAQ,EAAE;MAAE,CAAC,CAAC;MAChE,IAAI,CAACC,OAAO,CAAC;QAAEJ,IAAI,EAAEA,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,IAAI;QAAEG,QAAQ,EAAE;MAAE,CAAC,CAAC;IACnD;EAAC;IAAA;IAAA;IA6BD;AACF;AACA;AACA;AACA;IACE,iBAAQE,MAA2C,EAAE;MACnD,IAAIA,MAAM,CAACL,IAAI,KAAKM,SAAS,IAAKD,MAAM,CAACL,IAAI,GAAG,IAAI,IAAIK,MAAM,CAACL,IAAI,GAAG,CAAE,EACtE,MAAM,IAAIO,KAAK,CAAC,iCAAiC,CAAC;MAEpD,IAAMC,IAAI,GAAG,IAAIpB,IAAI,EAAE;MACvBoB,IAAI,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzBD,IAAI,CAACJ,OAAO,CAACI,IAAI,CAACE,OAAO,EAAE,GAAGC,IAAI,CAACC,KAAK,CAAC,QAAQ,GAAGP,MAAM,CAACL,IAAI,GAAG,IAAI,CAAC,CAAC;MACxE,IAAI,CAACX,OAAO,CAACmB,IAAI,CAAC;MAElB,OAAO;QACLK,OAAO,EAAER,MAAM,CAACL;MAClB,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAA;IAAA,OAKA,oBAAWK,MAAkD,EAAE;MAC7D;MACA,IAAI,CAACS,kBAAkB,CAACT,MAAM,CAACH,WAAW,CAAC,EAAE;MAE7C,OAAO;QACLA,WAAW,EAAEG,MAAM,CAACH;MACtB,CAAC;IACH;EAAC;EAAA;AAAA;AAGH,eAAe9B,WAAW"}
1
+ {"version":3,"names":["use","createRain","createSkyCloud","createSnow","createTimeSkySystem","SeasonSystem","Environment","app","Snow","snow","x","y","z","renderer","toneMappingExposure","Rain","rain","Cloudy","cloudReturn","Clear_Skies","_","clear","Date","setDate","sun","sky","skyControl","useScene","sunPosition","position","opts","environment","initConfigSet","weather","time","setWeather","weatherType","duration","setTime","params","undefined","Error","date","setHours","getTime","Math","floor","newTime","setWeatherStrategy","seasonSystem","setSeason","season"],"sources":["../../../src/module/environment/index.ts"],"sourcesContent":["import type { Vector3, WebGLRenderer, lib } from '@anov/3d-core'\nimport { use } from '@anov/3d-core'\nimport { createRain, createSkyCloud, createSnow } from '@anov/3d-ability'\nimport type { BaseModule } from '../../utils/abstract'\nimport type Anov3D from '../../sdkEntry'\nimport createTimeSkySystem from './time'\nimport SeasonSystem from './season/index'\n\ntype EnvironmentOptions = {\n weather?: string\n time?: number\n}\n\nclass Environment implements BaseModule {\n app: Anov3D\n private opts?: EnvironmentOptions\n private setDate: (currentDate?: Date | undefined) => Vector3\n private snow: any = null\n private rain: any = null\n private cloudReturn: ReturnType<typeof createSkyCloud> | null = null\n private sky: lib.Sky\n private renderer: WebGLRenderer\n private seasonSystem: SeasonSystem\n\n sunPosition: Vector3\n\n sun: ReturnType<typeof createTimeSkySystem>['sun']\n skyControl: ReturnType<typeof createTimeSkySystem>['skyControl']\n\n constructor(app: Anov3D) {\n this.app = app\n\n const { setDate, sun, sky, skyControl } = createTimeSkySystem(new Date(), 40, 116, 100)\n\n this.renderer = use.useScene().renderer!\n this.sunPosition = sun.position\n\n this.setDate = setDate as any\n this.sky = sky\n this.sun = sun\n this.skyControl = skyControl\n\n this.opts = app.opts.environment ?? {}\n this.initConfigSet()\n }\n\n private initConfigSet() {\n const { weather, time } = this.opts as Required<EnvironmentOptions>\n\n if (!weather)\n return\n this.setWeather({ weatherType: weather ?? 'Snow', duration: 0 })\n this.setTime({ time: time ?? 1700, duration: 0 })\n }\n\n private setWeatherStrategy = {\n Snow: () => {\n !this.snow && (this.snow = createSnow(15, 10000, { x: 0, y: 3, z: 0 }, 0.5, 50000))\n this.snow[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Rain: () => {\n !this.rain && (this.rain = createRain(4, 10000, { x: 0, y: 10, z: 0 }, 0.8, 100000))\n this.rain[0]()\n this.renderer.toneMappingExposure = 0.3\n },\n Cloudy: () => {\n !this.cloudReturn && (this.cloudReturn = createSkyCloud())\n },\n Clear_Skies: () => {\n this.snow?.[1]()\n this.rain?.[1]()\n this.renderer.toneMappingExposure = 0.6\n\n if (this.cloudReturn) {\n const [_, clear] = this.cloudReturn\n clear()\n this.cloudReturn = null\n }\n },\n }\n\n /**\n * setTime\n * @param newTime\n * @param changeTime\n */\n setTime(params: { time: number; duration?: number }) {\n if (params.time === undefined || (params.time > 2400 && params.time < 0))\n throw new Error('time must be between 0 and 2400')\n\n const date = new Date()\n date.setHours(0, 0, 0, 0)\n date.setTime(date.getTime() + Math.floor(86400000 * params.time / 2400))\n this.setDate(date)\n\n return {\n newTime: params.time,\n }\n }\n\n /**\n * setWeather\n * @param type\n * @param changeTime\n */\n setWeather(params: { weatherType: string; duration?: number }) {\n // @ts-ignore\n this.setWeatherStrategy[params.weatherType]()\n\n return {\n weatherType: params.weatherType,\n }\n }\n\n setSeason(params: { season: string; duration?: number }) {\n if (!this.seasonSystem)\n this.seasonSystem = new SeasonSystem(this.app)\n\n this.seasonSystem.setSeason(params.season)\n return {\n season: params.season,\n }\n }\n}\n\nexport default Environment"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Material, Texture } from '@anov/3d-core';
2
+ import type Anov3D from '../../../sdkEntry';
3
+ declare class Season {
4
+ app: Anov3D;
5
+ textureLeaf: Texture;
6
+ textureBole: Texture;
7
+ textureLand: Texture;
8
+ textureMassif: Texture;
9
+ textureNoise: Texture;
10
+ uniforms: any;
11
+ leafMaterial: Material;
12
+ landMaterial: Material;
13
+ massifMaterial: Material;
14
+ haveSetMaterial: boolean;
15
+ constructor(app: Anov3D);
16
+ init(): void;
17
+ setSeason(type: any, duration?: number): void;
18
+ setLeafMaterial(): void;
19
+ setLandMaterial(): void;
20
+ setMassifMaterial(): void;
21
+ }
22
+ export default Season;