Skip to content

Commit

Permalink
Merge pull request #117 from pattern-x/feature/section
Browse files Browse the repository at this point in the history
Enable to clip the building with dxf
  • Loading branch information
pattern-x committed Oct 18, 2023
1 parent 5ae1041 commit 36200cc
Show file tree
Hide file tree
Showing 15 changed files with 71 additions and 28 deletions.
12 changes: 6 additions & 6 deletions asset-manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"files": {
"main.css": "./static/css/main.f052ad65.css",
"main.js": "./static/js/main.05410620.js",
"main.js": "./static/js/main.b6487067.js",
"static/js/787.cf5efa72.chunk.js": "./static/js/787.cf5efa72.chunk.js",
"demo/libs/gemini-viewer.esm.min.js": "./demo/libs/gemini-viewer.esm.min.js",
"static/media/dwg_background.png": "./static/media/dwg_background.f630e7cda68e19172eec.png",
Expand Down Expand Up @@ -68,6 +68,7 @@
"demo/libs/types/core/utils/MaterialUtils.d.ts": "./demo/libs/types/core/utils/MaterialUtils.d.ts",
"demo/libs/types/core/dxf-parser/ParseHelpers.d.ts": "./demo/libs/types/core/dxf-parser/ParseHelpers.d.ts",
"demo/libs/types/core/markup/TextMarkup.d.ts": "./demo/libs/types/core/markup/TextMarkup.d.ts",
"demo/libs/types/core/text-texture/TextTexture.d.ts": "./demo/libs/types/core/text-texture/TextTexture.d.ts",
"demo/libs/types/export.doc.d.ts": "./demo/libs/types/export.doc.d.ts",
"demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts",
"demo/libs/types/plugins/sections/ViewportSection.d.ts": "./demo/libs/types/plugins/sections/ViewportSection.d.ts",
Expand All @@ -80,7 +81,6 @@
"demo/libs/types/core/dxf-parser/entities/viewport.d.ts": "./demo/libs/types/core/dxf-parser/entities/viewport.d.ts",
"demo/libs/types/core/dxf-parser/entities/geomtry.d.ts": "./demo/libs/types/core/dxf-parser/entities/geomtry.d.ts",
"demo/libs/types/plugins/explode/ObjectExploder.d.ts": "./demo/libs/types/plugins/explode/ObjectExploder.d.ts",
"demo/libs/types/core/text-texture/TextTexture.d.ts": "./demo/libs/types/core/text-texture/TextTexture.d.ts",
"demo/libs/types/plugins/sections/SectionGizmo.d.ts": "./demo/libs/types/plugins/sections/SectionGizmo.d.ts",
"demo/libs/types/core/geometry-offset/Offset.d.ts": "./demo/libs/types/core/geometry-offset/Offset.d.ts",
"demo/libs/types/core/vr/VRCube24Faces.d.ts": "./demo/libs/types/core/vr/VRCube24Faces.d.ts",
Expand Down Expand Up @@ -176,16 +176,16 @@
"demo/libs/types/core/utils/CSS2DObjectUtils.d.ts": "./demo/libs/types/core/utils/CSS2DObjectUtils.d.ts",
"demo/libs/types/core/compare/CompareDrawable.d.ts": "./demo/libs/types/core/compare/CompareDrawable.d.ts",
"demo/libs/types/core/utils/UnitConversionUtils.d.ts": "./demo/libs/types/core/utils/UnitConversionUtils.d.ts",
"demo/libs/types/core/helpers/MeshBvhHelper.d.ts": "./demo/libs/types/core/helpers/MeshBvhHelper.d.ts",
"demo/libs/types/core/dxf-parser/entities/mtext.d.ts": "./demo/libs/types/core/dxf-parser/entities/mtext.d.ts",
"demo/libs/types/core/markup/ArrowMarkup.d.ts": "./demo/libs/types/core/markup/ArrowMarkup.d.ts",
"demo/libs/types/core/helpers/MeshBvhHelper.d.ts": "./demo/libs/types/core/helpers/MeshBvhHelper.d.ts",
"demo/libs/types/core/utils/TextureUtils.d.ts": "./demo/libs/types/core/utils/TextureUtils.d.ts",
"demo/libs/types/core/undo-redo/UndoRedoManager.d.ts": "./demo/libs/types/core/undo-redo/UndoRedoManager.d.ts",
"demo/libs/types/core/index.d.ts": "./demo/libs/types/core/index.d.ts",
"demo/libs/types/core/materials/GeminiStandardMaterial.d.ts": "./demo/libs/types/core/materials/GeminiStandardMaterial.d.ts",
"demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts": "./demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts",
"demo/libs/types/core/dxf-parser/entities/text.d.ts": "./demo/libs/types/core/dxf-parser/entities/text.d.ts",
"demo/libs/types/core/dxf-parser/entities/arc.d.ts": "./demo/libs/types/core/dxf-parser/entities/arc.d.ts",
"demo/libs/types/core/index.d.ts": "./demo/libs/types/core/index.d.ts",
"demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_fragment.glsl.d.ts",
"demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts": "./demo/libs/types/core/workers/GenerateMeshBvhWorker.d.ts",
"demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts": "./demo/libs/types/plugins/axis-gizmo/CoordinateAxes.d.ts",
Expand Down Expand Up @@ -319,11 +319,11 @@
"demo/libs/types/core/webcam/index.d.ts": "./demo/libs/types/core/webcam/index.d.ts",
"demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts": "./demo/libs/types/core/workers/CreateMeshBvh.worker.d.ts",
"main.f052ad65.css.map": "./static/css/main.f052ad65.css.map",
"main.05410620.js.map": "./static/js/main.05410620.js.map",
"main.b6487067.js.map": "./static/js/main.b6487067.js.map",
"787.cf5efa72.chunk.js.map": "./static/js/787.cf5efa72.chunk.js.map"
},
"entrypoints": [
"static/css/main.f052ad65.css",
"static/js/main.05410620.js"
"static/js/main.b6487067.js"
]
}
54 changes: 44 additions & 10 deletions demo/bim_2_overlay_with_dxf.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@
<script type="module">
import {
AxisGizmoPlugin,
AxisType,
BimViewer,
BimViewerToolbarPlugin,
MeasurementPlugin,
SectionPlugin,
SectionType,
ViewCubePlugin,
} from "./demo/libs/gemini-viewer.esm.min.js";
import * as dat from "./demo/libs/dat.gui.module.js";
Expand All @@ -43,7 +45,7 @@
0.001, 0, 0, 0, // the dxf is in "mm", and gltf is in "meter", so need to set scale 0.001
0, 0, -0.001, 0,
0, 0.001, 0, 0,
-1831.340, 17, 456.910, 1 // also need to consider the base point
-1831.340, 0, 456.910, 1 // also need to consider the base point
],
"edges": true,
"visible": true
Expand All @@ -57,7 +59,7 @@
new BimViewerToolbarPlugin(viewer);
new MeasurementPlugin(viewer);
new ViewCubePlugin(viewer);
new SectionPlugin(viewer);
const sectionPlugin = new SectionPlugin(viewer);

// font file is needed for loading dxf
// const fontFiles = ["./demo/libs/fonts/Microsoft_YaHei_Regular.typeface.json"];
Expand All @@ -81,24 +83,56 @@
console.error("[Demo] Failed to load " + modelCfg.src + ". " + event.message);
}).then(() => {
console.log(`[Demo] Loaded model ${modelCfg.src}`);
// viewer.setToOrthographicCamera(false);

const bothModelsLoaded = viewer.loadedModels.length > 1;
if (controls.enableSection && bothModelsLoaded) {
updateDxfAndSectionPlane(controls.dxfElevation, true);
}
});
});

const updateDxfAndSectionPlane = (dxfElevation, enableSection) => {
const model = viewer.loadedModels.find((model) => model.modelId.endsWith(".dxf"));
if (!model) {
return; // dxf may not being loaded yet.
}
const object = model.getModelObject();
object.position.setY(dxfElevation);
object.updateMatrix();
const axisPlaneSection = sectionPlugin.sections[SectionType.AxisPlaneSection];
if (enableSection) {
if (!sectionPlugin.isActive()) {
const sectionPlaneOffset = 0.01; // to avoid cliping the dxf
axisPlaneSection.activate(AxisType.Y, dxfElevation + sectionPlaneOffset);
axisPlaneSection.setSectionPlaneVisible(false);
} else {
axisPlaneSection.setActiveAxis(AxisType.Y, dxfElevation);
}
} else {
axisPlaneSection.deactivate();
}
viewer.enableRender();
};

// dat.gui controls
const controls = {
dxfElevation: 0,
dxfElevation: 17,
enableSection: true,
}
// update dxf elevation between -2 to 30, default value is 17.
gui.add(controls, "dxfElevation", -2.0, 30.0, 0.1)
.name("Dxf elevation")
.setValue(17) // the origin value is 17
.setValue(controls.dxfElevation) // the origin value is 17
.onChange((val) => {
controls.dxfElevation = val;
updateDxfAndSectionPlane(controls.dxfElevation, controls.enableSection);
});
gui.add(controls, "enableSection", controls.enableSection)
.name("Enable Section")
.setValue(controls.enableSection)
.onChange((val) => {
const dxf = viewer.loadedModels.find((model) => model.modelId.endsWith(".dxf"));
const object = dxf.object;
object.position.setY(val);
object.updateMatrix();
viewer.enableRender();
controls.enableSection = val;
updateDxfAndSectionPlane(controls.dxfElevation, controls.enableSection);
});
</script>
</body>
Expand Down
2 changes: 1 addition & 1 deletion demo/libs/gemini-viewer.esm.min.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions demo/libs/types/core/dxf-parser/entities/hatch.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ export declare enum HatchEdgeType {
}
export declare abstract class HatchEdge {
readonly type: HatchEdgeType;
startPoint: IPoint;
endPoint: IPoint;
constructor(type: HatchEdgeType);
}
export declare class HatchPolyline extends HatchEdge {
Expand All @@ -26,8 +28,6 @@ export declare class HatchPolyline extends HatchEdge {
constructor();
}
export declare class HatchLine extends HatchEdge {
startPoint: IPoint;
endPoint: IPoint;
constructor();
}
export declare class HatchArc extends HatchEdge {
Expand Down
2 changes: 2 additions & 0 deletions demo/libs/types/core/dxf/DxfLoader.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ export interface DxfEntity extends IEntity {
cells: TableCell[];
rowHeightArr: number[];
columnWidthArr: number[];
blockRecordHandle?: string;
}
/**
* Dxf block.
Expand Down Expand Up @@ -387,6 +388,7 @@ export declare class DxfLoader extends THREE.Loader {
private drawLWPolyline;
private drawMLeader;
private drawLeader;
private getTableTextOffset;
private drawTable;
private drawDefaultLeadArrow;
private getBlockByHandle;
Expand Down
2 changes: 1 addition & 1 deletion demo/libs/types/core/helpers/MeshBvhHelper.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ export declare class MeshBvhHelper {
generate(geometries: THREE.BufferGeometry[], params?: BvhParameter): Promise<void>;
dispose(): void;
static createMeshBvhSync(objects: THREE.Object3D[], params?: BvhParameter): void;
static createMeshBvhAsync(objects: THREE.Object3D[], params?: BvhParameter): void;
static createMeshBvhAsync(objects: THREE.Object3D[], params?: BvhParameter): Promise<void>;
}
1 change: 1 addition & 0 deletions demo/libs/types/core/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export * from "./patches";
export * from "./canvas";
export * from "./compare";
export * from "./controls";
Expand Down
7 changes: 5 additions & 2 deletions demo/libs/types/core/text-texture/TextTexture.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ export interface TextTextureConfig {
alignment?: string;
backgroundColor?: number;
fontFamily?: string;
/**
* With fontSize 18 it generates a 64x64 image, 20 generates 128x128 one.
*/
fontSize?: number;
fontStyle?: string;
fontVariant?: string;
Expand All @@ -23,11 +26,11 @@ export declare class TextTexture extends THREE.Texture {
private lineOffset;
private width;
private height;
private lines;
private font;
private pixelRatio;
cfg: Required<TextTextureConfig>;
constructor(config: TextTextureConfig, canvas?: HTMLCanvasElement);
get lines(): string[];
get font(): string;
private getContentWidth;
private initDraw;
private getDrawPosition;
Expand Down
1 change: 1 addition & 0 deletions demo/libs/types/core/viewers/BimViewer.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ export declare class BimViewer extends BaseViewer {
* @internal
*/
private bbox;
enableAnchorPointer: boolean;
private anchor?;
constructor(viewerCfg: BimViewerConfig, cameraCfg?: CameraConfig);
/**
Expand Down
6 changes: 4 additions & 2 deletions demo/libs/types/plugins/view-cube/ViewCube.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,18 @@ export declare enum ViewCubeName {
}
export declare class ViewCube extends THREE.Object3D {
readonly name = "ViewCube";
private readonly AXIS_LENGTH;
private readonly AXIS_COLOR_X;
private readonly AXIS_COLOR_Y;
private readonly AXIS_COLOR_Z;
private readonly FACE_BACKGROUND_COLOR;
private readonly FACE_HOVER_BACKGROUND_COLOR;
private readonly INNER_CUBE_WIDTH;
private readonly OUTER_CUBE_WIDTH;
private readonly CORNER_WIDTH;
private readonly AXIS_LENGTH;
private readonly EDGE_COLOUR;
private readonly EDGE_OPACITY;
private readonly EDGE_SIZE;
private readonly CORNER_WIDTH;
private readonly CORNER_COLOR;
private readonly CORNER_OPACITY;
private faces;
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>React App</title><script defer="defer" src="./static/js/main.05410620.js"></script><link href="./static/css/main.f052ad65.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>React App</title><script defer="defer" src="./static/js/main.b6487067.js"></script><link href="./static/css/main.f052ad65.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
2 changes: 0 additions & 2 deletions static/js/main.05410620.js

This file was deleted.

1 change: 0 additions & 1 deletion static/js/main.05410620.js.map

This file was deleted.

2 changes: 2 additions & 0 deletions static/js/main.b6487067.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions static/js/main.b6487067.js.map

Large diffs are not rendered by default.

0 comments on commit 36200cc

Please sign in to comment.