@anov/3d 0.0.55 → 0.0.56
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.
|
@@ -134,7 +134,6 @@ var Inspection = /*#__PURE__*/function () {
|
|
|
134
134
|
}, {
|
|
135
135
|
key: "setInspectionCamera",
|
|
136
136
|
value: function setInspectionCamera() {
|
|
137
|
-
var _app$envServer$scaleR, _window, _window$app, _window$app$envServer;
|
|
138
137
|
var minCamera;
|
|
139
138
|
if (this.minCamera) {
|
|
140
139
|
minCamera = this.minCamera;
|
|
@@ -142,7 +141,7 @@ var Inspection = /*#__PURE__*/function () {
|
|
|
142
141
|
minCamera = new PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
|
|
143
142
|
}
|
|
144
143
|
this.gobal.scene.cutoutCamera = minCamera;
|
|
145
|
-
var scale =
|
|
144
|
+
var scale = 1;
|
|
146
145
|
this.gobal.scene.cutoutArea = {
|
|
147
146
|
x: 50 * scale,
|
|
148
147
|
y: 100 * scale,
|
|
@@ -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","container","get","viewElement","document","createElement","style","position","width","height","cursor","top","offsetTop","left","offsetLeft","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","app","envServer","scaleRatio","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 container = storeManagement.get<HTMLElement>('container')\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 = `${container.offsetTop}px`\n viewElement.style.left = `${container.offsetLeft}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 = (window as any)?.app?.envServer?.scaleRatio ?? 1\n\n this.gobal.scene.cutoutArea = { x: 50 * scale, y: 100 * scale, width: 502 * scale, height: 400 * 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","container","get","viewElement","document","createElement","style","position","width","height","cursor","top","offsetTop","left","offsetLeft","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 container = storeManagement.get<HTMLElement>('container')\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 = `${container.offsetTop}px`\n viewElement.style.left = `${container.offsetLeft}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: 400 * 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.56",
|
|
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"
|