@anov/3d 0.0.124 → 0.0.126
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.d.ts +1 -0
- package/dist/factory/3d.js +17 -6
- package/dist/factory/3d.js.map +1 -1
- package/package.json +1 -1
package/dist/factory/3d.d.ts
CHANGED
package/dist/factory/3d.js
CHANGED
|
@@ -57,6 +57,7 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
57
57
|
_defineProperty(this, "treesMesh", []);
|
|
58
58
|
_defineProperty(this, "grasslandMesh", []);
|
|
59
59
|
_defineProperty(this, "massifMesh", []);
|
|
60
|
+
_defineProperty(this, "isLoad", false);
|
|
60
61
|
_defineProperty(this, "mainCamera", void 0);
|
|
61
62
|
_defineProperty(this, "interactionManager", void 0);
|
|
62
63
|
this.option = option;
|
|
@@ -71,7 +72,7 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
71
72
|
key: "renderScene",
|
|
72
73
|
value: function renderScene(scene) {
|
|
73
74
|
var _this = this;
|
|
74
|
-
var loadCSS = function loadCSS(url, callback) {
|
|
75
|
+
var loadCSS = function loadCSS(url, callback, resolve) {
|
|
75
76
|
var xhr = new XMLHttpRequest();
|
|
76
77
|
xhr.open('GET', url, true);
|
|
77
78
|
xhr.onreadystatechange = function () {
|
|
@@ -86,7 +87,20 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
86
87
|
link.href = blobURL;
|
|
87
88
|
link.crossOrigin = 'anonymous';
|
|
88
89
|
document.head.appendChild(link);
|
|
89
|
-
if (typeof callback === 'function')
|
|
90
|
+
if (typeof callback === 'function') {
|
|
91
|
+
callback();
|
|
92
|
+
loadingManager.onLoad = function () {
|
|
93
|
+
console.log('测试,待删');
|
|
94
|
+
resolve('success');
|
|
95
|
+
};
|
|
96
|
+
loadingManager.onProgress = function (_, loaded, total) {
|
|
97
|
+
var progress = loaded / total;
|
|
98
|
+
if (progress >= 1) {
|
|
99
|
+
console.log('测试,待删');
|
|
100
|
+
resolve('success');
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
90
104
|
console.log("CSS \u52A0\u8F7D\u6210\u529F: ".concat(url));
|
|
91
105
|
} else {
|
|
92
106
|
console.error("Failed to load CSS: ".concat(url), xhr.statusText);
|
|
@@ -161,14 +175,11 @@ var Factory3D = /*#__PURE__*/function () {
|
|
|
161
175
|
interactionManager.update();
|
|
162
176
|
});
|
|
163
177
|
_this.loadModel();
|
|
164
|
-
loadingManager.onLoad = function () {
|
|
165
|
-
resolve('success');
|
|
166
|
-
};
|
|
167
178
|
|
|
168
179
|
// initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })
|
|
169
180
|
|
|
170
181
|
scene.renderer.toneMappingExposure = 0.4;
|
|
171
|
-
});
|
|
182
|
+
}, resolve);
|
|
172
183
|
});
|
|
173
184
|
}
|
|
174
185
|
}, {
|
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","resolve","xhr","XMLHttpRequest","open","onreadystatechange","readyState","status","blob","Blob","responseText","type","blobURL","URL","createObjectURL","link","document","createElement","rel","href","crossOrigin","head","appendChild","onLoad","console","log","onProgress","_","loaded","total","progress","error","statusText","onerror","err","send","Promise","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","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 private isLoad = false\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, resolve) => {\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 loadingManager.onLoad = () => {\n console.log('测试,待删')\n resolve('success')\n }\n loadingManager.onProgress = (_, loaded, total) => {\n const progress = loaded / total\n if (progress >= 1) {\n console.log('测试,待删')\n resolve('success')\n }\n }\n }\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 // initPostEffects(scene.scene, scene.renderer, scene.camera, { type: 'main' })\n\n scene.renderer.toneMappingExposure = 0.4\n }, resolve)\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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"}
|