@anov/3d 0.0.131 → 0.0.132

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.
@@ -118,7 +118,7 @@ var CircleManage = /*#__PURE__*/function () {
118
118
  });
119
119
  var span = document.createElement('span');
120
120
  span.innerText = data.name;
121
- span.style.paddingLeft = '70px';
121
+ span.style.paddingLeft = '60px';
122
122
  span.style.fontFamily = 'YouSheBiaoTiHei3D';
123
123
  dom.appendChild(span);
124
124
  _this2.peoplePoi = new SpritePoi(dom, {
@@ -1 +1 @@
1
- {"version":3,"names":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","Set","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","eventListener","fn","visible","poi","showPeoplePoi","eventName","image","top","left","appendChild","Object","assign","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","color","pointerEvents","padding","span","innerText","paddingLeft","fontFamily","animation","type","fadeIn","duration","copy","clone","updateScale","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","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 { Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Mesh, Object3D, Scene } from '@anov/3d-core'\nimport { 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 eventListener: Set<Function> = new Set()\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: [10, 16, 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 mesh.remove()\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 this.eventListener && this.eventListener.forEach((fn) => {\n fn()\n })\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: SpritePoi, 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 const image = document.createElement('img')\n\n image.src = `${usePath}people.png`\n image.style.width = '30px'\n image.style.height = '30px'\n image.style.position = 'absolute'\n image.style.top = '5px'\n image.style.left = '30px'\n\n dom.appendChild(image)\n\n Object.assign(dom.style, {\n fontSize: '24px',\n backgroundImage: `url(${usePath}人员标签.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '50px',\n width: '200px',\n padding: '0 0 12px 15px',\n position: 'relative',\n })\n\n const span = document.createElement('span')\n span.innerText = data.name\n span.style.paddingLeft = '70px'\n span.style.fontFamily = 'YouSheBiaoTiHei3D'\n dom.appendChild(span)\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, 16, 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 const unClick = 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 this.eventListener.add(unClick)\n\n let hoverMesh: SpritePoi\n mesh.addEventListener('mouseover', () => {\n showPeoplePoi(data)\n\n const img = document.createElement('img')\n img.src = `${usePath}人员高亮.png`\n\n hoverMesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n hoverMesh.position.fromArray(data.position)\n\n this.scene.add(hoverMesh)\n })\n\n mesh.addEventListener('mouseout', () => {\n if (hoverMesh)\n hoverMesh.removeFromParent()\n\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.03\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":["Vector3","use","utils","EAnimationType","SpritePoi","regionMap","usePath","emitter","CircleManage","gobal","Map","Set","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","eventListener","fn","visible","poi","showPeoplePoi","eventName","image","top","left","appendChild","Object","assign","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","color","pointerEvents","padding","span","innerText","paddingLeft","fontFamily","animation","type","fadeIn","duration","copy","clone","updateScale","useScene","orbitControls","addEventListener","removeEventListener","unClick","getCameraPosition","cameraUtil","toArray","target","then","emit","hoverMesh","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 { Vector3, use, utils } from '@anov/3d-core'\nimport type { InteractionManager, Mesh, Object3D, Scene } from '@anov/3d-core'\nimport { 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 eventListener: Set<Function> = new Set()\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: [10, 16, 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 mesh.remove()\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 this.eventListener && this.eventListener.forEach((fn) => {\n fn()\n })\n }\n\n setVisible(visible = true) {\n // 控制CYCLE的隐藏、显示\n this.circleMesh.forEach((poi) => {\n poi.visible = visible\n })\n }\n\n private bindEvent(mesh: SpritePoi, 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 const image = document.createElement('img')\n\n image.src = `${usePath}people.png`\n image.style.width = '30px'\n image.style.height = '30px'\n image.style.position = 'absolute'\n image.style.top = '5px'\n image.style.left = '30px'\n\n dom.appendChild(image)\n\n Object.assign(dom.style, {\n fontSize: '24px',\n backgroundImage: `url(${usePath}人员标签.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n height: '50px',\n width: '200px',\n padding: '0 0 12px 15px',\n position: 'relative',\n })\n\n const span = document.createElement('span')\n span.innerText = data.name\n span.style.paddingLeft = '60px'\n span.style.fontFamily = 'YouSheBiaoTiHei3D'\n dom.appendChild(span)\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, 16, 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 const unClick = 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 this.eventListener.add(unClick)\n\n let hoverMesh: SpritePoi\n mesh.addEventListener('mouseover', () => {\n showPeoplePoi(data)\n\n const img = document.createElement('img')\n img.src = `${usePath}人员高亮.png`\n\n hoverMesh = new SpritePoi(img, {\n scale: [10, 16, 1],\n })\n hoverMesh.position.fromArray(data.position)\n\n this.scene.add(hoverMesh)\n })\n\n mesh.addEventListener('mouseout', () => {\n if (hoverMesh)\n hoverMesh.removeFromParent()\n\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.03\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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"}
@@ -143,12 +143,12 @@ var getDom = function getDom(data) {
143
143
  dom.appendChild(img);
144
144
  var label = document.createElement('span');
145
145
  label.style.marginLeft = '2px';
146
+ label.style.marginRight = '2px';
146
147
  label.innerText = data.areaLabel;
147
148
  label.style.fontWeight = 'bold';
148
149
  label.style.fontFamily = 'YouSheBiaoTiHei3D';
149
150
  dom.appendChild(label);
150
151
  var label2 = document.createElement('span');
151
- label2.style.marginLeft = '2px';
152
152
  label2.innerText = data.label.slice(0, data.label.length - 1);
153
153
  label2.style.fontWeight = 'bold';
154
154
  label2.style.fontSize = '30px';
@@ -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","innerText","fontWeight","fontFamily","label2","slice","marginTop","marginRight","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.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.style.marginLeft = '2px'\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","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anov/3d",
3
- "version": "0.0.131",
3
+ "version": "0.0.132",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "MIT",
@@ -22,8 +22,8 @@
22
22
  "localforage": "^1.10.0",
23
23
  "resize-observer-polyfill": "^1.5.1",
24
24
  "uuid": "^9.0.1",
25
- "@anov/3d-core": "^0.0.22",
26
- "@anov/3d-ability": "^0.0.23"
25
+ "@anov/3d-ability": "^0.0.24",
26
+ "@anov/3d-core": "^0.0.23"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/uuid": "^9.0.7"