@anov/3d 0.0.133 → 0.0.136

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 (62) hide show
  1. package/dist/anov3d.d.ts +2 -2
  2. package/dist/anov3d.js +57 -74
  3. package/dist/anov3d.js.map +1 -1
  4. package/dist/applicationApi.js +58 -21
  5. package/dist/applicationApi.js.map +1 -1
  6. package/dist/factory/3d.js +20 -4
  7. package/dist/factory/3d.js.map +1 -1
  8. package/dist/factory/unit/CameraPoi.js +17 -5
  9. package/dist/factory/unit/CameraPoi.js.map +1 -1
  10. package/dist/factory/unit/cylinder.js +17 -88
  11. package/dist/factory/unit/cylinder.js.map +1 -1
  12. package/dist/factory/unit/index.js +16 -5
  13. package/dist/factory/unit/index.js.map +1 -1
  14. package/dist/module/camera/index.js +15 -3
  15. package/dist/module/camera/index.js.map +1 -1
  16. package/dist/module/entity/dispose.d.ts +6 -0
  17. package/dist/module/entity/dispose.js +38 -0
  18. package/dist/module/entity/dispose.js.map +1 -0
  19. package/dist/module/entity/hybridList.d.ts +11 -0
  20. package/dist/module/entity/hybridList.js +68 -0
  21. package/dist/module/entity/hybridList.js.map +1 -0
  22. package/dist/module/entity/index.d.ts +68 -0
  23. package/dist/module/entity/index.js +389 -0
  24. package/dist/module/entity/index.js.map +1 -0
  25. package/dist/module/entity/poi/constant.d.ts +48 -0
  26. package/dist/module/entity/poi/constant.js +54 -0
  27. package/dist/module/entity/poi/constant.js.map +1 -0
  28. package/dist/module/entity/poi/index.d.ts +13 -0
  29. package/dist/module/entity/poi/index.js +50 -0
  30. package/dist/module/entity/poi/index.js.map +1 -0
  31. package/dist/module/entity/poi/label.d.ts +9 -0
  32. package/dist/module/entity/poi/label.js +46 -0
  33. package/dist/module/entity/poi/label.js.map +1 -0
  34. package/dist/module/entity/poi/resource.d.ts +4 -0
  35. package/dist/module/entity/poi/resource.js +5 -0
  36. package/dist/module/entity/poi/resource.js.map +1 -0
  37. package/dist/module/entity/poi/title.d.ts +77 -0
  38. package/dist/module/entity/poi/title.js +265 -0
  39. package/dist/module/entity/poi/title.js.map +1 -0
  40. package/dist/module/entity/poi/type.d.ts +88 -0
  41. package/dist/module/entity/poi/type.js +8 -0
  42. package/dist/module/entity/poi/type.js.map +1 -0
  43. package/dist/module/entity/strategy.d.ts +3 -0
  44. package/dist/module/entity/strategy.js +27 -0
  45. package/dist/module/entity/strategy.js.map +1 -0
  46. package/dist/module/entity/utils.d.ts +4 -0
  47. package/dist/module/entity/utils.js +5 -0
  48. package/dist/module/entity/utils.js.map +1 -0
  49. package/dist/module/eventBus/index.d.ts +6 -3
  50. package/dist/module/eventBus/index.js +10 -1
  51. package/dist/module/eventBus/index.js.map +1 -1
  52. package/dist/module/model/index.d.ts +1 -1
  53. package/dist/module/model/index.js +1 -1
  54. package/dist/module/model/index.js.map +1 -1
  55. package/dist/module/scene/index.js +25 -5
  56. package/dist/module/scene/index.js.map +1 -1
  57. package/dist/sdkEntry.js +4 -0
  58. package/dist/sdkEntry.js.map +1 -1
  59. package/dist/utils/messageFn.d.ts +8 -1
  60. package/dist/utils/messageFn.js +7 -2
  61. package/dist/utils/messageFn.js.map +1 -1
  62. package/package.json +5 -5
@@ -6,11 +6,10 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
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
8
  import { BoxGeometry, Color, Group, Mesh, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core';
9
- import { EAnimationType, SpritePoi } from '@anov/3d-ability';
9
+ import createFontMesh from "../utils/fontMesh";
10
10
  import { SceneStyle, SceneTag } from "../utils/constant";
11
11
  import regionMap from "../regionData";
12
12
  import { collisionDetection } from "../utils/areaBoundingBox";
13
- import { usePath } from "../3d";
14
13
  import { lookAtOnYAxis } from "../utils";
15
14
  var emitter = utils.emitter;
16
15
  var cylinderData = [{
@@ -112,60 +111,6 @@ var cylinderData = [{
112
111
  position: [567.413903, 236.090124, 82.586741]
113
112
  }
114
113
  }];
115
- var getDom = function getDom(data) {
116
- var dom = document.createElement('div');
117
- var wordLength = data.areaLabel.length + 1;
118
- Object.assign(dom.style, {
119
- fontSize: '22px',
120
- backgroundImage: "url(".concat(usePath, "p2text.png)"),
121
- backgroundSize: '100% 100%',
122
- backgroundRepeat: 'no-repeat',
123
- display: 'flex',
124
- justifyContent: 'center',
125
- alignItems: 'flex-start',
126
- textAlign: 'center',
127
- color: '#fff',
128
- pointerEvents: 'auto',
129
- cursor: 'pointer',
130
- height: '40px',
131
- minWidth: '180px',
132
- width: "".concat(wordLength * (wordLength > 6 ? 44 : 50), "px"),
133
- padding: '6px 0 0 6px',
134
- position: 'relative'
135
- });
136
- var img = document.createElement('img');
137
- img.src = "".concat(usePath, "p2").concat(data.areaLabel, ".png");
138
- img.style.position = 'absolute';
139
- img.style.left = '15px';
140
- img.style.top = '11px';
141
- img.style.width = '20px';
142
- img.style.height = '20px';
143
- dom.appendChild(img);
144
- var label = document.createElement('span');
145
- label.style.marginLeft = '2px';
146
- label.style.marginRight = '2px';
147
- label.innerText = data.areaLabel;
148
- label.style.fontWeight = 'bold';
149
- label.style.fontFamily = 'YouSheBiaoTiHei3D';
150
- dom.appendChild(label);
151
- var label2 = document.createElement('span');
152
- label2.innerText = data.label.slice(0, data.label.length - 1);
153
- label2.style.fontWeight = 'bold';
154
- label2.style.fontSize = '30px';
155
- label2.style.color = 'yellow';
156
- label2.style.marginTop = '-8px';
157
- label2.style.marginLeft = '5px';
158
- label2.style.marginRight = '3px';
159
- dom.appendChild(label2);
160
- var label3 = document.createElement('span');
161
- label3.style.marginLeft = '2px';
162
- label3.innerText = data.label.slice(data.label.length - 1);
163
- label3.style.fontWeight = 'bold';
164
- label3.style.fontFamily = 'YouSheBiaoTiHei3D';
165
- label3.style.color = 'yellow';
166
- dom.appendChild(label3);
167
- return dom;
168
- };
169
114
  var CylinderManage = /*#__PURE__*/function () {
170
115
  function CylinderManage(gobal, options) {
171
116
  var _this = this;
@@ -216,11 +161,6 @@ var CylinderManage = /*#__PURE__*/function () {
216
161
  }).then(function () {
217
162
  emitter.emit('peoplemanagement-camera-enter', item);
218
163
  _this2.setVisible();
219
-
220
- // @ts-ignore
221
- _this2.gobal.regionPlane.planeMesh.forEach(function (mesh) {
222
- mesh.visible = false;
223
- });
224
164
  var currentGroup = _this2.cylinderMesh.get(item.belongTo);
225
165
  currentGroup.visible = false;
226
166
  _this2.currentoperate = item.belongTo;
@@ -253,34 +193,23 @@ var CylinderManage = /*#__PURE__*/function () {
253
193
  });
254
194
  _this2.cylinderMesh.set(item.belongTo, group);
255
195
  group.add(cylinder);
256
- var option = {
257
- animation: [{
258
- type: EAnimationType.grow,
259
- duration: 1
260
- }, {
261
- type: EAnimationType.fadeIn,
262
- duration: 0.2
263
- }]
264
- };
265
- var sprite = new SpritePoi(getDom(item), option);
266
- sprite.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height + 15, item.points[2]]));
267
- var fixScale = function fixScale(poi) {
268
- var _camera$position;
269
- var minDistance = 0.1;
270
- var maxDistance = 1000000;
271
- var _use$useScene = use.useScene(),
272
- camera = _use$useScene.camera;
273
- var distance = ((_camera$position = camera.position) === null || _camera$position === void 0 ? void 0 : _camera$position.distanceTo(poi.position)) || 0.1;
274
- var clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance));
275
- var scaleValue = clampedDistance * 0.12;
276
- poi.scale.copy(new Vector3(scaleValue * 1.2, scaleValue * 0.20, 1));
277
- };
278
- fixScale(sprite);
279
- use.useframe(function () {
280
- lookAtOnYAxis(sprite, globalObjectManage.camera.position);
196
+ var font = createFontMesh(item.label, {
197
+ position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]])
198
+ });
199
+ var font2 = createFontMesh(item.areaLabel, {
200
+ position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 25, item.points[2]])
201
+ });
202
+ var fontPromiseAll = Promise.all([font, font2]);
203
+ fontPromiseAll.then(function (meshArr) {
204
+ meshArr.forEach(function (mesh) {
205
+ mesh.geometry.center();
206
+ group.add(mesh);
207
+ use.useframe(function () {
208
+ lookAtOnYAxis(mesh, globalObjectManage.camera.position);
209
+ });
210
+ _this2.scene.add(group);
211
+ });
281
212
  });
282
- group.add(sprite);
283
- _this2.scene.add(group);
284
213
  });
285
214
  this.controlAddListener();
286
215
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","EAnimationType","SpritePoi","SceneStyle","SceneTag","regionMap","collisionDetection","usePath","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","areaLabel","camera","target","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","getDom","data","dom","document","createElement","wordLength","length","Object","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","textAlign","pointerEvents","cursor","minWidth","width","padding","img","src","left","top","appendChild","marginLeft","marginRight","innerText","fontWeight","fontFamily","label2","slice","marginTop","label3","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","emit","cameraRemoveListener","scene","option","forEach","item","cylinder","getMesh","group","name","visible","copy","fromArray","interactionManager","storeManagement","add","handleClick","real","cameraUtil","set","then","setVisible","regionPlane","planeMesh","mesh","currentGroup","cylinderMesh","plane","addEventListener","tag","highLightAreaId","hoverAreaId","districtLine","setHighLightLine","removeHighLightLine","animation","type","grow","duration","fadeIn","sprite","fixScale","minDistance","maxDistance","useScene","distance","distanceTo","clampedDistance","Math","max","min","scaleValue","scale","useframe","controlAddListener","bar","geometry","gradientMaterial","transparent","depthTest","uniforms","intensity","value","vertexShader","fragmentShader","rotateY","PI","cameraListenerHandle","controls","getDistance","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Float32BufferAttribute, Group, Mesh, MeshBasicMaterial, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport { EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle, SceneTag } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\nimport { usePath } from '../3d'\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n title: regionMap.reform.title,\n belongTo: regionMap.reform.id,\n area: regionMap.reform.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n areaLabel: '重整装置区',\n camera: {\n target: [\n -314.011126,\n 0.55002,\n -146.543503,\n ],\n position: [\n -312.394914,\n 257.245626,\n 47.197057,\n ],\n },\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n area: regionMap.reduction.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n areaLabel: '常减压装置区',\n camera: {\n target: [\n 31.316545,\n 0.550012,\n -130.972087,\n ],\n position: [\n 34.239022,\n 267.62292,\n 62.561665,\n ],\n },\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n area: regionMap.crudeOil.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n areaLabel: '原油罐区',\n camera: {\n target: [\n 353.973508,\n 0.550011,\n -125.345886,\n ],\n position: [\n 353.432421,\n 201.482934,\n 32.729098,\n ],\n },\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n area: regionMap.catalyticCracking.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n areaLabel: '催化裂化装置区',\n camera: {\n target: [\n -322.573001,\n 0.550014,\n 31.815163,\n ],\n position: [\n -320.957427,\n 257.144259,\n 225.47922,\n ],\n },\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n area: regionMap.hydrocrackingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n areaLabel: '加氢裂化装置区',\n camera: {\n target: [\n -307.049915,\n 0.550014,\n 168.905777,\n ],\n position: [\n -305.525588,\n 240.704876,\n 351.631836,\n ],\n },\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n area: regionMap.cokingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n areaLabel: '焦化装置区',\n camera: {\n target: [\n 92.780379,\n 0.550012,\n 106.726765,\n ],\n position: [\n 96.849312,\n 372.392759,\n 376.181734,\n ],\n },\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n area: regionMap.administrative.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n areaLabel: '办公区',\n camera: {\n target: [\n 416.932569,\n 0.550009,\n 85.100115,\n ],\n position: [\n 567.413903,\n 236.090124,\n 82.586741,\n ],\n },\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nconst getDom = (data) => {\n const dom = document.createElement('div')\n const wordLength = data.areaLabel.length + 1\n Object.assign(dom.style, {\n fontSize: '22px',\n backgroundImage: `url(${usePath}p2text.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: '40px',\n minWidth: '180px',\n width: `${(wordLength * (wordLength > 6 ? 44 : 50))}px`,\n padding: '6px 0 0 6px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}p2${data.areaLabel}.png`\n img.style.position = 'absolute'\n img.style.left = '15px'\n img.style.top = '11px'\n img.style.width = '20px'\n img.style.height = '20px'\n dom.appendChild(img)\n\n const label = document.createElement('span')\n label.style.marginLeft = '2px'\n label.style.marginRight = '2px'\n label.innerText = data.areaLabel\n label.style.fontWeight = 'bold'\n label.style.fontFamily = 'YouSheBiaoTiHei3D'\n dom.appendChild(label)\n\n const label2 = document.createElement('span')\n label2.innerText = (data.label as string).slice(0, data.label.length - 1)\n label2.style.fontWeight = 'bold'\n label2.style.fontSize = '30px'\n label2.style.color = 'yellow'\n label2.style.marginTop = '-8px'\n label2.style.marginLeft = '5px'\n label2.style.marginRight = '3px'\n dom.appendChild(label2)\n\n const label3 = document.createElement('span')\n label3.style.marginLeft = '2px'\n label3.innerText = data.label.slice(data.label.length - 1)\n label3.style.fontWeight = 'bold'\n label3.style.fontFamily = 'YouSheBiaoTiHei3D'\n label3.style.color = 'yellow'\n dom.appendChild(label3)\n return dom\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string = cylinderData[0].belongTo\n\n private highLightAreaId: string\n private hoverAreaId: string\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const cylinder = this.getMesh(item)\n const group = new Group()\n group.name = item.title\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(group)\n\n const handleClick = () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n const { position, target } = item.camera\n this.gobal.cameraUtil.set({\n position, target,\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n this.setVisible()\n\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n })\n\n // this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => { })\n }\n\n // @ts-ignore\n const plane = (this.gobal.regionPlane.planeMesh as Map<string, Object3D>).get(item.id)\n plane.addEventListener('click', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.highLightAreaId = item.id\n handleClick()\n }\n })\n plane.addEventListener('mouseover', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.hoverAreaId = item?.belongTo\n this.gobal.districtLine?.setHighLightLine(item?.belongTo)\n }\n })\n plane.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag['people-management'] && this.hoverAreaId !== this.highLightAreaId)\n this.gobal.districtLine?.removeHighLightLine(this.hoverAreaId)\n })\n\n group.addEventListener('click', () => {\n handleClick()\n })\n\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n\n const sprite = new SpritePoi(getDom(item), option)\n\n sprite.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height + 15, item.points[2]]))\n\n const fixScale = (poi) => {\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.12\n\n poi.scale.copy(new Vector3(scaleValue * 1.2, scaleValue * 0.20, 1))\n }\n\n fixScale(sprite)\n\n use.useframe(() => {\n lookAtOnYAxis(sprite, globalObjectManage.camera.position)\n })\n\n group.add(sprite)\n this.scene.add(group)\n })\n this.controlAddListener()\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.cylinderMesh.forEach((bar) => {\n bar.visible = visible\n })\n }\n\n getMesh(data) {\n const width = 10\n\n const geometry = new BoxGeometry(width, data.height, width)\n\n const gradientMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n uniforms: {\n intensity: { value: 1.0 },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n `,\n fragmentShader: `\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n `,\n\n })\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n // @ts-ignore\n const maxDistance = this.gobal.option.controls.maxDistance\n maxDistance && this.gobal.control.addEventListener('change', () => {\n if (this.gobal.control.getDistance() >= maxDistance - 5)\n emitter.emit('peoplemanagement-control-maxDistance', null)\n })\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
1
+ {"version":3,"names":["BoxGeometry","Color","Group","Mesh","ShaderMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","SceneTag","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","areaLabel","camera","target","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","emit","cameraRemoveListener","scene","option","forEach","item","cylinder","getMesh","group","name","visible","copy","fromArray","interactionManager","storeManagement","add","handleClick","style","real","cameraUtil","set","then","setVisible","currentGroup","cylinderMesh","plane","regionPlane","planeMesh","addEventListener","tag","highLightAreaId","hoverAreaId","districtLine","setHighLightLine","removeHighLightLine","font","font2","fontPromiseAll","Promise","all","meshArr","mesh","geometry","center","useframe","controlAddListener","bar","data","width","gradientMaterial","transparent","depthTest","uniforms","intensity","value","vertexShader","fragmentShader","rotateY","Math","PI","cameraListenerHandle","maxDistance","controls","getDistance","removeEventListener"],"sources":["../../../src/factory/unit/cylinder.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { BoxGeometry, Color, Float32BufferAttribute, Group, Mesh, MeshBasicMaterial, ShaderMaterial, Vector3, globalObjectManage, use, utils } from '@anov/3d-core'\nimport createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle, SceneTag } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\nimport { lookAtOnYAxis } from '../utils'\n\nconst { emitter } = utils\n\nconst cylinderData = [\n {\n label: '8人',\n id: '1',\n title: regionMap.reform.title,\n belongTo: regionMap.reform.id,\n area: regionMap.reform.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reform.poi.position,\n height: 80,\n areaLabel: '重整装置区',\n camera: {\n target: [\n -314.011126,\n 0.55002,\n -146.543503,\n ],\n position: [\n -312.394914,\n 257.245626,\n 47.197057,\n ],\n },\n },\n {\n label: '7人',\n id: '2',\n title: regionMap.reduction.title,\n belongTo: regionMap.reduction.id,\n area: regionMap.reduction.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.reduction.poi.position,\n height: 70,\n areaLabel: '常减压装置区',\n camera: {\n target: [\n 31.316545,\n 0.550012,\n -130.972087,\n ],\n position: [\n 34.239022,\n 267.62292,\n 62.561665,\n ],\n },\n },\n {\n label: '4人',\n id: '3',\n title: regionMap.crudeOil.title,\n belongTo: regionMap.crudeOil.id,\n area: regionMap.crudeOil.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.crudeOil.poi.position,\n height: 40,\n areaLabel: '原油罐区',\n camera: {\n target: [\n 353.973508,\n 0.550011,\n -125.345886,\n ],\n position: [\n 353.432421,\n 201.482934,\n 32.729098,\n ],\n },\n },\n {\n label: '10人',\n id: '4',\n title: regionMap.catalyticCracking.title,\n belongTo: regionMap.catalyticCracking.id,\n area: regionMap.catalyticCracking.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.catalyticCracking.poi.position,\n height: 100,\n areaLabel: '催化裂化装置区',\n camera: {\n target: [\n -322.573001,\n 0.550014,\n 31.815163,\n ],\n position: [\n -320.957427,\n 257.144259,\n 225.47922,\n ],\n },\n },\n {\n label: '3人',\n id: '5',\n title: regionMap.hydrocrackingUnit.title,\n belongTo: regionMap.hydrocrackingUnit.id,\n area: regionMap.hydrocrackingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.hydrocrackingUnit.poi.position,\n height: 30,\n areaLabel: '加氢裂化装置区',\n camera: {\n target: [\n -307.049915,\n 0.550014,\n 168.905777,\n ],\n position: [\n -305.525588,\n 240.704876,\n 351.631836,\n ],\n },\n },\n {\n label: '8人',\n id: '6',\n title: regionMap.cokingUnit.title,\n belongTo: regionMap.cokingUnit.id,\n area: regionMap.cokingUnit.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.cokingUnit.poi.position,\n height: 80,\n areaLabel: '焦化装置区',\n camera: {\n target: [\n 92.780379,\n 0.550012,\n 106.726765,\n ],\n position: [\n 96.849312,\n 372.392759,\n 376.181734,\n ],\n },\n },\n {\n label: '20人',\n id: '7',\n title: regionMap.administrative.title,\n belongTo: regionMap.administrative.id,\n area: regionMap.administrative.area,\n color: new Color('#FED602').getHex(),\n points: regionMap.administrative.poi.position,\n height: 150,\n areaLabel: '办公区',\n camera: {\n target: [\n 416.932569,\n 0.550009,\n 85.100115,\n ],\n position: [\n 567.413903,\n 236.090124,\n 82.586741,\n ],\n },\n },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\n}\n\nclass CylinderManage {\n private scene: Scene\n readonly cylinderMesh: Map<string, Object3D> = new Map()\n private option: CylinderManageOption\n private gobal: Factory3D\n private currentoperate: string = cylinderData[0].belongTo\n\n private highLightAreaId: string\n private hoverAreaId: string\n\n constructor(gobal: Factory3D, options?: CylinderManageOption) {\n this.scene = gobal.scene.scene\n this.gobal = gobal\n this.option = options || {}\n }\n\n generateCylinder() {\n cylinderData.forEach((item) => {\n const cylinder = this.getMesh(item)\n const group = new Group()\n group.name = item.title\n\n group.visible = this.option?.visible ?? true\n cylinder.position.copy(new Vector3().fromArray([item.points[0], item.points[1] + item.height / 2, item.points[2]]))\n\n const interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n interactionManager.add(group)\n\n const handleClick = () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n const { position, target } = item.camera\n this.gobal.cameraUtil.set({\n position, target,\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n this.setVisible()\n\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n })\n\n // this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => { })\n }\n\n // @ts-ignore\n const plane = (this.gobal.regionPlane.planeMesh as Map<string, Object3D>).get(item.id)\n plane.addEventListener('click', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.highLightAreaId = item.id\n handleClick()\n }\n })\n plane.addEventListener('mouseover', () => {\n if (this.gobal.tag === SceneTag['people-management']) {\n this.hoverAreaId = item?.belongTo\n this.gobal.districtLine?.setHighLightLine(item?.belongTo)\n }\n })\n plane.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag['people-management'] && this.hoverAreaId !== this.highLightAreaId)\n this.gobal.districtLine?.removeHighLightLine(this.hoverAreaId)\n })\n\n group.addEventListener('click', () => {\n handleClick()\n })\n\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n const font2 = createFontMesh(item.areaLabel, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 25, item.points[2]]),\n })\n\n const fontPromiseAll = Promise.all([font, font2])\n\n fontPromiseAll.then((meshArr) => {\n meshArr.forEach(\n (mesh) => {\n mesh.geometry.center()\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n },\n )\n })\n })\n this.controlAddListener()\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.cylinderMesh.forEach((bar) => {\n bar.visible = visible\n })\n }\n\n getMesh(data) {\n const width = 10\n\n const geometry = new BoxGeometry(width, data.height, width)\n\n const gradientMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: false,\n uniforms: {\n intensity: { value: 1.0 },\n },\n vertexShader: `\n varying vec2 vUv;\n varying vec3 vNormal;\n void main()\n {\n vUv = uv;\n vNormal =normalize( normal ) ;\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * mvPosition;\n }\n \n `,\n fragmentShader: `\n \n varying vec3 vNormal;\n varying vec2 vUv;\n uniform float intensity;\n\n void main( void ) {\n \n float colX =clamp( vUv.y+0.3,0.,1.);\n\n if(vNormal.y >0.5)\n {\n colX=1.;\n }\n if(vNormal.y <-0.5)\n {\n colX=0.;\n }\n\n vec4 col = vec4 (1.,mix(0.2,0.8,colX),0.,1.);\n\n gl_FragColor=col*colX*intensity;\n }\n `,\n\n })\n\n // 创建渐变立方体\n const cylinder = new Mesh(geometry, gradientMaterial)\n cylinder.rotateY(Math.PI / 2)\n return cylinder\n }\n\n private cameraListenerHandle = () => {\n const currentCameraPosition = this.gobal.control.object.position\n const box = this.gobal.areaBoundingBox.boundingBoxMap.get(this.currentoperate)\n const iscollision = collisionDetection(box, currentCameraPosition)\n if (!iscollision) {\n emitter.emit('peoplemanagement-camera-out', {\n belongTo: this.currentoperate,\n })\n\n this.cameraRemoveListener()\n }\n }\n\n private cameraAddListener() {\n this.gobal.control.addEventListener('change', this.cameraListenerHandle)\n }\n\n private controlAddListener() {\n // @ts-ignore\n const maxDistance = this.gobal.option.controls.maxDistance\n maxDistance && this.gobal.control.addEventListener('change', () => {\n if (this.gobal.control.getDistance() >= maxDistance - 5)\n emitter.emit('peoplemanagement-control-maxDistance', null)\n })\n }\n\n private cameraRemoveListener() {\n this.gobal.control.removeEventListener('change', this.cameraListenerHandle)\n }\n}\n\nexport default CylinderManage"],"mappings":"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"}
@@ -215,8 +215,12 @@ var handleUnit = function handleUnit() {
215
215
  this.districtLine.generateLine();
216
216
  var areaId;
217
217
  emitter.on('peoplemanagement-camera-enter', function (data) {
218
- sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, _objectSpread({
219
- type: 'Bar'
218
+ sendToMessage({
219
+ messageType: MessageType.Event,
220
+ messageName: 'onClick',
221
+ status: EMessageStatus.Success
222
+ }, _objectSpread({
223
+ type: 'POI'
220
224
  }, data));
221
225
  _this.circle.generateCircle(data === null || data === void 0 ? void 0 : data.belongTo);
222
226
  areaId && _this.districtLine.removeHighLightLine(areaId);
@@ -224,11 +228,14 @@ var handleUnit = function handleUnit() {
224
228
  _this.districtLine.setHighLightLine(data === null || data === void 0 ? void 0 : data.belongTo);
225
229
  });
226
230
  emitter.on('peoplemanagement-person-click', function (data) {
227
- sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, _objectSpread({
231
+ sendToMessage({
232
+ messageType: MessageType.Event,
233
+ messageName: 'onClick',
234
+ status: EMessageStatus.Success
235
+ }, _objectSpread({
228
236
  type: 'POI'
229
237
  }, data));
230
238
  });
231
-
232
239
  // boundingBox
233
240
  var areaBoundingBox = new AreaBoundingBoxManage();
234
241
  areaBoundingBox.generateBoundingBox();
@@ -247,7 +254,11 @@ var handleUnit = function handleUnit() {
247
254
  _this.circle.remove();
248
255
  });
249
256
  emitter.on('peoplemanagement-control-maxDistance', function () {
250
- sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, {});
257
+ sendToMessage({
258
+ messageType: MessageType.Event,
259
+ messageName: 'onCancel',
260
+ status: EMessageStatus.Success
261
+ });
251
262
  });
252
263
  };
253
264
  export default handleUnit;
@@ -1 +1 @@
1
- {"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","DistrictLineManage","RegionPlane","SliceManage","emitter","showOverview","poi","generatePoi","districtLine","show","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","tag","hide","showPeopleManagemen","cylinder","cylinderMesh","slice","closePeopleManagemen","circle","overview","showSmartInspection","inspection","closeSmartInspection","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","scene","camera","layers","disable","apply","regionPlane","planeMesh","togglePeopleManagemen","enable","toggleSmartInspection","toggleSecurityOperation","toggleStandBy","toggleTag","cutoutCamera","minCamera","mainCamera","emit","controls","enableRotate","enableZoom","toggleSceneStyle","real","generateSlice","tech","defaultFirstPerspectiveControls","enabled","standBy","handleUnit","generateWall","generateCylinder","generateLine","areaId","on","data","Event","Success","undefined","type","generateCircle","belongTo","removeHighLightLine","setHighLightLine","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\n\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\nimport DistrictLineManage from './districtLine'\nimport RegionPlane from './region'\nimport SliceManage from './slice'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n this.districtLine.show()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n this.tag !== SceneTag['people-management'] && this.districtLine.hide()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n if (this.slice)\n this.slice.mesh.visible = true\n this.districtLine.show()\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n this.circle.remove()\n if (this.slice)\n this.slice.mesh.visible = false\n this.tag !== SceneTag.overview && this.districtLine.hide()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst closeCameraPoiInspection = function () {\n this.cameraPoi?.remove()\n}\nconst showCameraPoiInspection = function () {\n this.cameraPoi?.generateObject()\n}\n\nconst toggleOverview = function () {\n this.scene.camera.layers.disable(28)\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst togglePeopleManagemen = function () {\n this.scene.camera.layers.enable(28)\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst toggleSmartInspection = function () {\n this.scene.camera.layers.disable(28)\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nconst toggleSecurityOperation = function () {\n this.scene.camera.layers.disable(28)\n showCameraPoiInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nconst toggleStandBy = function () {\n this.scene.camera.layers.disable(28)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag['people-management']\n\n if (!this.slice) {\n this.slice = new SliceManage(this)\n this.slice.generateSlice()\n }\n\n this.toggleSceneStyle(SceneStyle.tech)\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.inspection.defaultFirstPerspectiveControls && (this.inspection.defaultFirstPerspectiveControls.enabled = false)\n this.scene.controls.enableRotate = false\n this.scene.controls.enableZoom = false\n\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n toggleSecurityOperation.apply(this)\n },\n [SceneTag.standBy]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag.standBy\n this.toggleSceneStyle(SceneStyle.real)\n toggleStandBy.apply(this)\n },\n}\n\nconst handleUnit = function () {\n // 围栏\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n const regionPlane = new RegionPlane(this)\n this.regionPlane = regionPlane\n\n // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n const districtLine = new DistrictLineManage(this)\n this.districtLine = districtLine\n\n this.districtLine.generateLine()\n let areaId\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n\n this.circle.generateCircle(data?.belongTo)\n areaId && this.districtLine.removeHighLightLine(areaId)\n areaId = data?.belongTo\n this.districtLine.setHighLightLine(data?.belongTo)\n })\n\n emitter.on('peoplemanagement-person-click', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'POI',\n ...data,\n })\n })\n\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n const inspection = new Inspection(this)\n this.inspection = inspection\n\n const cameraPoi = new CameraPoi(this)\n this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n\n emitter.on('peoplemanagement-control-maxDistance', () => {\n sendToMessage(MessageType.Event, 'onCancel', EMessageStatus.Success, undefined, { })\n })\n}\n\nexport default handleUnit\n"],"mappings":"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"}
1
+ {"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","DistrictLineManage","RegionPlane","SliceManage","emitter","showOverview","poi","generatePoi","districtLine","show","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","tag","hide","showPeopleManagemen","cylinder","cylinderMesh","slice","closePeopleManagemen","circle","overview","showSmartInspection","inspection","closeSmartInspection","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","scene","camera","layers","disable","apply","regionPlane","planeMesh","togglePeopleManagemen","enable","toggleSmartInspection","toggleSecurityOperation","toggleStandBy","toggleTag","cutoutCamera","minCamera","mainCamera","emit","controls","enableRotate","enableZoom","toggleSceneStyle","real","generateSlice","tech","defaultFirstPerspectiveControls","enabled","standBy","handleUnit","generateWall","generateCylinder","generateLine","areaId","on","data","messageType","Event","messageName","status","Success","type","generateCircle","belongTo","removeHighLightLine","setHighLightLine","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { utils } from '@anov/3d-core'\nimport { SceneStyle, SceneTag } from '../utils/constant'\n\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport { EMessageStatus } from '../../messageStatus'\nimport WallManage from './wall'\nimport CylinderManage from './cylinder'\nimport PoiManage from './poi'\nimport CircleManage from './circle'\nimport AreaBoundingBoxManage from './areaBoundingBox'\nimport Inspection from './inspection'\nimport CameraPoi from './CameraPoi'\nimport DistrictLineManage from './districtLine'\nimport RegionPlane from './region'\nimport SliceManage from './slice'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n this.districtLine.show()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n this.tag !== SceneTag['people-management'] && this.districtLine.hide()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n if (this.slice)\n this.slice.mesh.visible = true\n this.districtLine.show()\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n this.circle.remove()\n if (this.slice)\n this.slice.mesh.visible = false\n this.tag !== SceneTag.overview && this.districtLine.hide()\n}\n\nconst showSmartInspection = function () {\n this.inspection.show()\n}\n\nconst closeSmartInspection = function () {\n this.inspection.hide()\n}\n\nconst closeCameraPoiInspection = function () {\n this.cameraPoi?.remove()\n}\nconst showCameraPoiInspection = function () {\n this.cameraPoi?.generateObject()\n}\n\nconst toggleOverview = function () {\n this.scene.camera.layers.disable(28)\n showOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst togglePeopleManagemen = function () {\n this.scene.camera.layers.enable(28)\n showPeopleManagemen.apply(this)\n closeOverview.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst toggleSmartInspection = function () {\n this.scene.camera.layers.disable(28)\n showSmartInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nconst toggleSecurityOperation = function () {\n this.scene.camera.layers.disable(28)\n showCameraPoiInspection.apply(this)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nconst toggleStandBy = function () {\n this.scene.camera.layers.disable(28)\n closeOverview.apply(this)\n closePeopleManagemen.apply(this)\n closeSmartInspection.apply(this)\n closeCameraPoiInspection.apply(this)\n\n this.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n}\n\nexport const toggleTag = {\n [SceneTag.overview]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag['people-management']\n\n if (!this.slice) {\n this.slice = new SliceManage(this)\n this.slice.generateSlice()\n }\n\n this.toggleSceneStyle(SceneStyle.tech)\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.inspection.defaultFirstPerspectiveControls && (this.inspection.defaultFirstPerspectiveControls.enabled = false)\n this.scene.controls.enableRotate = false\n this.scene.controls.enableZoom = false\n\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n toggleSecurityOperation.apply(this)\n },\n [SceneTag.standBy]() {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n utils.emitter.emit('stop')\n }\n\n this.scene.controls.enableRotate = true\n this.scene.controls.enableZoom = true\n this.tag = SceneTag.standBy\n this.toggleSceneStyle(SceneStyle.real)\n toggleStandBy.apply(this)\n },\n}\n\nconst handleUnit = function () {\n // 围栏\n const wall = new WallManage(this, { visible: false })\n wall.generateWall()\n this.wall = wall\n\n const regionPlane = new RegionPlane(this)\n this.regionPlane = regionPlane\n\n // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n // POI\n const poi = new PoiManage(this)\n poi.generatePoi()\n this.poi = poi\n\n // people\n const circle = new CircleManage(this)\n this.circle = circle\n\n const districtLine = new DistrictLineManage(this)\n this.districtLine = districtLine\n\n this.districtLine.generateLine()\n let areaId\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(\n\n {\n messageType: MessageType.Event,\n messageName: 'onClick',\n status: EMessageStatus.Success,\n },\n {\n type: 'POI',\n ...data,\n },\n )\n\n this.circle.generateCircle(data?.belongTo)\n areaId && this.districtLine.removeHighLightLine(areaId)\n areaId = data?.belongTo\n this.districtLine.setHighLightLine(data?.belongTo)\n })\n\n emitter.on('peoplemanagement-person-click', (data: any) => {\n sendToMessage(\n {\n\n messageType: MessageType.Event,\n messageName: 'onClick',\n status: EMessageStatus.Success,\n },\n {\n type: 'POI',\n ...data,\n },\n )\n })\n // boundingBox\n const areaBoundingBox = new AreaBoundingBoxManage()\n areaBoundingBox.generateBoundingBox()\n this.areaBoundingBox = areaBoundingBox\n\n const inspection = new Inspection(this)\n this.inspection = inspection\n\n const cameraPoi = new CameraPoi(this)\n this.cameraPoi = cameraPoi\n\n // some global events handle\n this.addEventListener('peoplemanagement-camera-out', (args) => {\n if (this.tag !== SceneTag['people-management'])\n return\n cylinder.cylinderMesh.forEach((item) => {\n item.visible = true\n })\n this.circle.remove()\n })\n\n emitter.on('peoplemanagement-control-maxDistance', () => {\n sendToMessage({\n\n messageType: MessageType.Event,\n messageName: 'onCancel',\n status: EMessageStatus.Success,\n })\n })\n}\n\nexport default handleUnit\n"],"mappings":"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"}
@@ -96,7 +96,11 @@ var Camera = /*#__PURE__*/function () {
96
96
  if (!_this.isTransitionPeriod && !_this.isTrigger) {
97
97
  var lookat = _this.controls.target;
98
98
  var position = _this.camera.position;
99
- sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
99
+ sendToMessage({
100
+ messageType: MessageType.Event,
101
+ messageName: 'onCameraChanged',
102
+ status: EMessageStatus.Success
103
+ }, {
100
104
  position: position.toArray(),
101
105
  target: lookat.toArray()
102
106
  });
@@ -129,7 +133,11 @@ var Camera = /*#__PURE__*/function () {
129
133
  var position = _ref2.position,
130
134
  lookat = _ref2.lookat;
131
135
  _this2.isTrigger = (_params$isTrigger2 = params.isTrigger) !== null && _params$isTrigger2 !== void 0 ? _params$isTrigger2 : true;
132
- params.isTrigger && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
136
+ params.isTrigger && sendToMessage({
137
+ messageType: MessageType.Event,
138
+ messageName: 'onCameraChanged',
139
+ status: EMessageStatus.Success
140
+ }, {
133
141
  position: position.toArray(),
134
142
  target: lookat.toArray()
135
143
  });
@@ -180,7 +188,11 @@ var Camera = /*#__PURE__*/function () {
180
188
  var position = _ref4.position,
181
189
  lookat = _ref4.lookat;
182
190
  _this3.isTrigger = (_params$isTrigger4 = params.isTrigger) !== null && _params$isTrigger4 !== void 0 ? _params$isTrigger4 : true;
183
- params.isTrigger && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {
191
+ params.isTrigger && sendToMessage({
192
+ messageType: MessageType.Event,
193
+ messageName: 'onCameraChanged',
194
+ status: EMessageStatus.Success
195
+ }, {
184
196
  position: position.toArray(),
185
197
  target: lookat.toArray()
186
198
  });
@@ -1 +1 @@
1
- {"version":3,"names":["Box3","MathUtils","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","app","isTrigger","camera","sceneControl","controls","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","addEventListener","isTransitionPeriod","lookat","Event","Success","undefined","toArray","params","Promise","res","duration","moveOptions","onUpdate","onComplate","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, Vector3 } from '@anov/3d-core'\nimport * as TWEEN from '@tweenjs/tween.js'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport type { BaseModule } from '../../utils/abstract'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Anov3D from '../../sdkEntry'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera implements BaseModule {\n app: Anov3D\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(app: Anov3D) {\n this.app = app\n this.isTrigger = false\n this.camera = app.sceneControl.camera!\n this.controls = app.sceneControl.controls!\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod && !this.isTrigger) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n\n position: position.toArray(),\n target: lookat.toArray(),\n })\n }\n\n // if (this.isTransitionPeriod)\n // this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(MessageType.Event, 'onCameraChanged', EMessageStatus.Success, undefined, {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
1
+ {"version":3,"names":["Box3","MathUtils","Vector3","TWEEN","MessageType","sendToMessage","EMessageStatus","Camera","app","isTrigger","camera","sceneControl","controls","handleChanged","currentPos","pitch","box","setFromPoints","map","item","center","getCenter","size","getSize","halfDiagonal","length","maxDistance","Math","tan","fov","PI","cameraToCenterDistance","directionVector","position","clone","sub","target","normalize","lastPosition","multiplyScalar","add","lastLookat","caclTargetByPitch","subVectors","upVector","localPitchAxis","crossVectors","applyAxisAngle","degToRad","distance","distanceTo","newTarget","prevTarget","prevPosition","lastTarget","addEventListener","isTransitionPeriod","lookat","messageType","Event","messageName","status","Success","toArray","params","Promise","res","duration","moveOptions","onUpdate","onComplate","userInput","Array","isArray","caclCurrentPos","moveCameraTo","caclSingleCoordinate","fromArray","_","x","y","z","options","currentPoition","currentPositionInterpolation","copy","requestAnimationFrame","renderer","render","scene","tween","stop","Tween","t","p","to","rotation","onStart","enabled","easing","Easing","Quadratic","InOut","rotationParent","currentPosition","lerpVectors","onComplete","setTimeout","start"],"sources":["../../../src/module/camera/index.ts"],"sourcesContent":["import type { OrbitControls, PerspectiveCamera } from '@anov/3d-core'\nimport { Box3, MathUtils, Vector3 } from '@anov/3d-core'\nimport * as TWEEN from '@tweenjs/tween.js'\nimport { MessageType, sendToMessage } from '../../utils/messageFn'\nimport type { BaseModule } from '../../utils/abstract'\nimport { EMessageStatus } from '../../messageStatus'\nimport type Anov3D from '../../sdkEntry'\n\ntype vector3Array = [number, number, number]\ninterface ChangeCameraPresetOptions {\n duration?: number\n onUpdate?: (params: { position: Vector3; lookat: Vector3 }) => void\n onStart?: () => void\n onComplate?: () => void\n isTrigger?: boolean\n}\n\nclass Camera implements BaseModule {\n app: Anov3D\n private camera: PerspectiveCamera\n private controls: OrbitControls\n private isTransitionPeriod = false\n private isTrigger = true\n private tween: any\n\n constructor(app: Anov3D) {\n this.app = app\n this.isTrigger = false\n this.camera = app.sceneControl.camera!\n this.controls = app.sceneControl.controls!\n this.handleChanged()\n }\n\n /**\n * caclCurrentPos\n * @param currentPos\n * @returns\n */\n private caclCurrentPos(currentPos: vector3Array[], pitch: number) {\n const box = new Box3()\n\n box.setFromPoints(currentPos.map(item => new Vector3(item[0], item[1], item[2])))\n\n const center = box.getCenter(new Vector3())\n const size = box.getSize(new Vector3())\n const halfDiagonal = size.length() * 0.5\n\n const maxDistance = halfDiagonal / Math.tan(this.camera.fov / 2 * Math.PI / 180)\n const cameraToCenterDistance = maxDistance\n const directionVector = (this.camera.position.clone()).sub(this.controls.target).normalize() // 相机指向物体中心的向量\n\n const lastPosition = directionVector.multiplyScalar(cameraToCenterDistance).add(center)\n const lastLookat = this.caclTargetByPitch(pitch, center, lastPosition)\n\n return {\n lastPosition,\n lastLookat,\n }\n }\n\n /**\n * caclTargetByPitch\n * @param pitch\n * @param target\n * @param position\n * @returns\n */\n private caclTargetByPitch(pitch: number, target: Vector3, position: Vector3) {\n const directionVector = new Vector3().subVectors(target, position)\n const upVector = new Vector3(0, 1, 0)\n const localPitchAxis = new Vector3().crossVectors(directionVector, upVector).normalize()\n\n directionVector.applyAxisAngle(localPitchAxis, MathUtils.degToRad(pitch))\n\n const distance = position.distanceTo(target)\n const newTarget = position.clone().add(directionVector.normalize().multiplyScalar(distance))\n\n return newTarget\n }\n\n /**\n * caclSingleCoordinate\n * @param prevTarget\n * @param prevPosition\n * @param lastTarget\n * @returns\n */\n private caclSingleCoordinate(prevTarget: Vector3, prevPosition: Vector3, lastTarget: Vector3) {\n const directionVector = lastTarget.clone().sub(prevTarget).normalize()\n return directionVector.multiplyScalar(lastTarget.distanceTo(prevTarget)).add(prevPosition)\n }\n\n /**\n * handle camera changed\n */\n private handleChanged() {\n this.controls.addEventListener('change', () => {\n if (!this.isTransitionPeriod && !this.isTrigger) {\n const lookat = this.controls.target\n const position = this.camera.position\n\n sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n }\n\n // if (this.isTransitionPeriod)\n // this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n }\n\n /**\n * focus On Position\n * @param params\n */\n focus(params: { target: vector3Array | vector3Array[]; pitch?: number; duration?: number; isTrigger?: boolean }) {\n return new Promise((res) => {\n const { target: position, pitch, duration } = params\n const moveOptions = () => ({\n duration: (duration && duration * 1000) ?? 1000,\n isTrigger: params.isTrigger ?? true,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage({\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n duration: params.duration ?? 0,\n userInput: true,\n pitch: pitch ?? 40,\n })\n },\n }) as ChangeCameraPresetOptions\n\n if (Array.isArray(position[0])) {\n const currentPos = position as vector3Array[]\n const { lastPosition, lastLookat } = this.caclCurrentPos(currentPos, 0)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n else {\n const currentPos = position as vector3Array\n const lastPosition = this.caclSingleCoordinate(this.controls.target, this.camera.position, new Vector3().fromArray(currentPos))\n const lastLookat = this.caclTargetByPitch(0, new Vector3().fromArray(currentPos), lastPosition)\n\n this.moveCameraTo(\n lastPosition,\n lastLookat,\n pitch,\n moveOptions(),\n )\n }\n })\n }\n\n /**\n * set camera\n * @param params\n */\n set(params: { position: vector3Array; target: vector3Array; isTrigger?: boolean; duration?: number }) {\n return new Promise((res, _) => {\n this.moveCameraTo(\n new Vector3(params.position[0], params.position[1], params.position[2]),\n new Vector3(params.target[0], params.target[1], params.target[2]),\n 0,\n {\n isTrigger: params.isTrigger ?? true,\n duration: (params.duration && params.duration * 1000) ?? 1000,\n onUpdate: ({ position, lookat }) => {\n this.isTrigger = params.isTrigger ?? true\n params.isTrigger\n && sendToMessage(\n {\n messageType: MessageType.Event,\n messageName: 'onCameraChanged',\n status: EMessageStatus.Success,\n },\n {\n position: position.toArray(),\n target: lookat.toArray(),\n })\n },\n onComplate: () => {\n this.isTrigger = false\n\n res({\n position: this.camera.position.toArray(),\n target: this.controls.target.toArray(),\n isTrigger: true,\n duration: params.duration ?? 0,\n userInput: true,\n })\n },\n })\n })\n }\n\n /**\n * get Camera info\n * @returns\n */\n get() {\n return {\n position: [this.camera.position.x, this.camera.position.y, this.camera.position.z],\n target: [this.controls.target.x, this.controls.target.y, this.controls.target.z],\n }\n }\n\n /**\n * interpolation move camera\n * @param position\n * @param target\n * @param options\n */\n private moveCameraTo(position: Vector3, target: Vector3, pitch = 0, options?: ChangeCameraPresetOptions) {\n const currentPoition = this.camera.position.clone()\n const currentPositionInterpolation = new Vector3()\n\n if (options?.duration === 0) {\n this.isTrigger = !options.isTrigger\n this.camera.position.copy(position)\n this.controls.target.copy(target)\n\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n this.app.sceneControl.renderer!.render(this.app.sceneControl.scene!, this.app.sceneControl.camera!)\n })\n\n return\n }\n\n if (this.tween)\n this.tween.stop()\n\n this.tween = new TWEEN.Tween({ t: 0, lookat: this.controls.target.clone(), p: 0 }).to({ t: 1, lookat: target, p: (-this.camera.rotation.x + (pitch ? MathUtils.degToRad(-pitch) : 0)) }, options?.duration || 1000)\n .onStart(() => {\n options?.onStart && options.onStart()\n this.controls.enabled = false\n this.isTransitionPeriod = true\n })\n .easing(TWEEN.Easing.Quadratic.InOut)\n .onUpdate(({ t, lookat, p }) => {\n this.controls.target.copy(lookat)\n\n if (pitch)\n // @ts-ignore\n this.camera.rotationParent.x = p\n\n const currentPosition = currentPositionInterpolation.lerpVectors(currentPoition, position, t)\n this.camera.position.copy(currentPosition)\n options?.onUpdate && options.onUpdate({ position: currentPosition, lookat })\n })\n .onComplete(() => {\n requestAnimationFrame(() => {\n options?.onComplate && options.onComplate()\n })\n\n this.controls.enabled = true\n\n setTimeout(() => {\n this.isTransitionPeriod = false\n })\n })\n .start()\n }\n}\n\nexport default Camera"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * create dispose function
3
+ * @returns
4
+ */
5
+ declare const createDisposeFn: () => () => void;
6
+ export default createDisposeFn;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * clear mesh material
3
+ * @param material
4
+ */
5
+ var disposeMaterial = function disposeMaterial(material) {
6
+ if (material.map) material.map.dispose();
7
+ if (material.lightMap) material.lightMap.dispose();
8
+ if (material.bumpMap) material.bumpMap.dispose();
9
+ if (material.normalMap) material.normalMap.dispose();
10
+ if (material.specularMap) material.specularMap.dispose();
11
+ if (material.envMap) material.envMap.dispose();
12
+ if (material.emissiveMap) material.emissiveMap.dispose();
13
+ material.dispose();
14
+ };
15
+
16
+ /**
17
+ * create dispose function
18
+ * @returns
19
+ */
20
+ var createDisposeFn = function createDisposeFn() {
21
+ return function () {
22
+ this.traverse(function (child) {
23
+ if (child.geometry) child.geometry.dispose();
24
+ if (child.material) {
25
+ if (Array.isArray(child.material)) {
26
+ child.material.forEach(function (material) {
27
+ disposeMaterial(material);
28
+ });
29
+ } else {
30
+ disposeMaterial(child.material);
31
+ }
32
+ }
33
+ });
34
+ this.clear();
35
+ };
36
+ };
37
+ export default createDisposeFn;
38
+ //# sourceMappingURL=dispose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["disposeMaterial","material","map","dispose","lightMap","bumpMap","normalMap","specularMap","envMap","emissiveMap","createDisposeFn","traverse","child","geometry","Array","isArray","forEach","clear"],"sources":["../../../src/module/entity/dispose.ts"],"sourcesContent":["/**\n * clear mesh material\n * @param material\n */\nconst disposeMaterial = (material) => {\n if (material.map)\n material.map.dispose()\n if (material.lightMap)\n material.lightMap.dispose()\n if (material.bumpMap)\n material.bumpMap.dispose()\n if (material.normalMap)\n material.normalMap.dispose()\n if (material.specularMap)\n material.specularMap.dispose()\n if (material.envMap)\n material.envMap.dispose()\n if (material.emissiveMap)\n material.emissiveMap.dispose()\n material.dispose()\n}\n\n/**\n * create dispose function\n * @returns\n */\nconst createDisposeFn = () => function () {\n this.traverse((child) => {\n if (child.geometry)\n child.geometry.dispose()\n\n if (child.material) {\n if (Array.isArray(child.material)) {\n child.material.forEach((material) => {\n disposeMaterial(material)\n })\n }\n else {\n disposeMaterial(child.material)\n }\n }\n })\n\n this.clear()\n}\n\nexport default createDisposeFn"],"mappings":"AAAA;AACA;AACA;AACA;AACA,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CAAIC,QAAQ,EAAK;EACpC,IAAIA,QAAQ,CAACC,GAAG,EACdD,QAAQ,CAACC,GAAG,CAACC,OAAO,EAAE;EACxB,IAAIF,QAAQ,CAACG,QAAQ,EACnBH,QAAQ,CAACG,QAAQ,CAACD,OAAO,EAAE;EAC7B,IAAIF,QAAQ,CAACI,OAAO,EAClBJ,QAAQ,CAACI,OAAO,CAACF,OAAO,EAAE;EAC5B,IAAIF,QAAQ,CAACK,SAAS,EACpBL,QAAQ,CAACK,SAAS,CAACH,OAAO,EAAE;EAC9B,IAAIF,QAAQ,CAACM,WAAW,EACtBN,QAAQ,CAACM,WAAW,CAACJ,OAAO,EAAE;EAChC,IAAIF,QAAQ,CAACO,MAAM,EACjBP,QAAQ,CAACO,MAAM,CAACL,OAAO,EAAE;EAC3B,IAAIF,QAAQ,CAACQ,WAAW,EACtBR,QAAQ,CAACQ,WAAW,CAACN,OAAO,EAAE;EAChCF,QAAQ,CAACE,OAAO,EAAE;AACpB,CAAC;;AAED;AACA;AACA;AACA;AACA,IAAMO,eAAe,GAAG,SAAlBA,eAAe;EAAA,OAAS,YAAY;IACxC,IAAI,CAACC,QAAQ,CAAC,UAACC,KAAK,EAAK;MACvB,IAAIA,KAAK,CAACC,QAAQ,EAChBD,KAAK,CAACC,QAAQ,CAACV,OAAO,EAAE;MAE1B,IAAIS,KAAK,CAACX,QAAQ,EAAE;QAClB,IAAIa,KAAK,CAACC,OAAO,CAACH,KAAK,CAACX,QAAQ,CAAC,EAAE;UACjCW,KAAK,CAACX,QAAQ,CAACe,OAAO,CAAC,UAACf,QAAQ,EAAK;YACnCD,eAAe,CAACC,QAAQ,CAAC;UAC3B,CAAC,CAAC;QACJ,CAAC,MACI;UACHD,eAAe,CAACY,KAAK,CAACX,QAAQ,CAAC;QACjC;MACF;IACF,CAAC,CAAC;IAEF,IAAI,CAACgB,KAAK,EAAE;EACd,CAAC;AAAA;AAED,eAAeP,eAAe"}
@@ -0,0 +1,11 @@
1
+ declare class HybridList<T> {
2
+ private map;
3
+ private head;
4
+ private tail;
5
+ constructor();
6
+ get(key: string | number): T | null;
7
+ update(key: string | number, value: T): void;
8
+ add(key: string | number, value: T): void;
9
+ delete(key: string | number): void;
10
+ }
11
+ export default HybridList;