@anov/3d 0.0.75 → 0.0.76
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.
- package/dist/anov3d.js +2 -0
- package/dist/anov3d.js.map +1 -1
- package/dist/factory/regionData.js +60 -60
- package/dist/factory/regionData.js.map +1 -1
- package/dist/factory/unit/circle.d.ts +0 -3
- package/dist/factory/unit/circle.js +15 -57
- package/dist/factory/unit/circle.js.map +1 -1
- package/dist/factory/unit/districtLine.d.ts +0 -6
- package/dist/factory/unit/districtLine.js +1 -24
- package/dist/factory/unit/districtLine.js.map +1 -1
- package/dist/factory/unit/handle.js +0 -2
- package/dist/factory/unit/handle.js.map +1 -1
- package/dist/factory/unit/index.js +1 -2
- package/dist/factory/unit/index.js.map +1 -1
- package/dist/factory/unit/inspection/InspectionObject.d.ts +5 -0
- package/dist/factory/unit/inspection/InspectionObject.js +61 -14
- package/dist/factory/unit/inspection/InspectionObject.js.map +1 -1
- package/dist/factory/unit/inspection/tubeGeometry.d.ts +16 -0
- package/dist/factory/unit/inspection/tubeGeometry.js +152 -0
- package/dist/factory/unit/inspection/tubeGeometry.js.map +1 -0
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ 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 { Vector3, use, utils } from '@anov/3d-core';
|
|
8
|
+
import { Mesh, MeshPhysicalMaterial, SphereGeometry, Vector3, use, utils } from '@anov/3d-core';
|
|
9
9
|
import { EAnimationType, SpritePoi } from '@anov/3d-ability';
|
|
10
10
|
import { regionMap } from "../regionData";
|
|
11
11
|
import { usePath } from "../3d";
|
|
@@ -19,7 +19,6 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
19
19
|
_defineProperty(this, "interactionManager", void 0);
|
|
20
20
|
_defineProperty(this, "peoplePoi", void 0);
|
|
21
21
|
_defineProperty(this, "clickPoi", void 0);
|
|
22
|
-
_defineProperty(this, "poiRemoveEventListener", void 0);
|
|
23
22
|
this.gobal = gobal;
|
|
24
23
|
this.scene = gobal.scene.scene;
|
|
25
24
|
this.interactionManager = utils.storeManagement.get('interactionManager');
|
|
@@ -29,21 +28,16 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
29
28
|
value: function generateCircle(belongTo) {
|
|
30
29
|
var _this = this;
|
|
31
30
|
this.remove();
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
var
|
|
39
|
-
var img;
|
|
31
|
+
var geometry = new SphereGeometry(2, 32, 16);
|
|
32
|
+
var material = new MeshPhysicalMaterial({
|
|
33
|
+
color: 0xFED602,
|
|
34
|
+
metalness: 0.1,
|
|
35
|
+
roughness: 0.5
|
|
36
|
+
});
|
|
37
|
+
var circle = new Mesh(geometry, material);
|
|
40
38
|
var data = this.getData(belongTo);
|
|
41
39
|
data.forEach(function (people) {
|
|
42
|
-
|
|
43
|
-
img.src = "".concat(usePath, "p2/").concat(imgs[Math.floor(Math.random() * 3)], ".png");
|
|
44
|
-
var mesh = new SpritePoi(img, {
|
|
45
|
-
scale: [6, 10, 1]
|
|
46
|
-
});
|
|
40
|
+
var mesh = circle.clone();
|
|
47
41
|
mesh.name = people.id;
|
|
48
42
|
mesh.position.fromArray(people.position);
|
|
49
43
|
_this.scene.add(mesh);
|
|
@@ -60,7 +54,6 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
60
54
|
this.circleMesh.clear();
|
|
61
55
|
this.peoplePoi && this.peoplePoi.removeFromParent();
|
|
62
56
|
this.peoplePoi = this.clickPoi = null;
|
|
63
|
-
if (this.poiRemoveEventListener) this.poiRemoveEventListener();
|
|
64
57
|
}
|
|
65
58
|
}, {
|
|
66
59
|
key: "setVisible",
|
|
@@ -104,31 +97,21 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
104
97
|
});
|
|
105
98
|
dom.innerText = data.name;
|
|
106
99
|
_this2.peoplePoi = new SpritePoi(dom, {
|
|
100
|
+
scale: [12, 3.8, 1],
|
|
107
101
|
animation: {
|
|
108
102
|
type: EAnimationType.fadeIn,
|
|
109
103
|
duration: 0.2
|
|
110
104
|
}
|
|
111
105
|
});
|
|
112
106
|
_this2.peoplePoi.name = data.id;
|
|
113
|
-
_this2.peoplePoi.position.copy(mesh.position.clone().add(new Vector3(0,
|
|
114
|
-
_this2.updateScale(_this2.peoplePoi, 3.2);
|
|
107
|
+
_this2.peoplePoi.position.copy(mesh.position.clone().add(new Vector3(0, 2, 0)));
|
|
115
108
|
_this2.scene.add(_this2.peoplePoi);
|
|
116
|
-
var _use$useScene = use.useScene(),
|
|
117
|
-
orbitControls = _use$useScene.orbitControls;
|
|
118
|
-
if (_this2.poiRemoveEventListener) _this2.poiRemoveEventListener();
|
|
119
|
-
var fn = function fn() {
|
|
120
|
-
return _this2.updateScale(_this2.peoplePoi);
|
|
121
|
-
};
|
|
122
|
-
orbitControls === null || orbitControls === void 0 ? void 0 : orbitControls.addEventListener('change', fn);
|
|
123
|
-
_this2.poiRemoveEventListener = function () {
|
|
124
|
-
return orbitControls === null || orbitControls === void 0 ? void 0 : orbitControls.removeEventListener('change', fn);
|
|
125
|
-
};
|
|
126
109
|
};
|
|
127
110
|
mesh.addEventListener('click', function () {
|
|
128
|
-
var position = _this2.getCameraPosition(new Vector3().fromArray(data.position)
|
|
111
|
+
var position = _this2.getCameraPosition(new Vector3().fromArray(data.position), 43.5);
|
|
129
112
|
_this2.gobal.cameraUtil.set({
|
|
130
113
|
position: position.toArray(),
|
|
131
|
-
target: [data.position[0], data.position[1]
|
|
114
|
+
target: [data.position[0], data.position[1], data.position[2]]
|
|
132
115
|
}).then(function () {});
|
|
133
116
|
emitter.emit('peoplemanagement-person-click', data);
|
|
134
117
|
showPeoplePoi(data, 'click');
|
|
@@ -144,31 +127,6 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
144
127
|
}
|
|
145
128
|
});
|
|
146
129
|
}
|
|
147
|
-
|
|
148
|
-
/// <summary>
|
|
149
|
-
/// 按照距离缩放,距离越远,缩放越大
|
|
150
|
-
/// </summary>
|
|
151
|
-
}, {
|
|
152
|
-
key: "updateScale",
|
|
153
|
-
value: function updateScale(poi) {
|
|
154
|
-
var _camera$position;
|
|
155
|
-
var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
156
|
-
if (!poi) return;
|
|
157
|
-
// 距离限制范围的值,用于计算缩放比例
|
|
158
|
-
var minDistance = 0.1;
|
|
159
|
-
var maxDistance = 1000000;
|
|
160
|
-
var _use$useScene2 = use.useScene(),
|
|
161
|
-
camera = _use$useScene2.camera;
|
|
162
|
-
|
|
163
|
-
// 计算相机和物体之间的距离
|
|
164
|
-
var distance = ((_camera$position = camera.position) === null || _camera$position === void 0 ? void 0 : _camera$position.distanceTo(poi.position)) || 0.1;
|
|
165
|
-
var clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance));
|
|
166
|
-
var scaleValue = clampedDistance * 0.02;
|
|
167
|
-
if (!ratio && poi.scale) ratio = poi.scale.x / poi.scale.y;
|
|
168
|
-
|
|
169
|
-
// 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值
|
|
170
|
-
poi.scale.copy(new Vector3(scaleValue * ratio, scaleValue, 1));
|
|
171
|
-
}
|
|
172
130
|
}, {
|
|
173
131
|
key: "getCameraPosition",
|
|
174
132
|
value: function getCameraPosition(targetPosition, distance) {
|
|
@@ -176,8 +134,8 @@ var CircleManage = /*#__PURE__*/function () {
|
|
|
176
134
|
var cameraPosition = new Vector3();
|
|
177
135
|
var direction = new Vector3(); // 目标对象指向相机的方向
|
|
178
136
|
|
|
179
|
-
var _use$
|
|
180
|
-
camera = _use$
|
|
137
|
+
var _use$useScene = use.useScene(),
|
|
138
|
+
camera = _use$useScene.camera;
|
|
181
139
|
// 计算相机朝向目标对象的方向
|
|
182
140
|
direction.subVectors(camera.position, targetPosition).normalize();
|
|
183
141
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","scene","interactionManager","storeManagement","get","belongTo","remove","dom","document","createElement","style","width","height","imgs","img","data","getData","forEach","people","cloneNode","src","Math","floor","random","mesh","scale","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","poiRemoveEventListener","visible","poi","showPeoplePoi","eventName","Object","assign","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","color","pointerEvents","padding","innerText","animation","type","fadeIn","duration","copy","clone","updateScale","useScene","orbitControls","fn","addEventListener","removeEventListener","getCameraPosition","cameraUtil","toArray","target","then","emit","ratio","minDistance","maxDistance","camera","distance","distanceTo","clampedDistance","max","min","scaleValue","x","y","targetPosition","cameraPosition","direction","subVectors","normalize","multiplyScalar","regionKey","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { MeshPhysicalMaterial, SphereGeometry, Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Mesh, Object3D, Scene } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nimport { usePath } from '../3d'\n\nconst { emitter } = utils\n\nclass CircleManage {\n private gobal: Factory3D\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi!: SpritePoi | null\n private clickPoi: Object3D | null\n poiRemoveEventListener: Function\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n this.remove()\n // const geometry = new SphereGeometry(2, 32, 16)\n // const material = new MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\n // const circle = new Mesh(geometry, material)\n const dom = document.createElement('img')\n dom.style.width = '50px'\n dom.style.height = '87px'\n const imgs = ['左', '中', '右']\n let img\n const data = this.getData(belongTo)\n data.forEach((people) => {\n img = dom.cloneNode() as HTMLImageElement\n img.src = `${usePath}p2/${imgs[Math.floor(Math.random() * 3)]}.png`\n const mesh = new SpritePoi(img, {\n scale: [6, 10, 1],\n })\n mesh.name = people.id\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n })\n this.circleMesh.clear()\n this.peoplePoi && this.peoplePoi.removeFromParent()\n this.peoplePoi = this.clickPoi = null\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: Object3D, data) {\n this.interactionManager.add(mesh)\n\n const showPeoplePoi = (data: any, eventName = 'hover') => {\n if (this.peoplePoi) {\n if (this.peoplePoi.name !== data.id) {\n this.peoplePoi.removeFromParent()\n }\n else {\n if (eventName === 'click')\n this.clickPoi = this.peoplePoi\n return\n }\n }\n this.clickPoi = null\n\n const dom = document.createElement('div')\n Object.assign(dom.style, {\n fontSize: '24px',\n backgroundImage: `url(${usePath}person.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '67px',\n width: '214px',\n padding: '0 0 12px 15px',\n })\n dom.innerText = data.name\n\n this.peoplePoi = new SpritePoi(dom, {\n animation: {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n },\n })\n this.peoplePoi.name = data.id\n this.peoplePoi.position.copy(mesh.position.clone().add(new Vector3(0, 10, 0)))\n this.updateScale(this.peoplePoi, 3.2)\n this.scene.add(this.peoplePoi)\n\n const { orbitControls } = use.useScene()\n if (this.poiRemoveEventListener)\n this.poiRemoveEventListener()\n const fn = () => this.updateScale(this.peoplePoi)\n orbitControls?.addEventListener('change', fn)\n this.poiRemoveEventListener = () => orbitControls?.removeEventListener('change', fn)\n }\n\n mesh.addEventListener('click', () => {\n const position = this.getCameraPosition(new Vector3().fromArray(data.position).add(new Vector3(0, 10, 0)), 43.5)\n this.gobal.cameraUtil.set({\n position: position.toArray(),\n target: [data.position[0], data.position[1] + 10, data.position[2]],\n }).then(() => {})\n emitter.emit('peoplemanagement-person-click', data)\n showPeoplePoi(data, 'click')\n })\n mesh.addEventListener('mouseover', () => {\n showPeoplePoi(data)\n })\n mesh.addEventListener('mouseout', () => {\n if (this.peoplePoi && this.peoplePoi.name !== this.clickPoi?.name) {\n this.peoplePoi.removeFromParent()\n this.peoplePoi = null\n }\n })\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0) {\n if (!poi)\n return\n // 距离限制范围的值,用于计算缩放比例\n const minDistance = 0.1\n const maxDistance = 1000000\n const { camera } = use.useScene()\n\n // 计算相机和物体之间的距离\n const distance = camera.position?.distanceTo(poi.position) || 0.1\n\n const clampedDistance = Math.max(minDistance, Math.min(maxDistance, distance))\n\n const scaleValue = clampedDistance * 0.02\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio, scaleValue, 1))\n }\n\n private getCameraPosition(targetPosition, distance) {\n // 计算相机的位置\n const cameraPosition = new Vector3()\n const direction = new Vector3() // 目标对象指向相机的方向\n\n const { camera } = use.useScene()\n // 计算相机朝向目标对象的方向\n direction.subVectors(camera.position, targetPosition).normalize()\n\n // 将相机沿着目标对象方向移动以保持距离\n cameraPosition.copy(targetPosition).add(direction.multiplyScalar(distance))\n return cameraPosition\n }\n\n private getData(belongTo) {\n const regionKey = Object.keys(regionMap).find((key: any) => {\n return regionMap[key].id === belongTo\n })\n\n return regionMap[regionKey] && regionMap[regionKey].people\n }\n}\n\nexport default CircleManage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Mesh","MeshPhysicalMaterial","SphereGeometry","Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","scene","interactionManager","storeManagement","get","belongTo","remove","geometry","material","color","metalness","roughness","circle","data","getData","forEach","people","mesh","clone","name","id","position","fromArray","add","bindEvent","circleMesh","set","removeFromParent","clear","peoplePoi","clickPoi","visible","poi","showPeoplePoi","eventName","dom","document","createElement","Object","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","pointerEvents","height","width","padding","innerText","scale","animation","type","fadeIn","duration","copy","addEventListener","getCameraPosition","cameraUtil","toArray","target","then","emit","targetPosition","distance","cameraPosition","direction","useScene","camera","subVectors","normalize","multiplyScalar","regionKey","keys","find","key"],"sources":["../../../src/factory/unit/circle.ts"],"sourcesContent":["import { Mesh, MeshPhysicalMaterial, SphereGeometry, Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nimport { usePath } from '../3d'\n\nconst { emitter } = utils\n\nclass CircleManage {\n private gobal: Factory3D\n private scene: Scene\n readonly circleMesh: Map<string, Object3D> = new Map()\n private interactionManager\n private peoplePoi!: Object3D | null\n private clickPoi: Object3D | null\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n generateCircle(belongTo: string) {\n this.remove()\n const geometry = new SphereGeometry(2, 32, 16)\n const material = new MeshPhysicalMaterial({ color: 0xFED602, metalness: 0.1, roughness: 0.5 })\n const circle = new Mesh(geometry, material)\n\n const data = this.getData(belongTo)\n data.forEach((people) => {\n const mesh = circle.clone()\n mesh.name = people.id\n mesh.position.fromArray(people.position)\n this.scene.add(mesh)\n this.bindEvent(mesh, people)\n this.circleMesh.set(people.id, mesh)\n })\n }\n\n remove() {\n this.circleMesh.forEach((mesh) => {\n mesh.removeFromParent()\n })\n this.circleMesh.clear()\n this.peoplePoi && this.peoplePoi.removeFromParent()\n this.peoplePoi = this.clickPoi = null\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: Mesh, data) {\n this.interactionManager.add(mesh)\n\n const showPeoplePoi = (data: any, eventName = 'hover') => {\n if (this.peoplePoi) {\n if (this.peoplePoi.name !== data.id) {\n this.peoplePoi.removeFromParent()\n }\n else {\n if (eventName === 'click')\n this.clickPoi = this.peoplePoi\n return\n }\n }\n this.clickPoi = null\n\n const dom = document.createElement('div')\n Object.assign(dom.style, {\n fontSize: '24px',\n backgroundImage: `url(${usePath}person.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '67px',\n width: '214px',\n padding: '0 0 12px 15px',\n })\n dom.innerText = data.name\n this.peoplePoi = new SpritePoi(dom, {\n scale: [12, 3.8, 1],\n animation: {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n },\n })\n this.peoplePoi.name = data.id\n\n this.peoplePoi.position.copy(mesh.position.clone().add(new Vector3(0, 2, 0)))\n this.scene.add(this.peoplePoi)\n }\n\n mesh.addEventListener('click', () => {\n const position = this.getCameraPosition(new Vector3().fromArray(data.position), 43.5)\n this.gobal.cameraUtil.set({\n position: position.toArray(),\n target: [data.position[0], data.position[1], data.position[2]],\n }).then(() => {\n })\n emitter.emit('peoplemanagement-person-click', data)\n showPeoplePoi(data, 'click')\n })\n mesh.addEventListener('mouseover', () => {\n showPeoplePoi(data)\n })\n mesh.addEventListener('mouseout', () => {\n if (this.peoplePoi && this.peoplePoi.name !== this.clickPoi?.name) {\n this.peoplePoi.removeFromParent()\n this.peoplePoi = null\n }\n })\n }\n\n private getCameraPosition(targetPosition, distance) {\n // 计算相机的位置\n const cameraPosition = new Vector3()\n const direction = new Vector3() // 目标对象指向相机的方向\n\n const { camera } = use.useScene()\n // 计算相机朝向目标对象的方向\n direction.subVectors(camera.position, targetPosition).normalize()\n\n // 将相机沿着目标对象方向移动以保持距离\n cameraPosition.copy(targetPosition).add(direction.multiplyScalar(distance))\n return cameraPosition\n }\n\n private getData(belongTo) {\n const regionKey = Object.keys(regionMap).find((key: any) => {\n return regionMap[key].id === belongTo\n })\n\n return regionMap[regionKey] && regionMap[regionKey].people\n }\n}\n\nexport default CircleManage"],"mappings":"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"}
|
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import { Mesh } from '@anov/3d-core';
|
|
2
1
|
import type { Object3D } from '@anov/3d-core';
|
|
3
2
|
import type Factory3D from '../3d';
|
|
4
3
|
declare class DistrictLineManage {
|
|
5
4
|
private gobal;
|
|
6
5
|
private scene;
|
|
7
6
|
readonly lineMesh: Map<string, Object3D>;
|
|
8
|
-
activeLine: Mesh;
|
|
9
|
-
color: string;
|
|
10
7
|
isShow: boolean;
|
|
11
8
|
constructor(gobal: Factory3D);
|
|
12
9
|
generateLine(): void;
|
|
13
|
-
setHighLightLine(id: any): void;
|
|
14
|
-
setMeshMaterial(mesh: any, color?: string): void;
|
|
15
|
-
removeHighLightLine(): void;
|
|
16
10
|
remove(): void;
|
|
17
11
|
}
|
|
18
12
|
export default DistrictLineManage;
|
|
@@ -17,8 +17,6 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
17
17
|
_defineProperty(this, "gobal", void 0);
|
|
18
18
|
_defineProperty(this, "scene", void 0);
|
|
19
19
|
_defineProperty(this, "lineMesh", new Map());
|
|
20
|
-
_defineProperty(this, "activeLine", void 0);
|
|
21
|
-
_defineProperty(this, "color", '#94786c');
|
|
22
20
|
_defineProperty(this, "isShow", false);
|
|
23
21
|
this.gobal = gobal;
|
|
24
22
|
this.scene = gobal.scene.scene;
|
|
@@ -44,7 +42,7 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
44
42
|
});
|
|
45
43
|
geometry = new TubeGeometry(groundLine.curve, 10000, 1, 2, false);
|
|
46
44
|
material = new MeshBasicMaterial({
|
|
47
|
-
color:
|
|
45
|
+
color: '#f2ca0c'
|
|
48
46
|
});
|
|
49
47
|
mesh = new Mesh(geometry, material);
|
|
50
48
|
_this.scene.add(mesh);
|
|
@@ -60,26 +58,6 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
60
58
|
};
|
|
61
59
|
}());
|
|
62
60
|
}
|
|
63
|
-
}, {
|
|
64
|
-
key: "setHighLightLine",
|
|
65
|
-
value: function setHighLightLine(id) {
|
|
66
|
-
this.setMeshMaterial(this.activeLine);
|
|
67
|
-
this.activeLine = this.lineMesh.get(id);
|
|
68
|
-
this.setMeshMaterial(this.activeLine, '#f2ca0c');
|
|
69
|
-
}
|
|
70
|
-
}, {
|
|
71
|
-
key: "setMeshMaterial",
|
|
72
|
-
value: function setMeshMaterial(mesh) {
|
|
73
|
-
var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.color;
|
|
74
|
-
if (mesh) mesh.material = new MeshBasicMaterial({
|
|
75
|
-
color: color
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
}, {
|
|
79
|
-
key: "removeHighLightLine",
|
|
80
|
-
value: function removeHighLightLine() {
|
|
81
|
-
this.setMeshMaterial(this.activeLine);
|
|
82
|
-
}
|
|
83
61
|
}, {
|
|
84
62
|
key: "remove",
|
|
85
63
|
value: function remove() {
|
|
@@ -89,7 +67,6 @@ var DistrictLineManage = /*#__PURE__*/function () {
|
|
|
89
67
|
mesh.remove();
|
|
90
68
|
});
|
|
91
69
|
this.lineMesh.clear();
|
|
92
|
-
this.removeHighLightLine();
|
|
93
70
|
}
|
|
94
71
|
}]);
|
|
95
72
|
return DistrictLineManage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Mesh","MeshBasicMaterial","TubeGeometry","Vector3","RoundLineGeometry","regionMap","DistrictLineManage","gobal","Map","scene","isShow","Object","keys","forEach","key","region","groundLinePoints","area","map","v","groundLine","radius","close","geometry","curve","material","color","mesh","add","lineMesh","set","id","
|
|
1
|
+
{"version":3,"names":["Mesh","MeshBasicMaterial","TubeGeometry","Vector3","RoundLineGeometry","regionMap","DistrictLineManage","gobal","Map","scene","isShow","Object","keys","forEach","key","region","groundLinePoints","area","map","v","groundLine","radius","close","geometry","curve","material","color","mesh","add","lineMesh","set","id","removeFromParent","remove","clear"],"sources":["../../../src/factory/unit/districtLine.ts"],"sourcesContent":["import { Mesh, MeshBasicMaterial, TubeGeometry, Vector3 } from '@anov/3d-core'\nimport type { Object3D, Scene } from '@anov/3d-core'\nimport { RoundLineGeometry } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { regionMap } from '../regionData'\n\nclass DistrictLineManage {\n private gobal: Factory3D\n private scene: Scene\n readonly lineMesh: Map<string, Object3D> = new Map()\n\n isShow = false\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n }\n\n generateLine() {\n this.isShow = true\n\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n const groundLinePoints = region.area.map(v => new Vector3(v[0], v[1] + 0.1, v[2]))\n\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 5,\n close: true,\n })\n\n const geometry = new TubeGeometry(groundLine.curve, 10000, 1, 2, false)\n const material = new MeshBasicMaterial({ color: '#f2ca0c' })\n const mesh = new Mesh(geometry, material)\n this.scene.add(mesh)\n this.lineMesh.set(region.id, mesh)\n })\n }\n\n remove() {\n this.isShow = false\n this.lineMesh.forEach((mesh) => {\n mesh.removeFromParent()\n mesh.remove()\n })\n this.lineMesh.clear()\n }\n}\n\nexport default DistrictLineManage"],"mappings":";+CACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AADA,SAASA,IAAI,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,QAAQ,eAAe;AAE9E,SAASC,iBAAiB,QAAQ,kBAAkB;AAEpD,SAASC,SAAS;AAAuB,IAEnCC,kBAAkB;EAOtB,4BAAYC,KAAgB,EAAE;IAAA;IAAA;IAAA;IAAA,kCAJa,IAAIC,GAAG,EAAE;IAAA,gCAE3C,KAAK;IAGZ,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,KAAK,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;EAChC;EAAC;IAAA;IAAA,OAED,wBAAe;MAAA;MACb,IAAI,CAACC,MAAM,GAAG,IAAI;MAElBC,MAAM,CAACC,IAAI,CAACP,SAAS,CAAC,CAACQ,OAAO;QAAA,sEAAC,iBAAOC,GAAW;UAAA;UAAA;YAAA;cAAA;gBACzCC,MAAM,GAAGV,SAAS,CAACS,GAAG,CAAC;gBACvBE,gBAAgB,GAAGD,MAAM,CAACE,IAAI,CAACC,GAAG,CAAC,UAAAC,CAAC;kBAAA,OAAI,IAAIhB,OAAO,CAACgB,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAA,EAAC;gBAE5EC,UAAU,GAAG,IAAIhB,iBAAiB,CAACY,gBAAgB,EAAE;kBACzDK,MAAM,EAAE,CAAC;kBACTC,KAAK,EAAE;gBACT,CAAC,CAAC;gBAEIC,QAAQ,GAAG,IAAIrB,YAAY,CAACkB,UAAU,CAACI,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;gBACjEC,QAAQ,GAAG,IAAIxB,iBAAiB,CAAC;kBAAEyB,KAAK,EAAE;gBAAU,CAAC,CAAC;gBACtDC,IAAI,GAAG,IAAI3B,IAAI,CAACuB,QAAQ,EAAEE,QAAQ,CAAC;gBACzC,KAAI,CAAChB,KAAK,CAACmB,GAAG,CAACD,IAAI,CAAC;gBACpB,KAAI,CAACE,QAAQ,CAACC,GAAG,CAACf,MAAM,CAACgB,EAAE,EAAEJ,IAAI,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA,CACnC;QAAA;UAAA;QAAA;MAAA,IAAC;IACJ;EAAC;IAAA;IAAA,OAED,kBAAS;MACP,IAAI,CAACjB,MAAM,GAAG,KAAK;MACnB,IAAI,CAACmB,QAAQ,CAAChB,OAAO,CAAC,UAACc,IAAI,EAAK;QAC9BA,IAAI,CAACK,gBAAgB,EAAE;QACvBL,IAAI,CAACM,MAAM,EAAE;MACf,CAAC,CAAC;MACF,IAAI,CAACJ,QAAQ,CAACK,KAAK,EAAE;IACvB;EAAC;EAAA;AAAA;AAGH,eAAe5B,kBAAkB"}
|
|
@@ -53,8 +53,6 @@ var HandlerManage = /*#__PURE__*/function () {
|
|
|
53
53
|
this.app.caseInstance.cylinder.setVisible();
|
|
54
54
|
// @ts-ignore
|
|
55
55
|
this.app.caseInstance.circle.remove();
|
|
56
|
-
// @ts-ignore
|
|
57
|
-
this.app.caseInstance.districtLine.removeHighLightLine();
|
|
58
56
|
}
|
|
59
57
|
}, {
|
|
60
58
|
key: "click",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["map","HF","HPU","LLCV","CMP1","CMP2","invertMap","HandlerManage","app","params","click","id","title","caseInstance","cameraPoi","closeHotmap","cylinder","setVisible","circle","remove","
|
|
1
|
+
{"version":3,"names":["map","HF","HPU","LLCV","CMP1","CMP2","invertMap","HandlerManage","app","params","click","id","title","caseInstance","cameraPoi","closeHotmap","cylinder","setVisible","circle","remove","name","object","sceneControl","scene","getObjectByName","console","log","dispatchEvent","type","target","inspection","goToInspectionTarget","inspectionObject","stop","contineMove","setSelectedAnchorObject"],"sources":["../../../src/factory/unit/handle.ts"],"sourcesContent":["import { regionMap } from '../regionData'\nimport type Anov3D from '../../sdkEntry'\nimport type { BaseModule } from '../../utils/abstract'\n\nexport const map = {\n HF: 0.04,\n HPU: 0.15,\n LLCV: 0.24,\n CMP1: 0.40,\n CMP2: 0.68,\n}\n\nexport const invertMap = {\n 0.04: 'HF',\n 0.15: 'HPU',\n 0.24: 'LLCV',\n 0.40: 'CMP1',\n 0.68: 'CMP2',\n}\n\nclass HandlerManage implements BaseModule {\n app: Anov3D\n constructor(app: Anov3D) {\n this.app = app\n }\n\n clickPerson(params: any) {\n this.click(params.id)\n }\n\n clickBar(params: any) {\n this.click(params.title)\n }\n\n clickCamera(params: any) {\n this.click(params.id)\n }\n\n clickGasCancel() {\n // @ts-ignore\n this.app.caseInstance.cameraPoi.closeHotmap()\n }\n\n releaseBar() {\n // @ts-ignore\n this.app.caseInstance.cylinder.setVisible()\n // @ts-ignore\n this.app.caseInstance.circle.remove()\n }\n\n click(name) {\n // 根据名称动态获取Mesh对象\n const object = this.app.sceneControl.scene!.getObjectByName(name)\n\n // 触发事件\n if (object) {\n console.log('Mesh对象已找到!')\n // 手动调用Mesh对象上的点击事件处理函数\n object.dispatchEvent({ type: 'click' })\n }\n else {\n console.log('未找到Mesh对象!')\n }\n }\n\n setInspectTarget(params: { target: string }) {\n const { target } = params\n\n // @ts-ignore\n return this.app.caseInstance.inspection.goToInspectionTarget(map[target])\n }\n\n stopInspect() {\n // @ts-ignore\n this.app.caseInstance.inspection.inspectionObject.stop()\n }\n\n continueInspect() {\n // @ts-ignore\n this.app.caseInstance.inspection.inspectionObject.contineMove()\n }\n\n highlightInspectTarget(params: { target: string; highlight: boolean }) {\n // @ts-ignore\n this.app.caseInstance.inspection.setSelectedAnchorObject(params)\n }\n}\n\nexport default HandlerManage\n"],"mappings":";;;;;;;AAIA,OAAO,IAAMA,GAAG,GAAG;EACjBC,EAAE,EAAE,IAAI;EACRC,GAAG,EAAE,IAAI;EACTC,IAAI,EAAE,IAAI;EACVC,IAAI,EAAE,IAAI;EACVC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,IAAMC,SAAS,GAAG;EACvB,IAAI,EAAE,IAAI;EACV,IAAI,EAAE,KAAK;EACX,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE;AACR,CAAC;AAAA,IAEKC,aAAa;EAEjB,uBAAYC,GAAW,EAAE;IAAA;IAAA;IACvB,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAAC;IAAA;IAAA,OAED,qBAAYC,MAAW,EAAE;MACvB,IAAI,CAACC,KAAK,CAACD,MAAM,CAACE,EAAE,CAAC;IACvB;EAAC;IAAA;IAAA,OAED,kBAASF,MAAW,EAAE;MACpB,IAAI,CAACC,KAAK,CAACD,MAAM,CAACG,KAAK,CAAC;IAC1B;EAAC;IAAA;IAAA,OAED,qBAAYH,MAAW,EAAE;MACvB,IAAI,CAACC,KAAK,CAACD,MAAM,CAACE,EAAE,CAAC;IACvB;EAAC;IAAA;IAAA,OAED,0BAAiB;MACf;MACA,IAAI,CAACH,GAAG,CAACK,YAAY,CAACC,SAAS,CAACC,WAAW,EAAE;IAC/C;EAAC;IAAA;IAAA,OAED,sBAAa;MACX;MACA,IAAI,CAACP,GAAG,CAACK,YAAY,CAACG,QAAQ,CAACC,UAAU,EAAE;MAC3C;MACA,IAAI,CAACT,GAAG,CAACK,YAAY,CAACK,MAAM,CAACC,MAAM,EAAE;IACvC;EAAC;IAAA;IAAA,OAED,eAAMC,IAAI,EAAE;MACV;MACA,IAAMC,MAAM,GAAG,IAAI,CAACb,GAAG,CAACc,YAAY,CAACC,KAAK,CAAEC,eAAe,CAACJ,IAAI,CAAC;;MAEjE;MACA,IAAIC,MAAM,EAAE;QACVI,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;QACzB;QACAL,MAAM,CAACM,aAAa,CAAC;UAAEC,IAAI,EAAE;QAAQ,CAAC,CAAC;MACzC,CAAC,MACI;QACHH,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;MAC3B;IACF;EAAC;IAAA;IAAA,OAED,0BAAiBjB,MAA0B,EAAE;MAC3C,IAAQoB,MAAM,GAAKpB,MAAM,CAAjBoB,MAAM;;MAEd;MACA,OAAO,IAAI,CAACrB,GAAG,CAACK,YAAY,CAACiB,UAAU,CAACC,oBAAoB,CAAC/B,GAAG,CAAC6B,MAAM,CAAC,CAAC;IAC3E;EAAC;IAAA;IAAA,OAED,uBAAc;MACZ;MACA,IAAI,CAACrB,GAAG,CAACK,YAAY,CAACiB,UAAU,CAACE,gBAAgB,CAACC,IAAI,EAAE;IAC1D;EAAC;IAAA;IAAA,OAED,2BAAkB;MAChB;MACA,IAAI,CAACzB,GAAG,CAACK,YAAY,CAACiB,UAAU,CAACE,gBAAgB,CAACE,WAAW,EAAE;IACjE;EAAC;IAAA;IAAA,OAED,gCAAuBzB,MAA8C,EAAE;MACrE;MACA,IAAI,CAACD,GAAG,CAACK,YAAY,CAACiB,UAAU,CAACK,uBAAuB,CAAC1B,MAAM,CAAC;IAClE;EAAC;EAAA;AAAA;AAGH,eAAeF,aAAa"}
|
|
@@ -57,7 +57,7 @@ var showCameraPoiInspection = function showCameraPoiInspection() {
|
|
|
57
57
|
(_this$cameraPoi2 = this.cameraPoi) === null || _this$cameraPoi2 === void 0 ? void 0 : _this$cameraPoi2.generateObject();
|
|
58
58
|
};
|
|
59
59
|
var toggleOverview = function toggleOverview() {
|
|
60
|
-
if (!this.districtLine.isShow) this.districtLine.generateLine();
|
|
60
|
+
if (!this.districtLine.isShow) this.districtLine.generateLine();
|
|
61
61
|
this.scene.camera.layers.disable(28);
|
|
62
62
|
showOverview.apply(this);
|
|
63
63
|
closePeopleManagemen.apply(this);
|
|
@@ -172,7 +172,6 @@ var handleUnit = function handleUnit() {
|
|
|
172
172
|
type: 'Bar'
|
|
173
173
|
}, data));
|
|
174
174
|
_this.circle.generateCircle(data === null || data === void 0 ? void 0 : data.belongTo);
|
|
175
|
-
_this.districtLine.setHighLightLine(data === null || data === void 0 ? void 0 : data.belongTo);
|
|
176
175
|
});
|
|
177
176
|
emitter.on('peoplemanagement-person-click', function (data) {
|
|
178
177
|
sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, _objectSpread({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["utils","SceneStyle","SceneTag","MessageType","sendToMessage","EMessageStatus","WallManage","CylinderManage","PoiManage","CircleManage","AreaBoundingBoxManage","Inspection","CameraPoi","DistrictLineManage","RegionPlane","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","districtLine","isShow","generateLine","removeHighLightLine","scene","camera","layers","disable","apply","regionPlane","planeMesh","togglePeopleManagemen","enable","toggleSmartInspection","console","log","toggleSecurityOperation","toggleStandBy","toggleTag","overview","tag","toggleSceneStyle","real","controls","enabled","tech","standBy","handleUnit","generateWall","generateCylinder","on","data","Event","Success","undefined","type","generateCircle","belongTo","setHighLightLine","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { Layers, 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'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\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 if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n else\n this.districtLine.removeHighLightLine()\n\n this.scene.camera.layers.disable(28)\n showOverview.apply(this)\n closePeopleManagemen.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 togglePeopleManagemen = function () {\n if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n\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 = false\n })\n}\n\nconst toggleSmartInspection = function () {\n this.districtLine.remove()\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 console.log(mesh)\n mesh.visible = false\n })\n}\n\nconst toggleSecurityOperation = function () {\n this.districtLine.remove()\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.districtLine.remove()\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 this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = true\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n this.scene.controls.enabled = true\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = false\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = true\n toggleSecurityOperation.apply(this)\n },\n [SceneTag.standBy]() {\n this.tag = SceneTag.standBy\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = true\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 // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n const regionPlane = new RegionPlane(this)\n this.regionPlane = regionPlane\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\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n this.circle.generateCircle(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","emitter","showOverview","poi","generatePoi","closeOverview","wall","wallMesh","forEach","mesh","visible","remove","showPeopleManagemen","cylinder","cylinderMesh","closePeopleManagemen","circle","showSmartInspection","inspection","show","closeSmartInspection","hide","closeCameraPoiInspection","cameraPoi","showCameraPoiInspection","generateObject","toggleOverview","districtLine","isShow","generateLine","scene","camera","layers","disable","apply","regionPlane","planeMesh","togglePeopleManagemen","enable","toggleSmartInspection","console","log","toggleSecurityOperation","toggleStandBy","toggleTag","overview","tag","toggleSceneStyle","real","controls","enabled","tech","standBy","handleUnit","generateWall","generateCylinder","on","data","Event","Success","undefined","type","generateCircle","belongTo","areaBoundingBox","generateBoundingBox","addEventListener","args","item"],"sources":["../../../src/factory/unit/index.ts"],"sourcesContent":["import { Layers, 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'\n\nconst { emitter } = utils\n\n// 临时优化\n\nconst showOverview = function () {\n this.poi.generatePoi()\n}\n\nconst closeOverview = function () {\n this.wall.wallMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.poi.remove()\n}\n\nconst showPeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = true\n })\n}\n\nconst closePeopleManagemen = function () {\n this.cylinder.cylinderMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.circle.remove()\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 if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n\n this.scene.camera.layers.disable(28)\n showOverview.apply(this)\n closePeopleManagemen.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 togglePeopleManagemen = function () {\n if (!this.districtLine.isShow)\n this.districtLine.generateLine()\n\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 = false\n })\n}\n\nconst toggleSmartInspection = function () {\n this.districtLine.remove()\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 console.log(mesh)\n mesh.visible = false\n })\n}\n\nconst toggleSecurityOperation = function () {\n this.districtLine.remove()\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.districtLine.remove()\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 this.tag = SceneTag.overview\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = true\n toggleOverview.apply(this)\n },\n [SceneTag['people-management']]() {\n this.tag = SceneTag['people-management']\n this.toggleSceneStyle(SceneStyle.tech)\n this.scene.controls.enabled = true\n togglePeopleManagemen.apply(this)\n },\n [SceneTag['smart-inspection']]() {\n this.tag = SceneTag['smart-inspection']\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = false\n toggleSmartInspection.apply(this)\n },\n [SceneTag['security-operation']]() {\n this.tag = SceneTag['security-operation']\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = true\n toggleSecurityOperation.apply(this)\n },\n [SceneTag.standBy]() {\n this.tag = SceneTag.standBy\n this.toggleSceneStyle(SceneStyle.real)\n this.scene.controls.enabled = true\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 // 圆柱\n const cylinder = new CylinderManage(this, {\n visible: false,\n })\n cylinder.generateCylinder()\n\n this.cylinder = cylinder\n\n const regionPlane = new RegionPlane(this)\n this.regionPlane = regionPlane\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\n emitter.on('peoplemanagement-camera-enter', (data: any) => {\n sendToMessage(MessageType.Event, 'onClick', EMessageStatus.Success, undefined, {\n type: 'Bar',\n ...data,\n })\n this.circle.generateCircle(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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"}
|
|
@@ -8,7 +8,10 @@ declare class InspectionObject {
|
|
|
8
8
|
private isLock;
|
|
9
9
|
private isAnimation;
|
|
10
10
|
walkCurveMesh: any;
|
|
11
|
+
tempPathMesh: any;
|
|
11
12
|
css2d: Css2DPoi;
|
|
13
|
+
temp: any;
|
|
14
|
+
tempDemo: any;
|
|
12
15
|
constructor(inspection: any);
|
|
13
16
|
private loadModel;
|
|
14
17
|
startMove(curve: any): Promise<void>;
|
|
@@ -19,6 +22,8 @@ declare class InspectionObject {
|
|
|
19
22
|
private checkAnimation;
|
|
20
23
|
generateTempPath(currentPosition: Vector3, targetPosition: Vector3): LineCurve3;
|
|
21
24
|
private startRotate;
|
|
25
|
+
private generateTempPathMesh;
|
|
26
|
+
private cleanTempPathMesh;
|
|
22
27
|
gotoTarget(targetPosition: Vector3, targetProgress: number): void;
|
|
23
28
|
setSpeed(speed: number): void;
|
|
24
29
|
stop(): void;
|
|
@@ -8,7 +8,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
8
8
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
9
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
10
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
|
-
import { Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, MeshBasicMaterial, ModelLoader, Quaternion, Vector3, use, utils } from '@anov/3d-core';
|
|
11
|
+
import { Clock, Color, EdgesGeometry, Group, LineBasicMaterial, LineCurve3, LineSegments, Matrix4, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, ModelLoader, Quaternion, RepeatWrapping, TextureLoader, Vector3, use, utils } from '@anov/3d-core';
|
|
12
12
|
import { SpritePoi } from '@anov/3d-ability';
|
|
13
13
|
import { Tween } from '@tweenjs/tween.js';
|
|
14
14
|
import { createFinirMaterial } from "../../utils/finirMaterial";
|
|
@@ -16,6 +16,7 @@ import { usePath } from "../../3d";
|
|
|
16
16
|
import { MessageType, sendToMessage } from "../../../utils/messageFn";
|
|
17
17
|
import { EMessageStatus } from "../../../messageStatus";
|
|
18
18
|
import { isCheck, targetProgresspoints } from "./lineData";
|
|
19
|
+
import TubeGeometryV2 from "./tubeGeometry";
|
|
19
20
|
var modelLoader = new ModelLoader();
|
|
20
21
|
var InspectionObject = /*#__PURE__*/function () {
|
|
21
22
|
function InspectionObject(inspection) {
|
|
@@ -27,7 +28,10 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
27
28
|
_defineProperty(this, "isLock", false);
|
|
28
29
|
_defineProperty(this, "isAnimation", false);
|
|
29
30
|
_defineProperty(this, "walkCurveMesh", void 0);
|
|
31
|
+
_defineProperty(this, "tempPathMesh", void 0);
|
|
30
32
|
_defineProperty(this, "css2d", void 0);
|
|
33
|
+
_defineProperty(this, "temp", void 0);
|
|
34
|
+
_defineProperty(this, "tempDemo", void 0);
|
|
31
35
|
_defineProperty(this, "startRotate", function (targetQuaternion, mesh, cb) {
|
|
32
36
|
var clock = new Clock();
|
|
33
37
|
if (mesh.quaternion.equals(targetQuaternion)) return cb();
|
|
@@ -43,6 +47,12 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
43
47
|
});
|
|
44
48
|
});
|
|
45
49
|
this.inspection = inspection;
|
|
50
|
+
var temp = new TextureLoader().load("".concat(usePath, "test07.png"));
|
|
51
|
+
temp.wrapS = RepeatWrapping;
|
|
52
|
+
temp.wrapT = MirroredRepeatWrapping;
|
|
53
|
+
temp.repeat.set(1, 2);
|
|
54
|
+
temp.rotation = Math.PI;
|
|
55
|
+
this.temp = temp;
|
|
46
56
|
}
|
|
47
57
|
_createClass(InspectionObject, [{
|
|
48
58
|
key: "loadModel",
|
|
@@ -343,10 +353,38 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
343
353
|
value: function generateTempPath(currentPosition, targetPosition) {
|
|
344
354
|
return new LineCurve3(currentPosition, targetPosition);
|
|
345
355
|
}
|
|
356
|
+
}, {
|
|
357
|
+
key: "generateTempPathMesh",
|
|
358
|
+
value: function generateTempPathMesh(curve) {
|
|
359
|
+
var _this4 = this;
|
|
360
|
+
// @ts-ignore
|
|
361
|
+
var tube = new TubeGeometryV2(curve, 100, 5, 2, false);
|
|
362
|
+
var tempPathMesh = new Mesh(tube, new MeshBasicMaterial({
|
|
363
|
+
map: this.temp,
|
|
364
|
+
transparent: true,
|
|
365
|
+
depthTest: true
|
|
366
|
+
}));
|
|
367
|
+
this.inspection.gobal.scene.add(tempPathMesh);
|
|
368
|
+
this.tempPathMesh = tempPathMesh;
|
|
369
|
+
this.temp.repeat.set(curve.getLength() / 500, 2);
|
|
370
|
+
this.tempDemo = use.useframe(function () {
|
|
371
|
+
_this4.temp.offset.x -= -0.0009;
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
}, {
|
|
375
|
+
key: "cleanTempPathMesh",
|
|
376
|
+
value: function cleanTempPathMesh() {
|
|
377
|
+
if (this.tempPathMesh) {
|
|
378
|
+
this.tempDemo();
|
|
379
|
+
this.tempPathMesh.geometry.dispose();
|
|
380
|
+
this.tempPathMesh.material.dispose();
|
|
381
|
+
this.tempPathMesh.removeFromParent();
|
|
382
|
+
}
|
|
383
|
+
}
|
|
346
384
|
}, {
|
|
347
385
|
key: "gotoTarget",
|
|
348
386
|
value: function gotoTarget(targetPosition, targetProgress) {
|
|
349
|
-
var
|
|
387
|
+
var _this5 = this;
|
|
350
388
|
if (this.isAnimation) return;
|
|
351
389
|
this.isAnimation = true;
|
|
352
390
|
this.control.stop();
|
|
@@ -355,36 +393,45 @@ var InspectionObject = /*#__PURE__*/function () {
|
|
|
355
393
|
rotationMatrix.lookAt(targetPosition, this.model.position, this.model.up);
|
|
356
394
|
targetQuaternion.setFromRotationMatrix(rotationMatrix);
|
|
357
395
|
this.startRotate(targetQuaternion, this.model, function () {
|
|
358
|
-
var
|
|
396
|
+
var tempPathMeshtargetPosition = new Vector3(targetPosition.x, 1.1, targetPosition.z);
|
|
397
|
+
_this5.generateTempPathMesh(_this5.generateTempPath(new Vector3(_this5.model.position.x, 1.1, _this5.model.position.z), tempPathMeshtargetPosition));
|
|
398
|
+
var currentPosition = _this5.model.position;
|
|
359
399
|
var upCurve = new LineCurve3(currentPosition, new Vector3(currentPosition.x, currentPosition.y + 100, currentPosition.z));
|
|
360
|
-
var upControl = utils.moveWithLine(
|
|
400
|
+
var upControl = utils.moveWithLine(_this5.model, upCurve, 10, {
|
|
361
401
|
loop: false,
|
|
362
402
|
lookat: targetPosition
|
|
363
403
|
});
|
|
404
|
+
|
|
405
|
+
// up end
|
|
364
406
|
upControl.addEventListener('end', function () {
|
|
365
|
-
var tempCurve =
|
|
366
|
-
var tempControl = utils.moveWithLine(
|
|
407
|
+
var tempCurve = _this5.generateTempPath(currentPosition, new Vector3(targetPosition.x, targetPosition.y + 100, targetPosition.z));
|
|
408
|
+
var tempControl = utils.moveWithLine(_this5.model, tempCurve, 50, {
|
|
367
409
|
loop: false,
|
|
368
410
|
lookat: false
|
|
369
411
|
});
|
|
412
|
+
|
|
413
|
+
// temp end
|
|
370
414
|
tempControl.addEventListener('end', function () {
|
|
371
|
-
var lastPosition =
|
|
415
|
+
var lastPosition = _this5.model.position;
|
|
372
416
|
var downCurve = new LineCurve3(lastPosition, new Vector3(lastPosition.x, lastPosition.y - 100, lastPosition.z));
|
|
373
|
-
var downControl = utils.moveWithLine(
|
|
417
|
+
var downControl = utils.moveWithLine(_this5.model, downCurve, 10, {
|
|
374
418
|
loop: false,
|
|
375
419
|
lookat: false
|
|
376
420
|
});
|
|
421
|
+
|
|
422
|
+
// down end
|
|
377
423
|
downControl.addEventListener('end', function () {
|
|
378
424
|
var rotationMatrix2 = new Matrix4();
|
|
379
425
|
var targetQuaternion2 = new Quaternion();
|
|
380
|
-
var targetPosition2 =
|
|
381
|
-
rotationMatrix2.lookAt(targetPosition2,
|
|
426
|
+
var targetPosition2 = _this5.inspection.curve.getPointAt((targetProgress + 0.01) % 1);
|
|
427
|
+
rotationMatrix2.lookAt(targetPosition2, _this5.model.position, _this5.model.up);
|
|
382
428
|
targetQuaternion2.setFromRotationMatrix(rotationMatrix2);
|
|
383
|
-
|
|
429
|
+
_this5.startRotate(targetQuaternion2, _this5.model, function () {
|
|
384
430
|
setTimeout(function () {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
431
|
+
_this5.cleanTempPathMesh();
|
|
432
|
+
_this5.isAnimation = false;
|
|
433
|
+
_this5.control.setProgress(targetProgress);
|
|
434
|
+
_this5.control.contine();
|
|
388
435
|
}, 500);
|
|
389
436
|
});
|
|
390
437
|
});
|