@anov/3d 0.0.117 → 0.0.119
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/factory/3d.js
CHANGED
|
@@ -99,76 +99,76 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
99
99
|
xhr.send();
|
|
100
100
|
};
|
|
101
101
|
return new Promise(function (resolve) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
loadCSS("".concat(resourcePath2, "result.css"), function () {
|
|
103
|
+
_this.scene = scene;
|
|
104
|
+
_this.cameraUtil = new Camera(scene.camera, scene.controls, scene);
|
|
105
|
+
_this.control = scene.controls;
|
|
106
|
+
scene.camera.layers.set(0);
|
|
107
|
+
load.loadGLTF("".concat(_this.usePath, "landScap2.glb"), false, true, './draco/', function (gltf) {
|
|
108
|
+
_this.realGroundModel = gltf.scene;
|
|
109
109
|
|
|
110
|
-
|
|
110
|
+
// this.interactionManager.add(gltf.scene)
|
|
111
111
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
// gltf.scene.addEventListener('click', (value) => {
|
|
113
|
+
// console.log(value.point)
|
|
114
|
+
// this.position = value.point
|
|
115
|
+
// })
|
|
116
116
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
117
|
+
var mesh, material;
|
|
118
|
+
gltf.scene.traverse(function (child) {
|
|
119
|
+
child.layers.enable(5);
|
|
120
|
+
if (child.type === 'Mesh') {
|
|
121
|
+
child.castShadow = true;
|
|
122
|
+
child.receiveShadow = true;
|
|
123
|
+
mesh = child;
|
|
124
|
+
material = mesh.material;
|
|
125
|
+
// 记录树、草地、山体的Mesh对象,用于四季效果
|
|
126
|
+
if (material.name === 'sss-1-2.001' || material.name === 'sss-1') _this.treesMesh.push(mesh);else if (material.name === 'Material #32') _this.grasslandMesh.push(mesh);else if (material.name === 'Material #33') _this.massifMesh.push(mesh);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
scene.add(_this.realGroundModel);
|
|
130
|
+
return gltf;
|
|
128
131
|
});
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
load.loadGLTF("".concat(_this.usePath, "landScap3.glb"), false, true, './draco/', function (gltf) {
|
|
133
|
-
// @ts-ignore
|
|
134
|
-
_this.realTreeModel = gltf.scene;
|
|
132
|
+
load.loadGLTF("".concat(_this.usePath, "landScap3.glb"), false, true, './draco/', function (gltf) {
|
|
133
|
+
// @ts-ignore
|
|
134
|
+
_this.realTreeModel = gltf.scene;
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
// this.interactionManager.add(gltf.scene)
|
|
137
137
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
// gltf.scene.addEventListener('click', (value) => {
|
|
139
|
+
// console.log(value.point)
|
|
140
|
+
// this.position = value.point
|
|
141
|
+
// })
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
143
|
+
gltf.scene.traverse(function (child) {
|
|
144
|
+
child.layers.enable(5);
|
|
145
|
+
if (child.type === 'Mesh') {
|
|
146
|
+
child.castShadow = true;
|
|
147
|
+
child.receiveShadow = true;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
// scene.add(this.realTreeModel)
|
|
152
152
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
153
|
+
return gltf;
|
|
154
|
+
});
|
|
155
|
+
var interactionManager = new InteractionManager(_this.scene.renderer, _this.scene.camera, _this.scene.renderer.domElement) // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,
|
|
156
|
+
;
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
158
|
+
_this.interactionManager = interactionManager;
|
|
159
|
+
utils.storeManagement.set('interactionManager', interactionManager);
|
|
160
|
+
use.useframe(function () {
|
|
161
|
+
interactionManager.update();
|
|
162
|
+
});
|
|
163
|
+
_this.loadModel();
|
|
164
|
+
loadingManager.onLoad = function () {
|
|
165
|
+
resolve('success');
|
|
166
|
+
};
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
// initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })
|
|
169
169
|
|
|
170
|
-
|
|
171
|
-
|
|
170
|
+
scene.renderer.toneMappingExposure = 0.4;
|
|
171
|
+
});
|
|
172
172
|
});
|
|
173
173
|
}
|
|
174
174
|
}, {
|
package/dist/factory/3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AdditiveBlending","Color","InteractionManager","LoadingManager","Mesh","MeshBasicMaterial","MeshLambertMaterial","ModelLoader","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","Vector2","Vector3","lib","use","utils","Camera","SpritePoi","MessageType","sendToMessage","EMessageStatus","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","targetProgresspoints","material","uniforms","frag","vert","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","loadCSS","url","callback","xhr","XMLHttpRequest","open","onreadystatechange","readyState","status","blob","Blob","responseText","type","blobURL","URL","createObjectURL","link","document","createElement","rel","href","crossOrigin","head","appendChild","console","log","error","statusText","onerror","err","send","Promise","resolve","cameraUtil","camera","controls","control","layers","set","loadGLTF","gltf","realGroundModel","mesh","traverse","child","enable","castShadow","receiveShadow","name","treesMesh","push","grasslandMesh","massifMesh","add","realTreeModel","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","_Time","value","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","wrapS","wrapT","repeat","blending","transparent","opacity","depthTest","map","offset","tech","techModel","color","white","whiteModel","targerMeshName","Object","values","v","lookAt","vertexShader","fragmentShader","texture1","texture2","uvScale","includes","window","app","envServer","scaleRatio","div","img","src","span","innerText","top","left","transform","fontSize","fontWeight","span2","poi01","width","height","div2","img2","span3","span4","poi02","thermaLimaging","pipeline","params","background","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","viewType","cutoutCamera","inspection","minCamera","mapCamera","mainCamera","emit","Event","Success","undefined","fov","updateProjectionMatrix","eventName","handleFn"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, Material, Object3D, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, MeshLambertMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, SpritePoi, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../utils/messageFn'\nimport { EMessageStatus } from '../messageStatus'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type DistrictLineManage from './unit/districtLine'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport type Inspection from './unit/inspection'\nimport { globalEvents } from './globalData'\nimport { SceneStyle, SceneTag } from './utils/constant'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\nimport { debounce } from './utils'\nimport createRiseLayer from './unit/layer/rise'\nimport { targetProgresspoints } from './unit/inspection/lineData'\nimport { material, uniforms } from './utils/ground'\n\nimport frag from './unit/glsl/heat/frag'\nimport vert from './unit/glsl/heat/ver'\n\ntype factory3dOption = {\n model: string\n environment: string\n decoderPath?: string\n controls?: any\n}\n\nexport const loadingManager = new LoadingManager()\nconst load = new ModelLoader(loadingManager)\nconst rgbeLoader = new lib.RGBELoader(loadingManager)\nconst { emitter } = utils\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\n\nexport const usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene: SceneControl\n control: OrbitControls\n cameraUtil: Camera\n\n public loadingManager = loadingManager\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n wall: WallManage\n line: LineManage\n cylinder: CylinderManage\n poi: PoiManage\n circle: CircleManage\n areaBoundingBox: AreaBoundingBoxManage\n inspection: Inspection\n districtLine: DistrictLineManage\n\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private whiteModel: Group\n private realGroundModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\n private treesMesh: Array<Mesh> = []\n private grasslandMesh: Array<Mesh> = []\n private massifMesh: Array<Mesh> = []\n\n mainCamera: any\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n const loadCSS = (url, callback) => {\n const xhr = new XMLHttpRequest()\n xhr.open('GET', url, true)\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300) {\n const blob = new Blob([xhr.responseText], { type: 'text/css' })\n const blobURL = URL.createObjectURL(blob)\n\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = blobURL\n link.crossOrigin = 'anonymous'\n document.head.appendChild(link)\n\n if (typeof callback === 'function')\n callback()\n\n console.log(`CSS 加载成功: ${url}`)\n }\n else {\n console.error(`Failed to load CSS: ${url}`, xhr.statusText)\n }\n }\n }\n xhr.onerror = function (err) {\n console.error(`Failed to load CSS: ${url}`, err)\n }\n xhr.send()\n }\n\n return new Promise((resolve) => {\n // loadCSS(`${resourcePath2}result.css`, () => {\n this.scene = scene\n\n this.cameraUtil = new Camera(scene.camera!, scene.controls!, scene)\n this.control = scene.controls!\n scene.camera.layers.set(0)\n\n load.loadGLTF(`${this.usePath}landScap2.glb`, false, true, './draco/', (gltf) => {\n this.realGroundModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n let mesh, material\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n\n mesh = child as Mesh\n material = mesh.material as Material\n // 记录树、草地、山体的Mesh对象,用于四季效果\n if (material.name === 'sss-1-2.001' || material.name === 'sss-1')\n this.treesMesh.push(mesh)\n else if (material.name === 'Material #32')\n this.grasslandMesh.push(mesh)\n else if (material.name === 'Material #33')\n this.massifMesh.push(mesh)\n }\n })\n scene.add(this.realGroundModel)\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}landScap3.glb`, false, true, './draco/', (gltf) => {\n // @ts-ignore\n this.realTreeModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n // scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n // initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })\n\n scene.renderer.toneMappingExposure = 0.4\n // })\n })\n }\n\n private loadModel() {\n // real model\n load.loadGLTF(`${this.usePath}222.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.real === this.style\n\n this.realModl = gltf.scene as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n // tech model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n\n use.useframe(() => {\n if (uniforms._Time.value > 0.5)\n uniforms._Time.value = 0\n\n uniforms._Time.value += 0.0008\n })\n\n group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n // @ts-ignore\n child.visible = false\n const geometry = new PlaneGeometry(3000, 2000)\n const plane = new Mesh(geometry, material)\n plane.rotation.x = -Math.PI / 2\n\n plane.position.set(0, -1.5, 0)\n plane.renderOrder = -1\n\n group.add(plane)\n }\n\n else {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n }\n })\n\n load.loadGLTF(`${this.usePath}plane.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.scale.set(0.5, 0.5, 0.5)\n\n const text = new TextureLoader().load(`${this.usePath}roll.png`)\n\n text.wrapS = RepeatWrapping\n text.wrapT = RepeatWrapping\n\n text.repeat.set(1, 1)\n\n gltf.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material.blending = AdditiveBlending\n // @ts-ignore\n child.material.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n // @ts-ignore\n child.material.depthTest = true\n\n // @ts-ignore\n child.material.map = text\n }\n })\n\n use.useframe(() => {\n text.offset.x += 0.01\n })\n\n group.add(gltf.scene)\n\n return gltf\n })\n\n createRiseLayer()\n\n this.scene.add(group)\n\n group.visible = SceneStyle.tech === this.style\n this.techModel = group as Group\n\n return gltf\n })\n\n // white model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.traverse((child) => {\n if (child.name === '柱体')\n (child as Mesh).material = new MeshBasicMaterial({ color: new Color('#fff') })\n else if (child.type === 'Mesh')\n (child as Mesh).material = new MeshLambertMaterial({ color: new Color('#aaa') })\n })\n\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.white === this.style\n this.whiteModel = gltf.scene as Group\n return gltf\n })\n\n const targerMeshName = Object.values(targetProgresspoints).map(v => v.lookAt)\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n })\n\n child.layers.set(2)\n\n if (targerMeshName.includes(child.name))\n // @ts-ignore\n child.material.depthTest = false\n }\n })\n\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}poi01.png`\n\n const span = document.createElement('span')\n span.innerText = '125.7°C'\n span.style.position = 'absolute'\n span.style.top = `${19.5 * scale}px`\n span.style.left = '40%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = '#e47762'\n span.style.fontSize = '12px'\n span.style.fontWeight = 'bold'\n\n const span2 = document.createElement('span')\n span2.innerText = '点位2'\n span2.style.position = 'absolute'\n span2.style.top = `${19.5 * scale}px`\n span2.style.left = '10%'\n span2.style.transform = 'translateX(-30%)'\n\n span2.style.color = '#e47762'\n span2.style.fontSize = `${12 * scale}px`\n span2.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n div.appendChild(span2)\n\n const poi01 = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi01.scale.set(40, 18, 1)\n\n poi01.layers.set(2)\n poi01.position.set(-312.869, -5, -127.770)\n\n const div2 = document.createElement('div')\n div2.style.position = 'relative'\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}poi02.png`\n\n const span3 = document.createElement('span')\n span3.innerText = '125.7°C'\n span3.style.position = 'absolute'\n span3.style.top = `${5 * scale}px`\n span3.style.left = '60%'\n span3.style.transform = 'translateX(30%)'\n\n span3.style.color = '#fdd85e'\n span3.style.fontSize = `${12 * scale}px`\n span3.style.fontWeight = 'bold'\n\n const span4 = document.createElement('span')\n span4.innerText = '点位1'\n span4.style.position = 'absolute'\n span4.style.top = `${5 * scale}px`\n span4.style.left = '34%'\n span4.style.transform = 'translateX(30%)'\n\n span4.style.color = '#fdd85e'\n span4.style.fontSize = `${12 * scale}px`\n span4.style.fontWeight = 'bold'\n\n div2.appendChild(img2)\n div2.appendChild(span3)\n div2.appendChild(span4)\n\n const poi02 = new SpritePoi(div2, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi02.scale.set(50, 22, 1)\n\n poi02.layers.set(2)\n poi02.position.set(-240.869, 15, -127.770)\n\n // group.add(poi01)\n // group.add(poi02)\n\n this.scene.add(group)\n\n this.thermaLimaging = group as Group\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}guandao.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n this.pipeline = gltf.scene as Group\n return gltf\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.pipeline.visible = false\n this.techModel.visible = true\n this.realModl.visible = false\n this.whiteModel.visible = false\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.6\n }\n\n if (params === SceneStyle.real) {\n this.pipeline.visible = true\n this.techModel.visible = false\n this.whiteModel.visible = false\n this.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.renderer.toneMappingExposure = 0.4\n }\n\n if (params === SceneStyle.white) {\n this.pipeline.visible = false\n this.techModel.visible = false\n this.realModl.visible = false\n this.whiteModel.visible = true\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.4\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView(viewType?: string) {\n if (this.tag !== SceneTag['smart-inspection'])\n return\n\n if (viewType) {\n if (viewType === 'Drone') {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n }\n\n if (viewType === 'Global') {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n else {\n // toggle to min camera\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n else {\n // toggle to main camera\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n\n addEventListener(eventName: string, handleFn: (args?: any) => void) {\n if (this.eventHandleFn.get(eventName))\n this.eventHandleFn.get(eventName).push(handleFn)\n\n else\n this.eventHandleFn.set(eventName, [handleFn])\n }\n}\n\nexport default Factory3D"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AdditiveBlending","Color","InteractionManager","LoadingManager","Mesh","MeshBasicMaterial","MeshLambertMaterial","ModelLoader","PlaneGeometry","RepeatWrapping","ShaderMaterial","TextureLoader","Vector2","Vector3","lib","use","utils","Camera","SpritePoi","MessageType","sendToMessage","EMessageStatus","finirMaterialV1","handleUnit","toggleTag","globalEvents","SceneStyle","SceneTag","factoryGlobalObject","createRiseLayer","targetProgresspoints","material","uniforms","frag","vert","loadingManager","load","rgbeLoader","RGBELoader","emitter","resourcePath","resourcePath2","usePath","Factory3D","option","overview","real","Map","globalEventsAgent","setFactory","scene","loadCSS","url","callback","xhr","XMLHttpRequest","open","onreadystatechange","readyState","status","blob","Blob","responseText","type","blobURL","URL","createObjectURL","link","document","createElement","rel","href","crossOrigin","head","appendChild","console","log","error","statusText","onerror","err","send","Promise","resolve","cameraUtil","camera","controls","control","layers","set","loadGLTF","gltf","realGroundModel","mesh","traverse","child","enable","castShadow","receiveShadow","name","treesMesh","push","grasslandMesh","massifMesh","add","realTreeModel","interactionManager","renderer","domElement","storeManagement","useframe","update","loadModel","onLoad","toneMappingExposure","visible","style","realModl","call","group","_Time","value","geometry","plane","rotation","x","Math","PI","position","renderOrder","scale","text","wrapS","wrapT","repeat","blending","transparent","opacity","depthTest","map","offset","tech","techModel","color","white","whiteModel","targerMeshName","Object","values","v","lookAt","vertexShader","fragmentShader","texture1","texture2","uvScale","includes","window","app","envServer","scaleRatio","div","img","src","span","innerText","top","left","transform","fontSize","fontWeight","span2","poi01","width","height","div2","img2","span3","span4","poi02","thermaLimaging","pipeline","params","background","tag","apply","forEach","eventKey","on","args","eventHandleFn","get","fn","viewType","cutoutCamera","inspection","minCamera","mapCamera","mainCamera","emit","Event","Success","undefined","fov","updateProjectionMatrix","eventName","handleFn"],"sources":["../../src/factory/3d.ts"],"sourcesContent":["import type { DataTexture, Group, Material, Object3D, OrbitControls, SceneControl } from '@anov/3d-core'\nimport { AdditiveBlending, BoxGeometry, Color, EquirectangularReflectionMapping, InteractionManager, LoadingManager, Mesh, MeshBasicMaterial, MeshLambertMaterial, ModelLoader, PlaneGeometry, RepeatWrapping, SRGBColorSpace, ShaderChunk, ShaderMaterial, Sprite, SpriteMaterial, TextureLoader, Vector2, Vector3, Vector4, lib, sRGBEncoding, use, utils } from '@anov/3d-core'\nimport { Camera, SpritePoi, createBloomSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport { MessageType, sendToMessage } from '../utils/messageFn'\nimport { EMessageStatus } from '../messageStatus'\nimport { finirMaterialV1 } from './utils/finirMaterial'\nimport handleUnit, { toggleTag } from './unit'\nimport type WallManage from './unit/wall'\nimport type LineManage from './unit/line'\nimport type CylinderManage from './unit/cylinder'\nimport type PoiManage from './unit/poi'\nimport type CircleManage from './unit/circle'\nimport type DistrictLineManage from './unit/districtLine'\nimport type AreaBoundingBoxManage from './unit/areaBoundingBox'\nimport type Inspection from './unit/inspection'\nimport { globalEvents } from './globalData'\nimport { SceneStyle, SceneTag } from './utils/constant'\nimport switchMaterial from './utils/switchMaterial'\nimport factoryGlobalObject from './globalControl'\nimport { debounce } from './utils'\nimport createRiseLayer from './unit/layer/rise'\nimport { targetProgresspoints } from './unit/inspection/lineData'\nimport { material, uniforms } from './utils/ground'\n\nimport frag from './unit/glsl/heat/frag'\nimport vert from './unit/glsl/heat/ver'\n\ntype factory3dOption = {\n model: string\n environment: string\n decoderPath?: string\n controls?: any\n}\n\nexport const loadingManager = new LoadingManager()\nconst load = new ModelLoader(loadingManager)\nconst rgbeLoader = new lib.RGBELoader(loadingManager)\nconst { emitter } = utils\n\nconst resourcePath = './'\nconst resourcePath2 = 'http://172.16.223.163:9000/anov-prod/anov-3d/factory/example/'\n\nexport const usePath = process.env.ENV === 'dev' ? resourcePath : resourcePath2\n\nclass Factory3D {\n position: Vector3 = new Vector3(0, 0, 0)\n scene: SceneControl\n control: OrbitControls\n cameraUtil: Camera\n\n public loadingManager = loadingManager\n public tag = SceneTag.overview\n public style: SceneStyle = SceneStyle.real\n private option: factory3dOption\n wall: WallManage\n line: LineManage\n cylinder: CylinderManage\n poi: PoiManage\n circle: CircleManage\n areaBoundingBox: AreaBoundingBoxManage\n inspection: Inspection\n districtLine: DistrictLineManage\n\n usePath = usePath\n\n private pipeline: Group\n private realModl: Group\n private techModel: Group\n private whiteModel: Group\n private realGroundModel: Group\n private thermaLimaging: Group\n private eventHandleFn: Map<string, ((args?: any) => void)[]> = new Map()\n private boxSkeyTexture: DataTexture\n private treesMesh: Array<Mesh> = []\n private grasslandMesh: Array<Mesh> = []\n private massifMesh: Array<Mesh> = []\n\n mainCamera: any\n\n interactionManager: InteractionManager\n\n constructor(option: factory3dOption) {\n this.option = option\n this.globalEventsAgent()\n factoryGlobalObject.setFactory(this)\n }\n\n /**\n * render factory 3d scene\n */\n renderScene(scene: SceneControl) {\n const loadCSS = (url, callback) => {\n const xhr = new XMLHttpRequest()\n xhr.open('GET', url, true)\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300) {\n const blob = new Blob([xhr.responseText], { type: 'text/css' })\n const blobURL = URL.createObjectURL(blob)\n\n const link = document.createElement('link')\n link.rel = 'stylesheet'\n link.href = blobURL\n link.crossOrigin = 'anonymous'\n document.head.appendChild(link)\n\n if (typeof callback === 'function')\n callback()\n\n console.log(`CSS 加载成功: ${url}`)\n }\n else {\n console.error(`Failed to load CSS: ${url}`, xhr.statusText)\n }\n }\n }\n xhr.onerror = function (err) {\n console.error(`Failed to load CSS: ${url}`, err)\n }\n xhr.send()\n }\n\n return new Promise((resolve) => {\n loadCSS(`${resourcePath2}result.css`, () => {\n this.scene = scene\n\n this.cameraUtil = new Camera(scene.camera!, scene.controls!, scene)\n this.control = scene.controls!\n scene.camera.layers.set(0)\n\n load.loadGLTF(`${this.usePath}landScap2.glb`, false, true, './draco/', (gltf) => {\n this.realGroundModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n let mesh, material\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n\n mesh = child as Mesh\n material = mesh.material as Material\n // 记录树、草地、山体的Mesh对象,用于四季效果\n if (material.name === 'sss-1-2.001' || material.name === 'sss-1')\n this.treesMesh.push(mesh)\n else if (material.name === 'Material #32')\n this.grasslandMesh.push(mesh)\n else if (material.name === 'Material #33')\n this.massifMesh.push(mesh)\n }\n })\n scene.add(this.realGroundModel)\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}landScap3.glb`, false, true, './draco/', (gltf) => {\n // @ts-ignore\n this.realTreeModel = (gltf.scene) as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n // scene.add(this.realTreeModel)\n\n return gltf\n })\n\n const interactionManager = new InteractionManager(\n this.scene.renderer,\n this.scene.camera,\n this.scene.renderer.domElement, // Modified By LM this.scene.cssRenderer.cssRenderer.domElement,\n )\n\n this.interactionManager = interactionManager\n\n utils.storeManagement.set('interactionManager', interactionManager)\n\n use.useframe(() => {\n interactionManager.update()\n })\n\n this.loadModel()\n\n loadingManager.onLoad = () => {\n resolve('success')\n }\n\n // initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })\n\n scene.renderer.toneMappingExposure = 0.4\n })\n })\n }\n\n private loadModel() {\n // real model\n load.loadGLTF(`${this.usePath}222.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.real === this.style\n\n this.realModl = gltf.scene as Group\n\n // this.interactionManager.add(gltf.scene)\n\n // gltf.scene.addEventListener('click', (value) => {\n // console.log(value.point)\n // this.position = value.point\n // })\n\n gltf.scene.traverse((child) => {\n child.layers.enable(5)\n\n if (child.type === 'Mesh') {\n child.castShadow = true\n child.receiveShadow = true\n }\n })\n\n handleUnit.call(this)\n\n return gltf\n })\n\n // tech model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n\n use.useframe(() => {\n if (uniforms._Time.value > 0.5)\n uniforms._Time.value = 0\n\n uniforms._Time.value += 0.0008\n })\n\n group.traverse((child) => {\n // @ts-ignore\n if (child.type === 'Mesh') {\n if (child.name === '柱体') {\n // @ts-ignore\n child.visible = false\n const geometry = new PlaneGeometry(3000, 2000)\n const plane = new Mesh(geometry, material)\n plane.rotation.x = -Math.PI / 2\n\n plane.position.set(0, -1.5, 0)\n plane.renderOrder = -1\n\n group.add(plane)\n }\n\n else {\n // @ts-ignore\n child.material = finirMaterialV1\n }\n }\n })\n\n load.loadGLTF(`${this.usePath}plane.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.scale.set(0.5, 0.5, 0.5)\n\n const text = new TextureLoader().load(`${this.usePath}roll.png`)\n\n text.wrapS = RepeatWrapping\n text.wrapT = RepeatWrapping\n\n text.repeat.set(1, 1)\n\n gltf.scene.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material.blending = AdditiveBlending\n // @ts-ignore\n child.material.transparent = true\n // @ts-ignore\n child.material.opacity = 1\n // @ts-ignore\n child.material.depthTest = true\n\n // @ts-ignore\n child.material.map = text\n }\n })\n\n use.useframe(() => {\n text.offset.x += 0.01\n })\n\n group.add(gltf.scene)\n\n return gltf\n })\n\n createRiseLayer()\n\n this.scene.add(group)\n\n group.visible = SceneStyle.tech === this.style\n this.techModel = group as Group\n\n return gltf\n })\n\n // white model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n gltf.scene.traverse((child) => {\n if (child.name === '柱体')\n (child as Mesh).material = new MeshBasicMaterial({ color: new Color('#fff') })\n else if (child.type === 'Mesh')\n (child as Mesh).material = new MeshLambertMaterial({ color: new Color('#aaa') })\n })\n\n this.scene.add(gltf.scene)\n\n gltf.scene.visible = SceneStyle.white === this.style\n this.whiteModel = gltf.scene as Group\n return gltf\n })\n\n const targerMeshName = Object.values(targetProgresspoints).map(v => v.lookAt)\n\n // thermaLimaging model\n load.loadGLTF(`${this.usePath}2222.glb`, false, true, './draco/', (gltf) => {\n const group = gltf.scene\n group.traverse((child) => {\n if (child.type === 'Mesh') {\n // @ts-ignore\n child.material = new ShaderMaterial({\n vertexShader: vert,\n fragmentShader: frag,\n uniforms: {\n texture1: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test01.jpg`) },\n texture2: { value: new TextureLoader(this.loadingManager).load(`${this.usePath}test02.jpg`) },\n uvScale: { value: new Vector2(1, 1) },\n },\n })\n\n child.layers.set(2)\n\n if (targerMeshName.includes(child.name))\n // @ts-ignore\n child.material.depthTest = false\n }\n })\n\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n\n const div = document.createElement('div')\n div.style.position = 'relative'\n\n const img = document.createElement('img')\n img.src = `${usePath}poi01.png`\n\n const span = document.createElement('span')\n span.innerText = '125.7°C'\n span.style.position = 'absolute'\n span.style.top = `${19.5 * scale}px`\n span.style.left = '40%'\n span.style.transform = 'translateX(-30%)'\n\n span.style.color = '#e47762'\n span.style.fontSize = '12px'\n span.style.fontWeight = 'bold'\n\n const span2 = document.createElement('span')\n span2.innerText = '点位2'\n span2.style.position = 'absolute'\n span2.style.top = `${19.5 * scale}px`\n span2.style.left = '10%'\n span2.style.transform = 'translateX(-30%)'\n\n span2.style.color = '#e47762'\n span2.style.fontSize = `${12 * scale}px`\n span2.style.fontWeight = 'bold'\n\n div.appendChild(img)\n div.appendChild(span)\n div.appendChild(span2)\n\n const poi01 = new SpritePoi(div, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi01.scale.set(40, 18, 1)\n\n poi01.layers.set(2)\n poi01.position.set(-312.869, -5, -127.770)\n\n const div2 = document.createElement('div')\n div2.style.position = 'relative'\n\n const img2 = document.createElement('img')\n img2.src = `${usePath}poi02.png`\n\n const span3 = document.createElement('span')\n span3.innerText = '125.7°C'\n span3.style.position = 'absolute'\n span3.style.top = `${5 * scale}px`\n span3.style.left = '60%'\n span3.style.transform = 'translateX(30%)'\n\n span3.style.color = '#fdd85e'\n span3.style.fontSize = `${12 * scale}px`\n span3.style.fontWeight = 'bold'\n\n const span4 = document.createElement('span')\n span4.innerText = '点位1'\n span4.style.position = 'absolute'\n span4.style.top = `${5 * scale}px`\n span4.style.left = '34%'\n span4.style.transform = 'translateX(30%)'\n\n span4.style.color = '#fdd85e'\n span4.style.fontSize = `${12 * scale}px`\n span4.style.fontWeight = 'bold'\n\n div2.appendChild(img2)\n div2.appendChild(span3)\n div2.appendChild(span4)\n\n const poi02 = new SpritePoi(div2, {\n width: 100 * 2,\n height: 40 * 2,\n })\n\n poi02.scale.set(50, 22, 1)\n\n poi02.layers.set(2)\n poi02.position.set(-240.869, 15, -127.770)\n\n // group.add(poi01)\n // group.add(poi02)\n\n this.scene.add(group)\n\n this.thermaLimaging = group as Group\n\n return gltf\n })\n\n load.loadGLTF(`${this.usePath}guandao.glb`, false, true, './draco/', (gltf) => {\n this.scene.add(gltf.scene)\n\n this.pipeline = gltf.scene as Group\n return gltf\n })\n }\n\n /**\n * toggle SceneStyle\n * @param params\n */\n toggleSceneStyle(params: SceneStyle) {\n if (this.style === params)\n return\n this.style = params\n\n if (this.style === SceneStyle.tech) {\n this.pipeline.visible = false\n this.techModel.visible = true\n this.realModl.visible = false\n this.whiteModel.visible = false\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.6\n }\n\n if (params === SceneStyle.real) {\n this.pipeline.visible = true\n this.techModel.visible = false\n this.whiteModel.visible = false\n this.realModl.visible = true\n this.realGroundModel && (this.realGroundModel.visible = true)\n this.scene.scene.background = new Color('#ccc')\n this.scene.renderer.toneMappingExposure = 0.4\n }\n\n if (params === SceneStyle.white) {\n this.pipeline.visible = false\n this.techModel.visible = false\n this.realModl.visible = false\n this.whiteModel.visible = true\n this.scene.scene.background = null\n this.realGroundModel && (this.realGroundModel.visible = false)\n\n this.scene.renderer.toneMappingExposure = 0.4\n }\n }\n\n public toggleTag(tag: SceneTag) {\n if (this.tag === tag)\n return\n toggleTag[tag].apply(this, [this])\n }\n\n private globalEventsAgent() {\n globalEvents.forEach((eventKey) => {\n emitter.on(eventKey, (args) => {\n this.eventHandleFn.get(eventKey)?.forEach((fn) => {\n fn(args)\n })\n })\n })\n }\n\n /**\n * toggle view\n */\n toggleView(viewType?: string) {\n if (this.tag !== SceneTag['smart-inspection'])\n return\n\n if (viewType) {\n if (viewType === 'Drone') {\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n }\n\n if (viewType === 'Global') {\n if (this.scene.cutoutCamera !== this.inspection.minCamera) {\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n else {\n // toggle to min camera\n if (this.scene.cutoutCamera === this.inspection.minCamera) {\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.cutoutCamera = this.inspection.mapCamera\n\n this.mainCamera = this.scene.camera\n this.scene.camera = cutoutCamera\n\n utils.emitter.emit('play')\n utils.emitter.emit('toggleView', 'Drone')\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Drone',\n })\n }\n else {\n // toggle to main camera\n const mainCamera = this.mainCamera\n const cutoutCamera = this.inspection.minCamera\n\n this.scene.camera = mainCamera\n this.scene.cutoutCamera = cutoutCamera\n\n utils.emitter.emit('stop')\n utils.emitter.emit('toggleView', 'Global')\n\n this.inspection.minCamera.fov = 60\n this.inspection.minCamera.updateProjectionMatrix()\n\n sendToMessage(MessageType.Event, 'onViewTypeChange', EMessageStatus.Success, undefined, {\n viewType: 'Global',\n })\n }\n }\n }\n\n addEventListener(eventName: string, handleFn: (args?: any) => void) {\n if (this.eventHandleFn.get(eventName))\n this.eventHandleFn.get(eventName).push(handleFn)\n\n else\n this.eventHandleFn.set(eventName, [handleFn])\n }\n}\n\nexport default Factory3D"],"mappings":"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"}
|
|
@@ -145,7 +145,7 @@ var getDom = function getDom(data) {
|
|
|
145
145
|
label.style.marginLeft = '2px';
|
|
146
146
|
label.innerText = data.areaLabel;
|
|
147
147
|
label.style.fontWeight = 'bold';
|
|
148
|
-
label.style.fontFamily = '
|
|
148
|
+
label.style.fontFamily = 'YouSheBiaoTiHei3D';
|
|
149
149
|
dom.appendChild(label);
|
|
150
150
|
var label2 = document.createElement('span');
|
|
151
151
|
label2.style.marginLeft = '2px';
|
|
@@ -159,7 +159,7 @@ var getDom = function getDom(data) {
|
|
|
159
159
|
label3.style.marginLeft = '2px';
|
|
160
160
|
label3.innerText = data.label.slice(data.label.length - 1);
|
|
161
161
|
label3.style.fontWeight = 'bold';
|
|
162
|
-
label3.style.fontFamily = '
|
|
162
|
+
label3.style.fontFamily = 'YouSheBiaoTiHei3D';
|
|
163
163
|
label3.style.color = 'yellow';
|
|
164
164
|
dom.appendChild(label3);
|
|
165
165
|
return dom;
|
|
@@ -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","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 = 'YouSheBiaoTiHei'\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 = '-5px'\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 = 'YouSheBiaoTiHei'\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 + 5, 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","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.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 = '-5px'\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 + 5, 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/dist/factory/unit/poi.js
CHANGED
|
@@ -188,7 +188,7 @@ var PoiManage = /*#__PURE__*/function () {
|
|
|
188
188
|
display: 'flex',
|
|
189
189
|
justifyContent: 'center',
|
|
190
190
|
alignItems: 'flex-start',
|
|
191
|
-
fontFamily: '
|
|
191
|
+
fontFamily: 'YouSheBiaoTiHei3D',
|
|
192
192
|
textAlign: 'center',
|
|
193
193
|
color: '#fff',
|
|
194
194
|
pointerEvents: 'auto',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Vector3","use","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","SceneTag","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","wordLength","title","length","ratio","Math","max","poiHeight","option","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","updateScale","poiMesh","set","id","target","regionPlane","planeMesh","changeWallState","show","dialogPoi","visible","wallMesh","uniforms","value","wallGrowFrame","useframe","addEventListener","tag","overview","unClick","event","reset","addDialogPanel","point","poiEventListener","unFrame","hratio","minDistance","maxDistance","useScene","camera","distance","distanceTo","clampedDistance","min","scaleValue","scale","x","y","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","fontFamily","textAlign","color","pointerEvents","cursor","height","minWidth","width","padding","img","src","left","top","appendChild","label","marginLeft","innerText","remove","removeFromParent","f","clear","content","print","clone","setTimeout"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Mesh, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport { SceneTag } from '../utils/constant'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n private poiWidth: number\n private poiHeight = 262\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n let wordLength, ratio\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n wordLength = region.title.length\n ratio = (Math.max(wordLength * (wordLength > 6 ? 34 : 40), 180) / this.poiHeight)\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n this.scene.add(sprite)\n this.updateScale(sprite, ratio + 0.3, ratio + 0.1)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n // let wallGrowFrame\n\n // if (wallGrowFrame)\n // wallGrowFrame()\n\n // walllMaterial.uniforms.grow.value = 0\n\n // wallGrowFrame = use.useframe(() => {\n // walllMaterial.uniforms.grow.value += 3\n // })\n\n this.addDialogPanel(region, event.point)\n }) as Function\n this.poiEventListener.add(unClick)\n })\n\n const unFrame = use.useframe(() => {\n this.poiMesh.forEach((poi: SpritePoi) => {\n this.updateScale(poi)\n })\n })\n this.poiEventListener.add(unFrame)\n // // 控制POI始终是一个大小\n // const orbitControls = use.useScene().orbitControls\n // orbitControls?.addEventListener('change', fn)\n // this.poiEventListener.add(() => orbitControls?.removeEventListener('change', fn))\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0, hratio) {\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.12\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio * 0.8, scaleValue * hratio * 0.8 || scaleValue * 0.8, 1))\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n const wordLength = data.title.length\n Object.assign(dom.style, {\n fontSize: '26px',\n backgroundImage: `url(${usePath}poi.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n fontFamily: 'YouSheBiaoTiHei',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: `${this.poiHeight}px`,\n minWidth: '180px',\n width: `${wordLength * (wordLength > 6 ? 34 : 40)}px`,\n padding: '12px 0 0 25px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}${data.title}图标.png`\n img.style.position = 'absolute'\n img.style.left = '20px'\n img.style.top = '15px'\n img.style.width = '30px'\n img.style.height = '30px'\n dom.appendChild(img)\n\n const label = document.createElement('label')\n label.style.marginLeft = '10px'\n label.innerText = data.title\n dom.appendChild(label)\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n this.poiEventListener.clear()\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n // , {\n // type: EAnimationType.fadeIn,\n // duration: 0.3,\n // }\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n })\n this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)))\n setTimeout(() => this.scene.add(this.dialogPoi))\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Vector3","use","utils","Css2DPoi","EAnimationType","SpritePoi","usePath","regionMap","SceneTag","walllMaterial","PoiManage","gobal","Map","Set","scene","wallManage","wall","interactionManager","storeManagement","get","Object","keys","forEach","key","region","wordLength","title","length","ratio","Math","max","poiHeight","option","animation","type","grow","duration","fadeIn","sprite","getDom","position","copy","fromArray","poi","add","updateScale","poiMesh","set","id","target","regionPlane","planeMesh","changeWallState","show","dialogPoi","visible","wallMesh","uniforms","value","wallGrowFrame","useframe","addEventListener","tag","overview","unClick","event","reset","addDialogPanel","point","poiEventListener","unFrame","hratio","minDistance","maxDistance","useScene","camera","distance","distanceTo","clampedDistance","min","scaleValue","scale","x","y","data","dom","document","createElement","assign","style","fontSize","backgroundImage","backgroundSize","backgroundRepeat","display","justifyContent","alignItems","fontFamily","textAlign","color","pointerEvents","cursor","height","minWidth","width","padding","img","src","left","top","appendChild","label","marginLeft","innerText","remove","removeFromParent","f","clear","content","print","clone","setTimeout"],"sources":["../../../src/factory/unit/poi.ts"],"sourcesContent":["import type { InteractionManager, Object3D, Scene } from '@anov/3d-core'\nimport { Mesh, Vector3, use, utils } from '@anov/3d-core'\nimport { Css2DPoi, EAnimationType, SpritePoi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\nimport { usePath } from '../3d'\nimport { regionMap } from '../regionData'\nimport { SceneTag } from '../utils/constant'\nimport type WallManage from './wall'\nimport { walllMaterial } from './wall'\n\nclass PoiManage {\n private gobal: Factory3D\n private scene: Scene\n private dialogPoi: Object3D\n readonly poiMesh: Map<string, Object3D> = new Map()\n readonly poiEventListener: Set<Function> = new Set()\n private wallManage: WallManage\n private interactionManager\n private poiWidth: number\n private poiHeight = 262\n\n constructor(gobal) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n this.wallManage = gobal.wall\n this.interactionManager = utils.storeManagement.get<InteractionManager>('interactionManager')\n }\n\n async generatePoi() {\n let wordLength, ratio\n Object.keys(regionMap).forEach(async (key: string) => {\n const region = regionMap[key]\n wordLength = region.title.length\n ratio = (Math.max(wordLength * (wordLength > 6 ? 34 : 40), 180) / this.poiHeight)\n const option = {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.fadeIn,\n duration: 0.2,\n }],\n }\n const sprite = new SpritePoi(this.getDom(region), option)\n sprite.position.copy(new Vector3().fromArray(region.poi.position))\n this.scene.add(sprite)\n this.updateScale(sprite, ratio + 0.3, ratio + 0.1)\n this.poiMesh.set(region.poi.id, sprite)\n\n // @ts-ignore\n const target = this.gobal.regionPlane.planeMesh.get(region.id)\n\n // 绑定事件\n this.interactionManager.add(sprite)\n const changeWallState = (show) => {\n if (this.dialogPoi?.visible)\n return\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = show\n walllMaterial.uniforms.grow.value = 0\n\n if (show) {\n let wallGrowFrame\n\n if (wallGrowFrame)\n wallGrowFrame()\n\n wallGrowFrame = use.useframe(() => {\n walllMaterial.uniforms.grow.value += 3\n\n if (walllMaterial.uniforms.grow.value > 50)\n wallGrowFrame()\n })\n }\n }\n\n target.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(true)\n })\n\n sprite.addEventListener('mouseover', () => {\n if (!sprite.visible)\n return\n changeWallState(true)\n })\n\n target.addEventListener('mouseout', () => {\n changeWallState(false)\n })\n\n sprite.addEventListener('mouseout', () => {\n if (this.gobal.tag === SceneTag.overview)\n changeWallState(false)\n })\n\n const unClick = sprite.addEventListener('click', (event) => {\n if (!sprite.visible)\n return\n this.reset()\n\n // 光墙\n const wall = this.wallManage.wallMesh.get(region.id)\n wall.visible = true\n // 隐藏当前POI点\n sprite.visible = false\n\n // let wallGrowFrame\n\n // if (wallGrowFrame)\n // wallGrowFrame()\n\n // walllMaterial.uniforms.grow.value = 0\n\n // wallGrowFrame = use.useframe(() => {\n // walllMaterial.uniforms.grow.value += 3\n // })\n\n this.addDialogPanel(region, event.point)\n }) as Function\n this.poiEventListener.add(unClick)\n })\n\n const unFrame = use.useframe(() => {\n this.poiMesh.forEach((poi: SpritePoi) => {\n this.updateScale(poi)\n })\n })\n this.poiEventListener.add(unFrame)\n // // 控制POI始终是一个大小\n // const orbitControls = use.useScene().orbitControls\n // orbitControls?.addEventListener('change', fn)\n // this.poiEventListener.add(() => orbitControls?.removeEventListener('change', fn))\n }\n\n /// <summary>\n /// 按照距离缩放,距离越远,缩放越大\n /// </summary>\n updateScale(poi: SpritePoi, ratio = 0, hratio) {\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.12\n if (!ratio && poi.scale)\n ratio = poi.scale.x / poi.scale.y\n\n // 按照缩放系数和距离进行缩放,缩放系数应该约定好一个固定值\n poi.scale.copy(new Vector3(scaleValue * ratio * 0.8, scaleValue * hratio * 0.8 || scaleValue * 0.8, 1))\n }\n\n getDom(data) {\n const dom = document.createElement('div')\n const wordLength = data.title.length\n Object.assign(dom.style, {\n fontSize: '26px',\n backgroundImage: `url(${usePath}poi.png)`,\n backgroundSize: '100% 100%',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n fontFamily: 'YouSheBiaoTiHei3D',\n textAlign: 'center',\n color: '#fff',\n pointerEvents: 'auto',\n cursor: 'pointer',\n height: `${this.poiHeight}px`,\n minWidth: '180px',\n width: `${wordLength * (wordLength > 6 ? 34 : 40)}px`,\n padding: '12px 0 0 25px',\n position: 'relative',\n })\n const img = document.createElement('img')\n img.src = `${usePath}${data.title}图标.png`\n img.style.position = 'absolute'\n img.style.left = '20px'\n img.style.top = '15px'\n img.style.width = '30px'\n img.style.height = '30px'\n dom.appendChild(img)\n\n const label = document.createElement('label')\n label.style.marginLeft = '10px'\n label.innerText = data.title\n dom.appendChild(label)\n return dom\n }\n\n remove() {\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n this.interactionManager.remove(poi)\n poi.removeFromParent()\n poi.remove()\n })\n // 取消事件监听\n this.poiEventListener.forEach((f) => {\n f()\n })\n this.poiEventListener.clear()\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n this.poiMesh.clear()\n }\n\n reset() {\n // 控制POI点的隐藏、显示\n // 控制POI点的隐藏、显示\n this.poiMesh.forEach((poi) => {\n poi.visible = true\n })\n // 移除面板\n if (this.dialogPoi)\n this.dialogPoi.removeFromParent()\n // 控制光墙的隐藏、显示\n this.wallManage?.wallMesh.forEach((wall) => {\n wall.visible = false\n })\n }\n\n private addDialogPanel(data, position) {\n // 添加面板\n // , {\n // type: EAnimationType.fadeIn,\n // duration: 0.3,\n // }\n this.dialogPoi = new Css2DPoi({ title: data.title, content: data.poi.content }, {\n animation: [{\n type: EAnimationType.grow,\n duration: 1,\n }, {\n type: EAnimationType.print,\n duration: 0.02,\n }],\n })\n this.dialogPoi.position.copy(position.clone().add(new Vector3(-30, 30, 0)))\n setTimeout(() => this.scene.add(this.dialogPoi))\n\n this.interactionManager.add(this.dialogPoi)\n this.dialogPoi.addEventListener('click', () => {\n this.dialogPoi.remove()\n this.dialogPoi.removeFromParent()\n this.dialogPoi = null\n this.reset()\n })\n }\n}\n\nexport default PoiManage"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anov/3d",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.119",
|
|
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-ability": "^0.0.
|
|
26
|
-
"@anov/3d-core": "^0.0.
|
|
25
|
+
"@anov/3d-ability": "^0.0.17",
|
|
26
|
+
"@anov/3d-core": "^0.0.18"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/uuid": "^9.0.7"
|