@anov/3d 0.0.90 → 0.0.92

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.
Files changed (37) hide show
  1. package/dist/factory/3d.js +17 -11
  2. package/dist/factory/3d.js.map +1 -1
  3. package/dist/factory/unit/districtLine.d.ts +2 -0
  4. package/dist/factory/unit/districtLine.js +13 -0
  5. package/dist/factory/unit/districtLine.js.map +1 -1
  6. package/dist/factory/unit/glsl/highway/fragmentShader2.js +1 -1
  7. package/dist/factory/unit/glsl/highway/fragmentShader2.js.map +1 -1
  8. package/dist/factory/unit/handle.js +7 -0
  9. package/dist/factory/unit/handle.js.map +1 -1
  10. package/dist/factory/unit/index.js +8 -0
  11. package/dist/factory/unit/index.js.map +1 -1
  12. package/dist/factory/unit/inspection/InspectionObject.d.ts +2 -0
  13. package/dist/factory/unit/inspection/InspectionObject.js +61 -9
  14. package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
  15. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.d.ts +6 -0
  16. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js +382 -0
  17. package/dist/factory/unit/inspection/defaultFirstPerspectiveControls.js.map +1 -0
  18. package/dist/factory/unit/inspection/index.d.ts +6 -1
  19. package/dist/factory/unit/inspection/index.js +61 -4
  20. package/dist/factory/unit/inspection/index.js.map +1 -1
  21. package/dist/factory/unit/slice.d.ts +12 -0
  22. package/dist/factory/unit/slice.js +122 -0
  23. package/dist/factory/unit/slice.js.map +1 -0
  24. package/dist/module/camera/index.js +0 -1
  25. package/dist/module/camera/index.js.map +1 -1
  26. package/dist/module/environment/index.d.ts +3 -1
  27. package/dist/module/environment/index.js +8 -7
  28. package/dist/module/environment/index.js.map +1 -1
  29. package/dist/module/environment/time/index.d.ts +1 -3
  30. package/dist/module/environment/time/index.js +10 -11
  31. package/dist/module/environment/time/index.js.map +1 -1
  32. package/dist/module/scene/index.d.ts +5 -2
  33. package/dist/module/scene/index.js +10 -1
  34. package/dist/module/scene/index.js.map +1 -1
  35. package/dist/sdkEntry.js +5 -6
  36. package/dist/sdkEntry.js.map +1 -1
  37. package/package.json +2 -2
@@ -8,7 +8,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
8
8
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
9
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
10
10
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
- import { AudioListener, AudioLoader, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, ModelLoader, PositionalAudio, Quaternion, RepeatWrapping, TextureLoader, Vector3, use, utils } from '@anov/3d-core';
11
+ import { AudioListener, AudioLoader, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, ModelLoader, PlaneGeometry, PositionalAudio, Quaternion, RepeatWrapping, TextureLoader, Vector3, use, utils } from '@anov/3d-core';
12
12
  import { SpritePoi } from '@anov/3d-ability';
13
13
  import { Tween } from '@tweenjs/tween.js';
14
14
  import { createFinirMaterial } from "../../utils/finirMaterial";
@@ -32,6 +32,7 @@ var InspectionObject = /*#__PURE__*/function () {
32
32
  _defineProperty(this, "temp", void 0);
33
33
  _defineProperty(this, "tempDemo", void 0);
34
34
  _defineProperty(this, "isStartUp", false);
35
+ _defineProperty(this, "initialMinCameraQuaternion", void 0);
35
36
  _defineProperty(this, "startRotate", function (targetQuaternion, mesh, cb) {
36
37
  var clock = new Clock();
37
38
  if (mesh.quaternion.equals(targetQuaternion)) return cb();
@@ -59,7 +60,7 @@ var InspectionObject = /*#__PURE__*/function () {
59
60
  value: function () {
60
61
  var _loadModel = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
61
62
  var _this = this;
62
- var glb, div, img, span, poi, img2, poi2, fly1, fly2, fly3, fly4, group;
63
+ var glb, div, img, span, poi, img2, poi2, fly1, fly2, fly3, fly4, planeGeometry, planeMaterial, plyMap, group;
63
64
  return _regeneratorRuntime().wrap(function _callee$(_context) {
64
65
  while (1) switch (_context.prev = _context.next) {
65
66
  case 0:
@@ -101,6 +102,21 @@ var InspectionObject = /*#__PURE__*/function () {
101
102
  fly2 = glb.scene.getObjectByName('fly1_1');
102
103
  fly3 = glb.scene.getObjectByName('fly1_2');
103
104
  fly4 = glb.scene.getObjectByName('fly1_3');
105
+ planeGeometry = new PlaneGeometry(50, 50);
106
+ planeMaterial = new MeshBasicMaterial({
107
+ map: new TextureLoader().load("".concat(usePath, "fly.png")),
108
+ transparent: true
109
+ });
110
+ plyMap = new Mesh(planeGeometry, planeMaterial);
111
+ plyMap.rotation.x = -Math.PI / 2;
112
+ plyMap.position.copy(glb.scene.position);
113
+ plyMap.layers.set(5);
114
+ group = new Group();
115
+ glb.scene.name = 'ply';
116
+ group.add(glb.scene);
117
+ group.add(poi);
118
+ group.add(plyMap);
119
+ group.add(this.inspection.minCamera);
104
120
  use.useframe(function () {
105
121
  poi.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)));
106
122
  poi2.position.copy(glb.scene.position.clone().add(new Vector3(0, 10, 0)));
@@ -113,14 +129,11 @@ var InspectionObject = /*#__PURE__*/function () {
113
129
  _this.checkAnimation(_this.getSportsProgress);
114
130
  }
115
131
  });
116
- group = new Group();
117
- group.add(glb.scene);
118
- group.add(poi);
119
- group.add(this.inspection.minCamera);
120
132
  this.inspection.minCamera.position.copy(glb.scene.position);
121
- this.inspection.minCamera.position.z -= 15;
133
+ this.inspection.minCamera.position.z -= 18;
122
134
  this.inspection.minCamera.position.y += 4;
123
135
  this.inspection.minCamera.rotateY(Math.PI);
136
+ this.initialMinCameraQuaternion = this.inspection.minCamera.quaternion.clone();
124
137
  this.model = group;
125
138
  this.inspection.gobal.interactionManager.add(poi);
126
139
  this.inspection.gobal.interactionManager.add(poi2);
@@ -142,7 +155,8 @@ var InspectionObject = /*#__PURE__*/function () {
142
155
  });
143
156
  this.inspection.gobal.scene.add(this.model);
144
157
  this.loadPosAudio();
145
- case 49:
158
+ this.breathinglamp(this.model);
159
+ case 59:
146
160
  case "end":
147
161
  return _context.stop();
148
162
  }
@@ -153,6 +167,25 @@ var InspectionObject = /*#__PURE__*/function () {
153
167
  }
154
168
  return loadModel;
155
169
  }()
170
+ }, {
171
+ key: "breathinglamp",
172
+ value: function breathinglamp(model) {
173
+ var target = model.getObjectByName('网格004_5');
174
+ var startColor = new Color('#999');
175
+ var endColor = new Color('#2df3ee');
176
+ var clock = new Clock();
177
+ var breathingSpeed = 1;
178
+ use.useframe(function () {
179
+ var elapsedTime = clock.getElapsedTime();
180
+ var t = (Math.sin(elapsedTime * Math.PI * breathingSpeed) + 1) / 2;
181
+ var currentColor = startColor.clone().lerp(endColor, t);
182
+
183
+ // @ts-ignore
184
+ target.material.color.set(currentColor);
185
+ });
186
+
187
+ // model.add(light)
188
+ }
156
189
  }, {
157
190
  key: "loadPosAudio",
158
191
  value: function loadPosAudio() {
@@ -205,6 +238,11 @@ var InspectionObject = /*#__PURE__*/function () {
205
238
  use.useframe(function () {
206
239
  _this3.inspection.groundMaterial.uniforms.u_time.value = _this3.getSportsProgress - 0.01;
207
240
  _this3.inspection.mapMaterial.uniforms.u_time.value = _this3.getSportsProgress - 0.01;
241
+ if (_this3.getSportsProgress > 0 && _this3.getSportsProgress < 0.01) {
242
+ _this3.inspection.mapAnchorObject.forEach(function (mapAnchor) {
243
+ mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1);
244
+ });
245
+ }
208
246
  sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {
209
247
  percentage: _this3.getSportsProgress
210
248
  });
@@ -266,6 +304,7 @@ var InspectionObject = /*#__PURE__*/function () {
266
304
  var _this5 = this;
267
305
  this.isLock = true;
268
306
  this.isAnimation = true;
307
+ this.inspection.defaultFirstPerspectiveControls.enabled = false;
269
308
  var key = Object.keys(targetProgresspoints).find(function (p) {
270
309
  var num = parseFloat(p);
271
310
  if (progress >= num && progress < num + 0.01) return true;
@@ -282,6 +321,7 @@ var InspectionObject = /*#__PURE__*/function () {
282
321
  return;
283
322
  }
284
323
  var currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name);
324
+ var currentMapAnchor = this.inspection.mapAnchorObject;
285
325
  currentAnchor.traverse(function (child) {
286
326
  if (child.name === 'cylinder') child.material = new MeshBasicMaterial({
287
327
  color: new Color('yellow')
@@ -289,10 +329,20 @@ var InspectionObject = /*#__PURE__*/function () {
289
329
  color: new Color('#facb2b')
290
330
  });
291
331
  });
332
+ currentMapAnchor.forEach(function (mapAnchor, key) {
333
+ var numberKey = Number(key);
334
+
335
+ // @ts-ignore
336
+ _this5.getSportsProgress > numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 0, 0, 0.8);
337
+
338
+ // @ts-ignore
339
+ _this5.getSportsProgress < numberKey && mapAnchor.material.uniforms.uColor.value.set(1, 1, 1, 1);
340
+ });
292
341
  setTimeout(function () {
293
342
  var rotationMatrix = new Matrix4();
294
343
  var targetQuaternion = new Quaternion();
295
344
  var startQuaternion = _this5.model.quaternion.clone();
345
+ var startCameraQuaternion = _this5.inspection.minCamera.quaternion.clone();
296
346
  var targetMeshPosition = targetMesh.position.clone();
297
347
  targetMeshPosition.y = targetMeshPosition.y + (Number(key) === 0.04 || Number(key) === 0.68 || Number(key) === 0.40 ? 20 : 0);
298
348
  rotationMatrix.lookAt(targetMeshPosition, _this5.model.position, _this5.model.up);
@@ -303,6 +353,7 @@ var InspectionObject = /*#__PURE__*/function () {
303
353
  t: 1
304
354
  }, 2000).onUpdate(function (obj) {
305
355
  _this5.model.quaternion.copy(startQuaternion).slerp(targetQuaternion, obj.t);
356
+ _this5.inspection.minCamera.quaternion.copy(startCameraQuaternion).slerp(_this5.initialMinCameraQuaternion, obj.t);
306
357
  });
307
358
  var backwardTween = new Tween({
308
359
  t: 1
@@ -322,7 +373,7 @@ var InspectionObject = /*#__PURE__*/function () {
322
373
  // @ts-ignore
323
374
  if (!targetMesh.finirMesh) {
324
375
  finirMesh = targetMesh.clone();
325
- var finirMaterialV2 = createFinirMaterial('yellow', 5.3);
376
+ var finirMaterialV2 = createFinirMaterial('#08A6E3', 5.3);
326
377
  finirMesh.traverse(function (child) {
327
378
  child.layers.set(3);
328
379
  if (child.type === 'Mesh') {
@@ -382,6 +433,7 @@ var InspectionObject = /*#__PURE__*/function () {
382
433
  });
383
434
  });
384
435
  setTimeout(function () {
436
+ _this5.inspection.defaultFirstPerspectiveControls.enabled = true;
385
437
  _this5.isLock = false;
386
438
  }, 500);
387
439
  });
@@ -1 +1 @@
1
- {"version":3,"names":["AudioListener","AudioLoader","Clock","Color","EdgesGeometry","Euler","Group","LineBasicMaterial","LineCurve3","LineSegments","MathUtils","Matrix4","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","ModelLoader","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","copy","clone","add","z","getSportsProgress","isLock","stop","checkAnimation","group","minCamera","y","rotateY","model","gobal","interactionManager","visible","addEventListener","traverse","child","layers","enable","loadPosAudio","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","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","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","targetMesh","pipeline","realModl","contineMove","currentAnchor","anchorObject","get","name","material","rotationMatrix","startQuaternion","targetMeshPosition","Number","up","setFromRotationMatrix","forwardTween","t","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","target","finirMaterialV2","type","lineSegments","geometry","subscription","then","start","off","currentPosition","targetPosition","tube","tempPathMesh","map","transparent","depthTest","tempDemo","offset","x","dispose","removeFromParent","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","upCurve","upControl","loop","lookat","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","contine","speed","setSpeed","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve } from '@anov/3d-core'\nimport { AudioListener, AudioLoader, BoxGeometry, Clock, Color, EdgesGeometry, Euler, Group, LineBasicMaterial, LineCurve3, LineSegments, MathUtils, Matrix4, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, ModelLoader, PositionalAudio, Quaternion, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, TubeGeometry, Vector3, 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\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 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 const group = new Group()\n group.add(glb.scene)\n group.add(poi)\n group.add(this.inspection.minCamera)\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 15\n this.inspection.minCamera.position.y += 4\n this.inspection.minCamera.rotateY(Math.PI)\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 }\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 }, 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 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\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\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 setTimeout(() => {\n const rotationMatrix = new Matrix4()\n\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.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 })\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('yellow', 5.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: 'yellow' }))\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.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 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 this.control.contine()\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":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAASA,aAAa,EAAEC,WAAW,EAAeC,KAAK,EAAEC,KAAK,EAAEC,aAAa,EAAEC,KAAK,EAAEC,KAAK,EAAEC,iBAAiB,EAAEC,UAAU,EAAEC,YAAY,EAAEC,SAAS,EAAEC,OAAO,EAAEC,IAAI,EAAEC,iBAAiB,EAAEC,sBAAsB,EAAEC,WAAW,EAAEC,eAAe,EAAEC,UAAU,EAAEC,cAAc,EAA+BC,aAAa,EAAgBC,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,eAAe;AAE7W,SAASC,SAAS,QAAiD,kBAAkB;AACrF,SAASC,KAAK,QAAQ,mBAAmB;AACzC,SAASC,mBAAmB;AAC5B,SAASC,OAAO;AAChB,SAASC,WAAW,EAAEC,aAAa;AACnC,SAASC,cAAc;AACvB,SAASC,OAAO,EAAEC,oBAAoB;AACtC,OAAOC,cAAc;AAErB,IAAMC,WAAW,GAAG,IAAIlB,WAAW,EAAE;AAAA,IAE/BmB,gBAAgB;EAapB,0BAAYC,UAAU,EAAE;IAAA;IAAA;IAAA;IAAA;IAAA,gCATP,KAAK;IAAA,qCACA,KAAK;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA,mCAMf,KAAK;IAAA,qCAkXK,UAACC,gBAA4B,EAAEC,IAAW,EAAEC,EAAc,EAAK;MACnF,IAAMC,KAAK,GAAG,IAAIrC,KAAK,EAAE;MAEzB,IAAImC,IAAI,CAACG,UAAU,CAACC,MAAM,CAACL,gBAAgB,CAAC,EAC1C,OAAOE,EAAE,EAAE;MAEb,IAAMI,SAAS,GAAGrB,GAAG,CAACsB,QAAQ,CAAC,YAAM;QACnC,IAAMC,KAAK,GAAGL,KAAK,CAACM,QAAQ,EAAE;QAC9B,IAAI,CAACR,IAAI,CAACG,UAAU,CAACC,MAAM,CAACL,gBAAgB,CAAC,EAAE;UAC7C,IAAMU,IAAI,GAAG,CAAC,GAAGF,KAAK;UACtBP,IAAI,CAACG,UAAU,CAACO,aAAa,CAACX,gBAAgB,EAAEU,IAAI,CAAC;QACvD,CAAC,MACI;UACHJ,SAAS,EAAE;UACXJ,EAAE,EAAE;QACN;MACF,CAAC,CACA;IACH,CAAC;IAjYC,IAAI,CAACH,UAAU,GAAGA,UAAU;IAE5B,IAAMa,IAAI,GAAG,IAAI7B,aAAa,EAAE,CAAC8B,IAAI,WAAIvB,OAAO,gBAAa;IAC7DsB,IAAI,CAACE,KAAK,GAAGhC,cAAc;IAC3B8B,IAAI,CAACG,KAAK,GAAGrC,sBAAsB;IACnCkC,IAAI,CAACI,MAAM,CAACC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACrBL,IAAI,CAACM,QAAQ,GAAGC,IAAI,CAACC,EAAE;IAEvB,IAAI,CAACR,IAAI,GAAGA,IAAI;EAClB;EAAC;IAAA;IAAA;MAAA,4EAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;cAAA,OAC2Bf,WAAW,CAACwB,QAAQ,WAAI/B,OAAO,cAAW,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;YAAA;cAAA;cAAA;YAAA;cAArFgC,GAAG;cAEHC,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;cACzCF,GAAG,CAACG,KAAK,CAACC,QAAQ,GAAG,UAAU;cAEzBC,GAAG,GAAGJ,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;cACzCG,GAAG,CAACC,GAAG,aAAMvC,OAAO,wBAAqB;cAEnCwC,IAAI,GAAGN,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;cAC3CK,IAAI,CAACC,SAAS,GAAG,OAAO;cACxBD,IAAI,CAACJ,KAAK,CAACC,QAAQ,GAAG,UAAU;cAChCG,IAAI,CAACJ,KAAK,CAACM,GAAG,GAAG,MAAM;cACvBF,IAAI,CAACJ,KAAK,CAACO,IAAI,GAAG,KAAK;cACvBH,IAAI,CAACJ,KAAK,CAACQ,SAAS,GAAG,kBAAkB;cAEzCJ,IAAI,CAACJ,KAAK,CAACS,KAAK,GAAG,OAAO;cAC1BL,IAAI,CAACJ,KAAK,CAACU,QAAQ,GAAG,MAAM;cAC5BN,IAAI,CAACJ,KAAK,CAACW,UAAU,GAAG,MAAM;cAE9Bd,GAAG,CAACe,WAAW,CAACV,GAAG,CAAC;cACpBL,GAAG,CAACe,WAAW,CAACR,IAAI,CAAC;cAEfS,GAAG,GAAG,IAAIpD,SAAS,CAACoC,GAAG,EAAE;gBAC7BiB,KAAK,EAAE,GAAG,GAAG,CAAC;gBACdC,MAAM,EAAE,EAAE,GAAG;cACf,CAAC,CAAC;cAEIC,IAAI,GAAGlB,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;cAC1CiB,IAAI,CAACb,GAAG,aAAMvC,OAAO,wBAAqB;cAEpCqD,IAAI,GAAG,IAAIxD,SAAS,CAACuD,IAAI,EAAE;gBAC/BF,KAAK,EAAE,GAAG,GAAG,CAAC;gBACdC,MAAM,EAAE,GAAG,GAAG;cAChB,CAAC,CAAC;cAEFF,GAAG,CAACK,KAAK,CAAC3B,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;cACzB0B,IAAI,CAACC,KAAK,CAAC3B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;cAErB4B,IAAI,GAAGvB,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,MAAM,CAAC;cACxCC,IAAI,GAAG1B,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAC1CE,IAAI,GAAG3B,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAC1CG,IAAI,GAAG5B,GAAG,CAACwB,KAAK,CAACC,eAAe,CAAC,QAAQ,CAAC;cAEhD9D,GAAG,CAACsB,QAAQ,CAAC,YAAM;gBACjBgC,GAAG,CAACZ,QAAQ,CAACwB,IAAI,CAAC7B,GAAG,CAACwB,KAAK,CAACnB,QAAQ,CAACyB,KAAK,EAAE,CAACC,GAAG,CAAC,IAAIrE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxE2D,IAAI,CAAChB,QAAQ,CAACwB,IAAI,CAAC7B,GAAG,CAACwB,KAAK,CAACnB,QAAQ,CAACyB,KAAK,EAAE,CAACC,GAAG,CAAC,IAAIrE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEzE6D,IAAI,CAAC3B,QAAQ,CAACoC,CAAC,IAAI,GAAG;gBACtBN,IAAI,CAAC9B,QAAQ,CAACoC,CAAC,IAAI,GAAG;gBACtBL,IAAI,CAAC/B,QAAQ,CAACoC,CAAC,IAAI,GAAG;gBACtBJ,IAAI,CAAChC,QAAQ,CAACoC,CAAC,IAAI,GAAG;gBAEtB,IAAI5D,OAAO,CAAC,KAAI,CAAC6D,iBAAiB,CAAC,IAC9B,CAAC,KAAI,CAACC,MAAM,EAAE;kBACjB,KAAI,CAACC,IAAI,EAAE;kBACX,KAAI,CAACC,cAAc,CAAC,KAAI,CAACH,iBAAiB,CAAC;gBAC7C;cACF,CAAC,CAAC;cAEII,KAAK,GAAG,IAAIzF,KAAK,EAAE;cACzByF,KAAK,CAACN,GAAG,CAAC/B,GAAG,CAACwB,KAAK,CAAC;cACpBa,KAAK,CAACN,GAAG,CAACd,GAAG,CAAC;cACdoB,KAAK,CAACN,GAAG,CAAC,IAAI,CAACtD,UAAU,CAAC6D,SAAS,CAAC;cAEpC,IAAI,CAAC7D,UAAU,CAAC6D,SAAS,CAACjC,QAAQ,CAACwB,IAAI,CAAC7B,GAAG,CAACwB,KAAK,CAACnB,QAAQ,CAAC;cAC3D,IAAI,CAAC5B,UAAU,CAAC6D,SAAS,CAACjC,QAAQ,CAAC2B,CAAC,IAAI,EAAE;cAC1C,IAAI,CAACvD,UAAU,CAAC6D,SAAS,CAACjC,QAAQ,CAACkC,CAAC,IAAI,CAAC;cACzC,IAAI,CAAC9D,UAAU,CAAC6D,SAAS,CAACE,OAAO,CAAC3C,IAAI,CAACC,EAAE,CAAC;cAE1C,IAAI,CAAC2C,KAAK,GAAGJ,KAAK;cAElB,IAAI,CAAC5D,UAAU,CAACiE,KAAK,CAACC,kBAAkB,CAACZ,GAAG,CAACd,GAAG,CAAC;cACjD,IAAI,CAACxC,UAAU,CAACiE,KAAK,CAACC,kBAAkB,CAACZ,GAAG,CAACV,IAAI,CAAC;cAElDA,IAAI,CAACuB,OAAO,GAAG,KAAK;cAEpB3B,GAAG,CAAC4B,gBAAgB,CAAC,OAAO,EAAE,YAAM;gBAClCR,KAAK,CAACN,GAAG,CAACV,IAAI,CAAC;gBACfA,IAAI,CAACuB,OAAO,GAAG,IAAI;gBACnB3B,GAAG,CAAC2B,OAAO,GAAG,KAAK;cACrB,CAAC,CAAC;cAEFvB,IAAI,CAACwB,gBAAgB,CAAC,OAAO,EAAE,YAAM;gBACnCR,KAAK,CAACN,GAAG,CAACV,IAAI,CAAC;gBACfJ,GAAG,CAAC2B,OAAO,GAAG,IAAI;gBAClBvB,IAAI,CAACuB,OAAO,GAAG,KAAK;cACtB,CAAC,CAAC;cAEF5C,GAAG,CAACwB,KAAK,CAACF,KAAK,CAAC3B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;cAC5BK,GAAG,CAACwB,KAAK,CAACsB,QAAQ,CAAC,UAACC,KAAK,EAAK;gBAC5BA,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC;gBACtBF,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC;cACxB,CAAC,CAAC;cAEF,IAAI,CAACxE,UAAU,CAACiE,KAAK,CAAClB,KAAK,CAACO,GAAG,CAAC,IAAI,CAACU,KAAK,CAAC;cAE3C,IAAI,CAACS,YAAY,EAAE;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACpB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,wBAAuB;MAAA;MACrB,IAAMC,eAAe,GAAG,SAAlBA,eAAe,GAAS;QAC5B,IAAMC,QAAQ,GAAG,IAAI9G,aAAa,EAAE;QACpC,MAAI,CAACmC,UAAU,CAAC6D,SAAS,CAACP,GAAG,CAACqB,QAAQ,CAAC;QAEvC,IAAMC,QAAQ,GAAG,IAAI/F,eAAe,CAAC8F,QAAQ,CAAC;QAC9C,MAAI,CAACX,KAAK,CAACV,GAAG,CAACsB,QAAQ,CAAC;QAExB,IAAMC,WAAW,GAAG,IAAI/G,WAAW,EAAE;QAErC+G,WAAW,CAAC/D,IAAI,WAAIvB,OAAO,eAAY,UAACuF,WAAW,EAAK;UACtDF,QAAQ,CAACG,SAAS,CAACD,WAAW,CAAC;UAC/BF,QAAQ,CAACI,SAAS,CAAC,GAAG,CAAC;UACvBJ,QAAQ,CAACK,cAAc,CAAC,GAAG,CAAC;UAC5BL,QAAQ,CAACM,OAAO,CAAC,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF/F,KAAK,CAACgG,OAAO,CAACC,EAAE,CAAC,MAAM,EAAE,YAAM;UAC7B,MAAI,CAACC,SAAS,IAAIT,QAAQ,CAACU,IAAI,EAAE;QACnC,CAAC,CAAC;QAEFnG,KAAK,CAACgG,OAAO,CAACC,EAAE,CAAC,MAAM,EAAE,YAAM;UAC7BR,QAAQ,CAAClB,IAAI,EAAE;QACjB,CAAC,CAAC;QAEFjC,QAAQ,CAAC8D,mBAAmB,CAAC,WAAW,EAAEb,eAAe,CAAC;MAC5D,CAAC;MAEDjD,QAAQ,CAAC2C,gBAAgB,CAAC,WAAW,EAAEM,eAAe,CAAC;IACzD;EAAC;IAAA;IAAA;MAAA,4EAED,kBAAgBc,KAAK;QAAA;QAAA;UAAA;YAAA;cAAA,IACd,IAAI,CAACxB,KAAK;gBAAA;gBAAA;cAAA;cAAA;cAAA,OACP,IAAI,CAACyB,SAAS,EAAE;YAAA;cAExB,IAAI,CAACC,OAAO,GAAGvG,KAAK,CAACwG,YAAY,CAAC,IAAI,CAAC3B,KAAK,EAAEwB,KAAK,EAAE,EAAE,EAAE;gBACvDI,WAAW,EAAE,IAAI,CAAC5F,UAAU,CAAC4F;cAC/B,CAAC,CAAC;cAEF,IAAI,CAAC5B,KAAK,CAACpC,QAAQ,CAACwB,IAAI,CAACoC,KAAK,CAACK,UAAU,CAAC,CAAC,CAAC,CAAC;cAE7CC,UAAU,CAAC,YAAM;gBACf,MAAI,CAACpC,IAAI,EAAE;cACb,CAAC,EAAE,EAAE,CAAC;cAEN,IAAI,CAACqC,eAAe,EAAE;cAEtB7G,GAAG,CAACsB,QAAQ,CAAC,YAAM;gBACjB,MAAI,CAACR,UAAU,CAACgG,cAAc,CAACC,QAAQ,CAACC,MAAM,CAACC,KAAK,GAAG,MAAI,CAAC3C,iBAAiB,GAAG,IAAI;gBACpF,MAAI,CAACxD,UAAU,CAACoG,WAAW,CAACH,QAAQ,CAACC,MAAM,CAACC,KAAK,GAAG,MAAI,CAAC3C,iBAAiB,GAAG,IAAI;gBAEjF/D,aAAa,CAACD,WAAW,CAAC6G,KAAK,EAAE,mBAAmB,EAAE3G,cAAc,CAAC4G,OAAO,EAAEC,SAAS,EAAE;kBACvFC,UAAU,EAAE,MAAI,CAAChD;gBACnB,CAAC,CAAC;cACJ,CAAC,CAAC;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACH;MAAA;QAAA;MAAA;MAAA;IAAA;IAED;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,2BAA0B;MAAA;MACxBiD,WAAW,CAAC,YAAM;QAChB,IAAMvG,IAAI,GAAG,MAAI,CAAC8D,KAAK;QACvB9D,IAAI,CAACwG,iBAAiB,CAAC,IAAI,CAAC;QAE5B,IAAMC,eAAe,GAAG,IAAI7H,UAAU,EAAE;QACxCoB,IAAI,CAAC0G,kBAAkB,CAACD,eAAe,CAAC;QAExC,IAAME,UAAU,GAAG,IAAI3I,KAAK,EAAE,CAAC4I,iBAAiB,CAACH,eAAe,EAAE,KAAK,CAAC;QACxE,IAAMI,SAAS,GAAGF,UAAU,CAAC/C,CAAC;QAC9B,IAAMkD,kBAAkB,GAAG5F,IAAI,CAAC6F,KAAK,CAAC1I,SAAS,CAAC2I,QAAQ,CAACH,SAAS,CAAC,CAAC;QAEpEtH,aAAa,CAACD,WAAW,CAAC6G,KAAK,EAAE,eAAe,EAAE3G,cAAc,CAAC4G,OAAO,EAAEC,SAAS,EAAE;UACnFY,MAAM,EAAEH,kBAAkB,IAAI,CAAC,GAAG,GAAG,GAAGA,kBAAkB,GAAG,CAAC,GAAG,GAAG5F,IAAI,CAACgG,GAAG,CAACJ,kBAAkB,CAAC;UAChGK,MAAM,EAAEL,kBAAkB,IAAI,CAAC,GAAG,GAAG,GAAGA,kBAAkB,GAAG,CAAC,GAAG,GAAG5F,IAAI,CAACgG,GAAG,CAACJ,kBAAkB,CAAC,GAAG,GAAG;UACtGM,QAAQ,EAAE,MAAI,CAAC9D,iBAAiB,GAAG,MAAI,CAACxD,UAAU,CAACwF,KAAK,CAAC+B,SAAS,EAAE;UACpEC,aAAa,EAAE,CAAC;UAChBC,eAAe,EAAE;QACnB,CAAC,CAAC;MACJ,CAAC,EAAE,GAAG,CAAC;IACT;EAAC;IAAA;IAAA,KAED,eAAwB;MACtB,IAAI,CAAC,IAAI,CAAC/B,OAAO,EACf,OAAO,CAAC;MAEV,OAAO,IAAI,CAACA,OAAO,CAACgC,WAAW,EAAE;IACnC;EAAC;IAAA;IAAA,OAED,wBAAe;MACb,OAAO,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;QAC9BzI,KAAK,CAACgG,OAAO,CAACC,EAAE,CAAC,UAAU,EAAE,UAACyC,IAAI,EAAK;UACrCD,OAAO,CAACC,IAAI,CAAC;QACf,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,wBAAuBC,QAAgB,EAAE;MAAA;MACvC,IAAI,CAACrE,MAAM,GAAG,IAAI;MAClB,IAAI,CAACsE,WAAW,GAAG,IAAI;MAEvB,IAAMC,GAAG,GAAGC,MAAM,CAACC,IAAI,CAACtI,oBAAoB,CAAC,CAACuI,IAAI,CAAC,UAACC,CAAC,EAAK;QACxD,IAAMC,GAAG,GAAGC,UAAU,CAACF,CAAC,CAAC;QACzB,IAAIN,QAAQ,IAAIO,GAAG,IAAIP,QAAQ,GAAGO,GAAG,GAAG,IAAI,EAC1C,OAAO,IAAI;MACf,CAAC,CAAC;MAEF,IAAME,YAAY,GAAG3I,oBAAoB,CAACoI,GAAG,CAAC,CAACQ,MAAM;MAErD,IAAIC,UAAwB,GAAG,IAAI;MAEnC,IAAIF,YAAY,KAAK,sBAAsB,EACzCE,UAAU,GAAG,IAAI,CAACzI,UAAU,CAACiE,KAAK,CAACyE,QAAQ,CAAC1F,eAAe,CAACuF,YAAY,CAAU,MAGlFE,UAAU,GAAG,IAAI,CAACzI,UAAU,CAACiE,KAAK,CAAC0E,QAAQ,CAAC3F,eAAe,CAACuF,YAAY,CAAU;MAEpF,IAAI,CAACE,UAAU,EAAE;QACf,IAAI,CAACG,WAAW,EAAE;QAClB,IAAI,CAACb,WAAW,GAAG,KAAK;QACxBjC,UAAU,CAAC,YAAM;UACf,MAAI,CAACrC,MAAM,GAAG,KAAK;QACrB,CAAC,EAAE,GAAG,CAAC;QACP;MACF;MAEA,IAAMoF,aAAa,GAAG,IAAI,CAAC7I,UAAU,CAAC8I,YAAY,CAACC,GAAG,CAACnJ,oBAAoB,CAACoI,GAAG,CAAC,CAACgB,IAAI,CAAC;MAEtFH,aAAa,CAACxE,QAAQ,CAAC,UAACC,KAAK,EAAK;QAChC,IAAIA,KAAK,CAAC0E,IAAI,KAAK,UAAU,EAC3B1E,KAAK,CAAC2E,QAAQ,GAAG,IAAIvK,iBAAiB,CAAC;UAAE0D,KAAK,EAAE,IAAIpE,KAAK,CAAC,QAAQ;QAAE,CAAC,CAAC,MAEtEsG,KAAK,CAAC2E,QAAQ,GAAG,IAAIvK,iBAAiB,CAAC;UAAE0D,KAAK,EAAE,IAAIpE,KAAK,CAAC,SAAS;QAAE,CAAC,CAAC;MAC3E,CAAC,CAAC;MAEF8H,UAAU,CAAC,YAAM;QACf,IAAMoD,cAAc,GAAG,IAAI1K,OAAO,EAAE;QAEpC,IAAMyB,gBAAgB,GAAG,IAAInB,UAAU,EAAE;QACzC,IAAMqK,eAAe,GAAG,MAAI,CAACnF,KAAK,CAAC3D,UAAU,CAACgD,KAAK,EAAE;QAErD,IAAM+F,kBAAkB,GAAGX,UAAU,CAAC7G,QAAQ,CAACyB,KAAK,EAAE;QACtD+F,kBAAkB,CAACtF,CAAC,GAAGsF,kBAAkB,CAACtF,CAAC,IAAKuF,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,GAAI,EAAE,GAAG,CAAC,CAAC;QAE/HkB,cAAc,CAACV,MAAM,CAACY,kBAAkB,EAAE,MAAI,CAACpF,KAAK,CAACpC,QAAQ,EAAE,MAAI,CAACoC,KAAK,CAACsF,EAAE,CAAC;QAC7ErJ,gBAAgB,CAACsJ,qBAAqB,CAACL,cAAc,CAAC;QAEtD,IAAMM,YAAY,GAAG,IAAInK,KAAK,CAAC;UAAEoK,CAAC,EAAE;QAAE,CAAC,CAAC,CACrCC,EAAE,CAAC;UAAED,CAAC,EAAE;QAAE,CAAC,EAAE,IAAI,CAAC,CAClBE,QAAQ,CAAC,UAACC,GAAG,EAAK;UACjB,MAAI,CAAC5F,KAAK,CAAC3D,UAAU,CAAC+C,IAAI,CAAC+F,eAAe,CAAC,CAACU,KAAK,CAAC5J,gBAAgB,EAAE2J,GAAG,CAACH,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEJ,IAAMK,aAAa,GAAG,IAAIzK,KAAK,CAAC;UAAEoK,CAAC,EAAE;QAAE,CAAC,CAAC,CACtCC,EAAE,CAAC;UAAED,CAAC,EAAE;QAAE,CAAC,EAAE,IAAI,CAAC,CAClBE,QAAQ,CAAC,UAACC,GAAG,EAAK;UACjB,MAAI,CAAC5F,KAAK,CAAC3D,UAAU,CAAC+C,IAAI,CAAC+F,eAAe,CAAC,CAACU,KAAK,CAAC5J,gBAAgB,EAAE2J,GAAG,CAACH,CAAC,CAAC;QAC5E,CAAC,CAAC;QAEJD,YAAY,CAACO,UAAU,CAAC,YAAM;UAC5B,IAAIC,SAAuB,GAAG,IAAI;UAElCvK,aAAa,CAACD,WAAW,CAAC6G,KAAK,EAAE,eAAe,EAAE3G,cAAc,CAAC4G,OAAO,EAAEC,SAAS,EAAE;YACnF0D,MAAM,EAAErK,oBAAoB,CAACoI,GAAG,CAAC,CAACgB;UACpC,CAAC,CAAC;UAEF,IAAIK,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,EACrE,MAAI,CAAChI,UAAU,CAAC6D,SAAS,CAAYU,MAAM,CAACrD,GAAG,CAAC,CAAC,CAAC;UAErD,IAAImI,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,EAAE;YAC/C,MAAI,CAAChI,UAAU,CAAC6D,SAAS,CAAYU,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC;YACtD;YACA,IAAI,CAACiE,UAAU,CAACuB,SAAS,EAAE;cACzBA,SAAS,GAAGvB,UAAU,CAACpF,KAAK,EAAkB;cAE9C,IAAM6G,eAAe,GAAG5K,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC;cAE1D0K,SAAS,CAAC3F,QAAQ,CAAC,UAACC,KAAK,EAAK;gBAC5BA,KAAK,CAACC,MAAM,CAACrD,GAAG,CAAC,CAAC,CAAC;gBAEnB,IAAIoD,KAAK,CAAC6F,IAAI,KAAK,MAAM,EAAE;kBACzB;kBACA7F,KAAK,CAAC2E,QAAQ,GAAGiB,eAAe;;kBAEhC;kBACA,IAAME,YAAY,GAAG,IAAI9L,YAAY,CAAC,IAAIL,aAAa,CAACqG,KAAK,CAAC+F,QAAQ,CAAQ,EAAE,IAAIjM,iBAAiB,CAAC;oBAAEgE,KAAK,EAAE;kBAAS,CAAC,CAAC,CAAC;kBAE3HgI,YAAY,CAAC7F,MAAM,CAACrD,GAAG,CAAC,CAAC,CAAC;kBAC1B8I,SAAS,CAAC1G,GAAG,CAAC8G,YAAY,CAAC;gBAC7B;cACF,CAAC,CAAC;;cAEF;cACA3B,UAAU,CAACuB,SAAS,GAAGA,SAAS;cAEhC,MAAI,CAAChK,UAAU,CAACiE,KAAK,CAAClB,KAAK,CAACO,GAAG,CAAC0G,SAAS,CAAC;YAC5C,CAAC,MACI;cACH;cACAA,SAAS,GAAGvB,UAAU,CAACuB,SAAS;cAEhCA,SAAS,CAAC7F,OAAO,GAAG,IAAI;YAC1B;UACF;;UAEA;UACA,IAAIkF,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,EAAE;YAChD,MAAI,CAACsC,YAAY,EAAE,CAACC,IAAI,CAAC,UAAC1C,IAAI,EAAK;cACjC,IAAIA,IAAI,EAAE;gBACRmC,SAAS,CAAC7F,OAAO,GAAG,KAAK;gBACzB2F,aAAa,CAACU,KAAK,EAAE;gBAErBrL,KAAK,CAACgG,OAAO,CAACsF,GAAG,CAAC,UAAU,CAAC;cAC/B;YACF,CAAC,CAAC;UACJ,CAAC,MACI;YACH3E,UAAU,CAAC,YAAM;cACf,IAAIuD,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,IAAIqB,MAAM,CAACrB,GAAG,CAAC,KAAK,IAAI,EACrE,MAAI,CAAChI,UAAU,CAAC6D,SAAS,CAAYU,MAAM,CAACrD,GAAG,CAAC,CAAC,CAAC;;cAErD;cACA;;cAEA4I,aAAa,CAACU,KAAK,EAAE;YACvB,CAAC,EAAE,IAAI,CAAC;UACV;QACF,CAAC,CAAC;QAEF1E,UAAU,CAAC,YAAM;UACf0D,YAAY,CAACgB,KAAK,EAAE;QACtB,CAAC,EAAE,IAAI,CAAC;QAERV,aAAa,CAACC,UAAU,CAAC,YAAM;UAC7B,MAAI,CAAChC,WAAW,GAAG,KAAK;UACxB,MAAI,CAACa,WAAW,EAAE;UAElBC,aAAa,CAACxE,QAAQ,CAAC,UAACC,KAAK,EAAK;YAChC,IAAIA,KAAK,CAAC0E,IAAI,KAAK,UAAU,EAC3B1E,KAAK,CAAC2E,QAAQ,GAAG,IAAIvK,iBAAiB,CAAC;cAAE0D,KAAK,EAAE,IAAIpE,KAAK,CAAC,SAAS;YAAE,CAAC,CAAC,MAEvEsG,KAAK,CAAC2E,QAAQ,GAAG,IAAIvK,iBAAiB,CAAC;cAAE0D,KAAK,EAAE,IAAIpE,KAAK,CAAC,MAAM;YAAE,CAAC,CAAC;UACxE,CAAC,CAAC;UAEF8H,UAAU,CAAC,YAAM;YACf,MAAI,CAACrC,MAAM,GAAG,KAAK;UACrB,CAAC,EAAE,GAAG,CAAC;QACT,CAAC,CAAC;MACJ,CAAC,EAAE,IAAI,CAAC;IACV;EAAC;IAAA;IAAA,OAED,0BAAiBiH,eAAwB,EAAEC,cAAuB,EAAE;MAClE,OAAO,IAAItM,UAAU,CAACqM,eAAe,EAAEC,cAAc,CAAC;IACxD;EAAC;IAAA;IAAA,OAsBD,8BAA6BnF,KAAqB,EAAE;MAAA;MAClD;MACA,IAAMoF,IAAI,GAAG,IAAI/K,cAAc,CAAC2F,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;MACxD,IAAMqF,YAAY,GAAG,IAAIpM,IAAI,CAACmM,IAAI,EAAE,IAAIlM,iBAAiB,CAAC;QAAEoM,GAAG,EAAE,IAAI,CAACjK,IAAI;QAAEkK,WAAW,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAK,CAAC,CAAC,CAAC;MAElH,IAAI,CAAChL,UAAU,CAACiE,KAAK,CAAClB,KAAK,CAACO,GAAG,CAACuH,YAAY,CAAC;MAC7C,IAAI,CAACA,YAAY,GAAGA,YAAY;MAEhCA,YAAY,CAACtG,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC;MAE7B,IAAI,CAAC3D,IAAI,CAACI,MAAM,CAACC,GAAG,CAACsE,KAAK,CAAC+B,SAAS,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;MAChD,IAAI,CAAC0D,QAAQ,GAAG/L,GAAG,CAACsB,QAAQ,CAAC,YAAM;QACjC,MAAI,CAACK,IAAI,CAACqK,MAAM,CAACC,CAAC,IAAI,CAAC,MAAM;MAC/B,CAAC,CAAC;IACJ;EAAC;IAAA;IAAA,OAED,6BAA4B;MAC1B,IAAI,IAAI,CAACN,YAAY,EAAE;QACrB,IAAI,CAACI,QAAQ,EAAE;QACf,IAAI,CAACJ,YAAY,CAACR,QAAQ,CAACe,OAAO,EAAE;QACpC,IAAI,CAACP,YAAY,CAAC5B,QAAQ,CAACmC,OAAO,EAAE;QACnC,IAAI,CAACP,YAAY,CAAUQ,gBAAgB,EAAE;MAChD;IACF;EAAC;IAAA;IAAA,OAED,oBAAWV,cAAuB,EAAEW,cAAsB,EAAE;MAAA;MAC1D,IAAI,IAAI,CAACvD,WAAW,EAClB;MAEF,IAAI,CAACA,WAAW,GAAG,IAAI;MAEvB,IAAI,CAACrC,OAAO,CAAChC,IAAI,EAAE;MAEnB,IAAMwF,cAAc,GAAG,IAAI1K,OAAO,EAAE;MACpC,IAAMyB,gBAAgB,GAAG,IAAInB,UAAU,EAAE;MAEzCoK,cAAc,CAACV,MAAM,CAACmC,cAAc,EAAE,IAAI,CAAC3G,KAAK,CAACpC,QAAQ,EAAE,IAAI,CAACoC,KAAK,CAACsF,EAAE,CAAC;MACzErJ,gBAAgB,CAACsJ,qBAAqB,CAACL,cAAc,CAAC;MAEtD,IAAI,CAACqC,WAAW,CAACtL,gBAAgB,EAAE,IAAI,CAAC+D,KAAK,EAC3C,YAAM;QACJ,IAAMwH,0BAA0B,GAAG,IAAIvM,OAAO,CAAC0L,cAAc,CAACQ,CAAC,EAAE,GAAG,EAAER,cAAc,CAACpH,CAAC,CAAC;QACvF,MAAI,CAACkI,oBAAoB,CAAC,MAAI,CAACC,gBAAgB,CAAC,IAAIzM,OAAO,CAAC,MAAI,CAAC+E,KAAK,CAACpC,QAAQ,CAACuJ,CAAC,EAAE,GAAG,EAAE,MAAI,CAACnH,KAAK,CAACpC,QAAQ,CAAC2B,CAAC,CAAC,EAAEiI,0BAA0B,CAAC,CAAC;QAE5I,IAAMd,eAAe,GAAG,MAAI,CAAC1G,KAAK,CAACpC,QAAQ;QAC3C,IAAM+J,OAAO,GAAG,IAAItN,UAAU,CAACqM,eAAe,EAAE,IAAIzL,OAAO,CAACyL,eAAe,CAACS,CAAC,EAAET,eAAe,CAAC5G,CAAC,GAAG,EAAE,EAAE4G,eAAe,CAACnH,CAAC,CAAC,CAAC;QAC1H,IAAMqI,SAAS,GAAGzM,KAAK,CAACwG,YAAY,CAAC,MAAI,CAAC3B,KAAK,EAAE2H,OAAO,EAAE,EAAE,EAAE;UAAEE,IAAI,EAAE,KAAK;UAAEC,MAAM,EAAEnB;QAAe,CAAC,CAAC;;QAEtG;QACAiB,SAAS,CAACxH,gBAAgB,CAAC,KAAK,EAAE,YAAM;UACtC,IAAM2H,SAAS,GAAG,MAAI,CAACL,gBAAgB,CAAChB,eAAe,EAAE,IAAIzL,OAAO,CAAC0L,cAAc,CAACQ,CAAC,EAAER,cAAc,CAAC7G,CAAC,GAAG,EAAE,EAAE6G,cAAc,CAACpH,CAAC,CAAC,CAAC;UAChI,IAAMyI,WAAW,GAAG7M,KAAK,CAACwG,YAAY,CAAC,MAAI,CAAC3B,KAAK,EAAE+H,SAAS,EAAE,EAAE,EAAE;YAAEF,IAAI,EAAE,KAAK;YAAEC,MAAM,EAAE;UAAM,CAAC,CAAC;;UAEjG;UACAE,WAAW,CAAC5H,gBAAgB,CAAC,KAAK,EAAE,YAAM;YACxC,IAAM6H,YAAY,GAAG,MAAI,CAACjI,KAAK,CAACpC,QAAQ;YACxC,IAAMsK,SAAS,GAAG,IAAI7N,UAAU,CAAC4N,YAAY,EAAE,IAAIhN,OAAO,CAACgN,YAAY,CAACd,CAAC,EAAEc,YAAY,CAACnI,CAAC,GAAG,EAAE,EAAEmI,YAAY,CAAC1I,CAAC,CAAC,CAAC;YAChH,IAAM4I,WAAW,GAAGhN,KAAK,CAACwG,YAAY,CAAC,MAAI,CAAC3B,KAAK,EAAEkI,SAAS,EAAE,EAAE,EAAE;cAAEL,IAAI,EAAE,KAAK;cAAEC,MAAM,EAAE;YAAM,CAAC,CAAC;;YAEjG;YACAK,WAAW,CAAC/H,gBAAgB,CAAC,KAAK,EAAE,YAAM;cACxC,IAAMgI,eAAe,GAAG,IAAI5N,OAAO,EAAE;cACrC,IAAM6N,iBAAiB,GAAG,IAAIvN,UAAU,EAAE;cAE1C,IAAMwN,eAAe,GAAG,MAAI,CAACtM,UAAU,CAACwF,KAAK,CAACK,UAAU,CAAC,CAACyF,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC;cAErFc,eAAe,CAAC5D,MAAM,CAAC8D,eAAe,EAAE,MAAI,CAACtI,KAAK,CAACpC,QAAQ,EAAE,MAAI,CAACoC,KAAK,CAACsF,EAAE,CAAC;cAC3E+C,iBAAiB,CAAC9C,qBAAqB,CAAC6C,eAAe,CAAC;cAExD,MAAI,CAACb,WAAW,CAACc,iBAAiB,EAAE,MAAI,CAACrI,KAAK,EAAE,YAAM;gBACpD8B,UAAU,CAAC,YAAM;kBACf,MAAI,CAACyG,iBAAiB,EAAE;kBACxB,MAAI,CAACxE,WAAW,GAAG,KAAK;kBACxB,MAAI,CAACrC,OAAO,CAAC8G,WAAW,CAAClB,cAAc,CAAC;kBACxC,MAAI,CAAC5F,OAAO,CAAC+G,OAAO,EAAE;gBACxB,CAAC,EAAE,GAAG,CAAC;cACT,CAAC,CAAC;YACJ,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACN;EAAC;IAAA;IAAA,OAED,kBAASC,KAAa,EAAE;MACtB,IAAI,IAAI,CAAChH,OAAO,EACd,IAAI,CAACA,OAAO,CAACiH,QAAQ,CAACD,KAAK,CAAC;IAChC;EAAC;IAAA;IAAA,OAED,gBAAO;MACL,IAAI,IAAI,CAAChH,OAAO,EACd,IAAI,CAACA,OAAO,CAAChC,IAAI,EAAE;IACvB;EAAC;IAAA;IAAA,OAED,uBAAc;MACZ,IAAI,IAAI,CAACgC,OAAO,EACd,IAAI,CAACA,OAAO,CAAC+G,OAAO,EAAE;MAExB,IAAI,CAACpH,SAAS,GAAG,IAAI;MAErBlG,KAAK,CAACgG,OAAO,CAACyH,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;MAEpC,IAAI,IAAI,CAAC5M,UAAU,CAAC6D,SAAS,KAAK,IAAI,CAAC7D,UAAU,CAACiE,KAAK,CAAClB,KAAK,CAAC8J,MAAM,EAClE1N,KAAK,CAACgG,OAAO,CAACyH,IAAI,CAAC,MAAM,CAAC;IAC9B;;IAEA;AACF;AACA;EAFE;IAAA;IAAA,OAGA,mBAAU,CAAE;EAAC;EAAA;AAAA;AAGf,eAAe7M,gBAAgB"}
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","targetProgress","startRotate","tempPathMeshtargetPosition","generateTempPathMesh","generateTempPath","upCurve","upControl","loop","lookat","tempCurve","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","cleanTempPathMesh","setProgress","contine","speed","setSpeed","emit","camera"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Curve } 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\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 // model.add(light)\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 }, 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', 5.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: 'yellow' }))\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 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 this.control.contine()\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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"}
@@ -0,0 +1,6 @@
1
+ import { EventDispatcher } from '@anov/3d-core';
2
+ declare class defaultFirstPerspectiveControls extends EventDispatcher {
3
+ enabled: boolean;
4
+ constructor(object: any, domElement: any);
5
+ }
6
+ export default defaultFirstPerspectiveControls;