@anov/3d 0.0.92 → 0.0.94
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 +2 -0
- package/dist/factory/3d.js +4 -0
- package/dist/factory/3d.js.map +1 -1
- package/dist/factory/unit/CameraPoi.js +4 -2
- package/dist/factory/unit/CameraPoi.js.map +1 -1
- package/dist/factory/unit/cylinder.d.ts +2 -0
- package/dist/factory/unit/cylinder.js +63 -12
- package/dist/factory/unit/cylinder.js.map +1 -1
- package/dist/factory/unit/districtLine.d.ts +3 -1
- package/dist/factory/unit/districtLine.js +21 -6
- package/dist/factory/unit/districtLine.js.map +1 -1
- package/dist/factory/unit/index.js +7 -5
- package/dist/factory/unit/index.js.map +1 -1
- package/dist/factory/unit/inspection/index.js +2 -2
- package/dist/factory/unit/inspection/index.js.map +1 -1
- package/dist/factory/utils/finirMaterial.js +1 -1
- package/dist/factory/utils/finirMaterial.js.map +1 -1
- package/package.json +1 -1
- package/dist/factory/unit/point.d.ts +0 -10
- package/dist/factory/unit/point.js +0 -72
- package/dist/factory/unit/point.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","CylinderGeometry","Group","Mesh","MeshBasicMaterial","OrthographicCamera","PerspectiveCamera","ShaderMaterial","TubeGeometry","Vector4","use","utils","RoundLineGeometry","fragmentShader","vertexShader","fragmentShader2","observe","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","DefaultFirstPerspectiveControls","storeManagement","viewInfoPro","width","height","top","left","viewInfoDev","viewInfo","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","createViewElement","onHandleToggleView","scale","window","app","envServer","scaleRatio","get","querySelector","getBoundingClientRect","viewElement","document","createElement","style","position","cursor","addEventListener","toggleView","handleObserve","setTimeout","flyLine","radius","close","defaultFirstPerspectiveControls","minCamera","scene","renderer","domElement","enabled","emitter","on","type","params","target","highlight","currentAnchor","anchorObject","traverse","child","name","material","color","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","mesh2","mapMaterial","depthTest","depthWrite","mesh3","layers","set","groundGroup","add","y","groundCurve","line","anchorMesh","setMapViewAnchorPoint","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","cylinder1","x","z","k","s","camera","lookAt","mapCamera","mapViewAnchorPoint","uColor","mapAnchorObject","innerWidth","innerHeight","cutoutCamera","cutoutArea","setMapView","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, NormalBlending, OrthographicCamera, PerspectiveCamera, ShaderMaterial, TubeGeometry, Vector4, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport fragmentShader2 from '../glsl/highway/fragmentShader2'\nimport { observe } from '../../utils/observe'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\nimport DefaultFirstPerspectiveControls from './defaultFirstPerspectiveControls'\n\nconst { storeManagement } = utils\n\nconst viewInfoPro = {\n width: 502,\n height: 256,\n top: 110,\n left: 40,\n}\n\nconst viewInfoDev = {\n width: 300,\n height: 200,\n top: 50,\n left: 0,\n}\n\nconst viewInfo = process.env.ENV === 'dev' ? viewInfoDev : viewInfoPro\n\nclass Inspection {\n gobal: Factory3D\n inspectionObject\n curve\n groundCurve\n line: Group\n viewElement: HTMLDivElement\n isHide = true\n anchorObject: Map<string, Group> = new Map()\n mapAnchorObject: Map<string, Mesh> = new Map()\n anchorGroup: Group\n mapAnchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\n mapMaterial: any\n map\n mapCamera\n defaultFirstPerspectiveControls\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.generateInspectionPath()\n this.makeGroundRoad()\n this.setInspectionCamera()\n\n this.inspectionObject = new InspectionObject(this)\n\n this.startInspection(this.curve)\n this.hide()\n this.createViewElement()\n this.onHandleToggleView()\n }\n\n /**\n * create view element, use to switch view [like a button]\n */\n private createViewElement() {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n const viewElement = document.createElement('div')\n viewElement.style.position = 'absolute'\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.cursor = 'pointer'\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\n })\n\n const handleObserve = () => {\n setTimeout(() => {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n }, 500)\n }\n\n document.querySelector('.cml-panel-container') && observe(document.querySelector('.cml-panel-container'), () => {\n handleObserve()\n })\n\n this.viewElement = viewElement\n }\n\n /**\n * generate inspection path\n * @param linePosition\n */\n private generateInspectionPath() {\n const flyLine = new RoundLineGeometry(flyLinePoints, {\n radius: 20,\n close: true,\n })\n\n this.curve = flyLine.curve\n }\n\n private onHandleToggleView() {\n const defaultFirstPerspectiveControls = new DefaultFirstPerspectiveControls(\n this.minCamera,\n this.gobal.scene.renderer.domElement,\n )\n\n this.defaultFirstPerspectiveControls = defaultFirstPerspectiveControls\n\n defaultFirstPerspectiveControls.enabled = false\n\n utils.emitter.on('toggleView', (type: 'Drone' | 'Global') => {\n if (type === 'Drone')\n defaultFirstPerspectiveControls.enabled = true\n\n else\n defaultFirstPerspectiveControls.enabled = false\n })\n }\n\n setSelectedAnchorObject(params: { target: string; highlight: boolean }) {\n const { target, highlight } = params\n const currentAnchor = this.anchorObject.get(target) as any\n\n if (!currentAnchor)\n return\n\n if (highlight) {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n })\n }\n else {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n }\n }\n\n /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\n\n // const demo = []\n // for (let i = 0; i < 1000; i++) {\n // demo.push({\n // x: groundLine.curve.getPointAt(i / 1000).x,\n // y: groundLine.curve.getPointAt(i / 1000).y,\n // z: groundLine.curve.getPointAt(i / 1000).z,\n // })\n // }\n\n // console.log(JSON.stringify(demo, null, 2))\n\n const tube = new TubeGeometry(groundLine.curve, 10000, 4, 2, false)\n const groundMaterial = new ShaderMaterial({\n transparent: true,\n uniforms: {\n u_time: {\n value: 0,\n },\n alpha: {\n value: 0.6,\n },\n centerColor: {\n value: new Color(0xFFFFFF),\n },\n sideColor: {\n value: new Color('#F75332'),\n },\n otherColor: {\n value: new Color('#D23F22'),\n },\n },\n vertexShader,\n fragmentShader,\n })\n const mesh2 = new Mesh(tube, groundMaterial)\n\n const mapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: true,\n depthWrite: false,\n uniforms: {\n u_time: {\n value: 0,\n },\n },\n vertexShader,\n fragmentShader: fragmentShader2,\n })\n\n const mesh3 = new Mesh(tube, mapMaterial)\n\n mesh3.layers.set(5)\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh3)\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n\n this.groundMaterial = groundMaterial\n this.mapMaterial = mapMaterial\n\n this.anchorMesh()\n this.setMapViewAnchorPoint()\n }\n\n private anchorMesh() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const singleAnchorGroup = new Group()\n\n const cylinder = new Mesh(new CylinderGeometry(10, 10, 2, 64), new MeshBasicMaterial({ color: new Color('#cdccca') }))\n const cylinder1 = new Mesh(new CylinderGeometry(5, 5, 1, 64), new MeshBasicMaterial({ color: new Color('#fff') }))\n cylinder1.position.y = 2\n\n cylinder.name = 'cylinder'\n cylinder1.name = 'cylinder1'\n\n singleAnchorGroup.add(cylinder, cylinder1)\n singleAnchorGroup.position.set(demoPoints.x, demoPoints.y + 5, demoPoints.z)\n\n this.anchorObject.set(targetProgresspoints[key].name, singleAnchorGroup)\n anchorGroup.add(singleAnchorGroup)\n })\n this.anchorGroup = anchorGroup\n this.gobal.scene.add(anchorGroup)\n }\n\n private setMapView() {\n const width = 1470\n const height = 800\n const k = width / height\n const s = 273\n\n const camera = new OrthographicCamera(-s * k + 5, s * k, s - 35, -s + 40, 1, 1000)\n\n camera.position.set(0, 400, 0)\n camera.lookAt(0, 0, 0)\n\n camera.layers.set(5)\n\n this.gobal.scene.add(camera)\n\n this.mapCamera = camera\n }\n\n private setMapViewAnchorPoint() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const mapViewAnchorPoint = new Mesh(new CylinderGeometry(20, 20, 2, 64),\n new ShaderMaterial({\n uniforms: {\n uColor: {\n value: new Vector4(1, 1, 1, 1),\n },\n },\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(){\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: /* glsl */ `\n uniform vec4 uColor;\n varying vec2 vUv;\n void main(){\n vec2 center = vec2(0.47, 0.47);\n float radius = 0.4;\n float border = 0.05;\n float dist = distance(vUv, center);\n\n if (dist < radius - border) {\n gl_FragColor = uColor;\n } else if (dist < radius + border) {\n gl_FragColor = vec4(0.6, 0.6, 0.6, 1.0); \n } else {\n gl_FragColor = vec4(.7, .7, .7, 1.0); \n }\n }\n `,\n depthTest: true,\n depthWrite: false,\n transparent: true,\n }))\n\n mapViewAnchorPoint.layers.set(5)\n mapViewAnchorPoint.position.set(demoPoints.x, demoPoints.y + 30, demoPoints.z)\n mapViewAnchorPoint.scale.set(1.3, 1, 1)\n\n anchorGroup.add(mapViewAnchorPoint)\n this.mapAnchorObject.set(key, mapViewAnchorPoint)\n })\n\n this.gobal.scene.add(anchorGroup)\n }\n\n private setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(30,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n\n this.gobal.scene.cutoutArea = { x: viewInfo.left, y: viewInfo.top, width: viewInfo.width, height: viewInfo.height }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n this.minCamera.layers.set(0)\n\n this.setMapView()\n }\n\n get getPathLength() {\n return this.curve.getLength()\n }\n\n startInspection(line) {\n this.setInspectionCamera()\n this.inspectionObject.startMove(line)\n }\n\n goToInspectionTarget(targetProgress: number) {\n const targetPosition = this.curve.getPointAt(targetProgress)\n this.inspectionObject.gotoTarget(targetPosition, targetProgress)\n }\n\n show() {\n this.isHide = false\n\n document.body.appendChild(this.viewElement)\n this.gobal.scene.cutout = true\n this.anchorGroup.visible = true\n this.line.visible = true\n this.inspectionObject.model && (this.inspectionObject.model.visible = true)\n }\n\n hide() {\n this.isHide = true\n\n if (this.viewElement && document.body.contains(this.viewElement))\n document.body.removeChild(this.viewElement)\n\n if (this.gobal.scene.camera === this.minCamera) {\n this.gobal.scene.camera = this.gobal.scene.cutoutCamera\n this.gobal.scene.cutoutCamera = this.minCamera\n }\n\n this.gobal.scene.cutout = false\n this.gobal.scene.cutMain(this.gobal.scene.renderer)\n this.line.visible = false\n this.anchorGroup.visible = false\n\n // this.addeHighSelected([])\n const check = use.useframe(() => {\n if (this.inspectionObject.model) {\n this.inspectionObject.model.visible = false\n check()\n }\n })\n }\n}\n\nexport default Inspection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Color","CylinderGeometry","Group","Mesh","MeshBasicMaterial","OrthographicCamera","PerspectiveCamera","ShaderMaterial","TubeGeometry","Vector4","use","utils","RoundLineGeometry","fragmentShader","vertexShader","fragmentShader2","observe","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","DefaultFirstPerspectiveControls","storeManagement","viewInfoPro","width","height","top","left","viewInfoDev","viewInfo","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","createViewElement","onHandleToggleView","scale","window","app","envServer","scaleRatio","get","querySelector","getBoundingClientRect","viewElement","document","createElement","style","position","cursor","addEventListener","toggleView","handleObserve","setTimeout","flyLine","radius","close","defaultFirstPerspectiveControls","minCamera","scene","renderer","domElement","enabled","emitter","on","type","params","target","highlight","currentAnchor","anchorObject","traverse","child","name","material","color","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","mesh2","mapMaterial","depthTest","depthWrite","mesh3","layers","set","groundGroup","add","y","groundCurve","line","anchorMesh","setMapViewAnchorPoint","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","cylinder1","x","z","k","s","camera","lookAt","mapCamera","mapViewAnchorPoint","uColor","mapAnchorObject","innerWidth","innerHeight","cutoutCamera","cutoutArea","setMapView","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, NormalBlending, OrthographicCamera, PerspectiveCamera, ShaderMaterial, TubeGeometry, Vector4, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport fragmentShader2 from '../glsl/highway/fragmentShader2'\nimport { observe } from '../../utils/observe'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\nimport DefaultFirstPerspectiveControls from './defaultFirstPerspectiveControls'\n\nconst { storeManagement } = utils\n\nconst viewInfoPro = {\n width: 502,\n height: 256,\n top: 170,\n left: 90,\n}\n\nconst viewInfoDev = {\n width: 300,\n height: 200,\n top: 50,\n left: 0,\n}\n\nconst viewInfo = process.env.ENV === 'dev' ? viewInfoDev : viewInfoPro\n\nclass Inspection {\n gobal: Factory3D\n inspectionObject\n curve\n groundCurve\n line: Group\n viewElement: HTMLDivElement\n isHide = true\n anchorObject: Map<string, Group> = new Map()\n mapAnchorObject: Map<string, Mesh> = new Map()\n anchorGroup: Group\n mapAnchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\n mapMaterial: any\n map\n mapCamera\n defaultFirstPerspectiveControls\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.generateInspectionPath()\n this.makeGroundRoad()\n this.setInspectionCamera()\n\n this.inspectionObject = new InspectionObject(this)\n\n this.startInspection(this.curve)\n this.hide()\n this.createViewElement()\n this.onHandleToggleView()\n }\n\n /**\n * create view element, use to switch view [like a button]\n */\n private createViewElement() {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n const viewElement = document.createElement('div')\n viewElement.style.position = 'absolute'\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.cursor = 'pointer'\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\n })\n\n const handleObserve = () => {\n setTimeout(() => {\n const scale = (window as any)?.app?.envServer?.scaleRatio ?? 1\n const { left, top } = storeManagement.get<HTMLElement>('container').querySelector('canvas').getBoundingClientRect()\n\n viewElement.style.width = `${viewInfo.width * scale}px`\n viewElement.style.height = `${viewInfo.height * scale}px`\n viewElement.style.top = `${(viewInfo.top) * scale + top}px`\n viewElement.style.left = `${(viewInfo.left) * scale + left}px`\n }, 500)\n }\n\n document.querySelector('.cml-panel-container') && observe(document.querySelector('.cml-panel-container'), () => {\n handleObserve()\n })\n\n this.viewElement = viewElement\n }\n\n /**\n * generate inspection path\n * @param linePosition\n */\n private generateInspectionPath() {\n const flyLine = new RoundLineGeometry(flyLinePoints, {\n radius: 20,\n close: true,\n })\n\n this.curve = flyLine.curve\n }\n\n private onHandleToggleView() {\n const defaultFirstPerspectiveControls = new DefaultFirstPerspectiveControls(\n this.minCamera,\n this.gobal.scene.renderer.domElement,\n )\n\n this.defaultFirstPerspectiveControls = defaultFirstPerspectiveControls\n\n defaultFirstPerspectiveControls.enabled = false\n\n utils.emitter.on('toggleView', (type: 'Drone' | 'Global') => {\n if (type === 'Drone')\n defaultFirstPerspectiveControls.enabled = true\n\n else\n defaultFirstPerspectiveControls.enabled = false\n })\n }\n\n setSelectedAnchorObject(params: { target: string; highlight: boolean }) {\n const { target, highlight } = params\n const currentAnchor = this.anchorObject.get(target) as any\n\n if (!currentAnchor)\n return\n\n if (highlight) {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('yellow') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#facb2b') })\n })\n }\n else {\n currentAnchor.traverse((child) => {\n if (child.name === 'cylinder')\n child.material = new MeshBasicMaterial({ color: new Color('#cdccca') })\n else\n child.material = new MeshBasicMaterial({ color: new Color('#fff') })\n })\n }\n }\n\n /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\n\n // const demo = []\n // for (let i = 0; i < 1000; i++) {\n // demo.push({\n // x: groundLine.curve.getPointAt(i / 1000).x,\n // y: groundLine.curve.getPointAt(i / 1000).y,\n // z: groundLine.curve.getPointAt(i / 1000).z,\n // })\n // }\n\n // console.log(JSON.stringify(demo, null, 2))\n\n const tube = new TubeGeometry(groundLine.curve, 10000, 4, 2, false)\n const groundMaterial = new ShaderMaterial({\n transparent: true,\n uniforms: {\n u_time: {\n value: 0,\n },\n alpha: {\n value: 0.6,\n },\n centerColor: {\n value: new Color(0xFFFFFF),\n },\n sideColor: {\n value: new Color('#F75332'),\n },\n otherColor: {\n value: new Color('#D23F22'),\n },\n },\n vertexShader,\n fragmentShader,\n })\n const mesh2 = new Mesh(tube, groundMaterial)\n\n const mapMaterial = new ShaderMaterial({\n transparent: true,\n depthTest: true,\n depthWrite: false,\n uniforms: {\n u_time: {\n value: 0,\n },\n },\n vertexShader,\n fragmentShader: fragmentShader2,\n })\n\n const mesh3 = new Mesh(tube, mapMaterial)\n\n mesh3.layers.set(5)\n\n const groundGroup = new Group()\n\n groundGroup.add(mesh3)\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n\n this.groundMaterial = groundMaterial\n this.mapMaterial = mapMaterial\n\n this.anchorMesh()\n this.setMapViewAnchorPoint()\n }\n\n private anchorMesh() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const singleAnchorGroup = new Group()\n\n const cylinder = new Mesh(new CylinderGeometry(10, 10, 2, 64), new MeshBasicMaterial({ color: new Color('#cdccca') }))\n const cylinder1 = new Mesh(new CylinderGeometry(5, 5, 1, 64), new MeshBasicMaterial({ color: new Color('#fff') }))\n cylinder1.position.y = 2\n\n cylinder.name = 'cylinder'\n cylinder1.name = 'cylinder1'\n\n singleAnchorGroup.add(cylinder, cylinder1)\n singleAnchorGroup.position.set(demoPoints.x, demoPoints.y + 5, demoPoints.z)\n\n this.anchorObject.set(targetProgresspoints[key].name, singleAnchorGroup)\n anchorGroup.add(singleAnchorGroup)\n })\n this.anchorGroup = anchorGroup\n this.gobal.scene.add(anchorGroup)\n }\n\n private setMapView() {\n const width = 1470\n const height = 800\n const k = width / height\n const s = 273\n\n const camera = new OrthographicCamera(-s * k + 5, s * k, s - 35, -s + 40, 1, 1000)\n\n camera.position.set(0, 400, 0)\n camera.lookAt(0, 0, 0)\n\n camera.layers.set(5)\n\n this.gobal.scene.add(camera)\n\n this.mapCamera = camera\n }\n\n private setMapViewAnchorPoint() {\n const anchorGroup = new Group()\n\n Object.keys(targetProgresspoints).forEach((key) => {\n const demoPoints = this.groundCurve.getPointAt(Number(key))\n const mapViewAnchorPoint = new Mesh(new CylinderGeometry(20, 20, 2, 64),\n new ShaderMaterial({\n uniforms: {\n uColor: {\n value: new Vector4(1, 1, 1, 1),\n },\n },\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(){\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: /* glsl */ `\n uniform vec4 uColor;\n varying vec2 vUv;\n void main(){\n vec2 center = vec2(0.47, 0.47);\n float radius = 0.4;\n float border = 0.05;\n float dist = distance(vUv, center);\n\n if (dist < radius - border) {\n gl_FragColor = uColor;\n } else if (dist < radius + border) {\n gl_FragColor = vec4(0.6, 0.6, 0.6, 1.0); \n } else {\n gl_FragColor = vec4(.7, .7, .7, 1.0); \n }\n }\n `,\n depthTest: true,\n depthWrite: false,\n transparent: true,\n }))\n\n mapViewAnchorPoint.layers.set(5)\n mapViewAnchorPoint.position.set(demoPoints.x, demoPoints.y + 30, demoPoints.z)\n mapViewAnchorPoint.scale.set(1.3, 1, 1)\n\n anchorGroup.add(mapViewAnchorPoint)\n this.mapAnchorObject.set(key, mapViewAnchorPoint)\n })\n\n this.gobal.scene.add(anchorGroup)\n }\n\n private setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(30,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n\n this.gobal.scene.cutoutArea = { x: viewInfo.left, y: viewInfo.top, width: viewInfo.width, height: viewInfo.height }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n this.minCamera.layers.set(0)\n\n this.setMapView()\n }\n\n get getPathLength() {\n return this.curve.getLength()\n }\n\n startInspection(line) {\n this.setInspectionCamera()\n this.inspectionObject.startMove(line)\n }\n\n goToInspectionTarget(targetProgress: number) {\n const targetPosition = this.curve.getPointAt(targetProgress)\n this.inspectionObject.gotoTarget(targetPosition, targetProgress)\n }\n\n show() {\n this.isHide = false\n\n document.body.appendChild(this.viewElement)\n this.gobal.scene.cutout = true\n this.anchorGroup.visible = true\n this.line.visible = true\n this.inspectionObject.model && (this.inspectionObject.model.visible = true)\n }\n\n hide() {\n this.isHide = true\n\n if (this.viewElement && document.body.contains(this.viewElement))\n document.body.removeChild(this.viewElement)\n\n if (this.gobal.scene.camera === this.minCamera) {\n this.gobal.scene.camera = this.gobal.scene.cutoutCamera\n this.gobal.scene.cutoutCamera = this.minCamera\n }\n\n this.gobal.scene.cutout = false\n this.gobal.scene.cutMain(this.gobal.scene.renderer)\n this.line.visible = false\n this.anchorGroup.visible = false\n\n // this.addeHighSelected([])\n const check = use.useframe(() => {\n if (this.inspectionObject.model) {\n this.inspectionObject.model.visible = false\n check()\n }\n })\n }\n}\n\nexport default Inspection"],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ finirMaterialV1.onBeforeCompile = function (shader) {
|
|
|
31
31
|
value: new Color('#f5b68a')
|
|
32
32
|
};
|
|
33
33
|
shader.uniforms.rimPower = {
|
|
34
|
-
value: 0.
|
|
34
|
+
value: 0.17
|
|
35
35
|
};
|
|
36
36
|
shader.fragmentShader = shader.fragmentShader.replace('void main() {', ['uniform vec3 rimColor;', ' uniform float rimPower;', 'void main() {'].join('\n'));
|
|
37
37
|
shader.fragmentShader = shader.fragmentShader.replace('#include <dithering_fragment>', "#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb *= rimColor;\n\n\n float fresnelall = pow(rimPower*dotNV,.7);\n gl_FragColor.a += fresnelall;");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","MeshStandardMaterial","ShaderMaterial","Vector3","finirMaterialV2","uniforms","edgeColor","value","edgeThickness","reflectionStrength","vertexShader","fragmentShader","transparent","depthWrite","finirMaterialV1","opacity","onBeforeCompile","shader","rimColor","rimPower","replace","join","createFinirMaterial","material"],"sources":["../../../src/factory/utils/finirMaterial.ts"],"sourcesContent":["import { Color, MeshStandardMaterial, ShaderMaterial, Vector3 } from '@anov/3d-core'\n\nexport const finirMaterialV2 = new ShaderMaterial({\n uniforms: {\n // 在这里定义uniform变量,用于控制透明度、边缘和反光效果\n edgeColor: { value: new Vector3(1.0, 0.0, 0.0) }, // 边缘颜色\n edgeThickness: { value: 0.05 }, // 边缘厚度0.05\n reflectionStrength: { value: 100 }, // 反光强度0.9\n },\n vertexShader: `\n varying vec3 vNormal;\n void main() {\n vNormal = normal;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: `\n varying vec3 vNormal;\n uniform vec3 edgeColor;\n uniform float edgeThickness;\n uniform float reflectionStrength;\n\n void main() {\n // 计算透明度\n float alpha = 0.9; // 透明度的基础值\n\n // 计算边缘效果\n float edge = fwidth(length(vNormal));\n alpha *= smoothstep(0.0, edgeThickness, edge);\n\n // 计算反光效果\n vec3 reflection = reflect(normalize(-vNormal), vec3(0.455, 0.749, 0.890));\n float reflectionIntensity = max(dot(reflection, normalize(-vNormal)), 0.0);\n vec3 reflectionColor = reflectionStrength * reflectionIntensity * edgeColor;\n\n // 最终颜色设置为\"#74bfe3\"\n vec3 finalColor = vec3(0.8, 0.25, 0.145); // \"#74bfe3\"的RGB值\n finalColor += reflectionColor; // 添加反光效果\n\n // 设置透明度\n gl_FragColor = vec4(finalColor, alpha);\n }\n `,\n transparent: true,\n depthWrite: false,\n})\n\nexport const finirMaterialV1 = new MeshStandardMaterial({ /// /这个没有沟边粗细\n opacity: 0.0,\n transparent: true,\n depthWrite: false,\n})\n\nfinirMaterialV1.onBeforeCompile = (shader) => {\n shader.uniforms.rimColor = { value: new Color('#f5b68a') }\n shader.uniforms.rimPower = { value: 0.
|
|
1
|
+
{"version":3,"names":["Color","MeshStandardMaterial","ShaderMaterial","Vector3","finirMaterialV2","uniforms","edgeColor","value","edgeThickness","reflectionStrength","vertexShader","fragmentShader","transparent","depthWrite","finirMaterialV1","opacity","onBeforeCompile","shader","rimColor","rimPower","replace","join","createFinirMaterial","material"],"sources":["../../../src/factory/utils/finirMaterial.ts"],"sourcesContent":["import { Color, MeshStandardMaterial, ShaderMaterial, Vector3 } from '@anov/3d-core'\n\nexport const finirMaterialV2 = new ShaderMaterial({\n uniforms: {\n // 在这里定义uniform变量,用于控制透明度、边缘和反光效果\n edgeColor: { value: new Vector3(1.0, 0.0, 0.0) }, // 边缘颜色\n edgeThickness: { value: 0.05 }, // 边缘厚度0.05\n reflectionStrength: { value: 100 }, // 反光强度0.9\n },\n vertexShader: `\n varying vec3 vNormal;\n void main() {\n vNormal = normal;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `,\n fragmentShader: `\n varying vec3 vNormal;\n uniform vec3 edgeColor;\n uniform float edgeThickness;\n uniform float reflectionStrength;\n\n void main() {\n // 计算透明度\n float alpha = 0.9; // 透明度的基础值\n\n // 计算边缘效果\n float edge = fwidth(length(vNormal));\n alpha *= smoothstep(0.0, edgeThickness, edge);\n\n // 计算反光效果\n vec3 reflection = reflect(normalize(-vNormal), vec3(0.455, 0.749, 0.890));\n float reflectionIntensity = max(dot(reflection, normalize(-vNormal)), 0.0);\n vec3 reflectionColor = reflectionStrength * reflectionIntensity * edgeColor;\n\n // 最终颜色设置为\"#74bfe3\"\n vec3 finalColor = vec3(0.8, 0.25, 0.145); // \"#74bfe3\"的RGB值\n finalColor += reflectionColor; // 添加反光效果\n\n // 设置透明度\n gl_FragColor = vec4(finalColor, alpha);\n }\n `,\n transparent: true,\n depthWrite: false,\n})\n\nexport const finirMaterialV1 = new MeshStandardMaterial({ /// /这个没有沟边粗细\n opacity: 0.0,\n transparent: true,\n depthWrite: false,\n})\n\nfinirMaterialV1.onBeforeCompile = (shader) => {\n shader.uniforms.rimColor = { value: new Color('#f5b68a') }\n shader.uniforms.rimPower = { value: 0.17 }\n shader.fragmentShader = shader.fragmentShader.replace(\n 'void main() {',\n [\n 'uniform vec3 rimColor;',\n ' uniform float rimPower;',\n 'void main() {',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb *= rimColor;\n\n\n float fresnelall = pow(rimPower*dotNV,.7);\n gl_FragColor.a += fresnelall;`,\n\n )\n}\n\nexport const createFinirMaterial = (rimColor: string, rimPower: number) => {\n const material = new MeshStandardMaterial({ opacity: 0.0, transparent: true, depthWrite: false })\n material.onBeforeCompile = (shader) => {\n shader.uniforms.rimColor = { value: new Color(rimColor) }\n shader.uniforms.rimPower = { value: rimPower }\n shader.fragmentShader = shader.fragmentShader.replace(\n 'void main() {',\n [\n 'uniform vec3 rimColor;',\n 'uniform float rimPower;',\n 'void main() {',\n ].join('\\n'),\n )\n shader.fragmentShader = shader.fragmentShader.replace(\n '#include <dithering_fragment>',\n `#include <dithering_fragment>\n float dotNV = 1.0-saturate( dot( normal, geometry.viewDir ) );\n gl_FragColor.rgb += rimPower*dotNV*rimColor;\n vec3 fresnelall =rimPower*dotNV*rimColor;\n gl_FragColor.a +=(fresnelall.r+fresnelall.g+fresnelall.b)/3.;`,\n )\n }\n return material\n}"],"mappings":"AAAA,SAASA,KAAK,EAAEC,oBAAoB,EAAEC,cAAc,EAAEC,OAAO,QAAQ,eAAe;AAEpF,OAAO,IAAMC,eAAe,GAAG,IAAIF,cAAc,CAAC;EAChDG,QAAQ,EAAE;IACR;IACAC,SAAS,EAAE;MAAEC,KAAK,EAAE,IAAIJ,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG;IAAE,CAAC;IAAE;IAClDK,aAAa,EAAE;MAAED,KAAK,EAAE;IAAK,CAAC;IAAE;IAChCE,kBAAkB,EAAE;MAAEF,KAAK,EAAE;IAAI,CAAC,CAAE;EACtC,CAAC;;EACDG,YAAY,mRAMK;EACjBC,cAAc,g6CA0BG;EACjBC,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEF,OAAO,IAAMC,eAAe,GAAG,IAAIb,oBAAoB,CAAC;EAAE;EACxDc,OAAO,EAAE,GAAG;EACZH,WAAW,EAAE,IAAI;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;AAEFC,eAAe,CAACE,eAAe,GAAG,UAACC,MAAM,EAAK;EAC5CA,MAAM,CAACZ,QAAQ,CAACa,QAAQ,GAAG;IAAEX,KAAK,EAAE,IAAIP,KAAK,CAAC,SAAS;EAAE,CAAC;EAC1DiB,MAAM,CAACZ,QAAQ,CAACc,QAAQ,GAAG;IAAEZ,KAAK,EAAE;EAAK,CAAC;EAC1CU,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,eAAe,EACf,CACE,wBAAwB,EACxB,0BAA0B,EAC1B,eAAe,CAChB,CAACC,IAAI,CAAC,IAAI,CAAC,CACb;EACDJ,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,+BAA+B,gPAShC;AACH,CAAC;AAED,OAAO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIJ,QAAgB,EAAEC,QAAgB,EAAK;EACzE,IAAMI,QAAQ,GAAG,IAAItB,oBAAoB,CAAC;IAAEc,OAAO,EAAE,GAAG;IAAEH,WAAW,EAAE,IAAI;IAAEC,UAAU,EAAE;EAAM,CAAC,CAAC;EACjGU,QAAQ,CAACP,eAAe,GAAG,UAACC,MAAM,EAAK;IACrCA,MAAM,CAACZ,QAAQ,CAACa,QAAQ,GAAG;MAAEX,KAAK,EAAE,IAAIP,KAAK,CAACkB,QAAQ;IAAE,CAAC;IACzDD,MAAM,CAACZ,QAAQ,CAACc,QAAQ,GAAG;MAAEZ,KAAK,EAAEY;IAAS,CAAC;IAC9CF,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,eAAe,EACf,CACE,wBAAwB,EACxB,yBAAyB,EACzB,eAAe,CAChB,CAACC,IAAI,CAAC,IAAI,CAAC,CACb;IACDJ,MAAM,CAACN,cAAc,GAAGM,MAAM,CAACN,cAAc,CAACS,OAAO,CACnD,+BAA+B,kRAMhC;EACH,CAAC;EACD,OAAOG,QAAQ;AACjB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
-
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
7
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
8
|
-
import { AdditiveBlending, BufferAttribute, BufferGeometry, Color, Group, Points, ShaderMaterial } from '@anov/3d-core';
|
|
9
|
-
import { EPoiType, Poi } from '@anov/3d-ability';
|
|
10
|
-
// import vertexShader from './glsl/point/vertex.glsl'
|
|
11
|
-
// import fragmentShader from './glsl/point/fragment.glsl'
|
|
12
|
-
|
|
13
|
-
var data = {
|
|
14
|
-
重整装置区: [{
|
|
15
|
-
id: 2,
|
|
16
|
-
name: 'xxx',
|
|
17
|
-
position: [15.23, -0.00, 158.30]
|
|
18
|
-
}]
|
|
19
|
-
};
|
|
20
|
-
var PointManage = /*#__PURE__*/function () {
|
|
21
|
-
function PointManage(gobal) {
|
|
22
|
-
_classCallCheck(this, PointManage);
|
|
23
|
-
_defineProperty(this, "pointGroupMap", new Map());
|
|
24
|
-
_defineProperty(this, "scene", void 0);
|
|
25
|
-
_defineProperty(this, "gobal", void 0);
|
|
26
|
-
_defineProperty(this, "peoplePoi", void 0);
|
|
27
|
-
this.gobal = gobal;
|
|
28
|
-
this.scene = gobal.scene.scene;
|
|
29
|
-
}
|
|
30
|
-
_createClass(PointManage, [{
|
|
31
|
-
key: "generatePoint",
|
|
32
|
-
value: function generatePoint() {
|
|
33
|
-
var _this = this;
|
|
34
|
-
var _loop = function _loop() {
|
|
35
|
-
var group = new Group();
|
|
36
|
-
data[key].forEach(function (item) {
|
|
37
|
-
var geometry = new BufferGeometry();
|
|
38
|
-
geometry.setAttribute('position', new BufferAttribute(new Float32Array(item.position), 3));
|
|
39
|
-
var point = new Points(geometry, new ShaderMaterial({
|
|
40
|
-
vertexShader: "attribute float size;\n\n void main() {\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_PointSize = 20.0;\n gl_Position = projectionMatrix * mvPosition;\n }",
|
|
41
|
-
fragmentShader: "uniform vec3 color;\n\n void main() {\n float r = 0.0, delta = 0.0, alpha = 1.0;\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n r = dot(cxy, cxy);\n delta = fwidth(r);\n alpha = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n if(r > 1.0)\n discard;\n gl_FragColor = vec4(color, alpha);\n }",
|
|
42
|
-
uniforms: {
|
|
43
|
-
color: {
|
|
44
|
-
value: new Color('yellow')
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
transparent: true,
|
|
48
|
-
depthWrite: false,
|
|
49
|
-
depthTest: false,
|
|
50
|
-
blending: AdditiveBlending
|
|
51
|
-
}));
|
|
52
|
-
_this.gobal.interactionManager.add(point);
|
|
53
|
-
point.addEventListener('mouseover', function () {
|
|
54
|
-
var poi = new Poi(EPoiType.Line);
|
|
55
|
-
_this.peoplePoi = poi.create(item.name);
|
|
56
|
-
_this.peoplePoi.position.copy(point.position);
|
|
57
|
-
_this.scene.add(_this.peoplePoi);
|
|
58
|
-
});
|
|
59
|
-
group.add(point);
|
|
60
|
-
});
|
|
61
|
-
_this.scene.add(group);
|
|
62
|
-
_this.pointGroupMap.set(key, group);
|
|
63
|
-
};
|
|
64
|
-
for (var key in data) {
|
|
65
|
-
_loop();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}]);
|
|
69
|
-
return PointManage;
|
|
70
|
-
}();
|
|
71
|
-
export default PointManage;
|
|
72
|
-
//# sourceMappingURL=point.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["AdditiveBlending","BufferAttribute","BufferGeometry","Color","Group","Points","ShaderMaterial","EPoiType","Poi","data","重整装置区","id","name","position","PointManage","gobal","Map","scene","group","key","forEach","item","geometry","setAttribute","Float32Array","point","vertexShader","fragmentShader","uniforms","color","value","transparent","depthWrite","depthTest","blending","interactionManager","add","addEventListener","poi","Line","peoplePoi","create","copy","pointGroupMap","set"],"sources":["../../../src/factory/unit/point.ts"],"sourcesContent":["import type { Object3D, Scene } from '@anov/3d-core'\nimport { AdditiveBlending, BufferAttribute, BufferGeometry, Color, Group, Points, ShaderMaterial } from '@anov/3d-core'\nimport { EPoiType, Poi } from '@anov/3d-ability'\nimport type Factory3D from '../3d'\n\n// import vertexShader from './glsl/point/vertex.glsl'\n// import fragmentShader from './glsl/point/fragment.glsl'\n\nconst data = {\n 重整装置区: [\n {\n id: 2,\n name: 'xxx',\n position: [15.23, -0.00, 158.30],\n },\n ],\n}\n\nclass PointManage {\n private pointGroupMap: Map<string, Group> = new Map()\n private scene: Scene\n private gobal: Factory3D\n private peoplePoi: Object3D\n\n constructor(gobal: Factory3D) {\n this.gobal = gobal\n this.scene = gobal.scene.scene\n }\n\n generatePoint() {\n for (const key in data) {\n const group = new Group()\n\n data[key].forEach((item) => {\n const geometry = new BufferGeometry()\n geometry.setAttribute('position', new BufferAttribute(new Float32Array(item.position), 3))\n\n const point = new Points(geometry,\n new ShaderMaterial({\n vertexShader: `attribute float size;\n\n void main() {\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_PointSize = 20.0;\n gl_Position = projectionMatrix * mvPosition;\n }`,\n fragmentShader: `uniform vec3 color;\n\n void main() {\n float r = 0.0, delta = 0.0, alpha = 1.0;\n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n r = dot(cxy, cxy);\n delta = fwidth(r);\n alpha = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n if(r > 1.0)\n discard;\n gl_FragColor = vec4(color, alpha);\n }`,\n uniforms: {\n color: { value: new Color('yellow') },\n },\n transparent: true,\n depthWrite: false,\n depthTest: false,\n blending: AdditiveBlending,\n }),\n )\n this.gobal.interactionManager.add(point)\n\n point.addEventListener('mouseover', () => {\n const poi = new Poi(EPoiType.Line)\n this.peoplePoi = poi.create(item.name)\n this.peoplePoi.position.copy(point.position)\n this.scene.add(this.peoplePoi)\n })\n group.add(point)\n })\n\n this.scene.add(group)\n this.pointGroupMap.set(key, group)\n }\n }\n}\n\nexport default PointManage"],"mappings":";;;;;;;AACA,SAASA,gBAAgB,EAAEC,eAAe,EAAEC,cAAc,EAAEC,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAEC,cAAc,QAAQ,eAAe;AACvH,SAASC,QAAQ,EAAEC,GAAG,QAAQ,kBAAkB;AAGhD;AACA;;AAEA,IAAMC,IAAI,GAAG;EACXC,KAAK,EAAE,CACL;IACEC,EAAE,EAAE,CAAC;IACLC,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM;EACjC,CAAC;AAEL,CAAC;AAAA,IAEKC,WAAW;EAMf,qBAAYC,KAAgB,EAAE;IAAA;IAAA,uCALc,IAAIC,GAAG,EAAE;IAAA;IAAA;IAAA;IAMnD,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACE,KAAK,GAAGF,KAAK,CAACE,KAAK,CAACA,KAAK;EAChC;EAAC;IAAA;IAAA,OAED,yBAAgB;MAAA;MAAA,6BACU;QACtB,IAAMC,KAAK,GAAG,IAAId,KAAK,EAAE;QAEzBK,IAAI,CAACU,GAAG,CAAC,CAACC,OAAO,CAAC,UAACC,IAAI,EAAK;UAC1B,IAAMC,QAAQ,GAAG,IAAIpB,cAAc,EAAE;UACrCoB,QAAQ,CAACC,YAAY,CAAC,UAAU,EAAE,IAAItB,eAAe,CAAC,IAAIuB,YAAY,CAACH,IAAI,CAACR,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;UAE1F,IAAMY,KAAK,GAAG,IAAIpB,MAAM,CAACiB,QAAQ,EAC/B,IAAIhB,cAAc,CAAC;YACjBoB,YAAY,mPAMV;YACFC,cAAc,mbAWZ;YACFC,QAAQ,EAAE;cACRC,KAAK,EAAE;gBAAEC,KAAK,EAAE,IAAI3B,KAAK,CAAC,QAAQ;cAAE;YACtC,CAAC;YACD4B,WAAW,EAAE,IAAI;YACjBC,UAAU,EAAE,KAAK;YACjBC,SAAS,EAAE,KAAK;YAChBC,QAAQ,EAAElC;UACZ,CAAC,CAAC,CACH;UACD,KAAI,CAACe,KAAK,CAACoB,kBAAkB,CAACC,GAAG,CAACX,KAAK,CAAC;UAExCA,KAAK,CAACY,gBAAgB,CAAC,WAAW,EAAE,YAAM;YACxC,IAAMC,GAAG,GAAG,IAAI9B,GAAG,CAACD,QAAQ,CAACgC,IAAI,CAAC;YAClC,KAAI,CAACC,SAAS,GAAGF,GAAG,CAACG,MAAM,CAACpB,IAAI,CAACT,IAAI,CAAC;YACtC,KAAI,CAAC4B,SAAS,CAAC3B,QAAQ,CAAC6B,IAAI,CAACjB,KAAK,CAACZ,QAAQ,CAAC;YAC5C,KAAI,CAACI,KAAK,CAACmB,GAAG,CAAC,KAAI,CAACI,SAAS,CAAC;UAChC,CAAC,CAAC;UACFtB,KAAK,CAACkB,GAAG,CAACX,KAAK,CAAC;QAClB,CAAC,CAAC;QAEF,KAAI,CAACR,KAAK,CAACmB,GAAG,CAAClB,KAAK,CAAC;QACrB,KAAI,CAACyB,aAAa,CAACC,GAAG,CAACzB,GAAG,EAAED,KAAK,CAAC;MACpC,CAAC;MAlDD,KAAK,IAAMC,GAAG,IAAIV,IAAI;QAAA;MAAA;IAmDxB;EAAC;EAAA;AAAA;AAGH,eAAeK,WAAW"}
|