@anov/3d 0.0.57 → 0.0.58
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.
|
@@ -90,6 +90,10 @@ var CylinderManage = /*#__PURE__*/function () {
|
|
|
90
90
|
var box = _this.gobal.areaBoundingBox.boundingBoxMap.get(_this.currentoperate);
|
|
91
91
|
var iscollision = collisionDetection(box, currentCameraPosition);
|
|
92
92
|
if (!iscollision) {
|
|
93
|
+
// @ts-ignore
|
|
94
|
+
_this.gobal.regionPlane.planeMesh.forEach(function (mesh) {
|
|
95
|
+
mesh.visible = true;
|
|
96
|
+
});
|
|
93
97
|
emitter.emit('peoplemanagement-camera-out', {
|
|
94
98
|
belongTo: _this.currentoperate
|
|
95
99
|
});
|
|
@@ -145,6 +149,11 @@ var CylinderManage = /*#__PURE__*/function () {
|
|
|
145
149
|
interactionManager.add(group);
|
|
146
150
|
group.addEventListener('click', function () {
|
|
147
151
|
if (_this2.gobal.style === SceneStyle.real || group.visible === false) return;
|
|
152
|
+
|
|
153
|
+
// @ts-ignore
|
|
154
|
+
_this2.gobal.regionPlane.planeMesh.forEach(function (mesh) {
|
|
155
|
+
mesh.visible = false;
|
|
156
|
+
});
|
|
148
157
|
_this2.gobal.cameraUtil.set({
|
|
149
158
|
position: [item.points[0], item.points[1] + item.height / 2 + 100, item.points[2] + 100],
|
|
150
159
|
target: [item.points[0], item.points[1] + item.height / 2, item.points[2]]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BoxGeometry","Color","Float32BufferAttribute","Group","Mesh","MeshBasicMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","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","addEventListener","style","real","cameraUtil","set","target","then","currentGroup","cylinderMesh","cameraAddListener","font","mesh","geometry","center","useframe","camera","controlAddListener","data","width","gradientMaterial","vertexColors","transparent","attributes","colors","i","count","vertex","fromBufferAttribute","gradientX","x","gradientY","y","setHex","lerp","push","r","g","b","setAttribute","rotateY","Math","PI","cameraListenerHandle","maxDistance","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 createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\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 },\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 },\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 },\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 },\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 },\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 },\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 },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\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 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 geometry = new BoxGeometry(10, item.height, 10)\n const material = new ShaderMaterial({\n transparent: true,\n depthWrite: false,\n depthTest: false,\n uniforms: {\n uHeight: {\n value: item.height,\n },\n uColor: {\n value: new Color(item.color),\n },\n },\n vertexShader: `\n uniform float uHeight;\n varying float vOpacity;\n void main() {\n vOpacity = (position.y + uHeight/2.0) / uHeight;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }\n `,\n fragmentShader: `\n uniform vec3 uColor;\n varying float vOpacity;\n void main() {\n gl_FragColor = vec4(uColor,0.3+vOpacity/10.0*7.0);\n }\n `,\n })\n const cylinder = new Mesh(geometry, material) */\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 group.addEventListener('click', () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n this.gobal.cameraUtil.set({\n position: [item.points[0], item.points[1] + item.height / 2 + 100, item.points[2] + 100],\n target: [item.points[0], item.points[1] + item.height / 2, item.points[2]],\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n })\n /* this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n }) */\n })\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n font.then((mesh) => {\n mesh.geometry.center()\n\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n })\n })\n this.controlAddListener()\n }\n\n getMesh(data) {\n const width = 10\n // 创建渐变材质\n const gradientMaterial = new MeshBasicMaterial({\n vertexColors: true, // 启用顶点颜色插值\n transparent: true,\n // blending: AdditiveBlending,\n })\n // 创建渐变立方体的顶点颜色数组\n const geometry = new BoxGeometry(width, data.height, width)\n const position = geometry.attributes.position\n const colors = []\n for (let i = 0; i < position.count; i++) {\n const vertex = new Vector3()\n vertex.fromBufferAttribute(position, i)\n // 计算顶点的浅橘色到白色渐变值\n const gradientX = (vertex.x + width / 2) / width // 从0到1的梯度\n const gradientY = (vertex.y + data.height / 2) / data.height // 从0到1的梯度\n // 计算渐变色\n const color = new Color().setHex(0xD5A86F) // 初始颜色为浅橘色\n color.lerp(new Color(1, 1, 0.9), gradientX * gradientY) // 从浅橘色渐变到白色\n // 添加顶点颜色\n colors.push(color.r, color.g, color.b) // 添加渐变色\n }\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3))\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 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","Float32BufferAttribute","Group","Mesh","MeshBasicMaterial","Vector3","globalObjectManage","use","utils","createFontMesh","SceneStyle","regionMap","collisionDetection","lookAtOnYAxis","emitter","cylinderData","label","id","title","reform","belongTo","area","color","getHex","points","poi","position","height","reduction","crudeOil","catalyticCracking","hydrocrackingUnit","cokingUnit","administrative","CylinderManage","gobal","options","Map","currentCameraPosition","control","object","box","areaBoundingBox","boundingBoxMap","get","currentoperate","iscollision","regionPlane","planeMesh","forEach","mesh","visible","emit","cameraRemoveListener","scene","option","item","cylinder","getMesh","group","name","copy","fromArray","interactionManager","storeManagement","add","addEventListener","style","real","cameraUtil","set","target","then","currentGroup","cylinderMesh","cameraAddListener","font","geometry","center","useframe","camera","controlAddListener","data","width","gradientMaterial","vertexColors","transparent","attributes","colors","i","count","vertex","fromBufferAttribute","gradientX","x","gradientY","y","setHex","lerp","push","r","g","b","setAttribute","rotateY","Math","PI","cameraListenerHandle","maxDistance","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 createFontMesh from '../utils/fontMesh'\nimport type Factory3D from '../3d'\nimport { SceneStyle } from '../utils/constant'\nimport regionMap from '../regionData'\nimport { collisionDetection } from '../utils/areaBoundingBox'\n\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 },\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 },\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 },\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 },\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 },\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 },\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 },\n]\n\ntype CylinderManageOption = {\n visible?: boolean\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 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 geometry = new BoxGeometry(10, item.height, 10)\n const material = new ShaderMaterial({\n transparent: true,\n depthWrite: false,\n depthTest: false,\n uniforms: {\n uHeight: {\n value: item.height,\n },\n uColor: {\n value: new Color(item.color),\n },\n },\n vertexShader: `\n uniform float uHeight;\n varying float vOpacity;\n void main() {\n vOpacity = (position.y + uHeight/2.0) / uHeight;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1.0);\n }\n `,\n fragmentShader: `\n uniform vec3 uColor;\n varying float vOpacity;\n void main() {\n gl_FragColor = vec4(uColor,0.3+vOpacity/10.0*7.0);\n }\n `,\n })\n const cylinder = new Mesh(geometry, material) */\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 group.addEventListener('click', () => {\n if (this.gobal.style === SceneStyle.real || group.visible === false)\n return\n\n // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = false\n })\n\n this.gobal.cameraUtil.set({\n position: [item.points[0], item.points[1] + item.height / 2 + 100, item.points[2] + 100],\n target: [item.points[0], item.points[1] + item.height / 2, item.points[2]],\n }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n })\n /* this.gobal.cameraUtil.focus({ target: item.area, pitch: 0 }).then(() => {\n emitter.emit('peoplemanagement-camera-enter', item)\n const currentGroup = this.cylinderMesh.get(item.belongTo) as Group\n currentGroup.visible = false\n\n this.currentoperate = item.belongTo\n this.cameraAddListener()\n }) */\n })\n this.cylinderMesh.set(item.belongTo, group)\n group.add(cylinder)\n\n const font = createFontMesh(item.label, {\n position: new Vector3().fromArray([item.points[0], item.points[1] + item.height + 10, item.points[2]]),\n })\n\n font.then((mesh) => {\n mesh.geometry.center()\n\n group.add(mesh)\n\n use.useframe(() => {\n lookAtOnYAxis(mesh, globalObjectManage.camera.position)\n })\n this.scene.add(group)\n })\n })\n this.controlAddListener()\n }\n\n getMesh(data) {\n const width = 10\n // 创建渐变材质\n const gradientMaterial = new MeshBasicMaterial({\n vertexColors: true, // 启用顶点颜色插值\n transparent: true,\n // blending: AdditiveBlending,\n })\n // 创建渐变立方体的顶点颜色数组\n const geometry = new BoxGeometry(width, data.height, width)\n const position = geometry.attributes.position\n const colors = []\n for (let i = 0; i < position.count; i++) {\n const vertex = new Vector3()\n vertex.fromBufferAttribute(position, i)\n // 计算顶点的浅橘色到白色渐变值\n const gradientX = (vertex.x + width / 2) / width // 从0到1的梯度\n const gradientY = (vertex.y + data.height / 2) / data.height // 从0到1的梯度\n // 计算渐变色\n const color = new Color().setHex(0xD5A86F) // 初始颜色为浅橘色\n color.lerp(new Color(1, 1, 0.9), gradientX * gradientY) // 从浅橘色渐变到白色\n // 添加顶点颜色\n colors.push(color.r, color.g, color.b) // 添加渐变色\n }\n geometry.setAttribute('color', new Float32BufferAttribute(colors, 3))\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 // @ts-ignore\n this.gobal.regionPlane.planeMesh.forEach((mesh) => {\n mesh.visible = true\n })\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 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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"}
|
|
@@ -40,11 +40,11 @@ var Inspection = /*#__PURE__*/function () {
|
|
|
40
40
|
top = _storeManagement$get$.top;
|
|
41
41
|
var viewElement = document.createElement('div');
|
|
42
42
|
viewElement.style.position = 'absolute';
|
|
43
|
-
viewElement.style.width = '
|
|
43
|
+
viewElement.style.width = '502px';
|
|
44
44
|
viewElement.style.height = '200px';
|
|
45
45
|
viewElement.style.cursor = 'pointer';
|
|
46
|
-
viewElement.style.top = "".concat(top, "px");
|
|
47
|
-
viewElement.style.left = "".concat(left, "px");
|
|
46
|
+
viewElement.style.top = "".concat(top + 100, "px");
|
|
47
|
+
viewElement.style.left = "".concat(left + 50, "px");
|
|
48
48
|
viewElement.addEventListener('click', function () {
|
|
49
49
|
_this.gobal.toggleView();
|
|
50
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Color","CylinderGeometry","Group","Mesh","MeshBasicMaterial","PerspectiveCamera","ShaderMaterial","TubeGeometry","use","utils","RoundLineGeometry","initPostEffects","fragmentShader","vertexShader","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","storeManagement","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","get","querySelector","getBoundingClientRect","left","top","viewElement","document","createElement","style","position","width","height","cursor","addEventListener","toggleView","flyLine","radius","close","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","mesh2","groundGroup","add","y","groundCurve","line","scene","anchorMesh","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","color","cylinder1","name","set","x","z","anchorObject","minCamera","window","innerWidth","innerHeight","cutoutCamera","scale","cutoutArea","layers","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","camera","renderer","type","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, PlaneGeometry, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, TubeGeometry, lib, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry, addColorifyPass, createBloomSelectedTool, createHighSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport { usePath } from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\n\nconst { storeManagement } = utils\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 anchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\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\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 = '500px'\n viewElement.style.height = '200px'\n viewElement.style.cursor = 'pointer'\n viewElement.style.top = `${top}px`\n viewElement.style.left = `${left}px`\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\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 /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\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 groundGroup = new Group()\n\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n this.groundMaterial = groundMaterial\n\n this.anchorMesh()\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 setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(60,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n\n const scale = 1\n\n this.gobal.scene.cutoutArea = { x: 50 * scale, y: 100 * scale, width: 502 * scale, height: 200 * scale }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n\n this.minCamera.layers.set(0)\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 initPostEffects(this.gobal.scene.scene, this.gobal.scene.renderer, this.gobal.scene.cutoutCamera, {\n type: 'sub',\n })\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","PerspectiveCamera","ShaderMaterial","TubeGeometry","use","utils","RoundLineGeometry","initPostEffects","fragmentShader","vertexShader","flyLinePoints","groundLinePoints","targetProgresspoints","InspectionObject","storeManagement","Inspection","gobal","Map","generateInspectionPath","makeGroundRoad","setInspectionCamera","inspectionObject","startInspection","curve","hide","get","querySelector","getBoundingClientRect","left","top","viewElement","document","createElement","style","position","width","height","cursor","addEventListener","toggleView","flyLine","radius","close","groundLine","tube","groundMaterial","transparent","uniforms","u_time","value","alpha","centerColor","sideColor","otherColor","mesh2","groundGroup","add","y","groundCurve","line","scene","anchorMesh","anchorGroup","Object","keys","forEach","key","demoPoints","getPointAt","Number","singleAnchorGroup","cylinder","color","cylinder1","name","set","x","z","anchorObject","minCamera","window","innerWidth","innerHeight","cutoutCamera","scale","cutoutArea","layers","getLength","startMove","targetProgress","targetPosition","gotoTarget","isHide","body","appendChild","cutout","visible","model","contains","removeChild","camera","renderer","type","cutMain","check","useframe"],"sources":["../../../../src/factory/unit/inspection/index.ts"],"sourcesContent":["import type { Object3D, Vector3 } from '@anov/3d-core'\nimport { Color, CylinderGeometry, Group, Mesh, MeshBasicMaterial, MirroredRepeatWrapping, PerspectiveCamera, PlaneGeometry, RepeatWrapping, ShaderChunk, ShaderMaterial, TextureLoader, TubeGeometry, lib, use, utils } from '@anov/3d-core'\nimport { RoundLineGeometry, addColorifyPass, createBloomSelectedTool, createHighSelectedTool, initPostEffects } from '@anov/3d-ability'\nimport type Factory3D from '../../3d'\nimport { usePath } from '../../3d'\nimport fragmentShader from '../glsl/highway/fragmentShader'\nimport vertexShader from '../glsl/highway/vertexShader'\nimport { flyLinePoints, groundLinePoints, targetProgresspoints } from './lineData'\nimport InspectionObject from './InspectionObject'\n\nconst { storeManagement } = utils\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 anchorGroup: Group\n minCamera: PerspectiveCamera\n InspectionPathObject: Object3D\n groundMaterial\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\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 = '502px'\n viewElement.style.height = '200px'\n viewElement.style.cursor = 'pointer'\n viewElement.style.top = `${top + 100}px`\n viewElement.style.left = `${left + 50}px`\n\n viewElement.addEventListener('click', () => {\n this.gobal.toggleView()\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 /**\n * make ground road\n */\n private makeGroundRoad() {\n const groundLine = new RoundLineGeometry(groundLinePoints, {\n radius: 20,\n close: true,\n })\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 groundGroup = new Group()\n\n groundGroup.add(mesh2)\n groundGroup.position.y = 3\n\n this.groundCurve = groundLine.curve\n this.line = groundGroup\n this.gobal.scene.add(groundGroup)\n this.groundMaterial = groundMaterial\n\n this.anchorMesh()\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 setInspectionCamera() {\n let minCamera\n\n if (this.minCamera) {\n minCamera = this.minCamera\n }\n else {\n minCamera = new PerspectiveCamera(60,\n window.innerWidth / window.innerHeight\n , 0.1, 1000)\n }\n\n this.gobal.scene.cutoutCamera = minCamera\n\n const scale = 1\n\n this.gobal.scene.cutoutArea = { x: 50 * scale, y: 100 * scale, width: 502 * scale, height: 200 * scale }\n this.gobal.scene.add(minCamera)\n\n this.minCamera = minCamera\n\n this.minCamera.layers.set(0)\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 initPostEffects(this.gobal.scene.scene, this.gobal.scene.renderer, this.gobal.scene.cutoutCamera, {\n type: 'sub',\n })\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anov/3d",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.58",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"anov-heat-map": "^0.0.1",
|
|
22
22
|
"localforage": "^1.10.0",
|
|
23
23
|
"uuid": "^9.0.1",
|
|
24
|
-
"@anov/3d-
|
|
25
|
-
"@anov/3d-
|
|
24
|
+
"@anov/3d-core": "^0.0.12",
|
|
25
|
+
"@anov/3d-ability": "^0.0.13"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@types/uuid": "^9.0.7"
|