Merge pull request #115 from pattern-x/feature/dat.gui

Add dat.gui, and enable to update dxf elevation for bim_2_overlay_wit…
This commit is contained in:
pattern-x
2023-09-18 01:15:14 +00:00
parent f8f89d5e41
commit f5ecfc9ab4
317 changed files with 12971 additions and 12973 deletions

View File

@ -1,7 +1,7 @@
{
"files": {
"main.css": "./static/css/main.352fe986.css",
"main.js": "./static/js/main.abd1e4ad.js",
"main.css": "./static/css/main.f052ad65.css",
"main.js": "./static/js/main.f2f06aa8.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",
@ -15,248 +15,248 @@
"demo/libs/types/core/dxf-parser/DxfParser.d.ts": "./demo/libs/types/core/dxf-parser/DxfParser.d.ts",
"demo/libs/types/core/viewers/VRViewer.d.ts": "./demo/libs/types/core/viewers/VRViewer.d.ts",
"demo/libs/types/core/viewers/BaseViewer.d.ts": "./demo/libs/types/core/viewers/BaseViewer.d.ts",
"demo/libs/types/plugins/sections/BasePlaneSection.d.ts": "./demo/libs/types/plugins/sections/BasePlaneSection.d.ts",
"demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.d.ts",
"demo/libs/types/plugins/sections/BasePlaneSection.d.ts": "./demo/libs/types/plugins/sections/BasePlaneSection.d.ts",
"demo/libs/types/core/helpers/OSnapHelper.d.ts": "./demo/libs/types/core/helpers/OSnapHelper.d.ts",
"demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts": "./demo/libs/types/plugins/overview-map/OverviewMapPlugin.d.ts",
"demo/libs/types/core/utils/Locale.d.ts": "./demo/libs/types/core/utils/Locale.d.ts",
"demo/libs/types/plugins/sections/BaseBoxSection.d.ts": "./demo/libs/types/plugins/sections/BaseBoxSection.d.ts",
"demo/libs/types/core/dxf/DxfCompare.d.ts": "./demo/libs/types/core/dxf/DxfCompare.d.ts",
"demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts": "./demo/libs/types/core/viewers/SimplifiedBimViewer.d.ts",
"demo/libs/types/core/utils/CommonUtils.d.ts": "./demo/libs/types/core/utils/CommonUtils.d.ts",
"demo/libs/types/core/utils/MergeUtils.d.ts": "./demo/libs/types/core/utils/MergeUtils.d.ts",
"demo/libs/types/core/utils/CommonUtils.d.ts": "./demo/libs/types/core/utils/CommonUtils.d.ts",
"demo/libs/types/plugins/measure/BaseMeasurement.d.ts": "./demo/libs/types/plugins/measure/BaseMeasurement.d.ts",
"demo/libs/types/plugins/measure/MeasurementPlugin.d.ts": "./demo/libs/types/plugins/measure/MeasurementPlugin.d.ts",
"demo/libs/types/core/Constants.d.ts": "./demo/libs/types/core/Constants.d.ts",
"demo/libs/types/core/controls/VRControls.d.ts": "./demo/libs/types/core/controls/VRControls.d.ts",
"demo/libs/types/core/Constants.d.ts": "./demo/libs/types/core/Constants.d.ts",
"demo/libs/types/core/input/InputManager.d.ts": "./demo/libs/types/core/input/InputManager.d.ts",
"demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts": "./demo/libs/types/core/compare/BaseDxfCompareHelper.d.ts",
"demo/libs/types/core/utils/GeometryUtils.d.ts": "./demo/libs/types/core/utils/GeometryUtils.d.ts",
"demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts": "./demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts",
"demo/libs/types/plugins/toolbars/Toolbar.d.ts": "./demo/libs/types/plugins/toolbars/Toolbar.d.ts",
"demo/libs/types/core/camera-controls/types.d.ts": "./demo/libs/types/core/camera-controls/types.d.ts",
"demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts": "./demo/libs/types/plugins/hotpoint/HotpointPlugin.d.ts",
"demo/libs/types/core/markup/MarkupManager.d.ts": "./demo/libs/types/core/markup/MarkupManager.d.ts",
"demo/libs/types/core/dxf-parser/entities/mleader.d.ts": "./demo/libs/types/core/dxf-parser/entities/mleader.d.ts",
"demo/libs/types/core/dxf/DxfUtils.d.ts": "./demo/libs/types/core/dxf/DxfUtils.d.ts",
"demo/libs/types/core/utils/CoordinateUtils.d.ts": "./demo/libs/types/core/utils/CoordinateUtils.d.ts",
"demo/libs/types/core/compare/DxfCompareHelper.d.ts": "./demo/libs/types/core/compare/DxfCompareHelper.d.ts",
"demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts": "./demo/libs/types/plugins/toolbars/Toolbar.constants.d.ts",
"demo/libs/types/core/dxf-parser/entities/hatch.d.ts": "./demo/libs/types/core/dxf-parser/entities/hatch.d.ts",
"demo/libs/types/core/canvas/Drawable.d.ts": "./demo/libs/types/core/canvas/Drawable.d.ts",
"demo/libs/types/core/font/FontManager.d.ts": "./demo/libs/types/core/font/FontManager.d.ts",
"demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts": "./demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts",
"demo/libs/types/core/helpers/LoadingHelper.d.ts": "./demo/libs/types/core/helpers/LoadingHelper.d.ts",
"demo/libs/types/plugins/sections/BaseSection.d.ts": "./demo/libs/types/plugins/sections/BaseSection.d.ts",
"demo/libs/types/core/utils/MathUtils.d.ts": "./demo/libs/types/core/utils/MathUtils.d.ts",
"demo/libs/types/plugins/sections/BaseSection.d.ts": "./demo/libs/types/plugins/sections/BaseSection.d.ts",
"demo/libs/types/plugins/view-cube/ViewCube.d.ts": "./demo/libs/types/plugins/view-cube/ViewCube.d.ts",
"demo/libs/types/core/utils/ExportUtils.d.ts": "./demo/libs/types/core/utils/ExportUtils.d.ts",
"demo/libs/types/core/viewers/ViewerEvent.d.ts": "./demo/libs/types/core/viewers/ViewerEvent.d.ts",
"demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts": "./demo/libs/types/plugins/dat-gui/BimViewerDatGui.d.ts",
"demo/libs/types/core/utils/ExportUtils.d.ts": "./demo/libs/types/core/utils/ExportUtils.d.ts",
"demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts": "./demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts",
"demo/libs/types/core/canvas/CanvasRender.d.ts": "./demo/libs/types/core/canvas/CanvasRender.d.ts",
"demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts": "./demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts",
"demo/libs/types/plugins/sections/SectionPlugin.d.ts": "./demo/libs/types/plugins/sections/SectionPlugin.d.ts",
"demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts": "./demo/libs/types/core/markup/CloudRectWithTextMarkup.d.ts",
"demo/libs/types/core/font/ShxFont.d.ts": "./demo/libs/types/core/font/ShxFont.d.ts",
"demo/libs/types/core/dxf-parser/index.d.ts": "./demo/libs/types/core/dxf-parser/index.d.ts",
"demo/libs/types/core/font/ShxFont.d.ts": "./demo/libs/types/core/font/ShxFont.d.ts",
"demo/libs/types/core/webcam/WebCam.d.ts": "./demo/libs/types/core/webcam/WebCam.d.ts",
"demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts": "./demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts",
"demo/libs/types/core/utils/CoordinateConversionUtils.d.ts": "./demo/libs/types/core/utils/CoordinateConversionUtils.d.ts",
"demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts": "./demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts",
"demo/libs/types/core/helpers/BoxSelectHelper.d.ts": "./demo/libs/types/core/helpers/BoxSelectHelper.d.ts",
"demo/libs/types/plugins/sections/PickPlaneSection.d.ts": "./demo/libs/types/plugins/sections/PickPlaneSection.d.ts",
"demo/libs/types/core/markup/TextMarkup.d.ts": "./demo/libs/types/core/markup/TextMarkup.d.ts",
"demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts": "./demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts",
"demo/libs/types/core/helpers/BoxSelectHelper.d.ts": "./demo/libs/types/core/helpers/BoxSelectHelper.d.ts",
"demo/libs/types/plugins/sections/AxisPlaneSection.d.ts": "./demo/libs/types/plugins/sections/AxisPlaneSection.d.ts",
"demo/libs/types/core/dxf-parser/ParseHelpers.d.ts": "./demo/libs/types/core/dxf-parser/ParseHelpers.d.ts",
"demo/libs/types/plugins/sections/ViewportSection.d.ts": "./demo/libs/types/plugins/sections/ViewportSection.d.ts",
"demo/libs/types/core/markup/TextMarkup.d.ts": "./demo/libs/types/core/markup/TextMarkup.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",
"demo/libs/types/plugins/explode/ExplodePlugin.d.ts": "./demo/libs/types/plugins/explode/ExplodePlugin.d.ts",
"demo/libs/types/plugins/overview-map/TextDrawable.d.ts": "./demo/libs/types/plugins/overview-map/TextDrawable.d.ts",
"demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts": "./demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts",
"demo/libs/types/core/utils/MaterialUtils.d.ts": "./demo/libs/types/core/utils/MaterialUtils.d.ts",
"demo/libs/types/plugins/overview-map/TextDrawable.d.ts": "./demo/libs/types/plugins/overview-map/TextDrawable.d.ts",
"demo/libs/types/core/vr/BaseVRMesh.d.ts": "./demo/libs/types/core/vr/BaseVRMesh.d.ts",
"demo/libs/types/plugins/explode/ExplodePlugin.d.ts": "./demo/libs/types/plugins/explode/ExplodePlugin.d.ts",
"demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts": "./demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts",
"demo/libs/types/export.doc.d.ts": "./demo/libs/types/export.doc.d.ts",
"demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts": "./demo/libs/types/plugins/ground-shaow/GroundShadowPlugin.d.ts",
"demo/libs/types/core/dxf-parser/entities/viewport.d.ts": "./demo/libs/types/core/dxf-parser/entities/viewport.d.ts",
"demo/libs/types/plugins/explode/ObjectExploder.d.ts": "./demo/libs/types/plugins/explode/ObjectExploder.d.ts",
"demo/libs/types/core/TextTexture/TextTexture.d.ts": "./demo/libs/types/core/TextTexture/TextTexture.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/axis-gizmo/AxisGizmoPlugin.d.ts": "./demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts",
"demo/libs/types/core/geometry-offset/Offset.d.ts": "./demo/libs/types/core/geometry-offset/Offset.d.ts",
"demo/libs/types/export.doc.d.ts": "./demo/libs/types/export.doc.d.ts",
"demo/libs/types/plugins/sections/AxisPlaneSection.d.ts": "./demo/libs/types/plugins/sections/AxisPlaneSection.d.ts",
"demo/libs/types/core/vr/VRCube24Faces.d.ts": "./demo/libs/types/core/vr/VRCube24Faces.d.ts",
"demo/libs/types/plugins/sections/SectionGizmo.d.ts": "./demo/libs/types/plugins/sections/SectionGizmo.d.ts",
"demo/libs/types/plugins/overview-map/ImageDrawable.d.ts": "./demo/libs/types/plugins/overview-map/ImageDrawable.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",
"demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts": "./demo/libs/types/plugins/sections/ObjectsBoxSection.d.ts",
"demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts": "./demo/libs/types/plugins/nav-cube/NavCubePlugin.d.ts",
"demo/libs/types/plugins/overview-map/ImageDrawable.d.ts": "./demo/libs/types/plugins/overview-map/ImageDrawable.d.ts",
"demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts": "./demo/libs/types/plugins/ground-grass/GroundGrassPlugin.d.ts",
"demo/libs/types/core/font/BaseFont.d.ts": "./demo/libs/types/core/font/BaseFont.d.ts",
"demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts": "./demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts",
"demo/libs/types/core/font/BaseFont.d.ts": "./demo/libs/types/core/font/BaseFont.d.ts",
"demo/libs/types/core/helpers/ControlsHelper.d.ts": "./demo/libs/types/core/helpers/ControlsHelper.d.ts",
"demo/libs/types/core/camera-controls/EventDispatcher.d.ts": "./demo/libs/types/core/camera-controls/EventDispatcher.d.ts",
"demo/libs/types/plugins/measure/AreaMeasurement.d.ts": "./demo/libs/types/plugins/measure/AreaMeasurement.d.ts",
"demo/libs/types/core/font/shx/util/BitConverter.d.ts": "./demo/libs/types/core/font/shx/util/BitConverter.d.ts",
"demo/libs/types/core/markup/BaseMarkup.d.ts": "./demo/libs/types/core/markup/BaseMarkup.d.ts",
"demo/libs/types/plugins/sections/BaseBoxSection.d.ts": "./demo/libs/types/plugins/sections/BaseBoxSection.d.ts",
"demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts",
"demo/libs/types/core/indexeddb/BaseTable.d.ts": "./demo/libs/types/core/indexeddb/BaseTable.d.ts",
"demo/libs/types/core/dxf/dxfom-mtext.d.ts": "./demo/libs/types/core/dxf/dxfom-mtext.d.ts",
"demo/libs/types/core/controls/CameraControlsEx.d.ts": "./demo/libs/types/core/controls/CameraControlsEx.d.ts",
"demo/libs/types/core/utils/SceneUtils.d.ts": "./demo/libs/types/core/utils/SceneUtils.d.ts",
"demo/libs/types/core/dxf/DxfObject.d.ts": "./demo/libs/types/core/dxf/DxfObject.d.ts",
"demo/libs/types/core/dxf/dxfom-mtext.d.ts": "./demo/libs/types/core/dxf/dxfom-mtext.d.ts",
"demo/libs/types/plugins/measure/DistanceMeasurement.d.ts": "./demo/libs/types/plugins/measure/DistanceMeasurement.d.ts",
"demo/libs/types/core/dxf/DxfObject.d.ts": "./demo/libs/types/core/dxf/DxfObject.d.ts",
"demo/libs/types/core/dxf-parser/DxfTextReader.d.ts": "./demo/libs/types/core/dxf-parser/DxfTextReader.d.ts",
"demo/libs/types/core/canvas/DrawableList.d.ts": "./demo/libs/types/core/canvas/DrawableList.d.ts",
"demo/libs/types/core/dxf-parser/entities/image.d.ts": "./demo/libs/types/core/dxf-parser/entities/image.d.ts",
"demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalModelUploader.d.ts",
"demo/libs/types/components/progress-bar/ProgressBar.d.ts": "./demo/libs/types/components/progress-bar/ProgressBar.d.ts",
"demo/libs/types/core/markup/LeaderLineMarkup.d.ts": "./demo/libs/types/core/markup/LeaderLineMarkup.d.ts",
"demo/libs/types/components/progress-bar/ProgressBar.d.ts": "./demo/libs/types/components/progress-bar/ProgressBar.d.ts",
"demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts": "./demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts",
"demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/DxfViewerToolbarPlugin.d.ts",
"demo/libs/types/core/utils/Event.d.ts": "./demo/libs/types/core/utils/Event.d.ts",
"demo/libs/types/core/camera-controls/utils/math-utils.d.ts": "./demo/libs/types/core/camera-controls/utils/math-utils.d.ts",
"demo/libs/types/components/settings/ProjectSettingsDef.d.ts": "./demo/libs/types/components/settings/ProjectSettingsDef.d.ts",
"demo/libs/types/core/utils/Event.d.ts": "./demo/libs/types/core/utils/Event.d.ts",
"demo/libs/types/core/helpers/PickMarkupHelper.d.ts": "./demo/libs/types/core/helpers/PickMarkupHelper.d.ts",
"demo/libs/types/core/dxf-parser/objects/common.d.ts": "./demo/libs/types/core/dxf-parser/objects/common.d.ts",
"demo/libs/types/components/settings/ProjectSettingsDef.d.ts": "./demo/libs/types/components/settings/ProjectSettingsDef.d.ts",
"demo/libs/types/core/dxf-parser/entities/attdef.d.ts": "./demo/libs/types/core/dxf-parser/entities/attdef.d.ts",
"demo/libs/types/core/dxf-parser/entities/attrib.d.ts": "./demo/libs/types/core/dxf-parser/entities/attrib.d.ts",
"demo/libs/types/core/dxf-parser/objects/common.d.ts": "./demo/libs/types/core/dxf-parser/objects/common.d.ts",
"demo/libs/types/core/indexeddb/FontDataTable.d.ts": "./demo/libs/types/core/indexeddb/FontDataTable.d.ts",
"demo/libs/types/core/viewers/Plugin.d.ts": "./demo/libs/types/core/viewers/Plugin.d.ts",
"demo/libs/types/plugins/context-menu/Constants.d.ts": "./demo/libs/types/plugins/context-menu/Constants.d.ts",
"demo/libs/types/plugins/sections/SectionPlaneMesh.d.ts": "./demo/libs/types/plugins/sections/SectionPlaneMesh.d.ts",
"demo/libs/types/core/shp-js/ShpThree.d.ts": "./demo/libs/types/core/shp-js/ShpThree.d.ts",
"demo/libs/types/plugins/context-menu/Constants.d.ts": "./demo/libs/types/plugins/context-menu/Constants.d.ts",
"demo/libs/types/core/utils/index.d.ts": "./demo/libs/types/core/utils/index.d.ts",
"demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts",
"demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts",
"demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts": "./demo/libs/types/core/dxf-parser/objects/spatialfilter.d.ts",
"demo/libs/types/plugins/sections/SectionPlane.d.ts": "./demo/libs/types/plugins/sections/SectionPlane.d.ts",
"demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenuPlugin.d.ts",
"demo/libs/types/core/viewers/Plugin.d.ts": "./demo/libs/types/core/viewers/Plugin.d.ts",
"demo/libs/types/core/dxf-parser/objects/layout.d.ts": "./demo/libs/types/core/dxf-parser/objects/layout.d.ts",
"demo/libs/types/plugins/measure/AngleMeasurement.d.ts": "./demo/libs/types/plugins/measure/AngleMeasurement.d.ts",
"demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts": "./demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts",
"demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts": "./demo/libs/types/plugins/toolbars/BimViewerToolbarPlugin.d.ts",
"demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts": "./demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts",
"demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts": "./demo/libs/types/plugins/sections/GlobalPlaneSection.d.ts",
"demo/libs/types/core/canvas/Constants.d.ts": "./demo/libs/types/core/canvas/Constants.d.ts",
"demo/libs/types/core/utils/Viewer3DUtils.d.ts": "./demo/libs/types/core/utils/Viewer3DUtils.d.ts",
"demo/libs/types/core/font/shx/TextShape.d.ts": "./demo/libs/types/core/font/shx/TextShape.d.ts",
"demo/libs/types/core/indexeddb/IndexedDbManager.d.ts": "./demo/libs/types/core/indexeddb/IndexedDbManager.d.ts",
"demo/libs/types/core/utils/Viewer3DUtils.d.ts": "./demo/libs/types/core/utils/Viewer3DUtils.d.ts",
"demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts": "./demo/libs/types/plugins/overview-map/OverviewMapDrawable.d.ts",
"demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts": "./demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts",
"demo/libs/types/core/indexeddb/IndexedDbManager.d.ts": "./demo/libs/types/core/indexeddb/IndexedDbManager.d.ts",
"demo/libs/types/core/dxf-parser/entities/polyline.d.ts": "./demo/libs/types/core/dxf-parser/entities/polyline.d.ts",
"demo/libs/types/core/helpers/InstantiateHelper.d.ts": "./demo/libs/types/core/helpers/InstantiateHelper.d.ts",
"demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts": "./demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.d.ts",
"demo/libs/types/core/dxf-parser/objects/imagedef.d.ts": "./demo/libs/types/core/dxf-parser/objects/imagedef.d.ts",
"demo/libs/types/core/dxf-parser/entities/spline.d.ts": "./demo/libs/types/core/dxf-parser/entities/spline.d.ts",
"demo/libs/types/core/helpers/InstantiateHelper.d.ts": "./demo/libs/types/core/helpers/InstantiateHelper.d.ts",
"demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts",
"demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts": "./demo/libs/types/plugins/sections/ObjectsPlaneSection.d.ts",
"demo/libs/types/core/dxf-parser/entities/dimension.d.ts": "./demo/libs/types/core/dxf-parser/entities/dimension.d.ts",
"demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/AxisSectionPopPanel.d.ts",
"demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts",
"demo/libs/types/core/helpers/ZoomToRectHelper.d.ts": "./demo/libs/types/core/helpers/ZoomToRectHelper.d.ts",
"demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts",
"demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts": "./demo/libs/types/core/dxf-parser/entities/lwpolyline.d.ts",
"demo/libs/types/core/dxf-parser/entities/leader.d.ts": "./demo/libs/types/core/dxf-parser/entities/leader.d.ts",
"demo/libs/types/core/helpers/ZoomToRectHelper.d.ts": "./demo/libs/types/core/helpers/ZoomToRectHelper.d.ts",
"demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AngleMeasureDrawable.d.ts",
"demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/AreaMeasureDrawable.d.ts",
"demo/libs/types/core/helpers/BinaryReader.d.ts": "./demo/libs/types/core/helpers/BinaryReader.d.ts",
"demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts",
"demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts",
"demo/libs/types/plugins/overview-map/LineDrawable.d.ts": "./demo/libs/types/plugins/overview-map/LineDrawable.d.ts",
"demo/libs/types/core/utils/ColorUtils.d.ts": "./demo/libs/types/core/utils/ColorUtils.d.ts",
"demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts",
"demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts": "./demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts",
"demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/PickSectionPopPanel.d.ts",
"demo/libs/types/core/helpers/BinaryReader.d.ts": "./demo/libs/types/core/helpers/BinaryReader.d.ts",
"demo/libs/types/plugins/overview-map/LineDrawable.d.ts": "./demo/libs/types/plugins/overview-map/LineDrawable.d.ts",
"demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/DistanceMeasureDrawable.d.ts",
"index.html": "./index.html",
"demo/libs/types/core/utils/ColorUtils.d.ts": "./demo/libs/types/core/utils/ColorUtils.d.ts",
"demo/libs/types/core/dxf-parser/entities/vertex.d.ts": "./demo/libs/types/core/dxf-parser/entities/vertex.d.ts",
"demo/libs/types/core/font/shx/ShxParser.d.ts": "./demo/libs/types/core/font/shx/ShxParser.d.ts",
"demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalDxfUploader.d.ts",
"demo/libs/types/core/dxf/dxfom-text.d.ts": "./demo/libs/types/core/dxf/dxfom-text.d.ts",
"demo/libs/types/core/geometry-offset/Edge.d.ts": "./demo/libs/types/core/geometry-offset/Edge.d.ts",
"index.html": "./index.html",
"demo/libs/types/core/utils/EdgeUtils.d.ts": "./demo/libs/types/core/utils/EdgeUtils.d.ts",
"demo/libs/types/core/geometry-offset/Edge.d.ts": "./demo/libs/types/core/geometry-offset/Edge.d.ts",
"demo/libs/types/plugins/index.d.ts": "./demo/libs/types/plugins/index.d.ts",
"demo/libs/types/core/utils/SectionUtils.d.ts": "./demo/libs/types/core/utils/SectionUtils.d.ts",
"demo/libs/types/plugins/stats/StatsPlugin.d.ts": "./demo/libs/types/plugins/stats/StatsPlugin.d.ts",
"demo/libs/types/core/indexeddb/DxfDataTable.d.ts": "./demo/libs/types/core/indexeddb/DxfDataTable.d.ts",
"demo/libs/types/core/dxf-parser/entities/insert.d.ts": "./demo/libs/types/core/dxf-parser/entities/insert.d.ts",
"demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts": "./demo/libs/types/core/dxf-parser/entities/ole2frame.d.ts",
"demo/libs/types/core/utils/SectionUtils.d.ts": "./demo/libs/types/core/utils/SectionUtils.d.ts",
"demo/libs/types/core/indexeddb/DxfDataTable.d.ts": "./demo/libs/types/core/indexeddb/DxfDataTable.d.ts",
"demo/libs/types/components/tool-tip/Tooltip.d.ts": "./demo/libs/types/components/tool-tip/Tooltip.d.ts",
"demo/libs/types/core/dxf-parser/objects/dictionary.d.ts": "./demo/libs/types/core/dxf-parser/objects/dictionary.d.ts",
"demo/libs/types/core/index.d.ts": "./demo/libs/types/core/index.d.ts",
"demo/libs/types/core/utils/UnitConversionUtils.d.ts": "./demo/libs/types/core/utils/UnitConversionUtils.d.ts",
"demo/libs/types/core/helpers/RafHelper.d.ts": "./demo/libs/types/core/helpers/RafHelper.d.ts",
"demo/libs/types/core/font/MeshFont.d.ts": "./demo/libs/types/core/font/MeshFont.d.ts",
"demo/libs/types/core/compare/CompareDrawable.d.ts": "./demo/libs/types/core/compare/CompareDrawable.d.ts",
"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/dxf-parser/entities/mtext.d.ts": "./demo/libs/types/core/dxf-parser/entities/mtext.d.ts",
"demo/libs/types/core/undo-redo/UndoRedoManager.d.ts": "./demo/libs/types/core/undo-redo/UndoRedoManager.d.ts",
"demo/libs/types/core/markup/ArrowMarkup.d.ts": "./demo/libs/types/core/markup/ArrowMarkup.d.ts",
"demo/libs/types/core/utils/TextureUtils.d.ts": "./demo/libs/types/core/utils/TextureUtils.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/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/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",
"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/utils/SVGObjectUtils.d.ts": "./demo/libs/types/core/utils/SVGObjectUtils.d.ts",
"demo/libs/types/core/dxf-parser/entities/ellipse.d.ts": "./demo/libs/types/core/dxf-parser/entities/ellipse.d.ts",
"demo/libs/types/core/markup/Constants.d.ts": "./demo/libs/types/core/markup/Constants.d.ts",
"demo/libs/types/core/markup/CircleMarkup.d.ts": "./demo/libs/types/core/markup/CircleMarkup.d.ts",
"demo/libs/types/core/utils/DeviceUtils.d.ts": "./demo/libs/types/core/utils/DeviceUtils.d.ts",
"demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/CoordinateMeasureDrawable.d.ts",
"demo/libs/types/core/markup/CloudLineMarkup.d.ts": "./demo/libs/types/core/markup/CloudLineMarkup.d.ts",
"demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts": "./demo/libs/types/plugins/skybox/GradientColorSkybox.d.ts",
"demo/libs/types/core/markup/CloudLineMarkup.d.ts": "./demo/libs/types/core/markup/CloudLineMarkup.d.ts",
"demo/libs/types/core/markup/EllipseMarkup.d.ts": "./demo/libs/types/core/markup/EllipseMarkup.d.ts",
"demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts": "./demo/libs/types/core/dxf-parser/objects/sortentstable.d.ts",
"demo/libs/types/core/Units.d.ts": "./demo/libs/types/core/Units.d.ts",
"demo/libs/types/core/markup/PolylineMarkup.d.ts": "./demo/libs/types/core/markup/PolylineMarkup.d.ts",
"demo/libs/types/core/Units.d.ts": "./demo/libs/types/core/Units.d.ts",
"demo/libs/types/core/vr/VRCube.d.ts": "./demo/libs/types/core/vr/VRCube.d.ts",
"demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts": "./demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts",
"demo/libs/types/core/markup/CloudRectMarkup.d.ts": "./demo/libs/types/core/markup/CloudRectMarkup.d.ts",
"demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts": "./demo/libs/types/core/helpers/ObjectPixelSizeHelper.d.ts",
"demo/libs/types/core/dxf-parser/objects/xrecord.d.ts": "./demo/libs/types/core/dxf-parser/objects/xrecord.d.ts",
"demo/libs/types/core/utils/SimplifyUtils.d.ts": "./demo/libs/types/core/utils/SimplifyUtils.d.ts",
"demo/libs/types/core/dxf-parser/entities/circle.d.ts": "./demo/libs/types/core/dxf-parser/entities/circle.d.ts",
"demo/libs/types/core/dxf/LinePatternShaders.d.ts": "./demo/libs/types/core/dxf/LinePatternShaders.d.ts",
"demo/libs/types/core/utils/SimplifyUtils.d.ts": "./demo/libs/types/core/utils/SimplifyUtils.d.ts",
"demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts": "./demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts",
"demo/libs/types/core/helpers/index.d.ts": "./demo/libs/types/core/helpers/index.d.ts",
"demo/libs/types/core/markup/RectMarkup.d.ts": "./demo/libs/types/core/markup/RectMarkup.d.ts",
"demo/libs/types/core/helpers/index.d.ts": "./demo/libs/types/core/helpers/index.d.ts",
"demo/libs/types/core/markup/XMarkup.d.ts": "./demo/libs/types/core/markup/XMarkup.d.ts",
"demo/libs/types/core/markup/index.d.ts": "./demo/libs/types/core/markup/index.d.ts",
"demo/libs/types/core/indexeddb/AnnotationTable.d.ts": "./demo/libs/types/core/indexeddb/AnnotationTable.d.ts",
"demo/libs/types/core/dxf-parser/entities/3dface.d.ts": "./demo/libs/types/core/dxf-parser/entities/3dface.d.ts",
"demo/libs/types/components/pop-panel/PopPanel.d.ts": "./demo/libs/types/components/pop-panel/PopPanel.d.ts",
"demo/libs/types/core/indexeddb/ViewpointTable.d.ts": "./demo/libs/types/core/indexeddb/ViewpointTable.d.ts",
"demo/libs/types/core/dxf-parser/entities/3dface.d.ts": "./demo/libs/types/core/dxf-parser/entities/3dface.d.ts",
"demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts": "./demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts",
"demo/libs/types/core/dxf/HatchPatternShaders.d.ts": "./demo/libs/types/core/dxf/HatchPatternShaders.d.ts",
"demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts": "./demo/libs/types/core/undo-redo/UpdateMarkupCommand.d.ts",
"demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts": "./demo/libs/types/core/dxf-parser/AutoCadColorIndex.d.ts",
"demo/libs/types/plugins/sections/Section.constants.d.ts": "./demo/libs/types/plugins/sections/Section.constants.d.ts",
"demo/libs/types/core/dxf-parser/entities/point.d.ts": "./demo/libs/types/core/dxf-parser/entities/point.d.ts",
"demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outine_bc_vertex.glsl.d.ts",
"demo/libs/types/core/dxf-parser/entities/point.d.ts": "./demo/libs/types/core/dxf-parser/entities/point.d.ts",
"demo/libs/types/plugins/sections/Section.constants.d.ts": "./demo/libs/types/plugins/sections/Section.constants.d.ts",
"demo/libs/types/core/dxf-parser/entities/region.d.ts": "./demo/libs/types/core/dxf-parser/entities/region.d.ts",
"demo/libs/types/core/dxf-parser/entities/solid.d.ts": "./demo/libs/types/core/dxf-parser/entities/solid.d.ts",
"demo/libs/types/core/dxf-parser/entities/xline.d.ts": "./demo/libs/types/core/dxf-parser/entities/xline.d.ts",
"demo/libs/types/core/shp-js/SHPLoader.d.ts": "./demo/libs/types/core/shp-js/SHPLoader.d.ts",
"demo/libs/types/core/dxf-parser/entities/line.d.ts": "./demo/libs/types/core/dxf-parser/entities/line.d.ts",
"demo/libs/types/plugins/nav-cube/NavCube.d.ts": "./demo/libs/types/plugins/nav-cube/NavCube.d.ts",
"demo/libs/types/core/shp-js/SHPLoader.d.ts": "./demo/libs/types/core/shp-js/SHPLoader.d.ts",
"demo/libs/types/core/dxf/bspline.d.ts": "./demo/libs/types/core/dxf/bspline.d.ts",
"demo/libs/types/core/dxf-parser/entities/ray.d.ts": "./demo/libs/types/core/dxf-parser/entities/ray.d.ts",
"demo/libs/types/plugins/nav-cube/NavCube.d.ts": "./demo/libs/types/plugins/nav-cube/NavCube.d.ts",
"demo/libs/types/core/markup/DotMarkup.d.ts": "./demo/libs/types/core/markup/DotMarkup.d.ts",
"demo/libs/types/core/dxf-parser/entities/ray.d.ts": "./demo/libs/types/core/dxf-parser/entities/ray.d.ts",
"demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts": "./demo/libs/types/core/undo-redo/RemoveMarkupCommand.d.ts",
"demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts": "./demo/libs/types/core/undo-redo/AddMarkupCommand.d.ts",
"demo/libs/types/core/dxf/DxfConstants.d.ts": "./demo/libs/types/core/dxf/DxfConstants.d.ts",
"demo/libs/types/core/dxf/index.d.ts": "./demo/libs/types/core/dxf/index.d.ts",
"demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts": "./demo/libs/types/core/undo-redo/RemoveMeasurementCommand.d.ts",
"demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts",
"demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts": "./demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts",
"demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/LocalImageUploader.d.ts",
"demo/libs/types/core/vr/VRSphere.d.ts": "./demo/libs/types/core/vr/VRSphere.d.ts",
"demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts": "./demo/libs/types/core/dxf-parser/DxfBaseReader.d.ts",
"demo/libs/types/core/shp-js/BitView.d.ts": "./demo/libs/types/core/shp-js/BitView.d.ts",
"demo/libs/types/core/dxf-parser/entities/seqend.d.ts": "./demo/libs/types/core/dxf-parser/entities/seqend.d.ts",
"demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_fragment.glsl.d.ts",
"demo/libs/types/core/undo-redo/index.d.ts": "./demo/libs/types/core/undo-redo/index.d.ts",
"demo/libs/types/core/font/shx/gbk/index.d.ts": "./demo/libs/types/core/font/shx/gbk/index.d.ts",
"demo/libs/types/core/undo-redo/index.d.ts": "./demo/libs/types/core/undo-redo/index.d.ts",
"demo/libs/types/plugins/local-model-uploader/IUploader.d.ts": "./demo/libs/types/plugins/local-model-uploader/IUploader.d.ts",
"demo/libs/types/core/utils/PolygonUtils.d.ts": "./demo/libs/types/core/utils/PolygonUtils.d.ts",
"demo/libs/types/index.d.ts": "./demo/libs/types/index.d.ts",
"demo/libs/types/plugins/toolbars/Toolbar.config.d.ts": "./demo/libs/types/plugins/toolbars/Toolbar.config.d.ts",
"demo/libs/types/core/utils/LogUtils.d.ts": "./demo/libs/types/core/utils/LogUtils.d.ts",
"demo/libs/types/plugins/toolbars/index.d.ts": "./demo/libs/types/plugins/toolbars/index.d.ts",
"demo/libs/types/core/utils/FpsUtils.d.ts": "./demo/libs/types/core/utils/FpsUtils.d.ts",
"demo/libs/types/core/shp-js/Shp.d.ts": "./demo/libs/types/core/shp-js/Shp.d.ts",
"demo/libs/types/core/font/shx/Shx.constants.d.ts": "./demo/libs/types/core/font/shx/Shx.constants.d.ts",
"demo/libs/types/plugins/toolbars/index.d.ts": "./demo/libs/types/plugins/toolbars/index.d.ts",
"demo/libs/types/core/viewers/index.d.ts": "./demo/libs/types/core/viewers/index.d.ts",
"demo/libs/types/core/font/shx/Shx.constants.d.ts": "./demo/libs/types/core/font/shx/Shx.constants.d.ts",
"demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts": "./demo/libs/types/core/camera-controls/utils/notSupportedInOrthographicCamera.d.ts",
"demo/libs/types/core/indexeddb/index.d.ts": "./demo/libs/types/core/indexeddb/index.d.ts",
"demo/libs/types/core/utils/CancelablePromise.d.ts": "./demo/libs/types/core/utils/CancelablePromise.d.ts",
"demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts": "./demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts",
"demo/libs/types/core/utils/CancelablePromise.d.ts": "./demo/libs/types/core/utils/CancelablePromise.d.ts",
"demo/libs/types/core/VersionManager.d.ts": "./demo/libs/types/core/VersionManager.d.ts",
"demo/libs/types/plugins/overview-map/index.d.ts": "./demo/libs/types/plugins/overview-map/index.d.ts",
"demo/libs/types/plugins/sections/index.d.ts": "./demo/libs/types/plugins/sections/index.d.ts",
@ -270,15 +270,15 @@
"demo/libs/types/plugins/local-model-uploader/index.d.ts": "./demo/libs/types/plugins/local-model-uploader/index.d.ts",
"demo/libs/types/plugins/measure/index.d.ts": "./demo/libs/types/plugins/measure/index.d.ts",
"demo/libs/types/core/shp-js/index.d.ts": "./demo/libs/types/core/shp-js/index.d.ts",
"demo/libs/types/components/pop-panel/index.d.ts": "./demo/libs/types/components/pop-panel/index.d.ts",
"demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts",
"demo/libs/types/components/pop-panel/index.d.ts": "./demo/libs/types/components/pop-panel/index.d.ts",
"demo/libs/types/plugins/context-menu/index.d.ts": "./demo/libs/types/plugins/context-menu/index.d.ts",
"demo/libs/types/core/dxf/round10.d.ts": "./demo/libs/types/core/dxf/round10.d.ts",
"demo/libs/types/core/camera-controls/index.d.ts": "./demo/libs/types/core/camera-controls/index.d.ts",
"demo/libs/types/core/patches/Constants.d.ts": "./demo/libs/types/core/patches/Constants.d.ts",
"demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts": "./demo/libs/types/core/font/shx/ExtraLettersTemplate.d.ts",
"demo/libs/types/core/camera-controls/constants.d.ts": "./demo/libs/types/core/camera-controls/constants.d.ts",
"demo/libs/types/core/input/index.d.ts": "./demo/libs/types/core/input/index.d.ts",
"demo/libs/types/core/camera-controls/constants.d.ts": "./demo/libs/types/core/camera-controls/constants.d.ts",
"demo/libs/types/core/controls/index.d.ts": "./demo/libs/types/core/controls/index.d.ts",
"demo/libs/types/plugins/pdf/index.d.ts": "./demo/libs/types/plugins/pdf/index.d.ts",
"demo/libs/types/core/patches/shaders/ShaderChunk.d.ts": "./demo/libs/types/core/patches/shaders/ShaderChunk.d.ts",
@ -312,12 +312,12 @@
"demo/libs/types/core/geometry-offset/index.d.ts": "./demo/libs/types/core/geometry-offset/index.d.ts",
"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.352fe986.css.map": "./static/css/main.352fe986.css.map",
"main.abd1e4ad.js.map": "./static/js/main.abd1e4ad.js.map",
"main.f052ad65.css.map": "./static/css/main.f052ad65.css.map",
"main.f2f06aa8.js.map": "./static/js/main.f2f06aa8.js.map",
"787.cf5efa72.chunk.js.map": "./static/js/787.cf5efa72.chunk.js.map"
},
"entrypoints": [
"static/css/main.352fe986.css",
"static/js/main.abd1e4ad.js"
"static/css/main.f052ad65.css",
"static/js/main.f2f06aa8.js"
]
}

File diff suppressed because one or more lines are too long

View File

@ -1,26 +1,26 @@
import type { DxfViewer } from "../../core/viewers";
export declare class DxfLayoutBar {
protected readonly viewer: DxfViewer;
private element?;
private content?;
private itemList;
constructor(viewer: DxfViewer);
init(): void;
private handleMouseWheel;
private createItem;
destroy(): void;
show(): void;
hide(): void;
}
export declare class ModelLayoutSwitchItem {
protected readonly viewer: DxfViewer;
private eventBus;
element: HTMLElement;
resetActivate?: () => void;
active: boolean;
constructor(viewer: DxfViewer, name: string);
private createItem;
setActive(active: boolean): void;
resetActive(): void;
destroy(): void;
}
import type { DxfViewer } from "../../core/viewers";
export declare class DxfLayoutBar {
protected readonly viewer: DxfViewer;
private element?;
private content?;
private itemList;
constructor(viewer: DxfViewer);
init(): void;
private handleMouseWheel;
private createItem;
destroy(): void;
show(): void;
hide(): void;
}
export declare class ModelLayoutSwitchItem {
protected readonly viewer: DxfViewer;
private eventBus;
element: HTMLElement;
resetActivate?: () => void;
active: boolean;
constructor(viewer: DxfViewer, name: string);
private createItem;
setActive(active: boolean): void;
resetActive(): void;
destroy(): void;
}

View File

@ -1 +1 @@
export * from "./DxfLayoutBar";
export * from "./DxfLayoutBar";

View File

@ -1,18 +1,18 @@
import { PopPanel } from "./PopPanel";
import type { BaseViewer } from "../../core/viewers/BaseViewer";
import { AxisPlaneSection } from "../../plugins/sections/AxisPlaneSection";
export declare class AxisSectionPopPanel extends PopPanel {
protected axis: string;
protected activeItem?: string;
protected groupSelectNode?: HTMLElement;
protected activeSelectNode?: HTMLElement;
protected isVisible: boolean;
protected section: AxisPlaneSection;
constructor(viewer: BaseViewer);
keydown: (e: KeyboardEvent) => void;
destroy(): void;
createGroupSelectLayout(): void;
addGroupSelectItems(): void;
createActiveSelectLayout(): void;
addActiveItems(): void;
}
import { PopPanel } from "./PopPanel";
import type { BaseViewer } from "../../core/viewers/BaseViewer";
import { AxisPlaneSection } from "../../plugins/sections/AxisPlaneSection";
export declare class AxisSectionPopPanel extends PopPanel {
protected axis: string;
protected activeItem?: string;
protected groupSelectNode?: HTMLElement;
protected activeSelectNode?: HTMLElement;
protected isVisible: boolean;
protected section: AxisPlaneSection;
constructor(viewer: BaseViewer);
keydown: (e: KeyboardEvent) => void;
destroy(): void;
createGroupSelectLayout(): void;
addGroupSelectItems(): void;
createActiveSelectLayout(): void;
addActiveItems(): void;
}

View File

@ -1,18 +1,18 @@
import { PopPanel } from "./PopPanel";
import type { BaseViewer } from "../../core/viewers/BaseViewer";
import type { PickPlaneSection } from "../../plugins/sections/PickPlaneSection";
export declare class PickSectionPopPanel extends PopPanel {
protected activeSelectNode?: Element;
protected isVisible: boolean;
protected enabled: boolean;
protected visibleNode?: HTMLElement;
protected resetNode?: HTMLElement;
protected section: PickPlaneSection;
constructor(viewer: BaseViewer);
keydown: (e: KeyboardEvent) => void;
destroy(): void;
createActiveSelectLayout(): void;
addActiveItems(): void;
enable(): void;
disable(): void;
}
import { PopPanel } from "./PopPanel";
import type { BaseViewer } from "../../core/viewers/BaseViewer";
import type { PickPlaneSection } from "../../plugins/sections/PickPlaneSection";
export declare class PickSectionPopPanel extends PopPanel {
protected activeSelectNode?: Element;
protected isVisible: boolean;
protected enabled: boolean;
protected visibleNode?: HTMLElement;
protected resetNode?: HTMLElement;
protected section: PickPlaneSection;
constructor(viewer: BaseViewer);
keydown: (e: KeyboardEvent) => void;
destroy(): void;
createActiveSelectLayout(): void;
addActiveItems(): void;
enable(): void;
disable(): void;
}

View File

@ -1,14 +1,14 @@
export declare class PopPanel {
private readonly container;
private element;
header: HTMLElement;
body: HTMLElement;
private isFollowing;
private diffX;
private diffY;
constructor(id: string, content: string | HTMLElement, container?: HTMLElement);
start: (event: MouseEvent) => void;
stop: () => void;
follow: (event: MouseEvent) => void;
destroy(): void;
}
export declare class PopPanel {
private readonly container;
private element;
header: HTMLElement;
body: HTMLElement;
private isFollowing;
private diffX;
private diffY;
constructor(id: string, content: string | HTMLElement, container?: HTMLElement);
start: (event: MouseEvent) => void;
stop: () => void;
follow: (event: MouseEvent) => void;
destroy(): void;
}

View File

@ -1,3 +1,3 @@
export * from "./PopPanel";
export * from "./AxisSectionPopPanel";
export * from "./PickSectionPopPanel";
export * from "./PopPanel";
export * from "./AxisSectionPopPanel";
export * from "./PickSectionPopPanel";

View File

@ -1,34 +1,34 @@
export interface ProgressItem {
id: string;
div: HTMLDivElement;
}
export declare class ProgressBar {
private element;
private progresseItems;
constructor(parentElement: HTMLElement);
setVisibility(visible: boolean): void;
/**
* Adds a progress item
* @param progressItemId
* @param message Initial message
* @param progress number between 0-100
*/
addProgressItem(progressItemId: string, message?: string): void;
/**
* Updates a progress item
* @param progressItemId
* @param message
* @param progress number between 0-100
*/
updateProgress(progressItemId: string, message?: string, progress?: number): void;
/**
* Removes a progress item
* @param progressItemId
*/
removeProgressItem(progressItemId: string): void;
/**
* Removes a progress item after some time
* @param progressItemId
*/
delayRemoveProgressItem(progressItemId: string, delayInMs?: number): void;
}
export interface ProgressItem {
id: string;
div: HTMLDivElement;
}
export declare class ProgressBar {
private element;
private progresseItems;
constructor(parentElement: HTMLElement);
setVisibility(visible: boolean): void;
/**
* Adds a progress item
* @param progressItemId
* @param message Initial message
* @param progress number between 0-100
*/
addProgressItem(progressItemId: string, message?: string): void;
/**
* Updates a progress item
* @param progressItemId
* @param message
* @param progress number between 0-100
*/
updateProgress(progressItemId: string, message?: string, progress?: number): void;
/**
* Removes a progress item
* @param progressItemId
*/
removeProgressItem(progressItemId: string): void;
/**
* Removes a progress item after some time
* @param progressItemId
*/
delayRemoveProgressItem(progressItemId: string, delayInMs?: number): void;
}

View File

@ -1 +1 @@
export * from "./ProgressBar";
export * from "./ProgressBar";

View File

@ -1,44 +1,44 @@
/**
* Perspective and Orthographic camera share the same settings
* @internal
*/
export interface CameraSettings {
near: number;
far: number;
}
/**
* @internal
*/
export interface MouseSetting {
sensitivity: number;
}
/**
* @internal
*/
export interface KeyboardSetting {
sensitivity: number;
}
/**
* @internal
*/
export interface Settings {
unit: string;
decimalPrecision: number;
camera: CameraSettings;
mouse: MouseSetting;
keyboard: KeyboardSetting;
}
/**
* @internal
*/
export declare const defaultSettings: Settings;
export declare const cameraNearRange: number[];
export declare const cameraFarRange: number[];
export declare const unitRange: {
[key: string]: string;
};
export declare const sensitivityRange: number[];
export declare const decimalPrecisionRange: {
[key: string]: number;
};
export declare const settingStoreKeyName = "THREE_RENDER_SETTING";
/**
* Perspective and Orthographic camera share the same settings
* @internal
*/
export interface CameraSettings {
near: number;
far: number;
}
/**
* @internal
*/
export interface MouseSetting {
sensitivity: number;
}
/**
* @internal
*/
export interface KeyboardSetting {
sensitivity: number;
}
/**
* @internal
*/
export interface Settings {
unit: string;
decimalPrecision: number;
camera: CameraSettings;
mouse: MouseSetting;
keyboard: KeyboardSetting;
}
/**
* @internal
*/
export declare const defaultSettings: Settings;
export declare const cameraNearRange: number[];
export declare const cameraFarRange: number[];
export declare const unitRange: {
[key: string]: string;
};
export declare const sensitivityRange: number[];
export declare const decimalPrecisionRange: {
[key: string]: number;
};
export declare const settingStoreKeyName = "THREE_RENDER_SETTING";

View File

@ -1 +1 @@
export * from "./ProjectSettingsDef";
export * from "./ProjectSettingsDef";

View File

@ -1,20 +1,20 @@
interface TooltipConfig {
showOnCreate?: boolean;
followPointer?: boolean;
parentNode?: HTMLElement;
target?: HTMLElement;
}
export declare class Tooltip {
private node;
private parentNode;
private target;
private childNode;
constructor(id: string, content?: string | HTMLElement | null, cfg?: TooltipConfig);
setContent(content: string | HTMLElement): void;
updateChildContent(content: string | HTMLElement): void;
follow: (event: MouseEvent) => void;
show: () => false | void;
hide: () => false | void;
destroy: () => void;
}
export {};
interface TooltipConfig {
showOnCreate?: boolean;
followPointer?: boolean;
parentNode?: HTMLElement;
target?: HTMLElement;
}
export declare class Tooltip {
private node;
private parentNode;
private target;
private childNode;
constructor(id: string, content?: string | HTMLElement | null, cfg?: TooltipConfig);
setContent(content: string | HTMLElement): void;
updateChildContent(content: string | HTMLElement): void;
follow: (event: MouseEvent) => void;
show: () => false | void;
hide: () => false | void;
destroy: () => void;
}
export {};

View File

@ -1 +1 @@
export * from "./Tooltip";
export * from "./Tooltip";

View File

@ -1,367 +1,367 @@
/**
* Camera config
*/
export interface CameraConfig {
/**
* The camera location
*/
eye: number[];
/**
* The location that the camera looks to
*/
look: number[];
/**
* @internal
*/
up?: number[];
/**
* The camera's near clip plane
*/
near?: number;
/**
* The camera's far clip plane
*/
far?: number;
}
/**
* Model config
*/
export interface ModelConfig {
/**
* Unique id of the model
*/
modelId?: string;
/**
* Model name
*/
name?: string;
/**
* Source url of the model
*/
src: string;
/**
* Used to distinguish format, because it may be hard to know the format by src!
* @internal
*/
fileFormat?: string;
/**
* File encoding, can be used by dxf. Common encoding include "UTF-8", "gb2312", etc.
* @internal
*/
encoding?: string;
/**
* A float array of length 16, definds model's position, rotation and scale
*/
matrix?: number[];
/**
* If we want to merge meshes/lines/points with the same material
* @internal
* @default false
*/
merge?: boolean;
/**
* If we want to generate and show edges/outlines to the modle.
* It is useful for BimViewer.
* @internal
*/
edges?: boolean;
/**
* If this model is visible by default.
* @internal
*/
visible?: boolean;
}
/**
* Dxf model config
*/
export interface DxfModelConfig extends ModelConfig {
/**
* If to ignore anything of paper space.
* There are some scenarios to ignore paper space by default, includes:
* - Dxf overlay, aka, loading more than one dxf files into a viewer. We'll only load model space for the first file.
* - Dxf compare. Since we'll only compare model space, it won't load paper space at all.
*
* This option is useful when user want to explicitly ignore paper space.
* @default false
*/
ignorePaperSpace?: boolean;
/**
* Applies this color to everything in this model.
* This allows user to show a drawing with a pure color (black, white, etc.).
* Color value is between 0 and 1, e.g., [1, 0, 0] means 'red'.
*/
overrideColor?: number[];
}
/**
* Loaded 3d model info for BimViewer.
*/
export interface Model3d {
/**
* modelId that is unique for loaded models
*/
modelId: string;
/**
* Three.js object.
*/
object: THREE.Object3D;
/**
* Bounding box of the model.
*/
bbox?: THREE.Box3;
/**
* Edge objects of the model.
*/
edges?: THREE.LineSegments[];
/**
* TilesRenderer for 3dTiles
* @internal
*/
tilesRenderer?: any;
}
/**
* Common viewer config
*/
export interface BaseViewerConfig {
/**
* @description canvas id to contain the viewer.
*/
containerId: string;
/**
* @internal
*/
language?: "cn" | "en";
/**
* @internal
*/
logLevel?: "debug" | "info" | "warn" | "error" | "silent";
/**
* @internal
*/
enableSpinner?: boolean;
/**
* @internal
*/
enableProgressBar?: boolean;
/**
* @description just for react native
* @internal
*/
context?: WebGLRenderingContext | WebGL2RenderingContext;
/**
* @description just for react native
* @internal
*/
context2d?: CanvasRenderingContext2D;
}
/**
* This wrappers most config for BimViewer
*/
export interface BimViewerConfig extends BaseViewerConfig {
/**
* Shows the NavCube.
* @internal
* @deprecated use NavCubePlugin instead
*/
enableNavCube?: boolean;
/**
* Shows the AxisGizmo.
* @internal
* @deprecated use AxisGizmoPlugin instead
*/
enableAxisGizmo?: boolean;
/**
* Shows the stats output.
* @internal
* @deprecated use StatsPlugin instead
*/
enableStats?: boolean;
/**
* Enables toolbar.
* The default toolbar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc.
* @deprecated Use ToolbarPlugin instead
*/
enableToolbar?: boolean;
/**
* shows the bottom-bar.
* @internal
* @deprecated use BottomBarPlugin instead
*/
enableBottomBar?: boolean;
/**
* Shows the context-menu.
* @deprecated Use ContextMenuPlugin instead.
*/
enableContextMenu?: boolean;
/**
* If user can select an entity by mouse click
* @internal
* @default true
*/
enableSelection?: boolean;
/**
* Default is `meters`
* @internal
*/
units?: string;
/**
* Sets the default locale
* @internal
*/
locale?: "cn" | "en";
}
/**
* This wrappers most config for DxfViewer
*/
export interface DxfViewerConfig extends BaseViewerConfig {
/**
* @internal
* @deprecated use AxisGizmoPlugin instead
*/
enableAxisGizmo?: boolean;
/**
* Enables layout bar so we can switch to other layouts.
* The default layout bar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own layout bar with customized style, location, etc.
*/
enableLayoutBar?: boolean;
/**
* @internal
* @deprecated use NavCubePlugin instead
*/
enableStats?: boolean;
/**
* Enables toolbar.
* The default toolbar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc.
* @deprecated Use ToolbarPlugin instead
*/
enableToolbar?: boolean;
/**
* @internal
* @deprecated use BottomBarPlugin instead
*/
enableBottomBar?: boolean;
/**
* If to cache model into indexeddb (or maybe local storage in future).
* If enabled, it will get model data from cache the next time model is loaded.
* @internal
* @default true
*/
enableLocalCache?: boolean;
/**
* If user can select an entity by mouse click
* @internal
* @default false
*/
enableSelection?: boolean;
}
/**
* Dxf compare config.
*/
export interface DxfCompareConfig {
/**
* Enables to compare properties (color, linetype, line width, etc.)
*/
enableDetailComparision: boolean;
}
/**
* This wrappers most config for VRViewer
*/
export interface VRViewerConfig extends BaseViewerConfig {
autoRotateSpeed?: number;
/**
* Enables toolbar.
* The default toolbar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc.
* @deprecated Use ToolbarPlugin instead
*/
enableToolbar?: boolean;
}
/**
* VR Viewpoint's hotpoint, which can be a user defined html element.
* A hotpoint can be clicked, then caller can do their own operation,
* e.g. open a description panel, jump to another viewpoint, etc.
*/
export interface Hotpoint {
hotpointId: string;
anchorPosition: number[];
visible?: boolean;
html: string;
}
/**
* A VRViewpointPlan contains 1 or more panor
* A viewpoint may contain more than one plans
*/
export interface Panorama {
id: string;
/**
* 1, 6 or 24 image urls in order of right, left, up, down, front, back.
* When there is 1 image, caller should also put it into array!
*/
images: string[];
/**
* 6 image urls in order of right, left, up, down, front, back
*/
thumbnails?: string[];
}
export interface VRViewpoint {
/**
* @deprecated moved to VRViewpointPlan
*/
imageOrImages?: string | string[];
/**
* @deprecated moved to VRViewpointPlan
*/
thumbnailImages?: string[];
panoramas: Panorama[];
id: string;
name?: string;
position?: number[];
initialDirection?: number[];
hotpoints?: Hotpoint[];
}
/**
* A default BimViewerConfig as a template, which enables most plugins.
* @internal
*/
export declare const DEFAULT_BIM_VIEWER_CONFIG: BimViewerConfig;
/**
* @internal
*/
export interface IsolateObjectsParam {
id: string;
modelId: string;
}
/**
* @internal
*/
export interface IsolateObjectsParams {
familyInstanceIds: IsolateObjectsParam[];
}
/**
* @internal
*/
export interface ScreenshotConfig {
type: string;
quality: number;
includeOverlay: boolean;
}
/**
* Icon class.
* Used by toolbar and bottom bar icons, etc.
*/
export interface IconClass {
/**
* The default icon.
*/
default: string;
/**
* The icon when item is actived.
*/
active?: string;
/**
* The icon font class name.
*/
iconFont?: string;
}
/**
* Camera config
*/
export interface CameraConfig {
/**
* The camera location
*/
eye: number[];
/**
* The location that the camera looks to
*/
look: number[];
/**
* @internal
*/
up?: number[];
/**
* The camera's near clip plane
*/
near?: number;
/**
* The camera's far clip plane
*/
far?: number;
}
/**
* Model config
*/
export interface ModelConfig {
/**
* Unique id of the model
*/
modelId?: string;
/**
* Model name
*/
name?: string;
/**
* Source url of the model
*/
src: string;
/**
* Used to distinguish format, because it may be hard to know the format by src!
* @internal
*/
fileFormat?: string;
/**
* File encoding, can be used by dxf. Common encoding include "UTF-8", "gb2312", etc.
* @internal
*/
encoding?: string;
/**
* A float array of length 16, definds model's position, rotation and scale
*/
matrix?: number[];
/**
* If we want to merge meshes/lines/points with the same material
* @internal
* @default false
*/
merge?: boolean;
/**
* If we want to generate and show edges/outlines to the modle.
* It is useful for BimViewer.
* @internal
*/
edges?: boolean;
/**
* If this model is visible by default.
* @internal
*/
visible?: boolean;
}
/**
* Dxf model config
*/
export interface DxfModelConfig extends ModelConfig {
/**
* If to ignore anything of paper space.
* There are some scenarios to ignore paper space by default, includes:
* - Dxf overlay, aka, loading more than one dxf files into a viewer. We'll only load model space for the first file.
* - Dxf compare. Since we'll only compare model space, it won't load paper space at all.
*
* This option is useful when user want to explicitly ignore paper space.
* @default false
*/
ignorePaperSpace?: boolean;
/**
* Applies this color to everything in this model.
* This allows user to show a drawing with a pure color (black, white, etc.).
* Color value is between 0 and 1, e.g., [1, 0, 0] means 'red'.
*/
overrideColor?: number[];
}
/**
* Loaded 3d model info for BimViewer.
*/
export interface Model3d {
/**
* modelId that is unique for loaded models
*/
modelId: string;
/**
* Three.js object.
*/
object: THREE.Object3D;
/**
* Bounding box of the model.
*/
bbox?: THREE.Box3;
/**
* Edge objects of the model.
*/
edges?: THREE.LineSegments[];
/**
* TilesRenderer for 3dTiles
* @internal
*/
tilesRenderer?: any;
}
/**
* Common viewer config
*/
export interface BaseViewerConfig {
/**
* @description canvas id to contain the viewer.
*/
containerId: string;
/**
* @internal
*/
language?: "cn" | "en";
/**
* @internal
*/
logLevel?: "debug" | "info" | "warn" | "error" | "silent";
/**
* @internal
*/
enableSpinner?: boolean;
/**
* @internal
*/
enableProgressBar?: boolean;
/**
* @description just for react native
* @internal
*/
context?: WebGLRenderingContext | WebGL2RenderingContext;
/**
* @description just for react native
* @internal
*/
context2d?: CanvasRenderingContext2D;
}
/**
* This wrappers most config for BimViewer
*/
export interface BimViewerConfig extends BaseViewerConfig {
/**
* Shows the NavCube.
* @internal
* @deprecated use NavCubePlugin instead
*/
enableNavCube?: boolean;
/**
* Shows the AxisGizmo.
* @internal
* @deprecated use AxisGizmoPlugin instead
*/
enableAxisGizmo?: boolean;
/**
* Shows the stats output.
* @internal
* @deprecated use StatsPlugin instead
*/
enableStats?: boolean;
/**
* Enables toolbar.
* The default toolbar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc.
* @deprecated Use ToolbarPlugin instead
*/
enableToolbar?: boolean;
/**
* shows the bottom-bar.
* @internal
* @deprecated use BottomBarPlugin instead
*/
enableBottomBar?: boolean;
/**
* Shows the context-menu.
* @deprecated Use ContextMenuPlugin instead.
*/
enableContextMenu?: boolean;
/**
* If user can select an entity by mouse click
* @internal
* @default true
*/
enableSelection?: boolean;
/**
* Default is `meters`
* @internal
*/
units?: string;
/**
* Sets the default locale
* @internal
*/
locale?: "cn" | "en";
}
/**
* This wrappers most config for DxfViewer
*/
export interface DxfViewerConfig extends BaseViewerConfig {
/**
* @internal
* @deprecated use AxisGizmoPlugin instead
*/
enableAxisGizmo?: boolean;
/**
* Enables layout bar so we can switch to other layouts.
* The default layout bar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own layout bar with customized style, location, etc.
*/
enableLayoutBar?: boolean;
/**
* @internal
* @deprecated use NavCubePlugin instead
*/
enableStats?: boolean;
/**
* Enables toolbar.
* The default toolbar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc.
* @deprecated Use ToolbarPlugin instead
*/
enableToolbar?: boolean;
/**
* @internal
* @deprecated use BottomBarPlugin instead
*/
enableBottomBar?: boolean;
/**
* If to cache model into indexeddb (or maybe local storage in future).
* If enabled, it will get model data from cache the next time model is loaded.
* @internal
* @default true
*/
enableLocalCache?: boolean;
/**
* If user can select an entity by mouse click
* @internal
* @default false
*/
enableSelection?: boolean;
}
/**
* Dxf compare config.
*/
export interface DxfCompareConfig {
/**
* Enables to compare properties (color, linetype, line width, etc.)
*/
enableDetailComparision: boolean;
}
/**
* This wrappers most config for VRViewer
*/
export interface VRViewerConfig extends BaseViewerConfig {
autoRotateSpeed?: number;
/**
* Enables toolbar.
* The default toolbar is an example UI of the viewer, since plenty of APIs are exposed,
* you are recommended to create your own toolbar with customized style, icon, order, new buttons, etc.
* @deprecated Use ToolbarPlugin instead
*/
enableToolbar?: boolean;
}
/**
* VR Viewpoint's hotpoint, which can be a user defined html element.
* A hotpoint can be clicked, then caller can do their own operation,
* e.g. open a description panel, jump to another viewpoint, etc.
*/
export interface Hotpoint {
hotpointId: string;
anchorPosition: number[];
visible?: boolean;
html: string;
}
/**
* A VRViewpointPlan contains 1 or more panor
* A viewpoint may contain more than one plans
*/
export interface Panorama {
id: string;
/**
* 1, 6 or 24 image urls in order of right, left, up, down, front, back.
* When there is 1 image, caller should also put it into array!
*/
images: string[];
/**
* 6 image urls in order of right, left, up, down, front, back
*/
thumbnails?: string[];
}
export interface VRViewpoint {
/**
* @deprecated moved to VRViewpointPlan
*/
imageOrImages?: string | string[];
/**
* @deprecated moved to VRViewpointPlan
*/
thumbnailImages?: string[];
panoramas: Panorama[];
id: string;
name?: string;
position?: number[];
initialDirection?: number[];
hotpoints?: Hotpoint[];
}
/**
* A default BimViewerConfig as a template, which enables most plugins.
* @internal
*/
export declare const DEFAULT_BIM_VIEWER_CONFIG: BimViewerConfig;
/**
* @internal
*/
export interface IsolateObjectsParam {
id: string;
modelId: string;
}
/**
* @internal
*/
export interface IsolateObjectsParams {
familyInstanceIds: IsolateObjectsParam[];
}
/**
* @internal
*/
export interface ScreenshotConfig {
type: string;
quality: number;
includeOverlay: boolean;
}
/**
* Icon class.
* Used by toolbar and bottom bar icons, etc.
*/
export interface IconClass {
/**
* The default icon.
*/
default: string;
/**
* The icon when item is actived.
*/
active?: string;
/**
* The icon font class name.
*/
iconFont?: string;
}

View File

@ -1,164 +1,164 @@
/**
* To improve performance, we can set object.matrixAutoUpdate = false for static or rarely moving objects and
* manually call object.updateMatrix() whenever their position/rotation/quaternion/scale are updated.
* Add a constrant here, so developer can change it here easily for debugging.
* @internal
*/
export declare const matrixAutoUpdate = false;
/**
* @internal
*/
export declare const sceneAutoUpdate = false;
/**
* These concept can be complex: hitable, snapable, selectable, visible
* Mesh Y Y Y Y
* text in DxfViewer Y N Y Y
* ground plan Y Y N Y
* outline N Y N Y
* OSnap auxiliary object N Y N N
*
* So, we must handle them properly. We'll try to put them into different layers.
*
* For each created object with geometry and material, the default layer is set to enableAll.
* If the object is only displayed, it is not necessary to call enableAll. For example, some auxiliary display objects.
* For objects that cannot be hitable, snapable, selectable, etc., call ObjectUtils.disableLayerChannels to exclude the corresponding channel.
* @example
* ``` typescript
* this.groundPlane.layers.enableAll();
* ObjectUtils.disableLayerChannels(this.groundPlane, [layerForSelectableObjects]);
* ```
*/
/**
* @internal
*/
export declare const layerForHitableObjects = 10;
/**
* @internal
*/
export declare const layerForSnapableObjects = 11;
/**
* @internal
*/
export declare const layerForSelectableObjects = 12;
/**
* @internal
*/
export declare const ICON_FONT_CLASS = "gemini-viewer-iconfont";
/**
* @internal
*/
export declare const KEYDOWN_EVENT = "keydown";
/**
* @internal
*/
export declare const KEYUP_EVENT = "keyup";
/**
* @internal
*/
export declare const MOUSEMOVE_EVENT = "mousemove";
/**
* @internal
*/
export declare const MOUSEUP_EVENT = "mouseup";
/**
* @internal
*/
export declare const MOUSEDOWN_EVENT = "mousedown";
/**
* @internal
*/
export declare const ESC_KEY = "Escape";
/**
* @internal
*/
export declare const ENTER_KEY = "Enter";
/**
* @internal
*/
export declare const AXIS_SECTION_PLANE_ID = "axis-section-plane";
/**
* @internal
*/
export declare const AXIS_SECTION_PLANE_CONTROL_ID = "axis-section-plane-control";
/**
* @internal
*/
export declare const SECTION_PLANE_ID = "section-plane";
/**
* @internal
*/
export declare const SECTION_PLANE_CONTROL_ID = "section-plane-control";
/**
* @internal
*/
export declare const SECTION_BOX_ID = "section-box";
/**
* @internal
*/
export declare const SECTION_PLANE_NAME = "plane-section-boxface";
/**
* @internal
*/
export declare const GROUND_PLANE_RENDER_ORDER = -1000;
/**
* @internal
* Angle threshold at which two plane normals are parallel. Used to calculate edges.
*/
export declare const ANGLE_THRESHOLD_FOR_EDGE = 10;
/**
* Section type
*/
export declare enum SectionType {
ObjectsBoxSection = "ObjectsBoxSection",
PickPlaneSection = "PickPlaneSection",
AxisPlaneSection = "AxisPlaneSection"
}
/**
* Screenshot mode.
*/
export declare enum ScreenshotMode {
/**
* Take screenshot of the whole canvas.
*/
Default = "Default",
/**
* Take screenshot by box selecting an area.
*/
BoxSelection = "BoxSelection",
/**
* Take screenshot by picking a markup.
*/
PickMarkup = "PickMarkup"
}
export interface Vector2 {
x: number;
y: number;
}
export interface Vector3 {
x: number;
y: number;
z: number;
}
export declare type Box = [number, number, number, number, number, number];
export declare type Mat4 = [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number
] | Float32Array;
export interface Box2 {
min: Vector2;
max: Vector2;
}
/**
* To improve performance, we can set object.matrixAutoUpdate = false for static or rarely moving objects and
* manually call object.updateMatrix() whenever their position/rotation/quaternion/scale are updated.
* Add a constrant here, so developer can change it here easily for debugging.
* @internal
*/
export declare const matrixAutoUpdate = false;
/**
* @internal
*/
export declare const sceneAutoUpdate = false;
/**
* These concept can be complex: hitable, snapable, selectable, visible
* Mesh Y Y Y Y
* text in DxfViewer Y N Y Y
* ground plan Y Y N Y
* outline N Y N Y
* OSnap auxiliary object N Y N N
*
* So, we must handle them properly. We'll try to put them into different layers.
*
* For each created object with geometry and material, the default layer is set to enableAll.
* If the object is only displayed, it is not necessary to call enableAll. For example, some auxiliary display objects.
* For objects that cannot be hitable, snapable, selectable, etc., call ObjectUtils.disableLayerChannels to exclude the corresponding channel.
* @example
* ``` typescript
* this.groundPlane.layers.enableAll();
* ObjectUtils.disableLayerChannels(this.groundPlane, [layerForSelectableObjects]);
* ```
*/
/**
* @internal
*/
export declare const layerForHitableObjects = 10;
/**
* @internal
*/
export declare const layerForSnapableObjects = 11;
/**
* @internal
*/
export declare const layerForSelectableObjects = 12;
/**
* @internal
*/
export declare const ICON_FONT_CLASS = "gemini-viewer-iconfont";
/**
* @internal
*/
export declare const KEYDOWN_EVENT = "keydown";
/**
* @internal
*/
export declare const KEYUP_EVENT = "keyup";
/**
* @internal
*/
export declare const MOUSEMOVE_EVENT = "mousemove";
/**
* @internal
*/
export declare const MOUSEUP_EVENT = "mouseup";
/**
* @internal
*/
export declare const MOUSEDOWN_EVENT = "mousedown";
/**
* @internal
*/
export declare const ESC_KEY = "Escape";
/**
* @internal
*/
export declare const ENTER_KEY = "Enter";
/**
* @internal
*/
export declare const AXIS_SECTION_PLANE_ID = "axis-section-plane";
/**
* @internal
*/
export declare const AXIS_SECTION_PLANE_CONTROL_ID = "axis-section-plane-control";
/**
* @internal
*/
export declare const SECTION_PLANE_ID = "section-plane";
/**
* @internal
*/
export declare const SECTION_PLANE_CONTROL_ID = "section-plane-control";
/**
* @internal
*/
export declare const SECTION_BOX_ID = "section-box";
/**
* @internal
*/
export declare const SECTION_PLANE_NAME = "plane-section-boxface";
/**
* @internal
*/
export declare const GROUND_PLANE_RENDER_ORDER = -1000;
/**
* @internal
* Angle threshold at which two plane normals are parallel. Used to calculate edges.
*/
export declare const ANGLE_THRESHOLD_FOR_EDGE = 10;
/**
* Section type
*/
export declare enum SectionType {
ObjectsBoxSection = "ObjectsBoxSection",
PickPlaneSection = "PickPlaneSection",
AxisPlaneSection = "AxisPlaneSection"
}
/**
* Screenshot mode.
*/
export declare enum ScreenshotMode {
/**
* Take screenshot of the whole canvas.
*/
Default = "Default",
/**
* Take screenshot by box selecting an area.
*/
BoxSelection = "BoxSelection",
/**
* Take screenshot by picking a markup.
*/
PickMarkup = "PickMarkup"
}
export interface Vector2 {
x: number;
y: number;
}
export interface Vector3 {
x: number;
y: number;
z: number;
}
export declare type Box = [number, number, number, number, number, number];
export declare type Mat4 = [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number
] | Float32Array;
export interface Box2 {
min: Vector2;
max: Vector2;
}

View File

@ -1,42 +1,42 @@
import * as THREE from "three";
export interface TextTextureConfig {
text?: string;
color?: string;
alignment?: string;
backgroundColor?: number;
fontFamily?: string;
fontSize?: number;
fontStyle?: string;
fontVariant?: string;
fontWeight?: string;
lineGap?: number;
padding?: number;
strokeColor?: string;
strokeWidth?: number;
}
export declare function toCSSFont(family: string, size: number, style: string, variant: string, weight: string): string;
export declare class TextTexture extends THREE.Texture {
private readonly canvas;
readonly isTextTexture = true;
private needsRedraw;
private contentOffset;
private lineOffset;
private width;
private height;
private pixelRatio;
cfg: Required<TextTextureConfig>;
constructor(config: TextTextureConfig, canvas?: HTMLCanvasElement);
get lines(): string[];
get font(): string;
private getContentWidth;
private initDraw;
private getDrawPosition;
private draw;
private getDrawingBufferWidth;
private getDrawingBufferHeight;
private computeOptimalPixelRatio;
redrew(): void;
setPixelRatio(value: number): void;
setOptimalPixelRatio(object: THREE.Object3D, renderer: THREE.WebGLRenderer, camera: THREE.PerspectiveCamera | THREE.OrthographicCamera): void;
updateConfig(config: TextTextureConfig): void;
}
import * as THREE from "three";
export interface TextTextureConfig {
text?: string;
color?: string;
alignment?: string;
backgroundColor?: number;
fontFamily?: string;
fontSize?: number;
fontStyle?: string;
fontVariant?: string;
fontWeight?: string;
lineGap?: number;
padding?: number;
strokeColor?: string;
strokeWidth?: number;
}
export declare function toCSSFont(family: string, size: number, style: string, variant: string, weight: string): string;
export declare class TextTexture extends THREE.Texture {
private readonly canvas;
readonly isTextTexture = true;
private needsRedraw;
private contentOffset;
private lineOffset;
private width;
private height;
private pixelRatio;
cfg: Required<TextTextureConfig>;
constructor(config: TextTextureConfig, canvas?: HTMLCanvasElement);
get lines(): string[];
get font(): string;
private getContentWidth;
private initDraw;
private getDrawPosition;
private draw;
private getDrawingBufferWidth;
private getDrawingBufferHeight;
private computeOptimalPixelRatio;
redrew(): void;
setPixelRatio(value: number): void;
setOptimalPixelRatio(object: THREE.Object3D, renderer: THREE.WebGLRenderer, camera: THREE.PerspectiveCamera | THREE.OrthographicCamera): void;
updateConfig(config: TextTextureConfig): void;
}

View File

@ -1,16 +1,16 @@
/**
* Units are defined the same order as to Dxf format
*/
export declare enum Units {
Unitless = "Unitless",
Inches = "Inches",
Feet = "Feet",
Millimeters = "Millimeters",
Centimeters = "Centimeters",
Meters = "Meters"
}
/**
* Gets the unit scale when converting to meter
*/
export declare const unitScaleToMeter: (srcUnit: Units) => number;
export declare const unitScaleConversion: (srcUnit: Units, destUnit: Units) => number;
/**
* Units are defined the same order as to Dxf format
*/
export declare enum Units {
Unitless = "Unitless",
Inches = "Inches",
Feet = "Feet",
Millimeters = "Millimeters",
Centimeters = "Centimeters",
Meters = "Meters"
}
/**
* Gets the unit scale when converting to meter
*/
export declare const unitScaleToMeter: (srcUnit: Units) => number;
export declare const unitScaleConversion: (srcUnit: Units, destUnit: Units) => number;

View File

@ -1,3 +1,3 @@
export declare const getVersionFromLocalStorage: () => string | null;
export declare const setVersionToLocalStorage: () => void;
export declare const checkIsNewVersion: () => boolean;
export declare const getVersionFromLocalStorage: () => string | null;
export declare const setVersionToLocalStorage: () => void;
export declare const checkIsNewVersion: () => boolean;

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +1,41 @@
export declare type Listener = (event?: DispatcherEvent) => void;
export interface DispatcherEvent {
type: string;
[key: string]: any;
}
export declare class EventDispatcher {
private _listeners;
/**
* Adds the specified event listener.
* @param type event name
* @param listener handler function
* @category Methods
*/
addEventListener(type: string, listener: Listener): void;
/**
* Presence of the specified event listener.
* @param type event name
* @param listener handler function
* @category Methods
*/
hasEventListener(type: string, listener: Listener): boolean;
/**
* Removes the specified event listener
* @param type event name
* @param listener handler function
* @category Methods
*/
removeEventListener(type: string, listener: Listener): void;
/**
* Removes all event listeners
* @param type event name
* @category Methods
*/
removeAllEventListeners(type?: string): void;
/**
* Fire an event type.
* @param event DispatcherEvent
* @category Methods
*/
dispatchEvent(event: DispatcherEvent): void;
}
export declare type Listener = (event?: DispatcherEvent) => void;
export interface DispatcherEvent {
type: string;
[key: string]: any;
}
export declare class EventDispatcher {
private _listeners;
/**
* Adds the specified event listener.
* @param type event name
* @param listener handler function
* @category Methods
*/
addEventListener(type: string, listener: Listener): void;
/**
* Presence of the specified event listener.
* @param type event name
* @param listener handler function
* @category Methods
*/
hasEventListener(type: string, listener: Listener): boolean;
/**
* Removes the specified event listener
* @param type event name
* @param listener handler function
* @category Methods
*/
removeEventListener(type: string, listener: Listener): void;
/**
* Removes all event listeners
* @param type event name
* @category Methods
*/
removeAllEventListeners(type?: string): void;
/**
* Fire an event type.
* @param event DispatcherEvent
* @category Methods
*/
dispatchEvent(event: DispatcherEvent): void;
}

View File

@ -1,2 +1,2 @@
export declare const PI_2: number;
export declare const PI_HALF: number;
export declare const PI_2: number;
export declare const PI_HALF: number;

View File

@ -1,2 +1,2 @@
import { CameraControls } from './CameraControls';
export default CameraControls;
import { CameraControls } from './CameraControls';
export default CameraControls;

View File

@ -1,112 +1,112 @@
import type * as _THREE from 'three';
export interface THREESubset {
Vector2: typeof _THREE.Vector2;
Vector3: typeof _THREE.Vector3;
Vector4: typeof _THREE.Vector4;
Quaternion: typeof _THREE.Quaternion;
Matrix4: typeof _THREE.Matrix4;
Spherical: typeof _THREE.Spherical;
Box3: typeof _THREE.Box3;
Sphere: typeof _THREE.Sphere;
Raycaster: typeof _THREE.Raycaster;
[key: string]: any;
}
export declare type Ref = {
value: number;
};
export declare const MOUSE_BUTTON: {
readonly LEFT: 1;
readonly RIGHT: 2;
readonly MIDDLE: 4;
};
export declare type MOUSE_BUTTON = typeof MOUSE_BUTTON[keyof typeof MOUSE_BUTTON];
export declare const ACTION: Readonly<{
readonly NONE: 0;
readonly ROTATE: 1;
readonly TRUCK: 2;
readonly OFFSET: 4;
readonly DOLLY: 8;
readonly ZOOM: 16;
readonly TOUCH_ROTATE: 32;
readonly TOUCH_TRUCK: 64;
readonly TOUCH_OFFSET: 128;
readonly TOUCH_DOLLY: 256;
readonly TOUCH_ZOOM: 512;
readonly TOUCH_DOLLY_TRUCK: 1024;
readonly TOUCH_DOLLY_OFFSET: 2048;
readonly TOUCH_DOLLY_ROTATE: 4096;
readonly TOUCH_ZOOM_TRUCK: 8192;
readonly TOUCH_ZOOM_OFFSET: 16384;
readonly TOUCH_ZOOM_ROTATE: 32768;
}>;
export declare type ACTION = number;
export interface PointerInput {
pointerId: number;
clientX: number;
clientY: number;
deltaX: number;
deltaY: number;
mouseButton: MOUSE_BUTTON | null;
}
/**
* @internal
*/
export declare type mouseButtonAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE;
/**
* @internal
*/
export declare type mouseWheelAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE;
/**
* @internal
*/
export declare type singleTouchAction = typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE;
/**
* @internal
*/
export declare type multiTouchAction = typeof ACTION.TOUCH_DOLLY_ROTATE | typeof ACTION.TOUCH_DOLLY_TRUCK | typeof ACTION.TOUCH_DOLLY_OFFSET | typeof ACTION.TOUCH_ZOOM_ROTATE | typeof ACTION.TOUCH_ZOOM_TRUCK | typeof ACTION.TOUCH_ZOOM_OFFSET | typeof ACTION.TOUCH_DOLLY | typeof ACTION.TOUCH_ZOOM | typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.NONE;
export interface MouseButtons {
left: mouseButtonAction;
middle: mouseButtonAction;
right: mouseButtonAction;
wheel: mouseWheelAction;
}
export interface Touches {
one: singleTouchAction;
two: multiTouchAction;
three: multiTouchAction;
}
export interface FitToOptions {
cover: boolean;
paddingLeft: number;
paddingRight: number;
paddingBottom: number;
paddingTop: number;
}
export interface CameraControlsEventMap {
update: {
type: 'update';
};
wake: {
type: 'wake';
};
rest: {
type: 'rest';
};
sleep: {
type: 'sleep';
};
transitionstart: {
type: 'transitionstart';
};
controlstart: {
type: 'controlstart';
};
control: {
type: 'control';
};
controlend: {
type: 'controlend';
};
}
export declare function isPerspectiveCamera(camera: _THREE.Camera): camera is _THREE.PerspectiveCamera;
export declare function isOrthographicCamera(camera: _THREE.Camera): camera is _THREE.OrthographicCamera;
import type * as _THREE from 'three';
export interface THREESubset {
Vector2: typeof _THREE.Vector2;
Vector3: typeof _THREE.Vector3;
Vector4: typeof _THREE.Vector4;
Quaternion: typeof _THREE.Quaternion;
Matrix4: typeof _THREE.Matrix4;
Spherical: typeof _THREE.Spherical;
Box3: typeof _THREE.Box3;
Sphere: typeof _THREE.Sphere;
Raycaster: typeof _THREE.Raycaster;
[key: string]: any;
}
export declare type Ref = {
value: number;
};
export declare const MOUSE_BUTTON: {
readonly LEFT: 1;
readonly RIGHT: 2;
readonly MIDDLE: 4;
};
export declare type MOUSE_BUTTON = typeof MOUSE_BUTTON[keyof typeof MOUSE_BUTTON];
export declare const ACTION: Readonly<{
readonly NONE: 0;
readonly ROTATE: 1;
readonly TRUCK: 2;
readonly OFFSET: 4;
readonly DOLLY: 8;
readonly ZOOM: 16;
readonly TOUCH_ROTATE: 32;
readonly TOUCH_TRUCK: 64;
readonly TOUCH_OFFSET: 128;
readonly TOUCH_DOLLY: 256;
readonly TOUCH_ZOOM: 512;
readonly TOUCH_DOLLY_TRUCK: 1024;
readonly TOUCH_DOLLY_OFFSET: 2048;
readonly TOUCH_DOLLY_ROTATE: 4096;
readonly TOUCH_ZOOM_TRUCK: 8192;
readonly TOUCH_ZOOM_OFFSET: 16384;
readonly TOUCH_ZOOM_ROTATE: 32768;
}>;
export declare type ACTION = number;
export interface PointerInput {
pointerId: number;
clientX: number;
clientY: number;
deltaX: number;
deltaY: number;
mouseButton: MOUSE_BUTTON | null;
}
/**
* @internal
*/
export declare type mouseButtonAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE;
/**
* @internal
*/
export declare type mouseWheelAction = typeof ACTION.ROTATE | typeof ACTION.TRUCK | typeof ACTION.OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE;
/**
* @internal
*/
export declare type singleTouchAction = typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.DOLLY | typeof ACTION.ZOOM | typeof ACTION.NONE;
/**
* @internal
*/
export declare type multiTouchAction = typeof ACTION.TOUCH_DOLLY_ROTATE | typeof ACTION.TOUCH_DOLLY_TRUCK | typeof ACTION.TOUCH_DOLLY_OFFSET | typeof ACTION.TOUCH_ZOOM_ROTATE | typeof ACTION.TOUCH_ZOOM_TRUCK | typeof ACTION.TOUCH_ZOOM_OFFSET | typeof ACTION.TOUCH_DOLLY | typeof ACTION.TOUCH_ZOOM | typeof ACTION.TOUCH_ROTATE | typeof ACTION.TOUCH_TRUCK | typeof ACTION.TOUCH_OFFSET | typeof ACTION.NONE;
export interface MouseButtons {
left: mouseButtonAction;
middle: mouseButtonAction;
right: mouseButtonAction;
wheel: mouseWheelAction;
}
export interface Touches {
one: singleTouchAction;
two: multiTouchAction;
three: multiTouchAction;
}
export interface FitToOptions {
cover: boolean;
paddingLeft: number;
paddingRight: number;
paddingBottom: number;
paddingTop: number;
}
export interface CameraControlsEventMap {
update: {
type: 'update';
};
wake: {
type: 'wake';
};
rest: {
type: 'rest';
};
sleep: {
type: 'sleep';
};
transitionstart: {
type: 'transitionstart';
};
controlstart: {
type: 'controlstart';
};
control: {
type: 'control';
};
controlend: {
type: 'controlend';
};
}
export declare function isPerspectiveCamera(camera: _THREE.Camera): camera is _THREE.PerspectiveCamera;
export declare function isOrthographicCamera(camera: _THREE.Camera): camera is _THREE.OrthographicCamera;

View File

@ -1,3 +1,3 @@
import type * as _THREE from 'three';
import type { PointerInput } from '../types';
export declare function extractClientCoordFromEvent(pointers: PointerInput[], out: _THREE.Vector2): void;
import type * as _THREE from 'three';
import type { PointerInput } from '../types';
export declare function extractClientCoordFromEvent(pointers: PointerInput[], out: _THREE.Vector2): void;

View File

@ -1,11 +1,11 @@
import type * as _THREE from 'three';
import type { Ref } from '../types';
export declare const DEG2RAD: number;
export declare function clamp(value: number, min: number, max: number): number;
export declare function approxZero(number: number, error?: number): boolean;
export declare function approxEquals(a: number, b: number, error?: number): boolean;
export declare function roundToStep(value: number, step: number): number;
export declare function infinityToMaxNumber(value: number): number;
export declare function maxNumberToInfinity(value: number): number;
export declare function smoothDamp(current: number, target: number, currentVelocityRef: Ref, smoothTime: number, maxSpeed: number | undefined, deltaTime: number): number;
export declare function smoothDampVec3(current: _THREE.Vector3, target: _THREE.Vector3, currentVelocityRef: _THREE.Vector3, smoothTime: number, maxSpeed: number | undefined, deltaTime: number, out: _THREE.Vector3): _THREE.Vector3;
import type * as _THREE from 'three';
import type { Ref } from '../types';
export declare const DEG2RAD: number;
export declare function clamp(value: number, min: number, max: number): number;
export declare function approxZero(number: number, error?: number): boolean;
export declare function approxEquals(a: number, b: number, error?: number): boolean;
export declare function roundToStep(value: number, step: number): number;
export declare function infinityToMaxNumber(value: number): number;
export declare function maxNumberToInfinity(value: number): number;
export declare function smoothDamp(current: number, target: number, currentVelocityRef: Ref, smoothTime: number, maxSpeed: number | undefined, deltaTime: number): number;
export declare function smoothDampVec3(current: _THREE.Vector3, target: _THREE.Vector3, currentVelocityRef: _THREE.Vector3, smoothTime: number, maxSpeed: number | undefined, deltaTime: number, out: _THREE.Vector3): _THREE.Vector3;

View File

@ -1,2 +1,2 @@
import * as _THREE from 'three';
export declare function notSupportedInOrthographicCamera(camera: _THREE.OrthographicCamera | _THREE.PerspectiveCamera, message: string): camera is _THREE.OrthographicCamera;
import * as _THREE from 'three';
export declare function notSupportedInOrthographicCamera(camera: _THREE.OrthographicCamera | _THREE.PerspectiveCamera, message: string): camera is _THREE.OrthographicCamera;

View File

@ -1,51 +1,52 @@
import * as THREE from "three";
import { DrawableData } from "./Constants";
import { Drawable } from "./Drawable";
import type { DrawableList } from "./DrawableList";
import { Event } from "../../core/utils";
import type { BimViewer, DxfViewer } from "../../core/viewers";
/**
* @internal
*/
export declare type constructorReturnType<T> = new (...arg: any) => T;
/**
* @internal
*/
export declare class CanvasRender extends Event {
private viewer;
private drawableLists;
private canvas?;
context?: CanvasRenderingContext2D;
private frustum;
private projScreenMatrix;
static _registerDrawableClass(drawable: constructorReturnType<Drawable>): void;
static createDrawable(data: DrawableData): Drawable<Record<string, unknown>>;
constructor(viewer: BimViewer | DxfViewer);
get container(): HTMLElement;
get camera(): THREE.Camera;
get raycaster(): THREE.Raycaster;
private init;
private initCanvas;
private toHighDpr;
clearCanvas(): void;
addDrawableList(drawableList: DrawableList): void;
render(): void;
setSize(width: number, height: number): void;
getSortedDrawables(onlyVisible?: boolean): Drawable<Record<string, unknown>>[];
getDrawablesByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable[];
getDrawableById(id: string): Drawable<Record<string, unknown>> | undefined;
measureTextLength(text: string, font: string): number;
/**
*
* @param option
* @returns
* @deprecated
*/
screenshot(option?: {
type: string;
quality: number;
}): Promise<string | undefined>;
getImage(filter: (drawable: Drawable) => boolean): Promise<HTMLImageElement>;
getCanvas(): HTMLCanvasElement | undefined;
destroy(): void;
}
import * as THREE from "three";
import { DrawableData } from "./Constants";
import { Drawable } from "./Drawable";
import type { DrawableList } from "./DrawableList";
import { Event } from "../../core/utils";
import type { BimViewer, DxfViewer } from "../../core/viewers";
/**
* @internal
*/
export declare type constructorReturnType<T> = new (...arg: any) => T;
/**
* @internal
*/
export declare class CanvasRender extends Event {
private viewer;
private drawableLists;
private canvas?;
context?: CanvasRenderingContext2D;
private frustum;
private projScreenMatrix;
static _registerDrawableClass(drawable: constructorReturnType<Drawable>): void;
static createDrawable(data: DrawableData): Drawable<Record<string, unknown>>;
constructor(viewer: BimViewer | DxfViewer);
get is3d(): boolean;
get container(): HTMLElement;
get camera(): THREE.Camera;
get raycaster(): THREE.Raycaster;
private init;
private initCanvas;
private toHighDpr;
clearCanvas(): void;
addDrawableList(drawableList: DrawableList): void;
render(): void;
setSize(width: number, height: number): void;
getSortedDrawables(onlyVisible?: boolean): Drawable<Record<string, unknown>>[];
getDrawablesByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable[];
getDrawableById(id: string): Drawable<Record<string, unknown>> | undefined;
measureTextLength(text: string, font: string): number;
/**
*
* @param option
* @returns
* @deprecated
*/
screenshot(option?: {
type: string;
quality: number;
}): Promise<string | undefined>;
getImage(filter: (drawable: Drawable) => boolean): Promise<HTMLImageElement>;
getCanvas(): HTMLCanvasElement | undefined;
destroy(): void;
}

View File

@ -1,28 +1,28 @@
/**
* Drawable data, including measurement data, markup data, etc.
*/
export interface DrawableData {
/**
* id is used by business logic to manage(find, update, delete, etc.) drawables
*/
id: string;
/**
* Two dimension float array stores 2d or 3d points.
* e.g., You can use "[[1, 1], [2.5, 3]]" to represent a distance measurement result,
* "[1, 1]" is the first point, and "[2.5, 3]" is the second point.
*/
points: number[][];
lineWidth?: number;
/**
* Line color is number array. e.g: [r, g, b, a]
*/
lineColor?: number[];
/**
* Fill color is number array. e.g: [r, g, b, a]
*/
fillColor?: number[];
/**
* Drawable dta type
*/
type: string;
}
/**
* Drawable data, including measurement data, markup data, etc.
*/
export interface DrawableData {
/**
* id is used by business logic to manage(find, update, delete, etc.) drawables
*/
id: string;
/**
* Two dimension float array stores 2d or 3d points.
* e.g., You can use "[[1, 1], [2.5, 3]]" to represent a distance measurement result,
* "[1, 1]" is the first point, and "[2.5, 3]" is the second point.
*/
points: number[][];
lineWidth?: number;
/**
* Line color is number array. e.g: [r, g, b, a]
*/
lineColor?: number[];
/**
* Fill color is number array. e.g: [r, g, b, a]
*/
fillColor?: number[];
/**
* Drawable dta type
*/
type: string;
}

View File

@ -1,87 +1,87 @@
import * as THREE from "three";
import { DrawableData } from "./Constants";
import { Event } from "../../core/utils";
/**
* @internal
*/
export declare abstract class Drawable<DrawableEvents extends Record<string, unknown> = Record<string, unknown>> extends Event<DrawableEvents> {
protected readonly DEFAULT_LINE_WIDTH = 1;
protected readonly DEFAULT_STROKE_STYLE: number[];
protected readonly DEFAULT_FILL_STYLE: number[];
id: string;
protected lineWidth: number;
protected lineColor: number[];
protected fillColor: number[];
x: number;
y: number;
width: number;
height: number;
protected points: THREE.Vector3[];
userData: Record<any, any>;
protected tolerance: number;
visible: boolean;
selected: boolean;
/**
* render order, the bigger number is on the top
*/
renderOrder: number;
needsFrustumCulled: boolean;
protected editPointSize: number;
protected editPointFillColor: string;
protected editPointStrokeColor: string;
protected matrix: THREE.Matrix4;
protected ctx?: CanvasRenderingContext2D;
constructor(id?: string);
setTolerance(t: number): void;
render(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
getData(): DrawableData;
setData(data: DrawableData): void;
getVertexes(): THREE.Vector3[];
setLineWidth(lineWidth?: number): void;
setLineColor(color?: number[]): void;
setFillColor(color?: number[]): void;
isSelected(): boolean;
getCenter(): THREE.Vector3;
transToScreenCoord(vector: THREE.Vector3, camera: THREE.Camera): THREE.Vector2;
/**
*
* @param ctx
* @param camera
* @describe just for debug bounds
*/
private drawBounds;
/**
*
* @param ctx
* @param camera
* @describe just for debug
*/
private drawCenter;
/**
*
* @param p is world position
* @param raycaster just for 3d intersect
* @returns boolean
* @describe is point interact drawable, use to select drawable, the same as threejs object raycast
*/
abstract isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean;
getBounds(): THREE.Box3;
/**
*
* @param ctx
* @param camera
* @describe abstract draw method
*/
abstract draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
/**
*
* @param ctx
* @param camera
* @describe abstract drawSelect method
*/
abstract drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
/**
* @describe class type for serialize
*/
abstract getClassType(): string;
}
import * as THREE from "three";
import { DrawableData } from "./Constants";
import { Event } from "../../core/utils";
/**
* @internal
*/
export declare abstract class Drawable<DrawableEvents extends Record<string, unknown> = Record<string, unknown>> extends Event<DrawableEvents> {
protected readonly DEFAULT_LINE_WIDTH = 1;
protected readonly DEFAULT_STROKE_STYLE: number[];
protected readonly DEFAULT_FILL_STYLE: number[];
id: string;
protected lineWidth: number;
protected lineColor: number[];
protected fillColor: number[];
x: number;
y: number;
width: number;
height: number;
protected points: THREE.Vector3[];
userData: Record<any, any>;
protected tolerance: number;
visible: boolean;
selected: boolean;
/**
* render order, the bigger number is on the top
*/
renderOrder: number;
needsFrustumCulled: boolean;
protected editPointSize: number;
protected editPointFillColor: string;
protected editPointStrokeColor: string;
protected matrix: THREE.Matrix4;
protected ctx?: CanvasRenderingContext2D;
constructor(id?: string);
setTolerance(t: number): void;
render(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
getData(): DrawableData;
setData(data: DrawableData): void;
getVertexes(): THREE.Vector3[];
setLineWidth(lineWidth?: number): void;
setLineColor(color?: number[]): void;
setFillColor(color?: number[]): void;
isSelected(): boolean;
getCenter(): THREE.Vector3;
transToScreenCoord(vector: THREE.Vector3, camera: THREE.Camera): THREE.Vector2;
/**
*
* @param ctx
* @param camera
* @describe just for debug bounds
*/
private drawBounds;
/**
*
* @param ctx
* @param camera
* @describe just for debug
*/
private drawCenter;
/**
*
* @param p is world position
* @param raycaster just for 3d intersect
* @returns boolean
* @describe is point interact drawable, use to select drawable, the same as threejs object raycast
*/
abstract isPointInPath(p: THREE.Vector3, raycaster?: THREE.Raycaster): boolean;
getBounds(): THREE.Box3;
/**
*
* @param ctx
* @param camera
* @describe abstract draw method
*/
abstract draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
/**
*
* @param ctx
* @param camera
* @describe abstract drawSelect method
*/
abstract drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
/**
* @describe class type for serialize
*/
abstract getClassType(): string;
}

View File

@ -1,27 +1,27 @@
import { DrawableData } from "./Constants";
import { Drawable } from "./Drawable";
import { Event } from "../../core/utils";
declare type DrawableListEvents = {
addDrawable: DrawableData;
updateDrawable: DrawableData;
removeDrawable: DrawableData;
};
/**
* A group of Drawlables for a certain category
* @internal
*/
export declare class DrawableList extends Event<DrawableListEvents> {
private category;
private drawableMap;
constructor(category: string);
addDrawable(drawable: Drawable): void;
updateDrawable(drawable: Drawable, newData: DrawableData): void;
removeDrawable(drawable: Drawable): void;
getDrawableById(id: string): Drawable<Record<string, unknown>> | undefined;
clear(): void;
getDrawables(): Map<string, Drawable<Record<string, unknown>>>;
getDrawableDatas(): DrawableData[];
setDrawableDatas(drawableDatas: DrawableData[]): void;
getDrawableByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable<Record<string, unknown>> | undefined;
}
export {};
import { DrawableData } from "./Constants";
import { Drawable } from "./Drawable";
import { Event } from "../../core/utils";
declare type DrawableListEvents = {
addDrawable: DrawableData;
updateDrawable: DrawableData;
removeDrawable: DrawableData;
};
/**
* A group of Drawlables for a certain category
* @internal
*/
export declare class DrawableList extends Event<DrawableListEvents> {
private category;
private drawableMap;
constructor(category: string);
addDrawable(drawable: Drawable): void;
updateDrawable(drawable: Drawable, newData: DrawableData): void;
removeDrawable(drawable: Drawable): void;
getDrawableById(id: string): Drawable<Record<string, unknown>> | undefined;
clear(): void;
getDrawables(): Map<string, Drawable<Record<string, unknown>>>;
getDrawableDatas(): DrawableData[];
setDrawableDatas(drawableDatas: DrawableData[]): void;
getDrawableByPosition(p: THREE.Vector3, raycaster?: THREE.Raycaster): Drawable<Record<string, unknown>> | undefined;
}
export {};

View File

@ -1,4 +1,4 @@
export * from "./CanvasRender";
export * from "./DrawableList";
export * from "./Drawable";
export * from "./Constants";
export * from "./CanvasRender";
export * from "./DrawableList";
export * from "./Drawable";
export * from "./Constants";

View File

@ -1,104 +1,104 @@
import * as THREE from "three";
import { ProgressBar } from "../../components/progress-bar";
import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs";
import { DxfChange, DxfLoader } from "../../core/dxf";
import { FontManager } from "../../core/font";
import { DxfViewer } from "../../core/viewers/DxfViewer";
/**
* Dxf compare helper with one viewport.
* @example
* ``` html
* <div id="app">
* <div id="myCanvas" style="width: 100%; height: 100%; display: inline-block;"></div>
* </div>
* ```
* ``` typescript
* const viewerCfg = { containerId: "myCanvas" };
* const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" };
* const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" };
* const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"];
*
* const compareHelper = new BaseDxfCompareHelper(viewerCfg);
* await compareHelper.setFont(fontFiles);
* await compareHelper.compare(modelCfg1, modelCfg2);
* ```
*/
export declare class BaseDxfCompareHelper {
/**
* DxfViewer of DxfCompareHelper.
*/
viewer: DxfViewer;
protected fontManager?: FontManager;
protected loader: DxfLoader;
protected loadingManager?: THREE.LoadingManager;
protected changes?: Record<string, DxfChange>;
protected container: HTMLElement;
protected spinner?: HTMLDivElement;
protected jobCount: number;
protected loadingProgressBar?: ProgressBar;
constructor(viewerCfg: DxfViewerConfig);
protected initSpinner(): void;
/**
* @description {en} Sets font.
* This needs to be called before loading a dxf, it won't affect any loaded text.
* It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now.
* @description {zh} 设置字体。
* 需要在加载dxf之前调用不会影响已加载的文字。
* 支持shx或typeface格式。对于typeface目前只支持传入1个字体文件。
* @param urls
* - {en} font file urls.
* - {zh} 字体文件链接。
* @example
* ```typescript
* compareHelper.setFont(["https://example.com/xxx.shx"]);
* ```
*/
setFont(urls: string[]): Promise<void>;
/**
* Compares two dxf files. Note that:
* - It only compares model spaces.
* - It shouldn't load anything else before and after compare.
* @param modelCfg1 The first dxf to be compared
* @param modelCfg2 The second dxf to be compared
* @param onProgress loading progress
*/
compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise<void>;
/**
* @description {en} Gets compare changes.
* @description {zh} 获取对比变动.
* @returns
* - {en} Compare changes.
* - {zh} 对比变动列表。
* @example
* ``` typescript
* const changes = compareHelper.getChanges();
* console.log(changes);
* ```
*/
getChanges(): Record<number, DxfChange> | undefined;
/**
* @description {en} Zooms to a compare change.
* @description {zh} 聚焦到图纸的一处变动。
* @param changeId
* - {en} Change id, which is an incremental integer starts from 1.
* - {zh} 变动id该id是从数字1开始自增的整数。
* @example
* ``` typescript
* const changeId = 1;
* compareHelper.zoomToChange(changeId);
* ```
*/
zoomToChange(changeId: number): void;
/**
* Sets spinner visibility
*/
protected setSpinnerVisibility(visible: boolean): void;
/**
* Increases job count, and show spinner accordingly
*/
protected increaseJobCount(): void;
/**
* Decreases job count, and hide spinner accordingly
*/
protected decreaseJobCount(): void;
}
import * as THREE from "three";
import { ProgressBar } from "../../components/progress-bar";
import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs";
import { DxfChange, DxfLoader } from "../../core/dxf";
import { FontManager } from "../../core/font";
import { DxfViewer } from "../../core/viewers/DxfViewer";
/**
* Dxf compare helper with one viewport.
* @example
* ``` html
* <div id="app">
* <div id="myCanvas" style="width: 100%; height: 100%; display: inline-block;"></div>
* </div>
* ```
* ``` typescript
* const viewerCfg = { containerId: "myCanvas" };
* const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" };
* const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" };
* const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"];
*
* const compareHelper = new BaseDxfCompareHelper(viewerCfg);
* await compareHelper.setFont(fontFiles);
* await compareHelper.compare(modelCfg1, modelCfg2);
* ```
*/
export declare class BaseDxfCompareHelper {
/**
* DxfViewer of DxfCompareHelper.
*/
viewer: DxfViewer;
protected fontManager?: FontManager;
protected loader: DxfLoader;
protected loadingManager?: THREE.LoadingManager;
protected changes?: Record<string, DxfChange>;
protected container: HTMLElement;
protected spinner?: HTMLDivElement;
protected jobCount: number;
protected loadingProgressBar?: ProgressBar;
constructor(viewerCfg: DxfViewerConfig);
protected initSpinner(): void;
/**
* @description {en} Sets font.
* This needs to be called before loading a dxf, it won't affect any loaded text.
* It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now.
* @description {zh} 设置字体。
* 需要在加载dxf之前调用不会影响已加载的文字。
* 支持shx或typeface格式。对于typeface目前只支持传入1个字体文件。
* @param urls
* - {en} font file urls.
* - {zh} 字体文件链接。
* @example
* ```typescript
* compareHelper.setFont(["https://example.com/xxx.shx"]);
* ```
*/
setFont(urls: string[]): Promise<void>;
/**
* Compares two dxf files. Note that:
* - It only compares model spaces.
* - It shouldn't load anything else before and after compare.
* @param modelCfg1 The first dxf to be compared
* @param modelCfg2 The second dxf to be compared
* @param onProgress loading progress
*/
compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise<void>;
/**
* @description {en} Gets compare changes.
* @description {zh} 获取对比变动.
* @returns
* - {en} Compare changes.
* - {zh} 对比变动列表。
* @example
* ``` typescript
* const changes = compareHelper.getChanges();
* console.log(changes);
* ```
*/
getChanges(): Record<number, DxfChange> | undefined;
/**
* @description {en} Zooms to a compare change.
* @description {zh} 聚焦到图纸的一处变动。
* @param changeId
* - {en} Change id, which is an incremental integer starts from 1.
* - {zh} 变动id该id是从数字1开始自增的整数。
* @example
* ``` typescript
* const changeId = 1;
* compareHelper.zoomToChange(changeId);
* ```
*/
zoomToChange(changeId: number): void;
/**
* Sets spinner visibility
*/
protected setSpinnerVisibility(visible: boolean): void;
/**
* Increases job count, and show spinner accordingly
*/
protected increaseJobCount(): void;
/**
* Decreases job count, and hide spinner accordingly
*/
protected decreaseJobCount(): void;
}

View File

@ -1,17 +1,17 @@
import * as THREE from "three";
import { Drawable } from "../../core/canvas";
/**
* @internal
*/
export declare class CompareDrawable extends Drawable {
boxes: THREE.Box3[];
lineSegments: THREE.Vector3[][];
constructor(id: string, boxes: THREE.Box3[]);
private calculateCloudLineSegments;
draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
private drawBox;
drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
isPointInPath(p: THREE.Vector3): boolean;
getBounds(): THREE.Box3;
getClassType(): string;
}
import * as THREE from "three";
import { Drawable } from "../../core/canvas";
/**
* @internal
*/
export declare class CompareDrawable extends Drawable {
boxes: THREE.Box3[];
lineSegments: THREE.Vector3[][];
constructor(id: string, boxes: THREE.Box3[]);
private calculateCloudLineSegments;
draw(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
private drawBox;
drawSelect(ctx: CanvasRenderingContext2D, camera: THREE.Camera): void;
isPointInPath(p: THREE.Vector3): boolean;
getBounds(): THREE.Box3;
getClassType(): string;
}

View File

@ -1,69 +1,69 @@
import { BaseDxfCompareHelper } from "./BaseDxfCompareHelper";
import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs";
import { DxfViewer } from "../../core/viewers/DxfViewer";
/**
* Dxf compare helper with two viewports.
* @example
* ``` html
* <div id="app">
* <div id="myCanvas1" style="width: 50%; height: 100%; display: inline-block;"></div>
* <div id="myCanvas2" style="width: 50%; height: 100%; display: inline-block; padding-left: 1px;"></div>
* </div>
* ```
* ``` typescript
* const viewerCfg1 = { containerId: "myCanvas1" };
* const viewerCfg2 = { containerId: "myCanvas2" };
* const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" };
* const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" };
* const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"];
*
* const compareHelper = new DxfCompareHelper(viewerCfg1, viewerCfg2);
* await compareHelper.setFont(fontFiles);
* await compareHelper.compare(modelCfg1, modelCfg2);
* compareHelper.enableSyncCamera(true);
* ```
*/
export declare class DxfCompareHelper extends BaseDxfCompareHelper {
/**
* The second DxfViewer of DxfCompareHelper.
*/
viewer2: DxfViewer;
/**
* Enables to synchronize camera position when another camera is moved.
*/
protected syncCamera: boolean;
constructor(viewerCfg1: DxfViewerConfig, viewerCfg2: DxfViewerConfig);
protected initSyncCameraEvent(): void;
/**
* @description {en} Enables to synchronize camera position when another camera is moved.
* @description {zh} 设置开启或关闭同步相机视角。
* @example
* ```typescript
* compareHelper.enableSyncCamera(true);
* ```
*/
enableSyncCamera(enable: boolean): void;
private syncCameraControls;
/**
* Compares two dxf files. Note that:
* - It only compares model spaces.
* - It shouldn't load anything else before and after compare.
* @param modelCfg1 The first dxf to be compared
* @param modelCfg2 The second dxf to be compared
* @param onProgress loading progress
*/
compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise<void>;
/**
* @description {en} Zooms to a compare change.
* @description {zh} 聚焦到图纸的一处变动。
* @param changeId
* - {en} Change id, which is an incremental integer starts from 1.
* - {zh} 变动id该id是从数字1开始自增的整数。
* @example
* ``` typescript
* const changeId = 1;
* compareHelper.zoomToChange(changeId);
* ```
*/
zoomToChange(changeId: number): void;
}
import { BaseDxfCompareHelper } from "./BaseDxfCompareHelper";
import { DxfCompareConfig, DxfModelConfig, DxfViewerConfig } from "../../core/Configs";
import { DxfViewer } from "../../core/viewers/DxfViewer";
/**
* Dxf compare helper with two viewports.
* @example
* ``` html
* <div id="app">
* <div id="myCanvas1" style="width: 50%; height: 100%; display: inline-block;"></div>
* <div id="myCanvas2" style="width: 50%; height: 100%; display: inline-block; padding-left: 1px;"></div>
* </div>
* ```
* ``` typescript
* const viewerCfg1 = { containerId: "myCanvas1" };
* const viewerCfg2 = { containerId: "myCanvas2" };
* const modelCfg1 = { modelId: "id_1", src: "http://www.abc.com/sample1.dxf" };
* const modelCfg2 = { modelId: "id_2", src: "http://www.abc.com/sample2.dxf" };
* const fontFiles = ["http://www.abc.com/hztxt.shx", "http://www.abc.com/simplex.shx"];
*
* const compareHelper = new DxfCompareHelper(viewerCfg1, viewerCfg2);
* await compareHelper.setFont(fontFiles);
* await compareHelper.compare(modelCfg1, modelCfg2);
* compareHelper.enableSyncCamera(true);
* ```
*/
export declare class DxfCompareHelper extends BaseDxfCompareHelper {
/**
* The second DxfViewer of DxfCompareHelper.
*/
viewer2: DxfViewer;
/**
* Enables to synchronize camera position when another camera is moved.
*/
protected syncCamera: boolean;
constructor(viewerCfg1: DxfViewerConfig, viewerCfg2: DxfViewerConfig);
protected initSyncCameraEvent(): void;
/**
* @description {en} Enables to synchronize camera position when another camera is moved.
* @description {zh} 设置开启或关闭同步相机视角。
* @example
* ```typescript
* compareHelper.enableSyncCamera(true);
* ```
*/
enableSyncCamera(enable: boolean): void;
private syncCameraControls;
/**
* Compares two dxf files. Note that:
* - It only compares model spaces.
* - It shouldn't load anything else before and after compare.
* @param modelCfg1 The first dxf to be compared
* @param modelCfg2 The second dxf to be compared
* @param onProgress loading progress
*/
compare(modelCfg1: DxfModelConfig, modelCfg2: DxfModelConfig, compareCfg?: DxfCompareConfig, onProgress?: (event: ProgressEvent) => void): Promise<void>;
/**
* @description {en} Zooms to a compare change.
* @description {zh} 聚焦到图纸的一处变动。
* @param changeId
* - {en} Change id, which is an incremental integer starts from 1.
* - {zh} 变动id该id是从数字1开始自增的整数。
* @example
* ``` typescript
* const changeId = 1;
* compareHelper.zoomToChange(changeId);
* ```
*/
zoomToChange(changeId: number): void;
}

View File

@ -1,11 +1,11 @@
import type { DxfViewer } from "../viewers";
import { DxfChange } from "../../core/dxf";
import { Event } from "../../core/utils";
export declare class DxfCompareMarkupManager extends Event {
private viewer;
private overlayRender?;
private drawableList;
constructor(viewer: DxfViewer);
drawCompareDrawable(changes: Record<string, DxfChange>): void;
setCompareDrawableVisible(visilbe: boolean): void;
}
import type { DxfViewer } from "../viewers";
import { DxfChange } from "../../core/dxf";
import { Event } from "../../core/utils";
export declare class DxfCompareMarkupManager extends Event {
private viewer;
private overlayRender?;
private drawableList;
constructor(viewer: DxfViewer);
drawCompareDrawable(changes: Record<string, DxfChange>): void;
setCompareDrawableVisible(visilbe: boolean): void;
}

View File

@ -1,4 +1,4 @@
export * from "./CompareDrawable";
export * from "./DxfCompareMarkupManager";
export * from "./DxfCompareHelper";
export * from "./BaseDxfCompareHelper";
export * from "./CompareDrawable";
export * from "./DxfCompareMarkupManager";
export * from "./DxfCompareHelper";
export * from "./BaseDxfCompareHelper";

View File

@ -1,34 +1,34 @@
import * as THREE from "three";
import { CameraControls } from "../camera-controls/CameraControls";
export declare class CameraControlsEx extends CameraControls {
minZoom: number;
draggingSmoothTime: number;
private dollySpeedBackup;
private azimuthRotateSpeedBackup;
private polarRotateSpeedBackup;
private truckSpeedBackup;
private domElementKeyEvents?;
keyTruckSpeed: number;
keys: {
left: string;
up: string;
right: string;
bottom: string;
};
constructor(object: THREE.PerspectiveCamera | THREE.OrthographicCamera, domElement?: HTMLElement);
get enableZoom(): boolean;
set enableZoom(value: boolean);
get enableRotate(): boolean;
set enableRotate(value: boolean);
get enableTruck(): boolean;
set enableTruck(value: boolean);
private onKeyDown;
private onKeyUp;
listenToKeyEvents(): void;
stopListenToKeyEvents(): void;
/**
* Dispose the OrbitControls instance itself, remove all eventListeners.
* @category Methods
*/
dispose(): void;
}
import * as THREE from "three";
import { CameraControls } from "../camera-controls/CameraControls";
export declare class CameraControlsEx extends CameraControls {
minZoom: number;
draggingSmoothTime: number;
private dollySpeedBackup;
private azimuthRotateSpeedBackup;
private polarRotateSpeedBackup;
private truckSpeedBackup;
private domElementKeyEvents?;
keyTruckSpeed: number;
keys: {
left: string;
up: string;
right: string;
bottom: string;
};
constructor(object: THREE.PerspectiveCamera | THREE.OrthographicCamera, domElement?: HTMLElement);
get enableZoom(): boolean;
set enableZoom(value: boolean);
get enableRotate(): boolean;
set enableRotate(value: boolean);
get enableTruck(): boolean;
set enableTruck(value: boolean);
private onKeyDown;
private onKeyUp;
listenToKeyEvents(): void;
stopListenToKeyEvents(): void;
/**
* Dispose the OrbitControls instance itself, remove all eventListeners.
* @category Methods
*/
dispose(): void;
}

View File

@ -1,131 +1,131 @@
import { EventDispatcher, PerspectiveCamera, Vector3 } from "three";
import type { ControlsHelper } from "../../core/helpers";
/**
* @internal
*/
export declare enum STATE {
NONE = -1,
ROTATE = 0,
DOLLY = 1,
PAN = 2,
TOUCH_ROTATE = 3,
TOUCH_DOLLY = 4
}
/**
* @internal
*/
export declare enum Keys {
LEFT = "ArrowLeft",
UP = "ArrowUp",
RIGHT = "ArrowRight",
BOTTOM = "ArrowDown"
}
/**
* @internal
*/
export declare class VRControls extends EventDispatcher {
object: PerspectiveCamera;
domElement: HTMLCanvasElement;
isVRMode: boolean;
enabled: boolean;
target: Vector3;
enableZoom: boolean;
enablePan: boolean;
enableRotate: boolean;
state: STATE;
rotateSpeed: number;
zoomSpeed: number;
panSpeed: number;
scale: number;
minZoom: number;
maxZoom: number;
screenSpacePanning: boolean;
autoRotate: boolean;
controlsHelper?: ControlsHelper;
autoRotateSpeed: number;
enableDamping: boolean;
dampingFactor: number;
minAzimuthAngle: number;
maxAzimuthAngle: number;
minPolarAngle: number;
maxPolarAngle: number;
minDistance: number;
maxDistance: number;
keyPanSpeed: number;
minFov: number;
maxFov: number;
private zoomChanged;
private panOffset;
private pointerPositions;
private rotateStart;
private rotateEnd;
private rotateDelta;
private dollyStart;
private dollyEnd;
private dollyDelta;
private panStart;
private panEnd;
private panDelta;
private pointers;
private spherical;
private sphericalDelta;
private domElementKeyEvents?;
private quat;
constructor(object: PerspectiveCamera, domElement: HTMLCanvasElement, isVRMode?: boolean);
dispose(): void;
update: () => boolean;
private addPointer;
private removePointer;
private onContextMenu;
/**
*
* Get the distance between two points
* @param {number[]} p1
* @param {number[]} p2
* @return {*}
* @memberof VRControls
*/
getDist(p1: number[], p2: number[]): number;
private trackPointer;
/**************************PointerDown Event*************************/
private onTouchStart;
private onMouseDown;
private onPointerDown;
/**************************PointerMove Event*************************/
private onTouchMove;
private onMouseMove;
private onPointerMove;
/**************************PointerUp Event*************************/
handlerTouchEnd(event: PointerEvent): void;
private onPointerUp;
private onPointerCancel;
handleMouseWheel(event: WheelEvent): void;
private onMouseWheel;
/**************************Ponter down event handling*************************/
handleMouseDownRotate(event: PointerEvent): void;
handleMouseDownDolly(event: PointerEvent): void;
handleMouseDownPan(event: PointerEvent): void;
handleTouchStartRotate(): void;
handleTouchStartDolly(pointers: PointerEvent[]): void;
/**************************Mouse move rotate event handling*************************/
private updateRotate;
handleMouseMoveRotate(event: PointerEvent): void;
/**************************Mouse move zoom event handling*************************/
private dollyOut;
private dollyIn;
handleMouseMoveDolly(event: PointerEvent): void;
/**************************Mouse move pan event handling*************************/
private pan;
private panLeft;
private panUp;
handleMouseMovePan(event: PointerEvent): void;
/**************************One-finger or Two-finger rotate event handling*************************/
private getSecondPointerPosition;
handleTouchMoveRotate(event: PointerEvent): void;
/**************************Two-finger zoom event handling*************************/
private updateFov;
handleTouchMoveDolly(event: PointerEvent): void;
private handleKeyDown;
private onKeyDown;
listenToKeyEvents(domElement: HTMLElement): void;
}
import { EventDispatcher, PerspectiveCamera, Vector3 } from "three";
import type { ControlsHelper } from "../../core/helpers";
/**
* @internal
*/
export declare enum STATE {
NONE = -1,
ROTATE = 0,
DOLLY = 1,
PAN = 2,
TOUCH_ROTATE = 3,
TOUCH_DOLLY = 4
}
/**
* @internal
*/
export declare enum Keys {
LEFT = "ArrowLeft",
UP = "ArrowUp",
RIGHT = "ArrowRight",
BOTTOM = "ArrowDown"
}
/**
* @internal
*/
export declare class VRControls extends EventDispatcher {
object: PerspectiveCamera;
domElement: HTMLCanvasElement;
isVRMode: boolean;
enabled: boolean;
target: Vector3;
enableZoom: boolean;
enablePan: boolean;
enableRotate: boolean;
state: STATE;
rotateSpeed: number;
zoomSpeed: number;
panSpeed: number;
scale: number;
minZoom: number;
maxZoom: number;
screenSpacePanning: boolean;
autoRotate: boolean;
controlsHelper?: ControlsHelper;
autoRotateSpeed: number;
enableDamping: boolean;
dampingFactor: number;
minAzimuthAngle: number;
maxAzimuthAngle: number;
minPolarAngle: number;
maxPolarAngle: number;
minDistance: number;
maxDistance: number;
keyPanSpeed: number;
minFov: number;
maxFov: number;
private zoomChanged;
private panOffset;
private pointerPositions;
private rotateStart;
private rotateEnd;
private rotateDelta;
private dollyStart;
private dollyEnd;
private dollyDelta;
private panStart;
private panEnd;
private panDelta;
private pointers;
private spherical;
private sphericalDelta;
private domElementKeyEvents?;
private quat;
constructor(object: PerspectiveCamera, domElement: HTMLCanvasElement, isVRMode?: boolean);
dispose(): void;
update: () => boolean;
private addPointer;
private removePointer;
private onContextMenu;
/**
*
* Get the distance between two points
* @param {number[]} p1
* @param {number[]} p2
* @return {*}
* @memberof VRControls
*/
getDist(p1: number[], p2: number[]): number;
private trackPointer;
/**************************PointerDown Event*************************/
private onTouchStart;
private onMouseDown;
private onPointerDown;
/**************************PointerMove Event*************************/
private onTouchMove;
private onMouseMove;
private onPointerMove;
/**************************PointerUp Event*************************/
handlerTouchEnd(event: PointerEvent): void;
private onPointerUp;
private onPointerCancel;
handleMouseWheel(event: WheelEvent): void;
private onMouseWheel;
/**************************Ponter down event handling*************************/
handleMouseDownRotate(event: PointerEvent): void;
handleMouseDownDolly(event: PointerEvent): void;
handleMouseDownPan(event: PointerEvent): void;
handleTouchStartRotate(): void;
handleTouchStartDolly(pointers: PointerEvent[]): void;
/**************************Mouse move rotate event handling*************************/
private updateRotate;
handleMouseMoveRotate(event: PointerEvent): void;
/**************************Mouse move zoom event handling*************************/
private dollyOut;
private dollyIn;
handleMouseMoveDolly(event: PointerEvent): void;
/**************************Mouse move pan event handling*************************/
private pan;
private panLeft;
private panUp;
handleMouseMovePan(event: PointerEvent): void;
/**************************One-finger or Two-finger rotate event handling*************************/
private getSecondPointerPosition;
handleTouchMoveRotate(event: PointerEvent): void;
/**************************Two-finger zoom event handling*************************/
private updateFov;
handleTouchMoveDolly(event: PointerEvent): void;
private handleKeyDown;
private onKeyDown;
listenToKeyEvents(domElement: HTMLElement): void;
}

View File

@ -1,2 +1,2 @@
export * from "./VRControls";
export * from "./CameraControlsEx";
export * from "./VRControls";
export * from "./CameraControlsEx";

View File

@ -1,8 +1,8 @@
/**
* AutoCad files sometimes use an indexed color value between 1 and 255 inclusive.
* Each value corresponds to a color. index 1 is red, that is 16711680 or 0xFF0000.
* index 0 and 256, while included in this array, are actually reserved for inheritance
* values in AutoCad so they should not be used for index color lookups.
*/
declare const _default: number[];
export default _default;
/**
* AutoCad files sometimes use an indexed color value between 1 and 255 inclusive.
* Each value corresponds to a color. index 1 is red, that is 16711680 or 0xFF0000.
* index 0 and 256, while included in this array, are actually reserved for inheritance
* values in AutoCad so they should not be used for index color lookups.
*/
declare const _default: number[];
export default _default;

View File

@ -1,12 +1,12 @@
export interface IGroup {
code: number;
value: number | string | boolean;
}
export declare abstract class DxfBaseReader {
protected pointer: number;
protected eof: boolean;
lastReadGroup: IGroup | undefined;
abstract next(): IGroup;
abstract hasNext(): boolean;
abstract isEOF(): boolean;
}
export interface IGroup {
code: number;
value: number | string | boolean;
}
export declare abstract class DxfBaseReader {
protected pointer: number;
protected eof: boolean;
lastReadGroup: IGroup | undefined;
abstract next(): IGroup;
abstract hasNext(): boolean;
abstract isEOF(): boolean;
}

View File

@ -1,14 +1,14 @@
import { DxfBaseReader, IGroup } from "./DxfBaseReader";
export default class DxfBinaryReader extends DxfBaseReader {
private reader;
private decoder;
private int8Array;
private caches;
constructor(data: ArrayBuffer);
next(): IGroup;
hasNext(): boolean;
isEOF(): boolean;
private parseGroupValue;
private readNullTerminatedString;
private ReadBinaryData;
}
import { DxfBaseReader, IGroup } from "./DxfBaseReader";
export default class DxfBinaryReader extends DxfBaseReader {
private reader;
private decoder;
private int8Array;
private caches;
constructor(data: ArrayBuffer);
next(): IGroup;
hasNext(): boolean;
isEOF(): boolean;
private parseGroupValue;
private readNullTerminatedString;
private ReadBinaryData;
}

View File

@ -1,327 +1,327 @@
/// <reference types="node" />
import { Readable } from "stream";
import IGeometry, { IEntity, IPoint } from "./entities/geomtry";
import { IObject, IObjectParser } from "./objects/common";
/**
* @internal
*/
export declare enum BlockTypeFlags {
None = 0,
AnonymousBlock = 1,
NonConstantAttributeDefinitions = 2,
XRef = 4,
XRefOverlay = 8,
ExternallyDependent = 16,
ResolvedExternalReference = 32,
DefinitionExternalReference = 64
}
/**
* Definition of a block. Which contains entities, name, handle, etc.
* @internal
*/
export interface IBlock {
entities: IEntity[];
ownerHandle: string;
xrefPath: string;
name: string;
name2: string;
handle: string;
layer: string;
position: IPoint;
paperSpace: boolean;
blockType: BlockTypeFlags;
description?: string;
}
/**
* Definition of a viewport.
* @internal
*/
export interface IViewport {
name: string;
lowerLeftCorner: IPoint;
upperRightCorner: IPoint;
center: IPoint;
snapBasePoint: IPoint;
snapSpacing: IPoint;
gridSpacing: IPoint;
viewDirectionFromTarget: IPoint;
viewTarget: IPoint;
aspectRatio: number;
lensLength: number;
frontClippingPlane: string | number | boolean;
backClippingPlane: string | number | boolean;
viewHeight: number;
snapRotationAngle: number;
viewTwistAngle: number;
orthographicType: string;
ucsOrigin: IPoint;
ucsXAxis: IPoint;
ucsYAxis: IPoint;
renderMode: string;
defaultLightingType: string;
defaultLightingOn: string;
ownerHandle: string;
ambientColor: number;
}
/**
* Viewport table definition.
* @internal
*/
export interface IViewportTableDefinition {
tableRecordsProperty: "viewports";
tableName: "viewport";
dxfSymbolName: "VPORT";
parseTableRecords(): IViewport[];
}
/**
* Line type.
* @internal
*/
export interface ILineType {
name: string;
description: string;
pattern: number[];
patternLength: number;
}
/**
* Line type table definition.
* @internal
*/
export interface ILineTypeTableDefinition {
tableRecordsProperty: "lineTypes";
tableName: "lineType";
dxfSymbolName: "LTYPE";
parseTableRecords(): Record<string, ILineType>;
}
/**
* Definition of a layer.
*/
export interface ILayer {
/**
* Unique layer name with the dxf/dwg file.
*/
name: string;
/**
* @internal
*/
handle: string;
visible: boolean;
/**
* @internal
*/
colorIndex: number;
/**
* color in decimal
*/
color: number;
/**
* @internal
*/
frozen: boolean;
/**
* @internal
*/
flag: number;
/**
* @internal
*/
lineType: string;
/**
* @internal
*/
lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1;
}
/**
* Layer table definition.
* @internal
*/
export interface ILayerTableDefinition {
tableRecordsProperty: "layers";
tableName: "layer";
dxfSymbolName: "LAYER";
parseTableRecords(): Record<string, ILayer>;
}
/**
* BlockRecord
* @internal
*/
export interface IBlockRecord {
handle: string;
ownerHandle: string;
blockName: string;
layoutHandle: string;
blockInsertUnits: number;
blockExplodability: number;
blockScalability: number;
bitmap?: string;
}
/**
* @internal
*/
export interface IBlockRecordTableDefinition {
tableRecordsProperty: "blockRecords";
tableName: "blockRecord";
dxfSymbolName: "BLOCK_RECORD";
parseTableRecords(): Record<string, IBlockRecord>;
}
/**
* Definition of a style.
* @internal
*/
export interface IStyle {
handle: string;
ownerHandle: string;
styleName: string;
priorTextHeight: number;
textHeight: number;
xScale: number;
rotation: number;
mirrorType: number;
fontFile: string;
bigFontFile: string;
}
/**
* Style table definition.
* @internal
*/
export interface IStyleTableDefinition {
tableRecordsProperty: "styles";
tableName: "style";
dxfSymbolName: "STYLE";
parseTableRecords(): Record<string, IStyle>;
}
/**
* Dim style.
* @internal
*/
export interface IDimStyle {
styleName: string;
DIMSCALE: number;
DIMASZ: number;
DIMEXO: string;
DIMEXE: string;
DIMSE1: string;
DIMSE2: string;
DIMTAD: string;
DIMTXT: string;
DIMGAP: number;
DIMCLRD: number;
DIMCLRT: number;
DIMLFAC: number;
DIMDEC: string;
DIMLDRBLK: string;
}
/**
* Dim style table definition
* @internal
*/
export interface IDimStyleTableDefinition {
tableRecordsProperty: "dimStyles";
tableName: "dimStyle";
dxfSymbolName: "DIMSTYLE";
parseTableRecords(): Record<string, IDimStyle>;
}
/**
* Table definitions.
* @internal
*/
export interface ITableDefinitions {
VPORT: IViewportTableDefinition;
LTYPE: ILineTypeTableDefinition;
LAYER: ILayerTableDefinition;
BLOCK_RECORD: IBlockRecordTableDefinition;
STYLE: IStyleTableDefinition;
DIMSTYLE: IDimStyleTableDefinition;
}
/**
* Base table
* @internal
*/
export interface IBaseTable {
handle: string;
ownerHandle: string;
}
/**
* Viewport table
* @internal
*/
export interface IViewportTable extends IBaseTable {
viewports: IViewport[];
}
/**
* @internal
*/
export interface ILayerTypesTable extends IBaseTable {
lineTypes: Record<string, ILineType>;
}
/**
* @internal
*/
export interface ILayersTable extends IBaseTable {
layers: Record<string, ILayer>;
}
/**
* @internal
*/
export interface IStylesTable extends IBaseTable {
styles: Record<string, IStyle>;
}
/**
* @internal
*/
export interface IDimStyleTable extends IBaseTable {
dimStyles: Record<string, IDimStyle>;
}
/**
* @internal
*/
export interface IBlockRecordsTable extends IBaseTable {
blockRecords: Record<string, IBlockRecord>;
}
/**
* @internal
*/
export interface ITables {
viewport: IViewportTable;
lineType: ILayerTypesTable;
layer: ILayersTable;
blockRecord: IBlockRecordsTable;
style: IStylesTable;
dimStyle: IDimStyleTable;
}
/**
* @internal
*/
export declare type ITable = IViewportTable | ILayerTypesTable | ILayersTable | IBlockRecordsTable | IStylesTable | IDimStyleTable;
/**
* @internal
*/
export interface IDxf {
header: Record<string, IPoint | number>;
entities: IEntity[];
blocks: Record<string, IBlock>;
tables: ITables;
objects: Record<string, IObject[]>;
}
export default class DxfParser {
private encoding?;
private _entityHandlers;
private _objectHandlers;
private _layoutBlocks;
private unhandledSections;
private unhandledObjects;
private unhandledEntities;
private unsupportedLineTypes;
constructor(encoding?: string);
parse(source: string | ArrayBuffer): IDxf;
registerEntityHandler(handlerType: new () => IGeometry): void;
registerObjectHandler(handlerType: new () => IObjectParser): void;
parseSync(source: string | ArrayBuffer): IDxf;
parseStream(stream: Readable): Promise<IDxf>;
private _parse;
/**
* Splits a string to string array by line separator, "\r\n", "\r", "\n", etc.
* We do this instead of using "String.prototype.split(/\r\n|\r|\n/g)", because it is extreamly slow!
*/
private splitByLineSeparator;
}
/// <reference types="node" />
import { Readable } from "stream";
import IGeometry, { IEntity, IPoint } from "./entities/geomtry";
import { IObject, IObjectParser } from "./objects/common";
/**
* @internal
*/
export declare enum BlockTypeFlags {
None = 0,
AnonymousBlock = 1,
NonConstantAttributeDefinitions = 2,
XRef = 4,
XRefOverlay = 8,
ExternallyDependent = 16,
ResolvedExternalReference = 32,
DefinitionExternalReference = 64
}
/**
* Definition of a block. Which contains entities, name, handle, etc.
* @internal
*/
export interface IBlock {
entities: IEntity[];
ownerHandle: string;
xrefPath: string;
name: string;
name2: string;
handle: string;
layer: string;
position: IPoint;
paperSpace: boolean;
blockType: BlockTypeFlags;
description?: string;
}
/**
* Definition of a viewport.
* @internal
*/
export interface IViewport {
name: string;
lowerLeftCorner: IPoint;
upperRightCorner: IPoint;
center: IPoint;
snapBasePoint: IPoint;
snapSpacing: IPoint;
gridSpacing: IPoint;
viewDirectionFromTarget: IPoint;
viewTarget: IPoint;
aspectRatio: number;
lensLength: number;
frontClippingPlane: string | number | boolean;
backClippingPlane: string | number | boolean;
viewHeight: number;
snapRotationAngle: number;
viewTwistAngle: number;
orthographicType: string;
ucsOrigin: IPoint;
ucsXAxis: IPoint;
ucsYAxis: IPoint;
renderMode: string;
defaultLightingType: string;
defaultLightingOn: string;
ownerHandle: string;
ambientColor: number;
}
/**
* Viewport table definition.
* @internal
*/
export interface IViewportTableDefinition {
tableRecordsProperty: "viewports";
tableName: "viewport";
dxfSymbolName: "VPORT";
parseTableRecords(): IViewport[];
}
/**
* Line type.
* @internal
*/
export interface ILineType {
name: string;
description: string;
pattern: number[];
patternLength: number;
}
/**
* Line type table definition.
* @internal
*/
export interface ILineTypeTableDefinition {
tableRecordsProperty: "lineTypes";
tableName: "lineType";
dxfSymbolName: "LTYPE";
parseTableRecords(): Record<string, ILineType>;
}
/**
* Definition of a layer.
*/
export interface ILayer {
/**
* Unique layer name with the dxf/dwg file.
*/
name: string;
/**
* @internal
*/
handle: string;
visible: boolean;
/**
* @internal
*/
colorIndex: number;
/**
* color in decimal
*/
color: number;
/**
* @internal
*/
frozen: boolean;
/**
* @internal
*/
flag: number;
/**
* @internal
*/
lineType: string;
/**
* @internal
*/
lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1;
}
/**
* Layer table definition.
* @internal
*/
export interface ILayerTableDefinition {
tableRecordsProperty: "layers";
tableName: "layer";
dxfSymbolName: "LAYER";
parseTableRecords(): Record<string, ILayer>;
}
/**
* BlockRecord
* @internal
*/
export interface IBlockRecord {
handle: string;
ownerHandle: string;
blockName: string;
layoutHandle: string;
blockInsertUnits: number;
blockExplodability: number;
blockScalability: number;
bitmap?: string;
}
/**
* @internal
*/
export interface IBlockRecordTableDefinition {
tableRecordsProperty: "blockRecords";
tableName: "blockRecord";
dxfSymbolName: "BLOCK_RECORD";
parseTableRecords(): Record<string, IBlockRecord>;
}
/**
* Definition of a style.
* @internal
*/
export interface IStyle {
handle: string;
ownerHandle: string;
styleName: string;
priorTextHeight: number;
textHeight: number;
xScale: number;
rotation: number;
mirrorType: number;
fontFile: string;
bigFontFile: string;
}
/**
* Style table definition.
* @internal
*/
export interface IStyleTableDefinition {
tableRecordsProperty: "styles";
tableName: "style";
dxfSymbolName: "STYLE";
parseTableRecords(): Record<string, IStyle>;
}
/**
* Dim style.
* @internal
*/
export interface IDimStyle {
styleName: string;
DIMSCALE: number;
DIMASZ: number;
DIMEXO: string;
DIMEXE: string;
DIMSE1: string;
DIMSE2: string;
DIMTAD: string;
DIMTXT: string;
DIMGAP: number;
DIMCLRD: number;
DIMCLRT: number;
DIMLFAC: number;
DIMDEC: string;
DIMLDRBLK: string;
}
/**
* Dim style table definition
* @internal
*/
export interface IDimStyleTableDefinition {
tableRecordsProperty: "dimStyles";
tableName: "dimStyle";
dxfSymbolName: "DIMSTYLE";
parseTableRecords(): Record<string, IDimStyle>;
}
/**
* Table definitions.
* @internal
*/
export interface ITableDefinitions {
VPORT: IViewportTableDefinition;
LTYPE: ILineTypeTableDefinition;
LAYER: ILayerTableDefinition;
BLOCK_RECORD: IBlockRecordTableDefinition;
STYLE: IStyleTableDefinition;
DIMSTYLE: IDimStyleTableDefinition;
}
/**
* Base table
* @internal
*/
export interface IBaseTable {
handle: string;
ownerHandle: string;
}
/**
* Viewport table
* @internal
*/
export interface IViewportTable extends IBaseTable {
viewports: IViewport[];
}
/**
* @internal
*/
export interface ILayerTypesTable extends IBaseTable {
lineTypes: Record<string, ILineType>;
}
/**
* @internal
*/
export interface ILayersTable extends IBaseTable {
layers: Record<string, ILayer>;
}
/**
* @internal
*/
export interface IStylesTable extends IBaseTable {
styles: Record<string, IStyle>;
}
/**
* @internal
*/
export interface IDimStyleTable extends IBaseTable {
dimStyles: Record<string, IDimStyle>;
}
/**
* @internal
*/
export interface IBlockRecordsTable extends IBaseTable {
blockRecords: Record<string, IBlockRecord>;
}
/**
* @internal
*/
export interface ITables {
viewport: IViewportTable;
lineType: ILayerTypesTable;
layer: ILayersTable;
blockRecord: IBlockRecordsTable;
style: IStylesTable;
dimStyle: IDimStyleTable;
}
/**
* @internal
*/
export declare type ITable = IViewportTable | ILayerTypesTable | ILayersTable | IBlockRecordsTable | IStylesTable | IDimStyleTable;
/**
* @internal
*/
export interface IDxf {
header: Record<string, IPoint | number>;
entities: IEntity[];
blocks: Record<string, IBlock>;
tables: ITables;
objects: Record<string, IObject[]>;
}
export default class DxfParser {
private encoding?;
private _entityHandlers;
private _objectHandlers;
private _layoutBlocks;
private unhandledSections;
private unhandledObjects;
private unhandledEntities;
private unsupportedLineTypes;
constructor(encoding?: string);
parse(source: string | ArrayBuffer): IDxf;
registerEntityHandler(handlerType: new () => IGeometry): void;
registerObjectHandler(handlerType: new () => IObjectParser): void;
parseSync(source: string | ArrayBuffer): IDxf;
parseStream(stream: Readable): Promise<IDxf>;
private _parse;
/**
* Splits a string to string array by line separator, "\r\n", "\r", "\n", etc.
* We do this instead of using "String.prototype.split(/\r\n|\r|\n/g)", because it is extreamly slow!
*/
private splitByLineSeparator;
}

View File

@ -1,31 +1,31 @@
import { IGroup, DxfBaseReader } from './DxfBaseReader';
/**
*
* Based off the AutoCad 2012 DXF Reference
* http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf
*
* Reads through an array representing lines of a dxf file. Takes an array and
* provides an easy interface to extract group code and value pairs.
* @param data - an array where each element represents a line in the dxf file
* @constructor
*/
export default class DxfTextRender extends DxfBaseReader {
private data;
constructor(data: string[]);
/**
* Gets the next group (code, value) from the array. A group is two consecutive elements
* in the array. The first is the code, the second is the value.
* @returns {{code: Number}|*}
*/
next(): IGroup;
/**
* Returns true if there is another code/value pair (2 elements in the array).
* @returns {boolean}
*/
hasNext(): boolean;
/**
* Returns true if the scanner is at the end of the array
* @returns {boolean}
*/
isEOF(): boolean;
}
import { IGroup, DxfBaseReader } from './DxfBaseReader';
/**
*
* Based off the AutoCad 2012 DXF Reference
* http://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf
*
* Reads through an array representing lines of a dxf file. Takes an array and
* provides an easy interface to extract group code and value pairs.
* @param data - an array where each element represents a line in the dxf file
* @constructor
*/
export default class DxfTextRender extends DxfBaseReader {
private data;
constructor(data: string[]);
/**
* Gets the next group (code, value) from the array. A group is two consecutive elements
* in the array. The first is the code, the second is the value.
* @returns {{code: Number}|*}
*/
next(): IGroup;
/**
* Returns true if there is another code/value pair (2 elements in the array).
* @returns {boolean}
*/
hasNext(): boolean;
/**
* Returns true if the scanner is at the end of the array
* @returns {boolean}
*/
isEOF(): boolean;
}

View File

@ -1,36 +1,36 @@
import { DxfBaseReader, IGroup } from "./DxfBaseReader";
import { IEntity, IPoint } from "./entities/geomtry";
import { IObject } from "./objects/common";
export declare const originalTypes: string[];
/**
* Returns the truecolor value of the given AutoCad color index value
* @return {Number} truecolor value as a number
*/
export declare function getAcadColor(index: number): number;
/**
* Parses the 2D or 3D coordinate, vector, or point. When complete,
* the scanner remains on the last group of the coordinate.
* @param {*} scanner
*/
export declare function parsePoint(scanner: DxfBaseReader): IPoint;
/**
* Parses 16 numbers as an array. When complete,
* the scanner remains on the last group of the value.
* @param {*} scanner
* @param {*} groupCode
*/
export declare function parseMatrix(scanner: DxfBaseReader, groupCode: number): number[];
/**
* Attempts to parse codes common to all entities. Returns true if the group
* was handled by this function.
* @param {*} entity - the entity currently being parsed
* @param {*} curr - the current group being parsed
*/
export declare function checkCommonEntityProperties(entity: IEntity, curr: IGroup): boolean;
/**
* Attempts to parse codes common to all objects. Returns true if the group
* was handled by this function.
* @param {*} object - the object currently being parsed
* @param {*} curr - the current group being parsed
*/
export declare function checkCommonObjectProperties(object: IObject, curr: IGroup): boolean;
import { DxfBaseReader, IGroup } from "./DxfBaseReader";
import { IEntity, IPoint } from "./entities/geomtry";
import { IObject } from "./objects/common";
export declare const originalTypes: string[];
/**
* Returns the truecolor value of the given AutoCad color index value
* @return {Number} truecolor value as a number
*/
export declare function getAcadColor(index: number): number;
/**
* Parses the 2D or 3D coordinate, vector, or point. When complete,
* the scanner remains on the last group of the coordinate.
* @param {*} scanner
*/
export declare function parsePoint(scanner: DxfBaseReader): IPoint;
/**
* Parses 16 numbers as an array. When complete,
* the scanner remains on the last group of the value.
* @param {*} scanner
* @param {*} groupCode
*/
export declare function parseMatrix(scanner: DxfBaseReader, groupCode: number): number[];
/**
* Attempts to parse codes common to all entities. Returns true if the group
* was handled by this function.
* @param {*} entity - the entity currently being parsed
* @param {*} curr - the current group being parsed
*/
export declare function checkCommonEntityProperties(entity: IEntity, curr: IGroup): boolean;
/**
* Attempts to parse codes common to all objects. Returns true if the group
* was handled by this function.
* @param {*} object - the object currently being parsed
* @param {*} curr - the current group being parsed
*/
export declare function checkCommonObjectProperties(object: IObject, curr: IGroup): boolean;

View File

@ -1,11 +1,11 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface I3DfaceEntity extends IEntity {
shape: boolean;
hasContinuousLinetypePattern: boolean;
vertices: IPoint[];
}
export default class ThreeDface implements IGeometry {
ForEntityName: "3DFACE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): I3DfaceEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface I3DfaceEntity extends IEntity {
shape: boolean;
hasContinuousLinetypePattern: boolean;
vertices: IPoint[];
}
export default class ThreeDface implements IGeometry {
ForEntityName: "3DFACE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): I3DfaceEntity;
}

View File

@ -1,16 +1,16 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IArcEntity extends IEntity {
center: IPoint;
radius: number;
startAngle: number;
endAngle: number;
angleLength: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
}
export default class Arc implements IGeometry {
ForEntityName: "ARC";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IArcEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IArcEntity extends IEntity {
center: IPoint;
radius: number;
startAngle: number;
endAngle: number;
angleLength: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
}
export default class Arc implements IGeometry {
ForEntityName: "ARC";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IArcEntity;
}

View File

@ -1,31 +1,31 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IAttdefEntity extends IEntity {
xScale: number;
textStyle: "STANDARD" | string;
text: string;
tag: string;
prompt: string;
startPoint: IPoint;
endPoint: IPoint;
thickness: number;
textHeight: number;
rotation: number;
obliqueAngle: number;
invisible: boolean;
constant: boolean;
verificationRequired: boolean;
preset: boolean;
backwards: boolean;
mirrored: boolean;
horizontalJustification: number;
fieldLength: number;
verticalJustification: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
}
export default class Attdef implements IGeometry {
ForEntityName: "ATTDEF";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttdefEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IAttdefEntity extends IEntity {
xScale: number;
textStyle: "STANDARD" | string;
text: string;
tag: string;
prompt: string;
startPoint: IPoint;
endPoint: IPoint;
thickness: number;
textHeight: number;
rotation: number;
obliqueAngle: number;
invisible: boolean;
constant: boolean;
verificationRequired: boolean;
preset: boolean;
backwards: boolean;
mirrored: boolean;
horizontalJustification: number;
fieldLength: number;
verticalJustification: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
}
export default class Attdef implements IGeometry {
ForEntityName: "ATTDEF";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttdefEntity;
}

View File

@ -1,31 +1,31 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IAttribEntity extends IEntity {
xScale: number;
textStyle: "STANDARD" | string;
text: string;
tag: string;
prompt: string;
startPoint: IPoint;
endPoint: IPoint;
thickness: number;
textHeight: number;
rotation: number;
obliqueAngle: number;
invisible: boolean;
constant: boolean;
verificationRequired: boolean;
preset: boolean;
backwards: boolean;
mirrored: boolean;
horizontalJustification: number;
fieldLength: number;
verticalJustification: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
}
export default class Attrib implements IGeometry {
ForEntityName: "ATTRIB";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttribEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IAttribEntity extends IEntity {
xScale: number;
textStyle: "STANDARD" | string;
text: string;
tag: string;
prompt: string;
startPoint: IPoint;
endPoint: IPoint;
thickness: number;
textHeight: number;
rotation: number;
obliqueAngle: number;
invisible: boolean;
constant: boolean;
verificationRequired: boolean;
preset: boolean;
backwards: boolean;
mirrored: boolean;
horizontalJustification: number;
fieldLength: number;
verticalJustification: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
}
export default class Attrib implements IGeometry {
ForEntityName: "ATTRIB";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IAttribEntity;
}

View File

@ -1,13 +1,13 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ICircleEntity extends IEntity {
center: IPoint;
radius: number;
startAngle: number;
endAngle: number;
angleLength: number;
}
export default class Circle implements IGeometry {
ForEntityName: "CIRCLE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ICircleEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ICircleEntity extends IEntity {
center: IPoint;
radius: number;
startAngle: number;
endAngle: number;
angleLength: number;
}
export default class Circle implements IGeometry {
ForEntityName: "CIRCLE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ICircleEntity;
}

View File

@ -1,22 +1,22 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IDimensionEntity extends IEntity {
block: string;
dimStyleName: string;
anchorPoint: IPoint;
middleOfText: IPoint;
insertionPoint: IPoint;
linearOrAngularPoint1: IPoint;
linearOrAngularPoint2: IPoint;
diameterOrRadiusPoint: IPoint;
arcPoint: IPoint;
dimensionType: number;
attachmentPoint: number;
actualMeasurement: number;
text: string;
angle: number;
}
export default class Dimension implements IGeometry {
ForEntityName: "DIMENSION";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IDimensionEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IDimensionEntity extends IEntity {
block: string;
dimStyleName: string;
anchorPoint: IPoint;
middleOfText: IPoint;
insertionPoint: IPoint;
linearOrAngularPoint1: IPoint;
linearOrAngularPoint2: IPoint;
diameterOrRadiusPoint: IPoint;
arcPoint: IPoint;
dimensionType: number;
attachmentPoint: number;
actualMeasurement: number;
text: string;
angle: number;
}
export default class Dimension implements IGeometry {
ForEntityName: "DIMENSION";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IDimensionEntity;
}

View File

@ -1,15 +1,15 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IEllipseEntity extends IEntity {
center: IPoint;
majorAxisEndPoint: IPoint;
axisRatio: number;
startAngle: number;
endAngle: number;
name: string;
extrusionDirection: IPoint;
}
export default class Ellipse implements IGeometry {
ForEntityName: "ELLIPSE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IEllipseEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IEllipseEntity extends IEntity {
center: IPoint;
majorAxisEndPoint: IPoint;
axisRatio: number;
startAngle: number;
endAngle: number;
name: string;
extrusionDirection: IPoint;
}
export default class Ellipse implements IGeometry {
ForEntityName: "ELLIPSE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IEllipseEntity;
}

View File

@ -1,40 +1,40 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
/**
* @internal
*/
export interface IPoint {
x: number;
y: number;
z?: number;
bulge?: number;
}
export interface IEntity {
lineType: string;
layer: string;
lineTypeScale: number;
visible: boolean;
colorIndex: number;
color: number;
isTrueColor: boolean;
inPaperSpace: boolean;
layoutName: string;
ownerHandle: string;
materialObjectHandle: number;
lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1;
extendedData?: {
customStrings?: string[];
applicationName?: string;
originalHandle?: string;
originalType?: string;
outlines?: number[][][];
};
type: string;
handle: string;
blockPosition?: IPoint;
attributesFollow?: boolean;
}
export declare type EntityName = "POINT" | "3DFACE" | "ARC" | "ATTDEF" | "ATTRIB" | "CIRCLE" | "DIMENSION" | "MULTILEADER" | "ELLIPSE" | "HATCH" | "IMAGE" | "INSERT" | "LEADER" | "LINE" | "LWPOLYLINE" | "MTEXT" | "OLE2FRAME" | "POLYLINE" | "REGION" | "RAY" | "SEQEND" | "SOLID" | "SPLINE" | "TEXT" | "VERTEX" | "VIEWPORT" | "XLINE";
export default interface IGeometry {
ForEntityName: EntityName;
parseEntity(scanner: DxfBaseReader, curr: IGroup): IEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
/**
* @internal
*/
export interface IPoint {
x: number;
y: number;
z?: number;
bulge?: number;
}
export interface IEntity {
lineType: string;
layer: string;
lineTypeScale: number;
visible: boolean;
colorIndex: number;
color: number;
isTrueColor: boolean;
inPaperSpace: boolean;
layoutName: string;
ownerHandle: string;
materialObjectHandle: number;
lineweight: 0 | 5 | 9 | 13 | 15 | 18 | 20 | 25 | 30 | 35 | 40 | 50 | 53 | 60 | 70 | 80 | 90 | 100 | 106 | 120 | 140 | 158 | 200 | 211 | -3 | -2 | -1;
extendedData?: {
customStrings?: string[];
applicationName?: string;
originalHandle?: string;
originalType?: string;
outlines?: number[][][];
};
type: string;
handle: string;
blockPosition?: IPoint;
attributesFollow?: boolean;
}
export declare type EntityName = "POINT" | "3DFACE" | "ARC" | "ATTDEF" | "ATTRIB" | "CIRCLE" | "DIMENSION" | "MULTILEADER" | "ELLIPSE" | "HATCH" | "IMAGE" | "INSERT" | "LEADER" | "LINE" | "LWPOLYLINE" | "MTEXT" | "OLE2FRAME" | "POLYLINE" | "REGION" | "RAY" | "SEQEND" | "SOLID" | "SPLINE" | "TEXT" | "VERTEX" | "VIEWPORT" | "XLINE";
export default interface IGeometry {
ForEntityName: EntityName;
parseEntity(scanner: DxfBaseReader, curr: IGroup): IEntity;
}

View File

@ -1,108 +1,108 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export declare enum HatchBoundaryPathTypeFlag {
Default = 0,
External = 1,
Polyline = 2,
Derived = 4,
Textbox = 8,
Outermost = 16,
MaxFlags = 31
}
export declare enum HatchEdgeType {
Polyline = 0,
Line = 1,
Arc = 2,
Ellipse = 3,
Spline = 4
}
export declare abstract class HatchEdge {
readonly type: HatchEdgeType;
constructor(type: HatchEdgeType);
}
export declare class HatchPolyline extends HatchEdge {
points: IPoint[];
isClosed: boolean;
constructor();
}
export declare class HatchLine extends HatchEdge {
startPoint: IPoint;
endPoint: IPoint;
constructor();
}
export declare class HatchArc extends HatchEdge {
center: IPoint;
radius: number;
startAngle: number;
endAngle: number;
bCounterclockwise: boolean;
constructor();
}
export declare class HatchEllipse extends HatchEdge {
center: IPoint;
majorAxisEndPoint: IPoint;
minorRatio: number;
startAngle: number;
endAngle: number;
bCounterclockwise: boolean;
constructor();
}
export declare class HatchSpline extends HatchEdge {
controlPoints: IPoint[];
numControlPoints: number;
knotValues: number[];
numKnots: number;
bPeriodic: boolean;
bRational: boolean;
degreeOfSplineCurve: number;
constructor();
}
export interface IHatchBoundaryPath {
edges: HatchEdge[];
pathTypeFlag: HatchBoundaryPathTypeFlag;
}
export declare enum HatchStyle {
Normal = 0,
Outer = 1,
Ignore = 2
}
export declare enum HatchType {
UserDefined = 0,
Predefined = 1,
Custom = 2
}
export interface IHatchPatternLine {
angle: number;
origin: IPoint;
delta: IPoint;
dashPattern: number[];
}
export interface IHatchEntity extends IEntity {
elevationX: number;
elevationY: number;
elevationZ: number;
pixelSize: number;
associativity: boolean;
annotatedBoundary: boolean;
boundaryPathsCount: number;
boundaryPaths: IHatchBoundaryPath[];
seedPointsCount: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
patternName: string;
solidFill: boolean;
patternFillColor: number;
style: HatchStyle;
patternType: HatchType;
patternAngle: number;
patternScale: number;
patternLines?: IHatchPatternLine[];
isGradientColor?: boolean;
gradientColorCount?: number;
gradientColors?: number[];
}
export default class Hatch implements IGeometry {
readonly ForEntityName = "HATCH";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IHatchEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export declare enum HatchBoundaryPathTypeFlag {
Default = 0,
External = 1,
Polyline = 2,
Derived = 4,
Textbox = 8,
Outermost = 16,
MaxFlags = 31
}
export declare enum HatchEdgeType {
Polyline = 0,
Line = 1,
Arc = 2,
Ellipse = 3,
Spline = 4
}
export declare abstract class HatchEdge {
readonly type: HatchEdgeType;
constructor(type: HatchEdgeType);
}
export declare class HatchPolyline extends HatchEdge {
points: IPoint[];
isClosed: boolean;
constructor();
}
export declare class HatchLine extends HatchEdge {
startPoint: IPoint;
endPoint: IPoint;
constructor();
}
export declare class HatchArc extends HatchEdge {
center: IPoint;
radius: number;
startAngle: number;
endAngle: number;
bCounterclockwise: boolean;
constructor();
}
export declare class HatchEllipse extends HatchEdge {
center: IPoint;
majorAxisEndPoint: IPoint;
minorRatio: number;
startAngle: number;
endAngle: number;
bCounterclockwise: boolean;
constructor();
}
export declare class HatchSpline extends HatchEdge {
controlPoints: IPoint[];
numControlPoints: number;
knotValues: number[];
numKnots: number;
bPeriodic: boolean;
bRational: boolean;
degreeOfSplineCurve: number;
constructor();
}
export interface IHatchBoundaryPath {
edges: HatchEdge[];
pathTypeFlag: HatchBoundaryPathTypeFlag;
}
export declare enum HatchStyle {
Normal = 0,
Outer = 1,
Ignore = 2
}
export declare enum HatchType {
UserDefined = 0,
Predefined = 1,
Custom = 2
}
export interface IHatchPatternLine {
angle: number;
origin: IPoint;
delta: IPoint;
dashPattern: number[];
}
export interface IHatchEntity extends IEntity {
elevationX: number;
elevationY: number;
elevationZ: number;
pixelSize: number;
associativity: boolean;
annotatedBoundary: boolean;
boundaryPathsCount: number;
boundaryPaths: IHatchBoundaryPath[];
seedPointsCount: number;
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
patternName: string;
solidFill: boolean;
patternFillColor: number;
style: HatchStyle;
patternType: HatchType;
patternAngle: number;
patternScale: number;
patternLines?: IHatchPatternLine[];
isGradientColor?: boolean;
gradientColorCount?: number;
gradientColors?: number[];
}
export default class Hatch implements IGeometry {
readonly ForEntityName = "HATCH";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IHatchEntity;
}

View File

@ -1,37 +1,37 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export declare enum ImageFlags {
ShowImage = 1,
ShowImageWhenNotAlignedWithScreen = 2,
UseClippingBoundary = 4,
TransparencyIsOn = 8
}
export declare enum ImageClippingBoundaryType {
Rectangular = 1,
Polygonal = 2
}
export declare enum ImageClipMode {
Outside = 0,
Inside = 1
}
export interface IImageEntity extends IEntity {
position: IPoint;
uPixel: IPoint;
vPixel: IPoint;
imageSize: IPoint;
imageDefHandle: string;
flags: ImageFlags;
clipping: number;
brightness: number;
contrast: number;
fade: number;
imageDefReactorHandle: string;
clippingBoundaryType: ImageClippingBoundaryType;
countBoundaryPoints: number;
clippingBoundaryPath: IPoint[];
clipMode: ImageClipMode;
}
export default class Image implements IGeometry {
ForEntityName: "IMAGE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IImageEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export declare enum ImageFlags {
ShowImage = 1,
ShowImageWhenNotAlignedWithScreen = 2,
UseClippingBoundary = 4,
TransparencyIsOn = 8
}
export declare enum ImageClippingBoundaryType {
Rectangular = 1,
Polygonal = 2
}
export declare enum ImageClipMode {
Outside = 0,
Inside = 1
}
export interface IImageEntity extends IEntity {
position: IPoint;
uPixel: IPoint;
vPixel: IPoint;
imageSize: IPoint;
imageDefHandle: string;
flags: ImageFlags;
clipping: number;
brightness: number;
contrast: number;
fade: number;
imageDefReactorHandle: string;
clippingBoundaryType: ImageClippingBoundaryType;
countBoundaryPoints: number;
clippingBoundaryPath: IPoint[];
clipMode: ImageClipMode;
}
export default class Image implements IGeometry {
ForEntityName: "IMAGE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IImageEntity;
}

View File

@ -1,20 +1,20 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IInsertEntity extends IEntity {
block: string;
attributesFollow: boolean;
xScale: number;
yScale: number;
zScale: number;
position: IPoint;
rotation: number;
columnCount: number;
rowCount: number;
columnSpacing: number;
rowSpacing: number;
extrusionDirection: IPoint;
}
export default class Insert implements IGeometry {
ForEntityName: "INSERT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IInsertEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IInsertEntity extends IEntity {
block: string;
attributesFollow: boolean;
xScale: number;
yScale: number;
zScale: number;
position: IPoint;
rotation: number;
columnCount: number;
rowCount: number;
columnSpacing: number;
rowSpacing: number;
extrusionDirection: IPoint;
}
export default class Insert implements IGeometry {
ForEntityName: "INSERT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IInsertEntity;
}

View File

@ -1,23 +1,23 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ILeaderEntity extends IEntity {
dimensionStyle: string;
position: IPoint;
textHeight: number;
textWidth: number;
rotation: number;
arrowFlag: number;
pathType: number;
arrowHeight: number;
arrowHeadScale: number;
creationFlag: number;
direction: number;
hasHookline: boolean;
block: string;
arrowHeadBlockHandle: string;
vertices: IPoint[];
}
export default class Leader implements IGeometry {
ForEntityName: "LEADER";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ILeaderEntity extends IEntity {
dimensionStyle: string;
position: IPoint;
textHeight: number;
textWidth: number;
rotation: number;
arrowFlag: number;
pathType: number;
arrowHeight: number;
arrowHeadScale: number;
creationFlag: number;
direction: number;
hasHookline: boolean;
block: string;
arrowHeadBlockHandle: string;
vertices: IPoint[];
}
export default class Leader implements IGeometry {
ForEntityName: "LEADER";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity;
}

View File

@ -1,10 +1,10 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface ILineEntity extends IEntity {
vertices: IPoint[];
extrusionDirection: IPoint;
}
export default class Line implements IGeometry {
ForEntityName: "LINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILineEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface ILineEntity extends IEntity {
vertices: IPoint[];
extrusionDirection: IPoint;
}
export default class Line implements IGeometry {
ForEntityName: "LINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILineEntity;
}

View File

@ -1,21 +1,21 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IVertex extends IPoint {
startWidth?: number;
endWidth?: number;
}
export interface ILwpolylineEntity extends IEntity {
vertices: IVertex[];
elevation?: number;
thickness?: number;
shape: boolean;
hasContinuousLinetypePattern: boolean;
constantWidth?: number;
extrusionDirectionX?: number;
extrusionDirectionY?: number;
extrusionDirectionZ?: number;
}
export default class Lwpolyline implements IGeometry {
ForEntityName: "LWPOLYLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILwpolylineEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IVertex extends IPoint {
startWidth?: number;
endWidth?: number;
}
export interface ILwpolylineEntity extends IEntity {
vertices: IVertex[];
elevation?: number;
thickness?: number;
shape: boolean;
hasContinuousLinetypePattern: boolean;
constantWidth?: number;
extrusionDirectionX?: number;
extrusionDirectionY?: number;
extrusionDirectionZ?: number;
}
export default class Lwpolyline implements IGeometry {
ForEntityName: "LWPOLYLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILwpolylineEntity;
}

View File

@ -1,101 +1,101 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ILeaderEntity extends IEntity {
leaderStyleId: number;
leaderLineType: number;
leaderLineColor: number;
leaderLineTypeId: number;
leaderLineWeight: number;
enableLanding: boolean;
enableDogLeg: boolean;
doglegLength: number;
arrowHeadId: number;
arrowHeadSize: number;
contentType: number;
textStyleId: number;
textLeftAttachmentType: number;
textRightAttachmentType: number;
textAngleType: number;
textAlignmentType: number;
textColor: number;
enableFrameText: boolean;
blockContentId: number;
blockContentColor: number;
blockContentScale: IPoint;
blockContentRotation: number;
blockContentConnectionType: number;
enableAnotationScale: boolean;
arrowHeadIndex: number;
blockAttributeId: number;
blockAttributeIndex: number;
blockAttributeWidth: number;
blockAttributeTextString: string;
textDirectionNegative: boolean;
textAlignInIPE: number;
textAttachmentPoint: number;
textAttachmentDirectionMText: number;
textAttachmentDirectionBottom: number;
textAttachmentDirectionTop: number;
contextData: IMLeaderContextData;
}
export interface IMLeaderContextData {
contentScale: number;
contentBasePosition: IPoint;
textHeight: number;
arrowHeadSize: number;
landingGap: number;
hasMText: boolean;
defaultTextContents: string;
textNormalDirection: IPoint;
textLocation: IPoint;
textDirection: IPoint;
textRotation: number;
textWidth: number;
textLineSpacingFactor: number;
textLineSpacingStyle: number;
textColor: number;
textAttachment: number;
textFlowDirection: number;
textBackgroundColor: number;
textBackgroundScaleFactor: number;
textBackgroundTransparency: number;
textBackgroundColorOn: boolean;
textBackgroundFillOn: boolean;
textColumnType: number;
textUseAutoHeight: boolean;
textColumnWidth: number;
textColumnGutterWidth: number;
textColumnFlowReversed: boolean;
textColumnHeight: number;
textUseWordBreak: boolean;
hasBlock: boolean;
blockContentId: number;
blockContentNormalDirection: IPoint;
blockContentPosition: IPoint;
blockContentScale: number;
blockContentRotation: number;
blockContentColor: number;
blockTransformationMatrix: number[];
planeOriginPoint: IPoint;
planeXAxisDirection: IPoint;
planeYAxisDirection: IPoint;
planeNormalReversed: boolean;
leaders: IMLeaderLeader[];
}
export interface IMLeaderLeader {
hasSetLastLeaderLinePoint: boolean;
hasSetDoglegVector: boolean;
lastLeaderLinePoint: IPoint;
doglegVector: IPoint;
leaderBranchIndex: number;
doglegLength: number;
leaderLines: IMLeaderLine[];
}
export interface IMLeaderLine {
vertices: IPoint[][];
leaderLineIndex: number;
}
export default class MLeader implements IGeometry {
ForEntityName: "MULTILEADER";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ILeaderEntity extends IEntity {
leaderStyleId: number;
leaderLineType: number;
leaderLineColor: number;
leaderLineTypeId: number;
leaderLineWeight: number;
enableLanding: boolean;
enableDogLeg: boolean;
doglegLength: number;
arrowHeadId: number;
arrowHeadSize: number;
contentType: number;
textStyleId: number;
textLeftAttachmentType: number;
textRightAttachmentType: number;
textAngleType: number;
textAlignmentType: number;
textColor: number;
enableFrameText: boolean;
blockContentId: number;
blockContentColor: number;
blockContentScale: IPoint;
blockContentRotation: number;
blockContentConnectionType: number;
enableAnotationScale: boolean;
arrowHeadIndex: number;
blockAttributeId: number;
blockAttributeIndex: number;
blockAttributeWidth: number;
blockAttributeTextString: string;
textDirectionNegative: boolean;
textAlignInIPE: number;
textAttachmentPoint: number;
textAttachmentDirectionMText: number;
textAttachmentDirectionBottom: number;
textAttachmentDirectionTop: number;
contextData: IMLeaderContextData;
}
export interface IMLeaderContextData {
contentScale: number;
contentBasePosition: IPoint;
textHeight: number;
arrowHeadSize: number;
landingGap: number;
hasMText: boolean;
defaultTextContents: string;
textNormalDirection: IPoint;
textLocation: IPoint;
textDirection: IPoint;
textRotation: number;
textWidth: number;
textLineSpacingFactor: number;
textLineSpacingStyle: number;
textColor: number;
textAttachment: number;
textFlowDirection: number;
textBackgroundColor: number;
textBackgroundScaleFactor: number;
textBackgroundTransparency: number;
textBackgroundColorOn: boolean;
textBackgroundFillOn: boolean;
textColumnType: number;
textUseAutoHeight: boolean;
textColumnWidth: number;
textColumnGutterWidth: number;
textColumnFlowReversed: boolean;
textColumnHeight: number;
textUseWordBreak: boolean;
hasBlock: boolean;
blockContentId: number;
blockContentNormalDirection: IPoint;
blockContentPosition: IPoint;
blockContentScale: number;
blockContentRotation: number;
blockContentColor: number;
blockTransformationMatrix: number[];
planeOriginPoint: IPoint;
planeXAxisDirection: IPoint;
planeYAxisDirection: IPoint;
planeNormalReversed: boolean;
leaders: IMLeaderLeader[];
}
export interface IMLeaderLeader {
hasSetLastLeaderLinePoint: boolean;
hasSetDoglegVector: boolean;
lastLeaderLinePoint: IPoint;
doglegVector: IPoint;
leaderBranchIndex: number;
doglegLength: number;
leaderLines: IMLeaderLine[];
}
export interface IMLeaderLine {
vertices: IPoint[][];
leaderLineIndex: number;
}
export default class MLeader implements IGeometry {
ForEntityName: "MULTILEADER";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ILeaderEntity;
}

View File

@ -1,18 +1,18 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IMtextEntity extends IEntity {
text: string;
position: IPoint;
directionVector?: IPoint;
height: number;
width: number;
rotation?: number;
attachmentPoint: number;
drawingDirection: number;
textStyle?: string;
lineSpaceFactor?: number;
}
export default class Mtext implements IGeometry {
ForEntityName: "MTEXT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IMtextEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IMtextEntity extends IEntity {
text: string;
position: IPoint;
directionVector?: IPoint;
height: number;
width: number;
rotation?: number;
attachmentPoint: number;
drawingDirection: number;
textStyle?: string;
lineSpaceFactor?: number;
}
export default class Mtext implements IGeometry {
ForEntityName: "MTEXT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IMtextEntity;
}

View File

@ -1,20 +1,20 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity } from "./geomtry";
export interface IOleEntity extends IEntity {
documentType: string;
version: number;
leftUpX: number;
leftUpY: number;
leftUpZ: number;
rightDownX: number;
rightDownY: number;
rightDownZ: number;
type: string;
tileModeDescriptor: number;
binaryData: string;
lengthOfBinaryData: number;
}
export default class Ole implements IGeometry {
readonly ForEntityName = "OLE2FRAME";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IOleEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity } from "./geomtry";
export interface IOleEntity extends IEntity {
documentType: string;
version: number;
leftUpX: number;
leftUpY: number;
leftUpZ: number;
rightDownX: number;
rightDownY: number;
rightDownZ: number;
type: string;
tileModeDescriptor: number;
binaryData: string;
lengthOfBinaryData: number;
}
export default class Ole implements IGeometry {
readonly ForEntityName = "OLE2FRAME";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IOleEntity;
}

View File

@ -1,11 +1,11 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IPointEntity extends IEntity {
position: IPoint;
thickness: number;
extrusionDirection: IPoint;
}
export default class Point implements IGeometry {
ForEntityName: "POINT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IPointEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IPointEntity extends IEntity {
position: IPoint;
thickness: number;
extrusionDirection: IPoint;
}
export default class Point implements IGeometry {
ForEntityName: "POINT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IPointEntity;
}

View File

@ -1,20 +1,20 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
import { IVertexEntity } from "./vertex";
export interface IPolylineEntity extends IEntity {
vertices: IVertexEntity[];
thickness: number;
shape: boolean;
includesCurveFitVertices: boolean;
includesSplineFitVertices: boolean;
is3dPolyline: boolean;
is3dPolygonMesh: boolean;
is3dPolygonMeshClosed: boolean;
isPolyfaceMesh: boolean;
hasContinuousLinetypePattern: boolean;
extrusionDirection: IPoint;
}
export default class Polyline implements IGeometry {
ForEntityName: "POLYLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IPolylineEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
import { IVertexEntity } from "./vertex";
export interface IPolylineEntity extends IEntity {
vertices: IVertexEntity[];
thickness: number;
shape: boolean;
includesCurveFitVertices: boolean;
includesSplineFitVertices: boolean;
is3dPolyline: boolean;
is3dPolygonMesh: boolean;
is3dPolygonMeshClosed: boolean;
isPolyfaceMesh: boolean;
hasContinuousLinetypePattern: boolean;
extrusionDirection: IPoint;
}
export default class Polyline implements IGeometry {
ForEntityName: "POLYLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IPolylineEntity;
}

View File

@ -1,10 +1,10 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IRayEntity extends IEntity {
vertices: IPoint[];
directionVector: IPoint;
}
export default class Ray implements IGeometry {
ForEntityName: "RAY";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IRayEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IRayEntity extends IEntity {
vertices: IPoint[];
directionVector: IPoint;
}
export default class Ray implements IGeometry {
ForEntityName: "RAY";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IRayEntity;
}

View File

@ -1,10 +1,10 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity } from "./geomtry";
export interface IRegionEntity extends IEntity {
modelerVersion?: number;
proprietaryData?: string;
}
export default class Region implements IGeometry {
ForEntityName: "REGION";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IRegionEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity } from "./geomtry";
export interface IRegionEntity extends IEntity {
modelerVersion?: number;
proprietaryData?: string;
}
export default class Region implements IGeometry {
ForEntityName: "REGION";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IRegionEntity;
}

View File

@ -1,8 +1,8 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity } from './geomtry';
export interface ISeqendEntity extends IEntity {
}
export default class Seqend implements IGeometry {
ForEntityName: "SEQEND";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ISeqendEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity } from './geomtry';
export interface ISeqendEntity extends IEntity {
}
export default class Seqend implements IGeometry {
ForEntityName: "SEQEND";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ISeqendEntity;
}

View File

@ -1,10 +1,10 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ISolidEntity extends IEntity {
points: IPoint[];
extrusionDirection: IPoint;
}
export default class Solid implements IGeometry {
ForEntityName: "SOLID";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ISolidEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ISolidEntity extends IEntity {
points: IPoint[];
extrusionDirection: IPoint;
}
export default class Solid implements IGeometry {
ForEntityName: "SOLID";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ISolidEntity;
}

View File

@ -1,23 +1,23 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ISplineEntity extends IEntity {
controlPoints?: IPoint[];
fitPoints?: IPoint[];
startTangent: IPoint;
endTangent: IPoint;
knotValues: number[];
closed: boolean;
periodic: boolean;
rational: boolean;
planar: boolean;
linear: boolean;
degreeOfSplineCurve: number;
numberOfKnots: number;
numberOfControlPoints: number;
numberOfFitPoints: number;
normalVector: IPoint;
}
export default class Spline implements IGeometry {
ForEntityName: "SPLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ISplineEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ISplineEntity extends IEntity {
controlPoints?: IPoint[];
fitPoints?: IPoint[];
startTangent: IPoint;
endTangent: IPoint;
knotValues: number[];
closed: boolean;
periodic: boolean;
rational: boolean;
planar: boolean;
linear: boolean;
degreeOfSplineCurve: number;
numberOfKnots: number;
numberOfControlPoints: number;
numberOfFitPoints: number;
normalVector: IPoint;
}
export default class Spline implements IGeometry {
ForEntityName: "SPLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ISplineEntity;
}

View File

@ -1,18 +1,18 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ITextEntity extends IEntity {
startPoint: IPoint;
endPoint: IPoint;
textHeight: number;
xScale: number;
rotation: number;
text: string;
textStyle: string;
mirrored: number;
halign: number;
valign: number;
}
export default class Text implements IGeometry {
ForEntityName: "TEXT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ITextEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface ITextEntity extends IEntity {
startPoint: IPoint;
endPoint: IPoint;
textHeight: number;
xScale: number;
rotation: number;
text: string;
textStyle: string;
mirrored: number;
halign: number;
valign: number;
}
export default class Text implements IGeometry {
ForEntityName: "TEXT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ITextEntity;
}

View File

@ -1,20 +1,20 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IVertexEntity extends IEntity, IPoint {
bulge: number;
curveFittingVertex: boolean;
curveFitTangent: boolean;
splineVertex: boolean;
splineControlPoint: boolean;
threeDPolylineVertex: boolean;
threeDPolylineMesh: boolean;
polyfaceMeshVertex: boolean;
faceA: number;
faceB: number;
faceC: number;
faceD: number;
}
export default class Vertex implements IGeometry {
ForEntityName: "VERTEX";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IVertexEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IVertexEntity extends IEntity, IPoint {
bulge: number;
curveFittingVertex: boolean;
curveFitTangent: boolean;
splineVertex: boolean;
splineControlPoint: boolean;
threeDPolylineVertex: boolean;
threeDPolylineMesh: boolean;
polyfaceMeshVertex: boolean;
faceA: number;
faceB: number;
faceC: number;
faceD: number;
}
export default class Vertex implements IGeometry {
ForEntityName: "VERTEX";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IVertexEntity;
}

View File

@ -1,46 +1,46 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IViewportEntity extends IEntity {
centerPoint: IPoint;
width_paperSpace: number;
height_paperSpace: number;
viewportStatus: number;
viewportId: string;
centerPoint_dcs: IPoint;
snapBasePoint_dcs: IPoint;
snapSpacing_dcs: IPoint;
gridSpacing_dcs: IPoint;
viewDirection: IPoint;
viewTarget: IPoint;
perspectiveLens: number;
frontClippingPlaneZ: number;
backClippingPlaneZ: number;
viewHeight: number;
snapAngle: number;
viewTwistAngle: number;
circleZoomPercent: number;
frozenLayerHandles: string[];
viewportStatusFlags: number;
viewportClippingBoundaryhandleId: string;
plotStyleSheetName: string;
renderMode: number;
viewportFlag_ucs: number;
ucsIcon: string;
ucsOrigin: IPoint;
ucsXAxis: IPoint;
ucsYAxis: IPoint;
ucsTableRecordHandle: string;
baseUcsTableRecordHandle: string;
orthographicType: number;
elevation: number;
shadePlotMode: number;
frequency: number;
lightingFlag: number;
lightingType: number;
viewBrightness: number;
viewContrast: number;
}
export default class Viewport implements IGeometry {
ForEntityName: "VIEWPORT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IViewportEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
export interface IViewportEntity extends IEntity {
centerPoint: IPoint;
width_paperSpace: number;
height_paperSpace: number;
viewportStatus: number;
viewportId: string;
centerPoint_dcs: IPoint;
snapBasePoint_dcs: IPoint;
snapSpacing_dcs: IPoint;
gridSpacing_dcs: IPoint;
viewDirection: IPoint;
viewTarget: IPoint;
perspectiveLens: number;
frontClippingPlaneZ: number;
backClippingPlaneZ: number;
viewHeight: number;
snapAngle: number;
viewTwistAngle: number;
circleZoomPercent: number;
frozenLayerHandles: string[];
viewportStatusFlags: number;
viewportClippingBoundaryhandleId: string;
plotStyleSheetName: string;
renderMode: number;
viewportFlag_ucs: number;
ucsIcon: string;
ucsOrigin: IPoint;
ucsXAxis: IPoint;
ucsYAxis: IPoint;
ucsTableRecordHandle: string;
baseUcsTableRecordHandle: string;
orthographicType: number;
elevation: number;
shadePlotMode: number;
frequency: number;
lightingFlag: number;
lightingType: number;
viewBrightness: number;
viewContrast: number;
}
export default class Viewport implements IGeometry {
ForEntityName: "VIEWPORT";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IViewportEntity;
}

View File

@ -1,10 +1,10 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IXLineEntity extends IEntity {
vertices: IPoint[];
directionVector: IPoint;
}
export default class XLine implements IGeometry {
ForEntityName: "XLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IXLineEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from './geomtry';
export interface IXLineEntity extends IEntity {
vertices: IPoint[];
directionVector: IPoint;
}
export default class XLine implements IGeometry {
ForEntityName: "XLINE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): IXLineEntity;
}

View File

@ -1,26 +1,26 @@
export { default, default as DxfParser } from "./DxfParser";
export type { IDxf, IBlock, ILayerTypesTable, ILayersTable, ITables, IViewportTable, IBaseTable, ILayer, ILayerTableDefinition, ILineType, ILineTypeTableDefinition, ITable, ITableDefinitions, IViewport, IViewportTableDefinition, } from "./DxfParser";
export type { IEntity, IPoint } from "./entities/geomtry";
export type { I3DfaceEntity } from "./entities/3dface";
export type { IArcEntity } from "./entities/arc";
export type { IAttdefEntity } from "./entities/attdef";
export type { ICircleEntity } from "./entities/circle";
export type { IDimensionEntity } from "./entities/dimension";
export type { ILeaderEntity } from "./entities/mleader";
export type { IEllipseEntity } from "./entities/ellipse";
export type { IHatchEntity } from "./entities/hatch";
export type { IInsertEntity } from "./entities/insert";
export type { ILineEntity } from "./entities/line";
export type { ILwpolylineEntity } from "./entities/lwpolyline";
export type { IMtextEntity } from "./entities/mtext";
export type { IPointEntity } from "./entities/point";
export type { IPolylineEntity } from "./entities/polyline";
export type { ISolidEntity } from "./entities/solid";
export type { ISplineEntity } from "./entities/spline";
export type { ITextEntity } from "./entities/text";
export type { IVertexEntity } from "./entities/vertex";
export type { IViewportEntity } from "./entities/viewport";
export type { IObject } from "./objects/common";
export type { IImageDefObject } from "./objects/imagedef";
export type { ILayoutObject } from "./objects/layout";
export type { ISortEntsObject, ISortEntsTableObject } from "./objects/sortentstable";
export { default, default as DxfParser } from "./DxfParser";
export type { IDxf, IBlock, ILayerTypesTable, ILayersTable, ITables, IViewportTable, IBaseTable, ILayer, ILayerTableDefinition, ILineType, ILineTypeTableDefinition, ITable, ITableDefinitions, IViewport, IViewportTableDefinition, } from "./DxfParser";
export type { IEntity, IPoint } from "./entities/geomtry";
export type { I3DfaceEntity } from "./entities/3dface";
export type { IArcEntity } from "./entities/arc";
export type { IAttdefEntity } from "./entities/attdef";
export type { ICircleEntity } from "./entities/circle";
export type { IDimensionEntity } from "./entities/dimension";
export type { ILeaderEntity } from "./entities/mleader";
export type { IEllipseEntity } from "./entities/ellipse";
export type { IHatchEntity } from "./entities/hatch";
export type { IInsertEntity } from "./entities/insert";
export type { ILineEntity } from "./entities/line";
export type { ILwpolylineEntity } from "./entities/lwpolyline";
export type { IMtextEntity } from "./entities/mtext";
export type { IPointEntity } from "./entities/point";
export type { IPolylineEntity } from "./entities/polyline";
export type { ISolidEntity } from "./entities/solid";
export type { ISplineEntity } from "./entities/spline";
export type { ITextEntity } from "./entities/text";
export type { IVertexEntity } from "./entities/vertex";
export type { IViewportEntity } from "./entities/viewport";
export type { IObject } from "./objects/common";
export type { IImageDefObject } from "./objects/imagedef";
export type { ILayoutObject } from "./objects/layout";
export type { ISortEntsObject, ISortEntsTableObject } from "./objects/sortentstable";

View File

@ -1,15 +1,15 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
export interface IObject {
type: string;
handle: string;
ownerHandle: string;
extendedData?: {
customStrings?: string[];
applicationName?: string;
};
}
export declare type ObjectName = "ACAD_PROXY_OBJECT" | "ACDBDICTIONARYWDFLT" | "ACDBPLACEHOLDER" | "DATATABLE" | "DICTIONARY" | "DICTIONARYVAR" | "DIMASSOC" | "FIELD" | "GEODATA" | "IDBUFFER" | "IMAGEDEF" | "IMAGEDEF_REACTOR" | "LAYER_INDEX" | "LAYER_FILTER" | "LAYOUT" | "LIGHTLIST" | "MATERIAL" | "MLINESTYLE" | "OBJECT_PTR" | "PLOTSETTINGS" | "RASTERVARIABLES" | "RENDER" | "SECTION" | "SPATIAL_INDEX" | "SPATIAL_FILTER" | "SORTENTSTABLE" | "TABLESTYLE" | "UNDERLAYDEFINITION" | "VISUALSTYLE" | "VBA_PROJECT" | "WIPEOUTVARIABLES" | "XRECORD";
export interface IObjectParser {
ForObjectName: ObjectName;
parseObject(scanner: DxfBaseReader, curr: IGroup): IObject;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
export interface IObject {
type: string;
handle: string;
ownerHandle: string;
extendedData?: {
customStrings?: string[];
applicationName?: string;
};
}
export declare type ObjectName = "ACAD_PROXY_OBJECT" | "ACDBDICTIONARYWDFLT" | "ACDBPLACEHOLDER" | "DATATABLE" | "DICTIONARY" | "DICTIONARYVAR" | "DIMASSOC" | "FIELD" | "GEODATA" | "IDBUFFER" | "IMAGEDEF" | "IMAGEDEF_REACTOR" | "LAYER_INDEX" | "LAYER_FILTER" | "LAYOUT" | "LIGHTLIST" | "MATERIAL" | "MLINESTYLE" | "OBJECT_PTR" | "PLOTSETTINGS" | "RASTERVARIABLES" | "RENDER" | "SECTION" | "SPATIAL_INDEX" | "SPATIAL_FILTER" | "SORTENTSTABLE" | "TABLESTYLE" | "UNDERLAYDEFINITION" | "VISUALSTYLE" | "VBA_PROJECT" | "WIPEOUTVARIABLES" | "XRECORD";
export interface IObjectParser {
ForObjectName: ObjectName;
parseObject(scanner: DxfBaseReader, curr: IGroup): IObject;
}

View File

@ -1,19 +1,19 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IObject, IObjectParser } from "./common";
export declare enum DictionaryCloningFlags {
NotApplicable = 0,
KeepExisting = 1,
UseClone = 2,
XrefName = 3,
Name = 4,
UnmangleName = 5
}
export interface IDictionaryObject extends IObject {
entries: Record<string, string>;
isHardOwner: boolean;
cloningFlag: DictionaryCloningFlags;
}
export declare class Dictionary implements IObjectParser {
ForObjectName: "DICTIONARY";
parseObject(scanner: DxfBaseReader, curr: IGroup): IDictionaryObject;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IObject, IObjectParser } from "./common";
export declare enum DictionaryCloningFlags {
NotApplicable = 0,
KeepExisting = 1,
UseClone = 2,
XrefName = 3,
Name = 4,
UnmangleName = 5
}
export interface IDictionaryObject extends IObject {
entries: Record<string, string>;
isHardOwner: boolean;
cloningFlag: DictionaryCloningFlags;
}
export declare class Dictionary implements IObjectParser {
ForObjectName: "DICTIONARY";
parseObject(scanner: DxfBaseReader, curr: IGroup): IDictionaryObject;
}

View File

@ -1,24 +1,24 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IPoint } from "../entities/geomtry";
import { IObject, IObjectParser } from "./common";
export declare enum ImgaeDefLoaded {
Unloaded = 0,
Loaded = 1
}
export declare enum ImageDefResolutionUnits {
NoUnits = 0,
Centimeters = 2,
Inches = 5
}
export interface IImageDefObject extends IObject {
classVersion: number;
filename: string;
imageSize: IPoint;
pixelSize: IPoint;
loaded: ImgaeDefLoaded;
resolutionUnits: ImageDefResolutionUnits;
}
export declare class ImageDef implements IObjectParser {
ForObjectName: "IMAGEDEF";
parseObject(scanner: DxfBaseReader, curr: IGroup): IImageDefObject;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IPoint } from "../entities/geomtry";
import { IObject, IObjectParser } from "./common";
export declare enum ImgaeDefLoaded {
Unloaded = 0,
Loaded = 1
}
export declare enum ImageDefResolutionUnits {
NoUnits = 0,
Centimeters = 2,
Inches = 5
}
export interface IImageDefObject extends IObject {
classVersion: number;
filename: string;
imageSize: IPoint;
pixelSize: IPoint;
loaded: ImgaeDefLoaded;
resolutionUnits: ImageDefResolutionUnits;
}
export declare class ImageDef implements IObjectParser {
ForObjectName: "IMAGEDEF";
parseObject(scanner: DxfBaseReader, curr: IGroup): IImageDefObject;
}

View File

@ -1,29 +1,29 @@
import { IObject, IObjectParser } from './common';
import { DxfBaseReader, IGroup } from '../DxfBaseReader';
import { IPoint } from '../entities/geomtry';
/**
* @internal
*/
export interface ILayoutObject extends IObject {
plotSettings?: object;
layoutName: string;
flag: number;
tabOrder: number;
minLimit: IPoint;
maxLimit: IPoint;
basePoint: IPoint;
minExtent: IPoint;
maxExtent: IPoint;
elevation: number;
origin: IPoint;
XAxis: IPoint;
YAxis: IPoint;
orthographicType: number;
blockTableHandle: string;
viewportHandle: string;
associatedBlockName: string;
}
export declare class Layout implements IObjectParser {
ForObjectName: "LAYOUT";
parseObject(scanner: DxfBaseReader, curr: IGroup): ILayoutObject;
}
import { IObject, IObjectParser } from './common';
import { DxfBaseReader, IGroup } from '../DxfBaseReader';
import { IPoint } from '../entities/geomtry';
/**
* @internal
*/
export interface ILayoutObject extends IObject {
plotSettings?: object;
layoutName: string;
flag: number;
tabOrder: number;
minLimit: IPoint;
maxLimit: IPoint;
basePoint: IPoint;
minExtent: IPoint;
maxExtent: IPoint;
elevation: number;
origin: IPoint;
XAxis: IPoint;
YAxis: IPoint;
orthographicType: number;
blockTableHandle: string;
viewportHandle: string;
associatedBlockName: string;
}
export declare class Layout implements IObjectParser {
ForObjectName: "LAYOUT";
parseObject(scanner: DxfBaseReader, curr: IGroup): ILayoutObject;
}

View File

@ -1,12 +1,12 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IObject, IObjectParser } from "./common";
export interface ISortEntsObject extends IObject {
entityHandles: string[][];
}
export interface ISortEntsTableObject extends IObject {
sortEntsObject: ISortEntsObject;
}
export declare class SortEntsTable implements IObjectParser {
ForObjectName: "SORTENTSTABLE";
parseObject(scanner: DxfBaseReader, curr: IGroup): ISortEntsTableObject;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IObject, IObjectParser } from "./common";
export interface ISortEntsObject extends IObject {
entityHandles: string[][];
}
export interface ISortEntsTableObject extends IObject {
sortEntsObject: ISortEntsObject;
}
export declare class SortEntsTable implements IObjectParser {
ForObjectName: "SORTENTSTABLE";
parseObject(scanner: DxfBaseReader, curr: IGroup): ISortEntsTableObject;
}

View File

@ -1,22 +1,22 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IPoint } from "../entities/geomtry";
import { IObject, IObjectParser } from "./common";
export interface ISpatialFilterObject extends IObject {
origin: IPoint;
numberOfPointsOnClipBoundary: number;
vertices: IPoint[];
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
clipBoundaryVisible: boolean;
frontClippingPlaneFlag: boolean;
frontClippingPlaneDistance: number;
backClippingPlaneFlag: boolean;
backClippingPlaneDistance: number;
matrix: number[];
invertBlockMatrix: number[];
}
export declare class SpatialFilter implements IObjectParser {
ForObjectName: "SPATIAL_FILTER";
parseObject(scanner: DxfBaseReader, curr: IGroup): ISpatialFilterObject;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IPoint } from "../entities/geomtry";
import { IObject, IObjectParser } from "./common";
export interface ISpatialFilterObject extends IObject {
origin: IPoint;
numberOfPointsOnClipBoundary: number;
vertices: IPoint[];
extrusionDirectionX: number;
extrusionDirectionY: number;
extrusionDirectionZ: number;
clipBoundaryVisible: boolean;
frontClippingPlaneFlag: boolean;
frontClippingPlaneDistance: number;
backClippingPlaneFlag: boolean;
backClippingPlaneDistance: number;
matrix: number[];
invertBlockMatrix: number[];
}
export declare class SpatialFilter implements IObjectParser {
ForObjectName: "SPATIAL_FILTER";
parseObject(scanner: DxfBaseReader, curr: IGroup): ISpatialFilterObject;
}

View File

@ -1,11 +1,11 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IObject, IObjectParser } from "./common";
import { DictionaryCloningFlags } from "./dictionary";
export interface IXRecord extends IObject {
binaryData: string | undefined;
cloningFlag: DictionaryCloningFlags;
}
export declare class XRecord implements IObjectParser {
ForObjectName: "XRECORD";
parseObject(scanner: DxfBaseReader, curr: IGroup): IXRecord;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import { IObject, IObjectParser } from "./common";
import { DictionaryCloningFlags } from "./dictionary";
export interface IXRecord extends IObject {
binaryData: string | undefined;
cloningFlag: DictionaryCloningFlags;
}
export declare class XRecord implements IObjectParser {
ForObjectName: "XRECORD";
parseObject(scanner: DxfBaseReader, curr: IGroup): IXRecord;
}

View File

@ -1,151 +1,151 @@
import * as THREE from "three";
import type { DxfEntity } from "./DxfLoader";
import type { DxfCompareConfig } from "../../core/Configs";
import { IDxf } from "../../core/dxf-parser";
/**
* Dxf change type, which can be "Added", "Removed" or "Modified".
*
* Note that a "Modified" change can be represented as a "Removed" and an "Added" types.
*
* The system can display "Added" object in a specific color (green, etc.),
* and "Removed" in another color (red, etc.).
*/
export declare enum DxfChangeType {
Added = "Added",
Removed = "Removed",
Modified = "Modified",
NoChange = "NoChange"
}
/**
* Dxf compare detail changes.
* It supports:
* - color
* - lineType
* - constantWidth (polyline width)
*/
export declare type DxfDetailChanges = {
[propName: string]: {
/**
* The old value.
*/
old: unknown;
/**
* The new value.
*/
new: unknown;
};
};
/**
* Describes a dxf change
*/
export interface DxfChange {
/**
* An integer type id. It is unique in the lifecycle of a DxfViewer.
*/
id: number;
/**
* Change type, which can be "Added", "Removed", "Modified" or "NoChange".
*/
type: DxfChangeType;
/**
* AutoCAD entity handle
*/
handle: string;
/**
* @internal
*/
parentHandles?: string[];
/**
* @internal
*/
box?: THREE.Box3;
detailChanges?: DxfDetailChanges;
}
/**
* Used to compare two drawings/dxfs.
* - Consider model space only.
* - Consider entity's geometry, position, scale, etc.
* - Ignore layer's visibility, freeze settings.
* - Ignore entity's properties like linetype, fill pattern, font, color, etc.
* - Ignore spatial filter (xclip) of block reference.
* - We compare entities with the same handle and type. e.g.
* - if line A from dxf1 has the same handle with arc A from dxf2, then line A is "Removed", arc A is "Added".
* - For color, it compares color setting rather than the actual color. E.g.
* - If a color setting is "ByLayer", but the layer's color is changed. We take this case as unchanged.
* - If a color setting is "ByLayer", the setting is changed to "ByBlock", while the layer and block actually have the same color. We take this case as changed.
* @internal
*/
export declare class DxfCompare {
static readonly ENTITY_COLOR_ADDED = 65280;
static readonly ENTITY_COLOR_REMOVED = 16711680;
static readonly ENTITY_COLOR_NO_CHANGE = 10066329;
static readonly ENTITY_COLOR_MARKUP = 16744231;
private dxf1;
private dxf2;
private changes;
private comparedBlocks;
private isComparingBlock;
private isComparingDimension;
private enableDetailComparision;
static readonly ignoreEntityTypes: string[];
constructor(dxf1: IDxf, dxf2: IDxf, compareCfg?: DxfCompareConfig);
private getLayerFrozen;
/**
* Compares model spaces of two dxf files.
* Returns DxfChange map, the key is incremental integer starts from 1.
* It is unique in the lifecycle of a DxfViewer.
*/
compare(onProgress?: (event: ProgressEvent) => void): Promise<Record<number, DxfChange>>;
private isDimensionBlock;
compareInsertOrDemensionEntities(a: DxfEntity, b: DxfEntity, parentHandle1?: string, parentHandle2?: string): {
type: DxfChangeType;
handle: string;
parentHandles?: string[] | undefined;
}[] | undefined;
private compareBlock;
private compareEntities;
private bIgnoreChildEntitiesOriginalType;
private entitiesEqual;
private getColor;
private getLineType;
private addModificationItem;
private baseEntitiesEqual;
private arcsEqual;
private linesEqual;
private polylinesEqual;
private textsEqual;
private solidsEqual;
private pointEntitiesEqual;
private splinesEqual;
private mtextsEqual;
private ellipsesEqual;
private attDefsEqual;
private attribsEqual;
private hatchesEqual;
private viewportsEqual;
private leadersEqual;
private mleadersEqual;
private ole2framesEqual;
private insertsEqual;
private dimensionsEqual;
private regionsEqual;
private vectorsEqual;
private pointsEqual;
private vertexEntityEqual;
private numbersEqual;
private numberEqual;
private vectorArraysEqual;
private verticesEqual;
private verticesArrayEqual;
private vertexEntitiesEqual;
private hatchEdgesEqual;
private hatchEdgeArraysEqual;
private hatchBoundaryPathsEqual;
private hatchBoundaryPathArraysEqual;
private mleaderLineEqual;
private mleaderLinesEqual;
private mleaderLeaderEqual;
private mleaderLeadersEqual;
private mleaderContextEqual;
private compareHexStrings;
}
import * as THREE from "three";
import type { DxfEntity } from "./DxfLoader";
import type { DxfCompareConfig } from "../../core/Configs";
import { IDxf } from "../../core/dxf-parser";
/**
* Dxf change type, which can be "Added", "Removed" or "Modified".
*
* Note that a "Modified" change can be represented as a "Removed" and an "Added" types.
*
* The system can display "Added" object in a specific color (green, etc.),
* and "Removed" in another color (red, etc.).
*/
export declare enum DxfChangeType {
Added = "Added",
Removed = "Removed",
Modified = "Modified",
NoChange = "NoChange"
}
/**
* Dxf compare detail changes.
* It supports:
* - color
* - lineType
* - constantWidth (polyline width)
*/
export declare type DxfDetailChanges = {
[propName: string]: {
/**
* The old value.
*/
old: unknown;
/**
* The new value.
*/
new: unknown;
};
};
/**
* Describes a dxf change
*/
export interface DxfChange {
/**
* An integer type id. It is unique in the lifecycle of a DxfViewer.
*/
id: number;
/**
* Change type, which can be "Added", "Removed", "Modified" or "NoChange".
*/
type: DxfChangeType;
/**
* AutoCAD entity handle
*/
handle: string;
/**
* @internal
*/
parentHandles?: string[];
/**
* @internal
*/
box?: THREE.Box3;
detailChanges?: DxfDetailChanges;
}
/**
* Used to compare two drawings/dxfs.
* - Consider model space only.
* - Consider entity's geometry, position, scale, etc.
* - Ignore layer's visibility, freeze settings.
* - Ignore entity's properties like linetype, fill pattern, font, color, etc.
* - Ignore spatial filter (xclip) of block reference.
* - We compare entities with the same handle and type. e.g.
* - if line A from dxf1 has the same handle with arc A from dxf2, then line A is "Removed", arc A is "Added".
* - For color, it compares color setting rather than the actual color. E.g.
* - If a color setting is "ByLayer", but the layer's color is changed. We take this case as unchanged.
* - If a color setting is "ByLayer", the setting is changed to "ByBlock", while the layer and block actually have the same color. We take this case as changed.
* @internal
*/
export declare class DxfCompare {
static readonly ENTITY_COLOR_ADDED = 65280;
static readonly ENTITY_COLOR_REMOVED = 16711680;
static readonly ENTITY_COLOR_NO_CHANGE = 10066329;
static readonly ENTITY_COLOR_MARKUP = 16744231;
private dxf1;
private dxf2;
private changes;
private comparedBlocks;
private isComparingBlock;
private isComparingDimension;
private enableDetailComparision;
static readonly ignoreEntityTypes: string[];
constructor(dxf1: IDxf, dxf2: IDxf, compareCfg?: DxfCompareConfig);
private getLayerFrozen;
/**
* Compares model spaces of two dxf files.
* Returns DxfChange map, the key is incremental integer starts from 1.
* It is unique in the lifecycle of a DxfViewer.
*/
compare(onProgress?: (event: ProgressEvent) => void): Promise<Record<number, DxfChange>>;
private isDimensionBlock;
compareInsertOrDemensionEntities(a: DxfEntity, b: DxfEntity, parentHandle1?: string, parentHandle2?: string): {
type: DxfChangeType;
handle: string;
parentHandles?: string[] | undefined;
}[] | undefined;
private compareBlock;
private compareEntities;
private bIgnoreChildEntitiesOriginalType;
private entitiesEqual;
private getColor;
private getLineType;
private addModificationItem;
private baseEntitiesEqual;
private arcsEqual;
private linesEqual;
private polylinesEqual;
private textsEqual;
private solidsEqual;
private pointEntitiesEqual;
private splinesEqual;
private mtextsEqual;
private ellipsesEqual;
private attDefsEqual;
private attribsEqual;
private hatchesEqual;
private viewportsEqual;
private leadersEqual;
private mleadersEqual;
private ole2framesEqual;
private insertsEqual;
private dimensionsEqual;
private regionsEqual;
private vectorsEqual;
private pointsEqual;
private vertexEntityEqual;
private numbersEqual;
private numberEqual;
private vectorArraysEqual;
private verticesEqual;
private verticesArrayEqual;
private vertexEntitiesEqual;
private hatchEdgesEqual;
private hatchEdgeArraysEqual;
private hatchBoundaryPathsEqual;
private hatchBoundaryPathArraysEqual;
private mleaderLineEqual;
private mleaderLinesEqual;
private mleaderLeaderEqual;
private mleaderLeadersEqual;
private mleaderContextEqual;
private compareHexStrings;
}

View File

@ -1,15 +1,15 @@
/**
* Constants used by dxf
*/
export declare const BYLAYER = "BYLAYER";
export declare const BYBLOCK = "BYBLOCK";
export declare enum DxfRenderOrder {
Mesh = -1,
MeshWithPattern = 0,
LineWithWidth = 1,
Line = 2,
LineWithPattern = 3,
Point = 4,
Text = 5
}
export declare const NestCompareTypes: string[];
/**
* Constants used by dxf
*/
export declare const BYLAYER = "BYLAYER";
export declare const BYBLOCK = "BYBLOCK";
export declare enum DxfRenderOrder {
Mesh = -1,
MeshWithPattern = 0,
LineWithWidth = 1,
Line = 2,
LineWithPattern = 3,
Point = 4,
Text = 5
}
export declare const NestCompareTypes: string[];

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,32 @@
import { Box3, BufferGeometry, Object3D, Layers, Material, Matrix4 } from "three";
export declare enum ObjectType {
Object = 0,
Point = 1,
Line = 2,
LineSegment = 3,
Mesh = 4
}
export declare type CallBack = (object: DxfObject) => void;
export declare class DxfObject {
name: string;
type: ObjectType;
matrix: Matrix4;
parent?: DxfObject;
children: DxfObject[];
layers: Layers;
renderOrder: number;
userData: any;
material?: Material;
geometry?: BufferGeometry;
matrixWorld?: Matrix4;
constructor(type?: ObjectType);
add(object: DxfObject, ...args: DxfObject[]): this;
remove(object: DxfObject, ...args: DxfObject[]): this;
removeFromParent(): this;
clear(): this;
traverse(callback: CallBack): void;
clone(recursive?: boolean): DxfObject;
copy(source: DxfObject, recursive?: boolean): this;
convertToThreejsObject(recursive?: boolean): Object3D<import("three").Event> | undefined;
static getBox(object: DxfObject, box: THREE.Box3, parentMatrix?: Matrix4): Box3;
}
import { Box3, BufferGeometry, Object3D, Layers, Material, Matrix4 } from "three";
export declare enum ObjectType {
Object = 0,
Point = 1,
Line = 2,
LineSegment = 3,
Mesh = 4
}
export declare type CallBack = (object: DxfObject) => void;
export declare class DxfObject {
name: string;
type: ObjectType;
matrix: Matrix4;
parent?: DxfObject;
children: DxfObject[];
layers: Layers;
renderOrder: number;
userData: any;
material?: Material;
geometry?: BufferGeometry;
matrixWorld?: Matrix4;
constructor(type?: ObjectType);
add(object: DxfObject, ...args: DxfObject[]): this;
remove(object: DxfObject, ...args: DxfObject[]): this;
removeFromParent(): this;
clear(): this;
traverse(callback: CallBack): void;
clone(recursive?: boolean): DxfObject;
copy(source: DxfObject, recursive?: boolean): this;
convertToThreejsObject(recursive?: boolean): Object3D<import("three").Event> | undefined;
static getBox(object: DxfObject, box: THREE.Box3, parentMatrix?: Matrix4): Box3;
}

View File

@ -1,79 +1,79 @@
import { DxfObject } from "../../core/dxf/DxfObject";
/**
* MergeHelper class is used to merge child objects for a given object
* @internal
*/
export declare class DxfUtils {
static mergeInfo: {
removedObjects: number;
mergedMeshes: number;
mergedLines: number;
mergedPoints: number;
mergedUnknownTypeObjects: number;
elapsedTime: number;
};
static resetMergeInfo(): void;
/**
* Merges child objects for given object.
* it tries to merge objects in the same level and with the same parent;
* @param saveBatchInfo caller can set saveBatchInfo to true, so that s/he can
* get the object's original data before merged.
* While this takes some extra space, so, we'd like to add a flag here.
*/
static merge(object: DxfObject, saveBatchInfo?: boolean): void;
/**
* Merges child objects of given object.
* If objects' material are the same, they can be merged.
*/
private static mergeInner;
/**
* @param object parent object or THREE.Object3D[]
* @param i index of for object.children[]
* @param k index of for object.children[]
* @param dict to store merge-able object
* @param nonMergeIndexes used in order to improve performance
*/
private static tryHandleMergeableObjects;
/**
* TODO: Filters XC etc.
* there are cases where entities with xc and without xc are merged together
*/
private static isFilteredByOtherFactors;
/**
* Merges all objects of given object, just leaf children.
* If objects' material are the same, they can be merged.
* Better to call mergeInner first then deepMerge for a better performance.
* return \{ "added": THREE.Object3D[], "removed": THREE.Object3D[] \}
*/
static deepMerge(objects: DxfObject[], levelObject?: DxfObject | undefined, bRemovedAndAddedAfterMerge?: boolean, bRemoveEmptyObjectsAfterMerge?: boolean, saveBatchInfo?: boolean): {
added: DxfObject[];
removed: DxfObject[];
};
/**
* since we'll move geometry to another merged mesh under a group, below is the structure:
- root object
- merged objects group
- merged object 1
* need to consider a geometry's matrix for each level of ancestor
*/
private static applyMatrix;
/**
* Merges geometries for lines
*/
/**
* Removes a number from array
*/
private static removeFromArray;
/**
* Checks if two geometries are mergable.
* It requires they have the same type and the same attributes.
*/
/**
* Checks if two objects are mergable.
* It requires
* - They are with the same masks.
* - Their userData.layerName must be the same if there is. This is useful for Dxf.
* - They have the same type or the same draw type( Mesh or Line or Point).
*/
private static areObjectsMergeable;
}
import { DxfObject } from "../../core/dxf/DxfObject";
/**
* MergeHelper class is used to merge child objects for a given object
* @internal
*/
export declare class DxfUtils {
static mergeInfo: {
removedObjects: number;
mergedMeshes: number;
mergedLines: number;
mergedPoints: number;
mergedUnknownTypeObjects: number;
elapsedTime: number;
};
static resetMergeInfo(): void;
/**
* Merges child objects for given object.
* it tries to merge objects in the same level and with the same parent;
* @param saveBatchInfo caller can set saveBatchInfo to true, so that s/he can
* get the object's original data before merged.
* While this takes some extra space, so, we'd like to add a flag here.
*/
static merge(object: DxfObject, saveBatchInfo?: boolean): void;
/**
* Merges child objects of given object.
* If objects' material are the same, they can be merged.
*/
private static mergeInner;
/**
* @param object parent object or THREE.Object3D[]
* @param i index of for object.children[]
* @param k index of for object.children[]
* @param dict to store merge-able object
* @param nonMergeIndexes used in order to improve performance
*/
private static tryHandleMergeableObjects;
/**
* TODO: Filters XC etc.
* there are cases where entities with xc and without xc are merged together
*/
private static isFilteredByOtherFactors;
/**
* Merges all objects of given object, just leaf children.
* If objects' material are the same, they can be merged.
* Better to call mergeInner first then deepMerge for a better performance.
* return \{ "added": THREE.Object3D[], "removed": THREE.Object3D[] \}
*/
static deepMerge(objects: DxfObject[], levelObject?: DxfObject | undefined, bRemovedAndAddedAfterMerge?: boolean, bRemoveEmptyObjectsAfterMerge?: boolean, saveBatchInfo?: boolean): {
added: DxfObject[];
removed: DxfObject[];
};
/**
* since we'll move geometry to another merged mesh under a group, below is the structure:
- root object
- merged objects group
- merged object 1
* need to consider a geometry's matrix for each level of ancestor
*/
private static applyMatrix;
/**
* Merges geometries for lines
*/
/**
* Removes a number from array
*/
private static removeFromArray;
/**
* Checks if two geometries are mergable.
* It requires they have the same type and the same attributes.
*/
/**
* Checks if two objects are mergable.
* It requires
* - They are with the same masks.
* - Their userData.layerName must be the same if there is. This is useful for Dxf.
* - They have the same type or the same draw type( Mesh or Line or Point).
*/
private static areObjectsMergeable;
}

View File

@ -1,12 +1,12 @@
import * as THREE from "three";
export interface PatternLine {
origin: THREE.Vector2;
delta: THREE.Vector2;
angle: number;
pattern: number[];
patternSum: number[];
patternLength: number;
}
export declare function createHatchPatternShaderMaterial(patternLines: PatternLine[], patternAngle: number, cameraZoomUniform: {
value: number;
}, color: THREE.Color): THREE.Material;
import * as THREE from "three";
export interface PatternLine {
origin: THREE.Vector2;
delta: THREE.Vector2;
angle: number;
pattern: number[];
patternSum: number[];
patternLength: number;
}
export declare function createHatchPatternShaderMaterial(patternLines: PatternLine[], patternAngle: number, cameraZoomUniform: {
value: number;
}, color: THREE.Color): THREE.Material;

View File

@ -1,12 +1,12 @@
import * as THREE from "three";
export declare class LinePatternShaders {
/**
* Creates line shader by given pattern.
* Note: remember to call line.computeLineDistances() in order to make it work!
*/
static createLineShaderMaterial(pattern: number[], color: number, scale: number, viewportScaleUniform: {
value: number;
}, cameraZoomUniform: {
value: number;
}): THREE.Material;
}
import * as THREE from "three";
export declare class LinePatternShaders {
/**
* Creates line shader by given pattern.
* Note: remember to call line.computeLineDistances() in order to make it work!
*/
static createLineShaderMaterial(pattern: number[], color: number, scale: number, viewportScaleUniform: {
value: number;
}, cameraZoomUniform: {
value: number;
}): THREE.Material;
}

View File

@ -1,8 +1,8 @@
/**
* Copied and ported to code standard as the b-spline library is not maintained any longer.
* Source:
* https://github.com/thibauts/b-spline
* Copyright (c) 2015 Thibaut Séguy <thibaut.seguy@gmail.com>
*/
declare const _default: (t: number, degree: number, points: number[][], knots: number[], weights?: number[]) => number[];
export default _default;
/**
* Copied and ported to code standard as the b-spline library is not maintained any longer.
* Source:
* https://github.com/thibauts/b-spline
* Copyright (c) 2015 Thibaut Séguy <thibaut.seguy@gmail.com>
*/
declare const _default: (t: number, degree: number, points: number[][], knots: number[], weights?: number[]) => number[];
export default _default;

View File

@ -1,46 +1,46 @@
/**
* @internal
*/
export declare type DxfMTextContentElement = DxfMTextContentElement[] | string | {
/** font family */
f?: string;
/** bold */
b?: 0 | 1;
/** italic */
i?: 0 | 1;
/** code page */
c?: number;
/** pitch */
p?: number;
/** angle in degrees */
Q?: number;
/** character height (with unit) */
H?: [number, string];
/** character width (with unit) */
W?: [number, string];
/** stacking */
S?: [string, "^" | "/" | "#", string];
/** alignment (0: bottom, 1: center, 2: top) */
A?: 0 | 1 | 2;
/** color index */
C?: number;
/** character spacing */
T?: number;
/** underscore */
L?: 0 | 1;
/** overscore */
O?: 0 | 1;
/** strike through */
K?: 0 | 1;
};
/**
* @internal
* [{f:""},
* {W:[,]},
* {C:number},
* ...
* ""] // The last one must be the test string
*/
export declare const parseDxfMTextContent: (s: string, options?: {
readonly encoding?: string | TextDecoder | undefined;
} | undefined) => DxfMTextContentElement[];
/**
* @internal
*/
export declare type DxfMTextContentElement = DxfMTextContentElement[] | string | {
/** font family */
f?: string;
/** bold */
b?: 0 | 1;
/** italic */
i?: 0 | 1;
/** code page */
c?: number;
/** pitch */
p?: number;
/** angle in degrees */
Q?: number;
/** character height (with unit) */
H?: [number, string];
/** character width (with unit) */
W?: [number, string];
/** stacking */
S?: [string, "^" | "/" | "#", string];
/** alignment (0: bottom, 1: center, 2: top) */
A?: 0 | 1 | 2;
/** color index */
C?: number;
/** character spacing */
T?: number;
/** underscore */
L?: 0 | 1;
/** overscore */
O?: 0 | 1;
/** strike through */
K?: 0 | 1;
};
/**
* @internal
* [{f:""},
* {W:[,]},
* {C:number},
* ...
* ""] // The last one must be the test string
*/
export declare const parseDxfMTextContent: (s: string, options?: {
readonly encoding?: string | TextDecoder | undefined;
} | undefined) => DxfMTextContentElement[];

View File

@ -1,16 +1,16 @@
export interface DxfTextContentElement {
/** text content */
text: string;
/** strike-through */
k?: 1;
/** overscore */
o?: 1;
/** underscore */
u?: 1;
}
export declare const decodeDxfTextCharacterCodes: (text: string, mbcsEncoding?: string | TextDecoder) => string;
export declare const decodeDxfTextUnicodeCodePoints: (text: string) => string;
export declare const decodeDxfTextMbcsCharacterCodes: (text: string, encoding: string | TextDecoder) => string;
export declare const parseDxfTextContent: (text: string, options?: {
readonly encoding?: string | TextDecoder;
}) => DxfTextContentElement[];
export interface DxfTextContentElement {
/** text content */
text: string;
/** strike-through */
k?: 1;
/** overscore */
o?: 1;
/** underscore */
u?: 1;
}
export declare const decodeDxfTextCharacterCodes: (text: string, mbcsEncoding?: string | TextDecoder) => string;
export declare const decodeDxfTextUnicodeCodePoints: (text: string) => string;
export declare const decodeDxfTextMbcsCharacterCodes: (text: string, encoding: string | TextDecoder) => string;
export declare const parseDxfTextContent: (text: string, options?: {
readonly encoding?: string | TextDecoder;
}) => DxfTextContentElement[];

View File

@ -1,10 +1,10 @@
export * from "./DxfCompare";
export * from "./DxfLoader";
export * as bspline from "./bspline";
export * from "./dxfom-mtext";
export * as round10 from "./round10";
export * from "./DxfConstants";
export * from "./DxfUtils";
export * from "./HatchPatternShaders";
export * from "./LinePatternShaders";
export * from "./dxfom-text";
export * from "./DxfCompare";
export * from "./DxfLoader";
export * as bspline from "./bspline";
export * from "./dxfom-mtext";
export * as round10 from "./round10";
export * from "./DxfConstants";
export * from "./DxfUtils";
export * from "./HatchPatternShaders";
export * from "./LinePatternShaders";
export * from "./dxfom-text";

View File

@ -1,2 +1,2 @@
declare const _default: (value: any, exp: any) => number;
export default _default;
declare const _default: (value: any, exp: any) => number;
export default _default;

View File

@ -1,40 +1,40 @@
import { Font } from "three/examples/jsm/loaders/FontLoader.js";
import { FontDataTableRecord } from "../indexeddb";
import { Orientation } from "./shx";
export declare abstract class BaseFont extends Font {
info: string;
orientation: Orientation;
baseUp: number;
baseDown: number;
fileHeader: string;
fileVersion: string;
fileName: string;
data: any;
order: number;
unsupportedChars: Record<string, number>;
constructor(fileName: string, fileData: any);
abstract getCharShape(char: string, size: number): THREE.Shape | undefined;
abstract getNotFoundTextShape(size: number): THREE.Shape | undefined;
/**
* Just for log usage
*/
protected addUnsupportedChar(char: string): void;
protected getFontFile(): {
order: number;
data: any;
info: string;
orientation: Orientation;
baseUp: number;
baseDown: number;
fileName: string;
fileHeader: string;
fileVersion: string;
};
setFontFile(data: FontDataTableRecord): void;
/**
* Catches dxf data into indexedDb
*/
setFontDataToIndexedDb(): Promise<void>;
getFontDataByIndexedDb(): Promise<FontDataTableRecord>;
releaseFontData(): void;
}
import { Font } from "three/examples/jsm/loaders/FontLoader.js";
import { FontDataTableRecord } from "../indexeddb";
import { Orientation } from "./shx";
export declare abstract class BaseFont extends Font {
info: string;
orientation: Orientation;
baseUp: number;
baseDown: number;
fileHeader: string;
fileVersion: string;
fileName: string;
data: any;
order: number;
unsupportedChars: Record<string, number>;
constructor(fileName: string, fileData: any);
abstract getCharShape(char: string, size: number): THREE.Shape | undefined;
abstract getNotFoundTextShape(size: number): THREE.Shape | undefined;
/**
* Just for log usage
*/
protected addUnsupportedChar(char: string): void;
protected getFontFile(): {
order: number;
data: any;
info: string;
orientation: Orientation;
baseUp: number;
baseDown: number;
fileName: string;
fileHeader: string;
fileVersion: string;
};
setFontFile(data: FontDataTableRecord): void;
/**
* Catches dxf data into indexedDb
*/
setFontDataToIndexedDb(): Promise<void>;
getFontDataByIndexedDb(): Promise<FontDataTableRecord>;
releaseFontData(): void;
}

View File

@ -1,54 +1,54 @@
import * as THREE from "three";
import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js";
import { BaseFont } from "./BaseFont";
export declare class FontManager {
private loader;
protected fontMap: Map<string, BaseFont>;
protected fileNames?: string[];
unsupportedChars: Record<string, number>;
missingFonts: Record<string, number>;
static enableFontCache: boolean;
constructor();
/**
*
* @param urls The order represents the priority
* @returns
* @description The best fonts order is: Load linear fonts first followed by ttf fonts, font types load Western fonts first in loaded chinese fonts.
* @description Microsoft Yahei is the most worthy choice of Chinese font on the Win platform, but it is not the default viewer and needs to be set; Sans-serif fonts such as Arial and Tahoma are the main fonts for Western fonts.
* @description At present, the latest font launched by Apple and San Francisco for Apple, the display effect is also the most elegant, but only the latest system can support, while blackface - Jane and Helvetica can get more system version support, the display effect is also similar, can be accepted.
* @example font-family: Helvetica, Tahoma, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
*/
loadFonts(urls: string[]): Promise<void>;
/**
*
* @param text
* @param fontName
* @param size
* @returns
* @description Gets text shape by fontName and size.
*/
getTextShape(text: string, fontName: string, size: number): THREE.Shape[] | undefined;
/**
*
* @param fontName
* @param char
* @param size
* @returns
*/
getCharShape(char: string, fontName: string, size: number): THREE.BufferGeometry<THREE.NormalBufferAttributes> | TextGeometry | undefined;
getNotFoundTextShape(size: number): THREE.BufferGeometry<THREE.NormalBufferAttributes> | THREE.ExtrudeGeometry | undefined;
private checkAllFontsLoaded;
getFontFromIndexeddb(): Promise<void>;
isShxFont(fontName: string): boolean | undefined;
/**
* Just for log usage
*/
getUnsupportedChar(): Record<string, number>;
releaseFontData(): void;
destroy(): void;
static isShxFile(url: string): boolean;
static isTtfFile(url: string): boolean;
static isJsonFile(url: string): boolean;
static getFileName(url: string): string;
static getExtension(url: string): string;
}
import * as THREE from "three";
import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js";
import { BaseFont } from "./BaseFont";
export declare class FontManager {
private loader;
protected fontMap: Map<string, BaseFont>;
protected fileNames?: string[];
unsupportedChars: Record<string, number>;
missingFonts: Record<string, number>;
static enableFontCache: boolean;
constructor();
/**
*
* @param urls The order represents the priority
* @returns
* @description The best fonts order is: Load linear fonts first followed by ttf fonts, font types load Western fonts first in loaded chinese fonts.
* @description Microsoft Yahei is the most worthy choice of Chinese font on the Win platform, but it is not the default viewer and needs to be set; Sans-serif fonts such as Arial and Tahoma are the main fonts for Western fonts.
* @description At present, the latest font launched by Apple and San Francisco for Apple, the display effect is also the most elegant, but only the latest system can support, while blackface - Jane and Helvetica can get more system version support, the display effect is also similar, can be accepted.
* @example font-family: Helvetica, Tahoma, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
*/
loadFonts(urls: string[]): Promise<void>;
/**
*
* @param text
* @param fontName
* @param size
* @returns
* @description Gets text shape by fontName and size.
*/
getTextShape(text: string, fontName: string, size: number): THREE.Shape[] | undefined;
/**
*
* @param fontName
* @param char
* @param size
* @returns
*/
getCharShape(char: string, fontName: string, size: number): THREE.BufferGeometry<THREE.NormalBufferAttributes> | TextGeometry | undefined;
getNotFoundTextShape(size: number): THREE.BufferGeometry<THREE.NormalBufferAttributes> | THREE.ExtrudeGeometry | undefined;
private checkAllFontsLoaded;
getFontFromIndexeddb(): Promise<void>;
isShxFont(fontName: string): boolean | undefined;
/**
* Just for log usage
*/
getUnsupportedChar(): Record<string, number>;
releaseFontData(): void;
destroy(): void;
static isShxFile(url: string): boolean;
static isTtfFile(url: string): boolean;
static isJsonFile(url: string): boolean;
static getFileName(url: string): string;
static getExtension(url: string): string;
}

View File

@ -1,14 +1,14 @@
import * as THREE from "three";
import { FontDataTableRecord } from "../indexeddb";
import { BaseFont } from "./BaseFont";
export declare class MeshFont extends BaseFont {
reversed: boolean;
constructor(fileName: string, fileData: object | FontDataTableRecord | ArrayBuffer);
generateShapes(text: string, size: number): THREE.Shape[];
getCharShape(char: string, size: number): THREE.Shape | undefined;
/**
* For an unsupported char, use "" as a replacement.
*/
getNotFoundTextShape(size: number): THREE.Shape | undefined;
private parseTTF;
}
import * as THREE from "three";
import { FontDataTableRecord } from "../indexeddb";
import { BaseFont } from "./BaseFont";
export declare class MeshFont extends BaseFont {
reversed: boolean;
constructor(fileName: string, fileData: object | FontDataTableRecord | ArrayBuffer);
generateShapes(text: string, size: number): THREE.Shape[];
getCharShape(char: string, size: number): THREE.Shape | undefined;
/**
* For an unsupported char, use "" as a replacement.
*/
getNotFoundTextShape(size: number): THREE.Shape | undefined;
private parseTTF;
}

View File

@ -1,49 +1,49 @@
import * as THREE from "three";
import { BaseFont } from "./BaseFont";
import { ShxFontType } from "./shx/Shx.constants";
import { TextShape } from "./shx/TextShape";
import { FontDataTableRecord } from "../../core/indexeddb";
export declare class ShxFont extends BaseFont {
isExtend: boolean;
isUniCode: boolean;
isEmbedded: boolean;
static DEFAULT_SIZE: number;
fontType: ShxFontType;
private textShapesCache;
private graphicData;
constructor(fileName: string, fileData: ArrayBuffer | FontDataTableRecord);
generateShapes(text: string, size: number): TextShape[];
/**
* Gets TextShape by a char
*/
getCharShape(char: string, size: number): TextShape | undefined;
/**
* Gets TextShape by a char code
*/
getGraphicDataByCode(code: number, size: number): TextShape | undefined;
/**
* Gets TextShape by char's code, font size and offset
*/
getGraphicDataByCodeWithOffset(code: number, size: number, translate: THREE.Vector2): TextShape | undefined;
private parseBigFont;
private parseUniFont;
private parseShapeFont;
/**
* For an unsupported char, use "" as a replacement.
*/
getNotFoundTextShape(size: number): TextShape | undefined;
protected getFontFile(): {
fontType: ShxFontType;
order: number;
data: any;
info: string;
orientation: import("./shx/Shx.constants").Orientation;
baseUp: number;
baseDown: number;
fileName: string;
fileHeader: string;
fileVersion: string;
};
setFontFile(data: FontDataTableRecord): void;
releaseFontData(): void;
}
import * as THREE from "three";
import { BaseFont } from "./BaseFont";
import { ShxFontType } from "./shx/Shx.constants";
import { TextShape } from "./shx/TextShape";
import { FontDataTableRecord } from "../../core/indexeddb";
export declare class ShxFont extends BaseFont {
isExtend: boolean;
isUniCode: boolean;
isEmbedded: boolean;
static DEFAULT_SIZE: number;
fontType: ShxFontType;
private textShapesCache;
private graphicData;
constructor(fileName: string, fileData: ArrayBuffer | FontDataTableRecord);
generateShapes(text: string, size: number): TextShape[];
/**
* Gets TextShape by a char
*/
getCharShape(char: string, size: number): TextShape | undefined;
/**
* Gets TextShape by a char code
*/
getGraphicDataByCode(code: number, size: number): TextShape | undefined;
/**
* Gets TextShape by char's code, font size and offset
*/
getGraphicDataByCodeWithOffset(code: number, size: number, translate: THREE.Vector2): TextShape | undefined;
private parseBigFont;
private parseUniFont;
private parseShapeFont;
/**
* For an unsupported char, use "" as a replacement.
*/
getNotFoundTextShape(size: number): TextShape | undefined;
protected getFontFile(): {
fontType: ShxFontType;
order: number;
data: any;
info: string;
orientation: import("./shx/Shx.constants").Orientation;
baseUp: number;
baseDown: number;
fileName: string;
fileHeader: string;
fileVersion: string;
};
setFontFile(data: FontDataTableRecord): void;
releaseFontData(): void;
}

View File

@ -1 +1 @@
export * from "./FontManager";
export * from "./FontManager";

View File

@ -1 +1 @@
export declare const letters: Record<string, Array<Array<Array<number>>>>;
export declare const letters: Record<string, Array<Array<Array<number>>>>;

Some files were not shown because too many files have changed in this diff Show More