@anov/3d 0.0.20 → 0.0.22

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.
@@ -0,0 +1,2 @@
1
+ declare const fragmentShader: string;
2
+ export default fragmentShader;
@@ -0,0 +1,4 @@
1
+ import { ShaderChunk } from '@anov/3d-core';
2
+ var fragmentShader = /* glsl */"\n".concat(ShaderChunk.logdepthbuf_pars_fragment, "\nuniform float alpha;\nvarying vec2 vUv;\n\nvoid main() {\n float centerLineWidth = 0.05; \n float sideLineWidth = 0.1; \n\n vec2 adjustedUv = vec2(vUv.x, vUv.y - 0.25);\n\n float centerLine = smoothstep(centerLineWidth * 0.5, centerLineWidth * 0.6, abs(adjustedUv.y)); \n float leftLine = smoothstep(sideLineWidth * 0.5, sideLineWidth * 0.6, adjustedUv.x); \n float rightLine = smoothstep(sideLineWidth * 0.5, sideLineWidth * 0.6, 1.0 - adjustedUv.x);\n\n float line = max(max(centerLine, leftLine), rightLine); \n\n vec3 centerColor = vec3(1.0, 1.0, 1.0); \n vec3 sideColor = vec3(0.8, 0.4, 0.0); \n vec3 otherColor = vec3(0.95, 0.7, 0.2); \n vec3 finalColor;\n\n if (abs(adjustedUv.y) < centerLineWidth * 0.5) {\n gl_FragColor = vec4(vec3(1.0, 1.0, 1.0), .5); \n }else if(abs(adjustedUv.y+0.25)>0.0 && abs(adjustedUv.y+0.25)<0.05){\n gl_FragColor = vec4(sideColor, .5); \n }else if(abs(adjustedUv.y-0.25)>0.0 && abs(adjustedUv.y-0.25)<0.05){\n gl_FragColor = vec4(sideColor, .5); \n }\n else{\n gl_FragColor = vec4(otherColor, alpha);\n }\n ; \n\n ").concat(ShaderChunk.logdepthbuf_fragment, "\n}\n");
3
+ export default fragmentShader;
4
+ //# sourceMappingURL=fragmentShader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ShaderChunk","fragmentShader","logdepthbuf_pars_fragment","logdepthbuf_fragment"],"sources":["../../../../../src/factory/unit/glsl/highway/fragmentShader.ts"],"sourcesContent":["import { ShaderChunk } from '@anov/3d-core'\n\nconst fragmentShader = /* glsl */ `\n${ShaderChunk.logdepthbuf_pars_fragment}\nuniform float alpha;\nvarying vec2 vUv;\n\nvoid main() {\n float centerLineWidth = 0.05; \n float sideLineWidth = 0.1; \n\n vec2 adjustedUv = vec2(vUv.x, vUv.y - 0.25);\n\n float centerLine = smoothstep(centerLineWidth * 0.5, centerLineWidth * 0.6, abs(adjustedUv.y)); \n float leftLine = smoothstep(sideLineWidth * 0.5, sideLineWidth * 0.6, adjustedUv.x); \n float rightLine = smoothstep(sideLineWidth * 0.5, sideLineWidth * 0.6, 1.0 - adjustedUv.x);\n\n float line = max(max(centerLine, leftLine), rightLine); \n\n vec3 centerColor = vec3(1.0, 1.0, 1.0); \n vec3 sideColor = vec3(0.8, 0.4, 0.0); \n vec3 otherColor = vec3(0.95, 0.7, 0.2); \n vec3 finalColor;\n\n if (abs(adjustedUv.y) < centerLineWidth * 0.5) {\n gl_FragColor = vec4(vec3(1.0, 1.0, 1.0), .5); \n }else if(abs(adjustedUv.y+0.25)>0.0 && abs(adjustedUv.y+0.25)<0.05){\n gl_FragColor = vec4(sideColor, .5); \n }else if(abs(adjustedUv.y-0.25)>0.0 && abs(adjustedUv.y-0.25)<0.05){\n gl_FragColor = vec4(sideColor, .5); \n }\n else{\n gl_FragColor = vec4(otherColor, alpha);\n }\n ; \n\n ${ShaderChunk.logdepthbuf_fragment}\n}\n`\n\nexport default fragmentShader"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAE3C,IAAMC,cAAc,GAAG,sBACrBD,WAAW,CAACE,yBAAyB,0oCAiCjCF,WAAW,CAACG,oBAAoB,UAErC;AAED,eAAeF,cAAc"}
@@ -0,0 +1,2 @@
1
+ declare const vertexShader: string;
2
+ export default vertexShader;
@@ -0,0 +1,4 @@
1
+ import { ShaderChunk } from '@anov/3d-core';
2
+ var vertexShader = /* glsl */"\n".concat(ShaderChunk.logdepthbuf_pars_vertex, "\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n ").concat(ShaderChunk.logdepthbuf_vertex, "\n}\n");
3
+ export default vertexShader;
4
+ //# sourceMappingURL=vertexShader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ShaderChunk","vertexShader","logdepthbuf_pars_vertex","logdepthbuf_vertex"],"sources":["../../../../../src/factory/unit/glsl/highway/vertexShader.ts"],"sourcesContent":["import { ShaderChunk } from '@anov/3d-core'\n\nconst vertexShader = /* glsl */`\n${ShaderChunk.logdepthbuf_pars_vertex}\nbool isPerspectiveMatrix(mat4) {\n return true;\n }\nvarying vec2 vUv;\n\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n ${ShaderChunk.logdepthbuf_vertex}\n}\n`\n\nexport default vertexShader"],"mappings":"AAAA,SAASA,WAAW,QAAQ,eAAe;AAE3C,IAAMC,YAAY,GAAG,sBACnBD,WAAW,CAACE,uBAAuB,6MAS/BF,WAAW,CAACG,kBAAkB,UAEnC;AAED,eAAeF,YAAY"}
@@ -7,6 +7,7 @@ declare class InspectionObject {
7
7
  private tempLine;
8
8
  private isLock;
9
9
  private isAnimation;
10
+ walkCurveMesh: any;
10
11
  css2d: Css2DPoi;
11
12
  constructor(inspection: any);
12
13
  private loadModel;
@@ -8,13 +8,15 @@ 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 { Clock, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, ModelLoader, Quaternion, Vector3, use, utils } from '@anov/3d-core';
11
+ import { Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, Quaternion, ShaderMaterial, TubeGeometry, Vector3, use, utils } from '@anov/3d-core';
12
12
  import { Css2DPoi, SpritePoi } from '@anov/3d-ability';
13
13
  import { Tween } from '@tweenjs/tween.js';
14
14
  import { createFinirMaterial } from "../../utils/finirMaterial";
15
15
  import { usePath } from "../../3d";
16
16
  import { MessageType, sendToMessage } from "../../../utils/messageFn";
17
17
  import { EMessageStatus } from "../../../messageStatus";
18
+ import fragmentShader from "../glsl/highway/fragmentShader";
19
+ import vertexShader from "../glsl/highway/vertexShader";
18
20
  import { isCheck, targetProgresspoints } from "./lineData";
19
21
  var modelLoader = new ModelLoader();
20
22
  var InspectionObject = /*#__PURE__*/function () {
@@ -26,6 +28,7 @@ var InspectionObject = /*#__PURE__*/function () {
26
28
  _defineProperty(this, "tempLine", void 0);
27
29
  _defineProperty(this, "isLock", false);
28
30
  _defineProperty(this, "isAnimation", false);
31
+ _defineProperty(this, "walkCurveMesh", void 0);
29
32
  _defineProperty(this, "css2d", void 0);
30
33
  _defineProperty(this, "startRotate", function (targetQuaternion, mesh, cb) {
31
34
  var clock = new Clock();
@@ -135,6 +138,7 @@ var InspectionObject = /*#__PURE__*/function () {
135
138
  value: function () {
136
139
  var _startMove = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(curve) {
137
140
  var _this2 = this;
141
+ var walkCurve, walkCurveMesh;
138
142
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
139
143
  while (1) switch (_context2.prev = _context2.next) {
140
144
  case 0:
@@ -145,13 +149,51 @@ var InspectionObject = /*#__PURE__*/function () {
145
149
  _context2.next = 3;
146
150
  return this.loadModel();
147
151
  case 3:
148
- this.control = utils.moveWithLine(this.model, curve, 10);
152
+ this.control = utils.moveWithLine(this.model, curve, 10, {
153
+ groundCurve: this.inspection.groundCurve
154
+ });
155
+ walkCurve = this.control.getWalkCurve();
149
156
  use.useframe(function () {
157
+ if (!_this2.inspection.isHide) {
158
+ walkCurve = _this2.control.getWalkCurve();
159
+ if (walkCurveMesh) {
160
+ if (walkCurve && walkCurve.points.length > 2) {
161
+ walkCurveMesh.removeFromParent();
162
+ walkCurveMesh.geometry.dispose();
163
+ walkCurveMesh.geometry = new TubeGeometry(walkCurve, 10000, 3, 2, false);
164
+ _this2.inspection.gobal.scene.add(walkCurveMesh);
165
+ } else {
166
+ walkCurveMesh.removeFromParent();
167
+ walkCurveMesh.geometry.dispose();
168
+ }
169
+ } else {
170
+ if (walkCurve.points.length > 2) {
171
+ var tube = new TubeGeometry(walkCurve, 10000, 3, 2, false);
172
+ walkCurveMesh = new Mesh(tube, new ShaderMaterial({
173
+ transparent: true,
174
+ uniforms: {
175
+ alpha: {
176
+ value: 0.9
177
+ }
178
+ },
179
+ vertexShader: vertexShader,
180
+ fragmentShader: fragmentShader
181
+ }));
182
+ _this2.walkCurveMesh = walkCurveMesh;
183
+ _this2.inspection.gobal.scene.add(walkCurveMesh);
184
+ }
185
+ }
186
+ } else {
187
+ if (walkCurveMesh) {
188
+ walkCurveMesh.removeFromParent();
189
+ walkCurveMesh.geometry.dispose();
190
+ }
191
+ }
150
192
  sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {
151
193
  percentage: _this2.getSportsProgress
152
194
  });
153
195
  });
154
- case 5:
196
+ case 6:
155
197
  case "end":
156
198
  return _context2.stop();
157
199
  }
@@ -229,6 +271,14 @@ var InspectionObject = /*#__PURE__*/function () {
229
271
  }, 500);
230
272
  return;
231
273
  }
274
+ var currentAnchor = this.inspection.anchorObject.get(targetProgresspoints[key].name);
275
+ currentAnchor.traverse(function (child) {
276
+ if (child.name === 'cylinder') child.material = new MeshBasicMaterial({
277
+ color: new Color('yellow')
278
+ });else child.material = new MeshBasicMaterial({
279
+ color: new Color('#facb2b')
280
+ });
281
+ });
232
282
  setTimeout(function () {
233
283
  var rotationMatrix = new Matrix4();
234
284
  var targetQuaternion = new Quaternion();
@@ -307,6 +357,13 @@ var InspectionObject = /*#__PURE__*/function () {
307
357
  backwardTween.onComplete(function () {
308
358
  _this3.isAnimation = false;
309
359
  _this3.contineMove();
360
+ currentAnchor.traverse(function (child) {
361
+ if (child.name === 'cylinder') child.material = new MeshBasicMaterial({
362
+ color: new Color('#cdccca')
363
+ });else child.material = new MeshBasicMaterial({
364
+ color: new Color('#fff')
365
+ });
366
+ });
310
367
  setTimeout(function () {
311
368
  _this3.isLock = false;
312
369
  }, 500);
@@ -1 +1 @@
1
- {"version":3,"names":["Clock","EdgesGeometry","Group","LineBasicMaterial","LineCurve3","LineSegments","Matrix4","ModelLoader","Quaternion","Vector3","use","utils","Css2DPoi","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","isCheck","targetProgresspoints","modelLoader","InspectionObject","inspection","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","css2d","set","visible","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","copy","clone","add","rotation","z","getSportsProgress","isLock","stop","checkAnimation","group","minCamera","y","rotateY","Math","PI","model","traverse","child","layers","enable","gobal","curve","loadModel","control","moveWithLine","Event","Success","undefined","percentage","getProgress","targetMesh","updateMatrixWorld","localForward","worldForward","applyQuaternion","normalize","target","direction","sub","setFromUnitVectors","dotProduct","dot","angleRadians","acos","angleDegrees","flipQuaternion","setFromAxisAngle","multiply","lastFromPositin","currentPositin","targetPosition","vTo","vFrom","Promise","resolve","emitter","on","data","progress","isAnimation","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","pipeline","realModl","contineMove","setTimeout","rotationMatrix","startQuaternion","up","setFromRotationMatrix","forwardTween","t","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","name","Number","finirMaterialV2","type","material","lineSegments","geometry","subscription","then","start","off","currentPosition","targetProgress","startRotate","upCurve","x","upControl","loop","lookat","addEventListener","tempCurve","generateTempPath","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","getPointAt","setProgress","contine","speed","setSpeed","emit"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera, Mesh, ShaderMaterial } from '@anov/3d-core'\nimport { BoxGeometry, Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, MeshBasicMaterial, ModelLoader, Quaternion, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, 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 { invertMap } from '../handle'\nimport { isCheck, targetProgresspoints } from './lineData'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private tempLine\n private isLock = false\n private isAnimation = false\n css2d: Css2DPoi\n\n constructor(inspection) {\n this.inspection = inspection\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 const css2d = new Css2DPoi(img2)\n\n css2d.position.set(0, 0, 0)\n css2d.visible = false\n\n poi.scale.set(100, 40, 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\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 box = new Mesh(new BoxGeometry(10, 10, 10), new MeshBasicMaterial({ color: 0xFF0000 }))\n\n const group = new Group()\n group.add(glb.scene)\n group.add(poi)\n group.add(this.inspection.minCamera)\n\n // box.scale.set(0.1, 0.1, 0.1)\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 5\n this.inspection.minCamera.position.y += 5\n this.inspection.minCamera.rotateY(Math.PI)\n\n this.model = group\n\n glb.scene.scale.set(5, 5, 5)\n\n glb.scene.traverse((child) => {\n child.layers.enable(2)\n })\n\n this.inspection.gobal.scene.add(this.model)\n this.inspection.gobal.scene.add(css2d)\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\n use.useframe(() => {\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress,\n })\n })\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n private getTargetQuaternion(targetMesh: Group) {\n targetMesh.updateMatrixWorld(true)\n const localForward = new Vector3(0, 0, -1)\n const worldForward = localForward.applyQuaternion(targetMesh.quaternion.clone()).normalize()\n\n const target = targetMesh.position.clone()\n const direction = target.sub(this.model.position).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(worldForward, direction)\n\n const dotProduct = worldForward.dot(direction)\n const angleRadians = Math.acos(dotProduct)\n const angleDegrees = angleRadians * (180 / Math.PI)\n\n // todo: some problem\n if (angleDegrees < 60) {\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n }\n }\n\n private getTargetQuaternionV2(lastFromPositin: Vector3, currentPositin: Vector3, targetPosition: Vector3) {\n const vTo = targetPosition.clone().sub(currentPositin).normalize()\n const vFrom = currentPositin.clone().sub(lastFromPositin).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(vFrom, vTo)\n\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n\n return targetQuaternion\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 setTimeout(() => {\n const rotationMatrix = new Matrix4()\n\n const targetQuaternion = new Quaternion()\n const startQuaternion = this.model.quaternion.clone()\n\n rotationMatrix.lookAt(targetMesh.position, 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)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24 || Number(key) === 0.40) {\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 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)\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 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 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 currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 50, { loop: false, lookat: false })\n\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\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.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 utils.emitter.emit('continue', true)\n }\n\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
1
+ {"version":3,"names":["Clock","Color","EdgesGeometry","Group","LineBasicMaterial","LineCurve3","LineSegments","Matrix4","Mesh","MeshBasicMaterial","ModelLoader","Quaternion","ShaderMaterial","TubeGeometry","Vector3","use","utils","Css2DPoi","SpritePoi","Tween","createFinirMaterial","usePath","MessageType","sendToMessage","EMessageStatus","fragmentShader","vertexShader","isCheck","targetProgresspoints","modelLoader","InspectionObject","inspection","targetQuaternion","mesh","cb","clock","quaternion","equals","animation","useframe","delta","getDelta","step","rotateTowards","loadGLTF","glb","div","document","createElement","style","position","img","src","span","innerText","top","left","transform","color","fontSize","fontWeight","appendChild","poi","width","height","img2","css2d","set","visible","scale","fly1","scene","getObjectByName","fly2","fly3","fly4","copy","clone","add","rotation","z","getSportsProgress","isLock","stop","checkAnimation","group","minCamera","y","rotateY","Math","PI","model","traverse","child","layers","enable","gobal","curve","loadModel","control","moveWithLine","groundCurve","walkCurve","getWalkCurve","isHide","walkCurveMesh","points","length","removeFromParent","geometry","dispose","tube","transparent","uniforms","alpha","value","Event","Success","undefined","percentage","getProgress","targetMesh","updateMatrixWorld","localForward","worldForward","applyQuaternion","normalize","target","direction","sub","setFromUnitVectors","dotProduct","dot","angleRadians","acos","angleDegrees","flipQuaternion","setFromAxisAngle","multiply","lastFromPositin","currentPositin","targetPosition","vTo","vFrom","Promise","resolve","emitter","on","data","progress","isAnimation","key","Object","keys","find","p","num","parseFloat","targetMeshId","lookAt","pipeline","realModl","contineMove","setTimeout","currentAnchor","anchorObject","get","name","material","rotationMatrix","startQuaternion","up","setFromRotationMatrix","forwardTween","t","to","onUpdate","obj","slerp","backwardTween","onComplete","finirMesh","Number","finirMaterialV2","type","lineSegments","subscription","then","start","off","currentPosition","targetProgress","startRotate","upCurve","x","upControl","loop","lookat","addEventListener","tempCurve","generateTempPath","tempControl","lastPosition","downCurve","downControl","rotationMatrix2","targetQuaternion2","targetPosition2","getPointAt","setProgress","contine","speed","setSpeed","emit"],"sources":["../../../../src/factory/unit/inspection/InspectionObject.ts"],"sourcesContent":["import type { Camera } from '@anov/3d-core'\nimport { BoxGeometry, Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, ModelLoader, Quaternion, ShaderChunk, ShaderMaterial, TubeGeometry, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, 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 { invertMap } from '../handle'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { isCheck, targetProgresspoints } from './lineData'\n\nconst modelLoader = new ModelLoader()\n\nclass InspectionObject {\n model\n private inspection\n private control\n private tempLine\n private isLock = false\n private isAnimation = false\n walkCurveMesh\n css2d: Css2DPoi\n\n constructor(inspection) {\n this.inspection = inspection\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 const css2d = new Css2DPoi(img2)\n\n css2d.position.set(0, 0, 0)\n css2d.visible = false\n\n poi.scale.set(100, 40, 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\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 box = new Mesh(new BoxGeometry(10, 10, 10), new MeshBasicMaterial({ color: 0xFF0000 }))\n\n const group = new Group()\n group.add(glb.scene)\n group.add(poi)\n group.add(this.inspection.minCamera)\n\n // box.scale.set(0.1, 0.1, 0.1)\n\n this.inspection.minCamera.position.copy(glb.scene.position)\n this.inspection.minCamera.position.z -= 5\n this.inspection.minCamera.position.y += 5\n this.inspection.minCamera.rotateY(Math.PI)\n\n this.model = group\n\n glb.scene.scale.set(5, 5, 5)\n\n glb.scene.traverse((child) => {\n child.layers.enable(2)\n })\n\n this.inspection.gobal.scene.add(this.model)\n this.inspection.gobal.scene.add(css2d)\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 let walkCurve = this.control.getWalkCurve()\n let walkCurveMesh\n\n use.useframe(() => {\n if (!this.inspection.isHide) {\n walkCurve = this.control.getWalkCurve()\n\n if (walkCurveMesh) {\n if (walkCurve && walkCurve.points.length > 2) {\n walkCurveMesh.removeFromParent()\n walkCurveMesh.geometry.dispose()\n walkCurveMesh.geometry = new TubeGeometry(walkCurve, 10000, 3, 2, false)\n this.inspection.gobal.scene.add(walkCurveMesh)\n }\n else {\n walkCurveMesh.removeFromParent()\n walkCurveMesh.geometry.dispose()\n }\n }\n else {\n if (walkCurve.points.length > 2) {\n const tube = new TubeGeometry(walkCurve, 10000, 3, 2, false)\n walkCurveMesh = new Mesh(tube, new ShaderMaterial({\n transparent: true,\n uniforms: {\n alpha: {\n value: 0.9,\n },\n },\n vertexShader,\n fragmentShader,\n }))\n this.walkCurveMesh = walkCurveMesh\n this.inspection.gobal.scene.add(walkCurveMesh)\n }\n }\n }\n else {\n if (walkCurveMesh) {\n walkCurveMesh.removeFromParent()\n walkCurveMesh.geometry.dispose()\n }\n }\n\n sendToMessage(MessageType.Event, 'onInspectProgress', EMessageStatus.Success, undefined, {\n percentage: this.getSportsProgress,\n })\n })\n }\n\n get getSportsProgress() {\n if (!this.control)\n return 0\n\n return this.control.getProgress()\n }\n\n private getTargetQuaternion(targetMesh: Group) {\n targetMesh.updateMatrixWorld(true)\n const localForward = new Vector3(0, 0, -1)\n const worldForward = localForward.applyQuaternion(targetMesh.quaternion.clone()).normalize()\n\n const target = targetMesh.position.clone()\n const direction = target.sub(this.model.position).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(worldForward, direction)\n\n const dotProduct = worldForward.dot(direction)\n const angleRadians = Math.acos(dotProduct)\n const angleDegrees = angleRadians * (180 / Math.PI)\n\n // todo: some problem\n if (angleDegrees < 60) {\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n }\n }\n\n private getTargetQuaternionV2(lastFromPositin: Vector3, currentPositin: Vector3, targetPosition: Vector3) {\n const vTo = targetPosition.clone().sub(currentPositin).normalize()\n const vFrom = currentPositin.clone().sub(lastFromPositin).normalize()\n\n const targetQuaternion = new Quaternion().setFromUnitVectors(vFrom, vTo)\n\n const flipQuaternion = new Quaternion()\n flipQuaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI)\n targetQuaternion.multiply(flipQuaternion)\n\n return targetQuaternion\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 rotationMatrix.lookAt(targetMesh.position, 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)\n (this.inspection.minCamera as Camera).layers.set(2)\n\n if (Number(key) === 0.15 || Number(key) === 0.24 || Number(key) === 0.40) {\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 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)\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 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 currentPosition = this.model.position\n const upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z))\n const upControl = utils.moveWithLine(this.model, upCurve, 10, { loop: false, lookat: targetPosition })\n\n upControl.addEventListener('end', () => {\n const tempCurve = this.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z))\n const tempControl = utils.moveWithLine(this.model, tempCurve, 50, { loop: false, lookat: false })\n\n tempControl.addEventListener('end', () => {\n const lastPosition = this.model.position\n const downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z))\n const downControl = utils.moveWithLine(this.model, downCurve, 10, { loop: false, lookat: false })\n\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.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 utils.emitter.emit('continue', true)\n }\n\n dispose() { }\n}\n\nexport default InspectionObject"],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import type { Object3D } from '@anov/3d-core';
2
- import { PerspectiveCamera } from '@anov/3d-core';
2
+ import { Group, PerspectiveCamera } from '@anov/3d-core';
3
3
  import type Factory3D from '../../3d';
4
4
  declare class Inspection {
5
- private gobal;
5
+ gobal: Factory3D;
6
6
  inspectionObject: any;
7
- private curve;
8
- private line;
9
- private viewElement;
7
+ curve: any;
8
+ groundCurve: any;
9
+ line: Group;
10
+ viewElement: HTMLDivElement;
11
+ isHide: boolean;
12
+ anchorObject: Map<string, Group>;
13
+ anchorGroup: Group;
10
14
  minCamera: PerspectiveCamera;
11
15
  InspectionPathObject: Object3D;
12
16
  constructor(gobal: Factory3D);
@@ -19,6 +23,7 @@ declare class Inspection {
19
23
  * make ground road
20
24
  */
21
25
  private makeGroundRoad;
26
+ private anchorMesh;
22
27
  private setInspectionCamera;
23
28
  get getPathLength(): any;
24
29
  startInspection(line: any): void;
@@ -5,10 +5,12 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
5
5
  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; }
6
6
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
7
  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); }
8
- import { Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, RepeatWrapping, TextureLoader, TubeGeometry, use } from '@anov/3d-core';
8
+ import { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, RepeatWrapping, ShaderMaterial, TextureLoader, TubeGeometry, use } from '@anov/3d-core';
9
9
  import { RoundLineGeometry, initPostEffects } from '@anov/3d-ability';
10
10
  import { usePath } from "../../3d";
11
- import { flyLinePoints, groundLinePoints } from "./lineData";
11
+ import fragmentShader from "../glsl/highway/fragmentShader";
12
+ import vertexShader from "../glsl/highway/vertexShader";
13
+ import { flyLinePoints, groundLinePoints, targetProgresspoints } from "./lineData";
12
14
  import InspectionObject from "./InspectionObject";
13
15
  var Inspection = /*#__PURE__*/function () {
14
16
  function Inspection(gobal) {
@@ -17,8 +19,12 @@ var Inspection = /*#__PURE__*/function () {
17
19
  _defineProperty(this, "gobal", void 0);
18
20
  _defineProperty(this, "inspectionObject", void 0);
19
21
  _defineProperty(this, "curve", void 0);
22
+ _defineProperty(this, "groundCurve", void 0);
20
23
  _defineProperty(this, "line", void 0);
21
24
  _defineProperty(this, "viewElement", void 0);
25
+ _defineProperty(this, "isHide", true);
26
+ _defineProperty(this, "anchorObject", new Map());
27
+ _defineProperty(this, "anchorGroup", void 0);
22
28
  _defineProperty(this, "minCamera", void 0);
23
29
  _defineProperty(this, "InspectionPathObject", void 0);
24
30
  this.gobal = gobal;
@@ -69,24 +75,49 @@ var Inspection = /*#__PURE__*/function () {
69
75
  texture.wrapS = RepeatWrapping;
70
76
  texture.wrapT = MirroredRepeatWrapping;
71
77
  texture.repeat.set(1, 2);
72
- var tube = new TubeGeometry(groundLine.curve, 10000, 6, 2, false);
73
- var mesh = new Mesh(tube, new MeshBasicMaterial({
74
- side: 2,
75
- map: texture,
76
- transparent: true
77
- }));
78
- var mesh2 = new Mesh(tube, new MeshBasicMaterial({
79
- side: 2
78
+ var tube = new TubeGeometry(groundLine.curve, 10000, 4, 2, false);
79
+ var mesh2 = new Mesh(tube, new ShaderMaterial({
80
+ transparent: true,
81
+ uniforms: {
82
+ alpha: {
83
+ value: 0.2
84
+ }
85
+ },
86
+ vertexShader: vertexShader,
87
+ fragmentShader: fragmentShader
80
88
  }));
81
89
  var groundGroup = new Group();
82
90
  groundGroup.add(mesh2);
83
- groundGroup.add(mesh);
84
91
  groundGroup.position.y = 3;
92
+ this.groundCurve = groundLine.curve;
85
93
  this.line = groundGroup;
86
94
  this.gobal.scene.add(groundGroup);
87
- use.useframe(function () {
88
- texture.offset.x -= -0.009;
95
+ this.anchorMesh();
96
+ }
97
+ }, {
98
+ key: "anchorMesh",
99
+ value: function anchorMesh() {
100
+ var _this2 = this;
101
+ var anchorGroup = new Group();
102
+ Object.keys(targetProgresspoints).forEach(function (key) {
103
+ var demoPoints = _this2.groundCurve.getPointAt(Number(key));
104
+ var singleAnchorGroup = new Group();
105
+ var cylinder = new Mesh(new CylinderGeometry(10, 10, 2, 64), new MeshBasicMaterial({
106
+ color: new Color('#cdccca')
107
+ }));
108
+ var cylinder1 = new Mesh(new CylinderGeometry(5, 5, 1, 64), new MeshBasicMaterial({
109
+ color: new Color('#fff')
110
+ }));
111
+ cylinder1.position.y = 2;
112
+ cylinder.name = 'cylinder';
113
+ cylinder1.name = 'cylinder1';
114
+ singleAnchorGroup.add(cylinder, cylinder1);
115
+ singleAnchorGroup.position.set(demoPoints.x, demoPoints.y + 5, demoPoints.z);
116
+ _this2.anchorObject.set(targetProgresspoints[key].name, singleAnchorGroup);
117
+ anchorGroup.add(singleAnchorGroup);
89
118
  });
119
+ this.anchorGroup = anchorGroup;
120
+ this.gobal.scene.add(anchorGroup);
90
121
  }
91
122
  }, {
92
123
  key: "setInspectionCamera",
@@ -95,7 +126,7 @@ var Inspection = /*#__PURE__*/function () {
95
126
  if (this.minCamera) {
96
127
  minCamera = this.minCamera;
97
128
  } else {
98
- minCamera = new PerspectiveCamera(90, window.innerWidth / window.innerHeight, 0.1, 1000);
129
+ minCamera = new PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
99
130
  }
100
131
  this.gobal.scene.cutoutCamera = minCamera;
101
132
  this.gobal.scene.cutoutArea = {
@@ -131,24 +162,28 @@ var Inspection = /*#__PURE__*/function () {
131
162
  }, {
132
163
  key: "show",
133
164
  value: function show() {
165
+ this.isHide = false;
134
166
  document.body.appendChild(this.viewElement);
135
167
  this.gobal.scene.cutout = true;
168
+ this.anchorGroup.visible = true;
136
169
  this.line.visible = true;
137
170
  this.inspectionObject.model && (this.inspectionObject.model.visible = true);
138
171
  }
139
172
  }, {
140
173
  key: "hide",
141
174
  value: function hide() {
142
- var _this2 = this;
175
+ var _this3 = this;
176
+ this.isHide = true;
143
177
  if (this.viewElement && document.body.contains(this.viewElement)) document.body.removeChild(this.viewElement);
144
178
  this.gobal.scene.cutout = false;
145
179
  this.gobal.scene.cutMain(this.gobal.scene.renderer);
146
180
  this.line.visible = false;
181
+ this.anchorGroup.visible = false;
147
182
 
148
183
  // this.addeHighSelected([])
149
184
  var check = use.useframe(function () {
150
- if (_this2.inspectionObject.model) {
151
- _this2.inspectionObject.model.visible = false;
185
+ if (_this3.inspectionObject.model) {
186
+ _this3.inspectionObject.model.visible = false;
152
187
  check();
153
188
  }
154
189
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Group","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","PerspectiveCamera","RepeatWrapping","TextureLoader","TubeGeometry","use","RoundLineGeometry","initPostEffects","usePath","flyLinePoints","groundLinePoints","InspectionObject","Inspection","gobal","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","viewElement","document","createElement","style","position","width","height","top","cursor","addEventListener","toggleView","flyLine","radius","close","groundLine","texture","load","rotation","Math","PI","wrapS","wrapT","repeat","set","tube","mesh","side","map","transparent","mesh2","groundGroup","add","y","line","scene","useframe","offset","x","minCamera","window","innerWidth","innerHeight","cutoutCamera","cutoutArea","layers","renderer","type","getLength","startMove","targetProgress","targetPosition","getPointAt","gotoTarget","body","appendChild","cutout","visible","model","contains","removeChild","cutMain","check"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, RepeatWrapping, TextureLoader, TubeGeometry, use } from '@anov/3d-core'\nimport { RoundLineGeometry, addColorifyPass, createHighSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport { usePath } from '../../3d'\nimport { flyLinePoints, groundLinePoints } from './lineData'\nimport InspectionObject from './InspectionObject'\n\nclass Inspection {\n private gobal: Factory3D\n inspectionObject\n private curve\n private line: Group\n\n private viewElement: HTMLDivElement\n\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.generateInspectionPath()\n this.makeGroundRoad()\n this.setInspectionCamera()\n\n this.inspectionObject = new InspectionObject(this)\n\n this.startInspection(this.curve)\n this.hide()\n\n const viewElement = document.createElement('div')\n\n viewElement.style.position = 'absolute'\n viewElement.style.width = '200px'\n viewElement.style.height = '200px'\n viewElement.style.top = '100px'\n viewElement.style.cursor = 'pointer'\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\n })\n\n this.viewElement = viewElement\n }\n\n /**\n * generate inspection path\n * @param linePosition\n */\n private generateInspectionPath() {\n const flyLine = new RoundLineGeometry(flyLinePoints, {\n radius: 20,\n close: true,\n })\n\n this.curve = flyLine.curve\n }\n\n /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\n\n const texture = new TextureLoader().load(`${usePath}roll.png`)\n texture.rotation = Math.PI\n texture.wrapS = RepeatWrapping\n texture.wrapT = MirroredRepeatWrapping\n texture.repeat.set(1, 2)\n\n const tube = new TubeGeometry(groundLine.curve, 10000, 6, 2, false)\n const mesh = new Mesh(tube, new MeshBasicMaterial({ side: 2, map: texture, transparent: true }))\n const mesh2 = new Mesh(tube, new MeshBasicMaterial({ side: 2 }))\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh2)\n groundGroup.add(mesh)\n groundGroup.position.y = 3\n\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n\n use.useframe(() => {\n texture.offset.x -= -0.009\n })\n }\n\n private setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(90,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n this.gobal.scene.cutoutArea = { x: 0, y: 0, width: 200, height: 200 }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n\n this.minCamera.layers.set(0)\n\n initPostEffects(this.gobal.scene.scene, this.gobal.scene.renderer, this.gobal.scene.cutoutCamera, {\n type: 'sub',\n })\n }\n\n get getPathLength() {\n return this.curve.getLength()\n }\n\n startInspection(line) {\n this.setInspectionCamera()\n this.inspectionObject.startMove(line)\n }\n\n goToInspectionTarget(targetProgress: number) {\n const targetPosition = this.curve.getPointAt(targetProgress)\n this.inspectionObject.gotoTarget(targetPosition, targetProgress)\n }\n\n show() {\n document.body.appendChild(this.viewElement)\n this.gobal.scene.cutout = true\n this.line.visible = true\n this.inspectionObject.model && (this.inspectionObject.model.visible = true)\n }\n\n hide() {\n if (this.viewElement && document.body.contains(this.viewElement))\n document.body.removeChild(this.viewElement)\n\n this.gobal.scene.cutout = false\n this.gobal.scene.cutMain(this.gobal.scene.renderer)\n this.line.visible = false\n\n // this.addeHighSelected([])\n const check = use.useframe(() => {\n if (this.inspectionObject.model) {\n this.inspectionObject.model.visible = false\n check()\n }\n })\n }\n}\n\nexport default Inspection"],"mappings":"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"}
1
+ {"version":3,"names":["Color","CylinderGeometry","Group","Mesh","MeshBasicMaterial","MirroredRepeatWrapping","PerspectiveCamera","RepeatWrapping","ShaderMaterial","TextureLoader","TubeGeometry","use","RoundLineGeometry","initPostEffects","usePath","fragmentShader","vertexShader","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","viewElement","document","createElement","style","position","width","height","top","cursor","addEventListener","toggleView","flyLine","radius","close","groundLine","texture","load","rotation","Math","PI","wrapS","wrapT","repeat","set","tube","mesh2","transparent","uniforms","alpha","value","groundGroup","add","y","groundCurve","line","scene","anchorMesh","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","color","cylinder1","name","x","z","anchorObject","minCamera","window","innerWidth","innerHeight","cutoutCamera","cutoutArea","layers","renderer","type","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, TubeGeometry, use } from '@anov/3d-core'\nimport { RoundLineGeometry, addColorifyPass, createHighSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport { usePath } from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\n\nclass Inspection {\n gobal: Factory3D\n inspectionObject\n curve\n groundCurve\n line: Group\n viewElement: HTMLDivElement\n isHide = true\n anchorObject: Map<string, Group> = new Map()\n anchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.generateInspectionPath()\n this.makeGroundRoad()\n this.setInspectionCamera()\n\n this.inspectionObject = new InspectionObject(this)\n\n this.startInspection(this.curve)\n this.hide()\n\n const viewElement = document.createElement('div')\n\n viewElement.style.position = 'absolute'\n viewElement.style.width = '200px'\n viewElement.style.height = '200px'\n viewElement.style.top = '100px'\n viewElement.style.cursor = 'pointer'\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\n })\n\n this.viewElement = viewElement\n }\n\n /**\n * generate inspection path\n * @param linePosition\n */\n private generateInspectionPath() {\n const flyLine = new RoundLineGeometry(flyLinePoints, {\n radius: 20,\n close: true,\n })\n\n this.curve = flyLine.curve\n }\n\n /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\n\n const texture = new TextureLoader().load(`${usePath}roll.png`)\n texture.rotation = Math.PI\n texture.wrapS = RepeatWrapping\n texture.wrapT = MirroredRepeatWrapping\n texture.repeat.set(1, 2)\n\n const tube = new TubeGeometry(groundLine.curve, 10000, 4, 2, false)\n const mesh2 = new Mesh(tube, new ShaderMaterial({\n transparent: true,\n uniforms: {\n alpha: {\n value: 0.2,\n },\n },\n vertexShader,\n fragmentShader,\n }))\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n\n this.anchorMesh()\n }\n\n private anchorMesh() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const singleAnchorGroup = new Group()\n\n const cylinder = new Mesh(new CylinderGeometry(10, 10, 2, 64), new MeshBasicMaterial({ color: new Color('#cdccca') }))\n const cylinder1 = new Mesh(new CylinderGeometry(5, 5, 1, 64), new MeshBasicMaterial({ color: new Color('#fff') }))\n cylinder1.position.y = 2\n\n cylinder.name = 'cylinder'\n cylinder1.name = 'cylinder1'\n\n singleAnchorGroup.add(cylinder, cylinder1)\n singleAnchorGroup.position.set(demoPoints.x, demoPoints.y + 5, demoPoints.z)\n\n this.anchorObject.set(targetProgresspoints[key].name, singleAnchorGroup)\n anchorGroup.add(singleAnchorGroup)\n })\n this.anchorGroup = anchorGroup\n this.gobal.scene.add(anchorGroup)\n }\n\n private setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(60,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n this.gobal.scene.cutoutArea = { x: 0, y: 0, width: 200, height: 200 }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n\n this.minCamera.layers.set(0)\n\n initPostEffects(this.gobal.scene.scene, this.gobal.scene.renderer, this.gobal.scene.cutoutCamera, {\n type: 'sub',\n })\n }\n\n get getPathLength() {\n return this.curve.getLength()\n }\n\n startInspection(line) {\n this.setInspectionCamera()\n this.inspectionObject.startMove(line)\n }\n\n goToInspectionTarget(targetProgress: number) {\n const targetPosition = this.curve.getPointAt(targetProgress)\n this.inspectionObject.gotoTarget(targetPosition, targetProgress)\n }\n\n show() {\n this.isHide = false\n\n document.body.appendChild(this.viewElement)\n this.gobal.scene.cutout = true\n this.anchorGroup.visible = true\n this.line.visible = true\n this.inspectionObject.model && (this.inspectionObject.model.visible = true)\n }\n\n hide() {\n this.isHide = true\n\n if (this.viewElement && document.body.contains(this.viewElement))\n document.body.removeChild(this.viewElement)\n\n this.gobal.scene.cutout = false\n this.gobal.scene.cutMain(this.gobal.scene.renderer)\n this.line.visible = false\n this.anchorGroup.visible = false\n\n // this.addeHighSelected([])\n const check = use.useframe(() => {\n if (this.inspectionObject.model) {\n this.inspectionObject.model.visible = false\n check()\n }\n })\n }\n}\n\nexport default Inspection"],"mappings":"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"}
@@ -5,6 +5,6 @@ export declare enum SceneStyle {
5
5
  export declare enum SceneTag {
6
6
  'overview' = "Overview",
7
7
  'people-management' = "Person",
8
- 'smart-inspection' = "smart-inspection",
9
- 'security-operation' = "security-operation"
8
+ 'smart-inspection' = "Inspection",
9
+ 'security-operation' = "Maintenance"
10
10
  }
@@ -7,7 +7,7 @@ export var SceneTag;
7
7
  (function (SceneTag) {
8
8
  SceneTag["overview"] = "Overview";
9
9
  SceneTag["people-management"] = "Person";
10
- SceneTag["smart-inspection"] = "smart-inspection";
11
- SceneTag["security-operation"] = "security-operation";
10
+ SceneTag["smart-inspection"] = "Inspection";
11
+ SceneTag["security-operation"] = "Maintenance";
12
12
  })(SceneTag || (SceneTag = {}));
13
13
  //# sourceMappingURL=constant.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SceneStyle","SceneTag"],"sources":["../../../src/factory/utils/constant.ts"],"sourcesContent":["export enum SceneStyle {\n 'real',\n 'tech',\n}\n\nexport enum SceneTag {\n 'overview' = 'Overview',\n 'people-management' = 'Person',\n 'smart-inspection' = 'smart-inspection',\n 'security-operation' = 'security-operation',\n}"],"mappings":"AAAA,WAAYA,UAAU;AAGrB,WAHWA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;AAAA,GAAVA,UAAU,KAAVA,UAAU;AAKtB,WAAYC,QAAQ;AAKnB,WALWA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ"}
1
+ {"version":3,"names":["SceneStyle","SceneTag"],"sources":["../../../src/factory/utils/constant.ts"],"sourcesContent":["export enum SceneStyle {\n 'real',\n 'tech',\n}\n\nexport enum SceneTag {\n 'overview' = 'Overview',\n 'people-management' = 'Person',\n 'smart-inspection' = 'Inspection',\n 'security-operation' = 'Maintenance',\n}"],"mappings":"AAAA,WAAYA,UAAU;AAGrB,WAHWA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;AAAA,GAAVA,UAAU,KAAVA,UAAU;AAKtB,WAAYC,QAAQ;AAKnB,WALWA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -21,8 +21,8 @@
21
21
  "anov-heat-map": "^0.0.1",
22
22
  "localforage": "^1.10.0",
23
23
  "uuid": "^9.0.1",
24
- "@anov/3d-core": "^0.0.7",
25
- "@anov/3d-ability": "^0.0.7"
24
+ "@anov/3d-ability": "^0.0.7",
25
+ "@anov/3d-core": "^0.0.7"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/uuid": "^9.0.7"