Merge pull request #117 from pattern-x/feature/section

Enable to clip the building with dxf
This commit is contained in:
pattern-x
2023-11-06 10:16:19 +00:00
parent 36200cc17d
commit 76ac7b9bd1
349 changed files with 14445 additions and 13157 deletions

View File

@ -1,22 +1,24 @@
{
"files": {
"main.css": "./static/css/main.f052ad65.css",
"main.js": "./static/js/main.b6487067.js",
"static/js/787.cf5efa72.chunk.js": "./static/js/787.cf5efa72.chunk.js",
"main.css": "./static/css/main.90df8265.css",
"main.js": "./static/js/main.f09baa39.js",
"static/js/787.55649ca3.chunk.js": "./static/js/787.55649ca3.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",
"demo/libs/types/core/viewers/DxfViewer.d.ts": "./demo/libs/types/core/viewers/DxfViewer.d.ts",
"demo/libs/types/core/viewers/DxfViewer.temp.d.ts": "./demo/libs/types/core/viewers/DxfViewer.temp.d.ts",
"demo/libs/types/core/camera-controls/CameraControls.d.ts": "./demo/libs/types/core/camera-controls/CameraControls.d.ts",
"demo/libs/types/core/viewers/DxfViewer.d.ts": "./demo/libs/types/core/viewers/DxfViewer.d.ts",
"demo/libs/types/core/dxf/DxfLoader.d.ts": "./demo/libs/types/core/dxf/DxfLoader.d.ts",
"demo/libs/types/core/viewers/BimViewer.d.ts": "./demo/libs/types/core/viewers/BimViewer.d.ts",
"demo/libs/types/core/viewers/BimViewer.temp.d.ts": "./demo/libs/types/core/viewers/BimViewer.temp.d.ts",
"demo/libs/types/core/utils/ObjectUtils.d.ts": "./demo/libs/types/core/utils/ObjectUtils.d.ts",
"demo/libs/types/plugins/pdf/PdfLoader.d.ts": "./demo/libs/types/plugins/pdf/PdfLoader.d.ts",
"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/core/dxf-parser/DxfParser.d.ts": "./demo/libs/types/core/dxf-parser/DxfParser.d.ts",
"demo/libs/types/core/viewers/VRViewer.temp.d.ts": "./demo/libs/types/core/viewers/VRViewer.temp.d.ts",
"demo/libs/types/core/viewers/BaseViewer.temp.d.ts": "./demo/libs/types/core/viewers/BaseViewer.temp.d.ts",
"demo/libs/types/core/Configs.d.ts": "./demo/libs/types/core/Configs.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/patches/shaders/shaderLib/gemini_standard.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderLib/gemini_standard.glsl.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",
@ -26,18 +28,19 @@
"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/controls/VRControls.d.ts": "./demo/libs/types/core/controls/VRControls.d.ts",
"demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts": "./demo/libs/types/plugins/screenshot/ScreenshotPlugin.d.ts",
"demo/libs/types/core/model/Model2d.d.ts": "./demo/libs/types/core/model/Model2d.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/plugins/toolbars/Toolbar.d.ts": "./demo/libs/types/plugins/toolbars/Toolbar.d.ts",
"demo/libs/types/core/viewers/VRViewer.d.ts": "./demo/libs/types/core/viewers/VRViewer.d.ts",
"demo/libs/types/core/camera-controls/types.d.ts": "./demo/libs/types/core/camera-controls/types.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/model/Model2d.d.ts": "./demo/libs/types/core/model/Model2d.d.ts",
"demo/libs/types/core/camera/CameraManager.d.ts": "./demo/libs/types/core/camera/CameraManager.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",
@ -45,45 +48,49 @@
"demo/libs/types/core/dxf-parser/entities/hatch.d.ts": "./demo/libs/types/core/dxf-parser/entities/hatch.d.ts",
"demo/libs/types/plugins/sections/AxisPlaneSection.d.ts": "./demo/libs/types/plugins/sections/AxisPlaneSection.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/core/viewers/BimViewer.d.ts": "./demo/libs/types/core/viewers/BimViewer.d.ts",
"demo/libs/types/core/helpers/LoadingHelper.d.ts": "./demo/libs/types/core/helpers/LoadingHelper.d.ts",
"demo/libs/types/core/font/FontManager.d.ts": "./demo/libs/types/core/font/FontManager.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/core/viewers/ViewerEvent.d.ts": "./demo/libs/types/core/viewers/ViewerEvent.d.ts",
"demo/libs/types/plugins/view-cube/ViewCube.d.ts": "./demo/libs/types/plugins/view-cube/ViewCube.d.ts",
"demo/libs/types/plugins/sections/BaseSection.d.ts": "./demo/libs/types/plugins/sections/BaseSection.d.ts",
"demo/libs/types/core/model/Model3d.d.ts": "./demo/libs/types/core/model/Model3d.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/plugins/sections/SectionPlugin.d.ts": "./demo/libs/types/plugins/sections/SectionPlugin.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/layer-manager/LayerManagerPlugin.d.ts": "./demo/libs/types/plugins/layer-manager/LayerManagerPlugin.d.ts",
"demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts": "./demo/libs/types/plugins/skybox/SkyboxPlugin.d.ts",
"demo/libs/types/core/pick/PickManager.d.ts": "./demo/libs/types/core/pick/PickManager.d.ts",
"demo/libs/types/core/dxf-parser/index.d.ts": "./demo/libs/types/core/dxf-parser/index.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/webcam/WebCam.d.ts": "./demo/libs/types/core/webcam/WebCam.d.ts",
"demo/libs/types/plugins/sections/PickPlaneSection.d.ts": "./demo/libs/types/plugins/sections/PickPlaneSection.d.ts",
"demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts": "./demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts",
"demo/libs/types/core/vr/BaseVRMesh.d.ts": "./demo/libs/types/core/vr/BaseVRMesh.d.ts",
"demo/libs/types/core/helpers/BoxSelectHelper.d.ts": "./demo/libs/types/core/helpers/BoxSelectHelper.d.ts",
"demo/libs/types/core/utils/MaterialUtils.d.ts": "./demo/libs/types/core/utils/MaterialUtils.d.ts",
"demo/libs/types/core/dxf-parser/ParseHelpers.d.ts": "./demo/libs/types/core/dxf-parser/ParseHelpers.d.ts",
"demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts": "./demo/libs/types/plugins/view-cube/ViewCubePlugin.d.ts",
"demo/libs/types/core/markup/TextMarkup.d.ts": "./demo/libs/types/core/markup/TextMarkup.d.ts",
"demo/libs/types/core/dxf-parser/ParseHelpers.d.ts": "./demo/libs/types/core/dxf-parser/ParseHelpers.d.ts",
"demo/libs/types/core/text-texture/TextTexture.d.ts": "./demo/libs/types/core/text-texture/TextTexture.d.ts",
"demo/libs/types/export.doc.d.ts": "./demo/libs/types/export.doc.d.ts",
"demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts",
"demo/libs/types/plugins/sections/ViewportSection.d.ts": "./demo/libs/types/plugins/sections/ViewportSection.d.ts",
"demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts": "./demo/libs/types/plugins/pdf/PdfLoaderPlugin.d.ts",
"demo/libs/types/plugins/explode/ExplodePlugin.d.ts": "./demo/libs/types/plugins/explode/ExplodePlugin.d.ts",
"demo/libs/types/plugins/measure/BaseMeasureDrawable.d.ts": "./demo/libs/types/plugins/measure/BaseMeasureDrawable.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/VRCube24Faces.d.ts": "./demo/libs/types/core/vr/VRCube24Faces.d.ts",
"demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts": "./demo/libs/types/plugins/bottom-bar/BottomBarPlugin.d.ts",
"demo/libs/types/core/vr/BaseVRMesh.d.ts": "./demo/libs/types/core/vr/BaseVRMesh.d.ts",
"demo/libs/types/export.doc.d.ts": "./demo/libs/types/export.doc.d.ts",
"demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.d.ts": "./demo/libs/types/plugins/axis-gizmo/AxisGizmoPlugin.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/core/dxf-parser/entities/geomtry.d.ts": "./demo/libs/types/core/dxf-parser/entities/geomtry.d.ts",
"demo/libs/types/core/effect/EffectManager.d.ts": "./demo/libs/types/core/effect/EffectManager.d.ts",
"demo/libs/types/plugins/explode/ObjectExploder.d.ts": "./demo/libs/types/plugins/explode/ObjectExploder.d.ts",
"demo/libs/types/plugins/sections/SectionGizmo.d.ts": "./demo/libs/types/plugins/sections/SectionGizmo.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/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/SectionGizmo.d.ts": "./demo/libs/types/plugins/sections/SectionGizmo.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",
@ -91,178 +98,188 @@
"demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts": "./demo/libs/types/plugins/ground-grid/GroundGridPlugin.d.ts",
"demo/libs/types/core/dxf-parser/entities/table.d.ts": "./demo/libs/types/core/dxf-parser/entities/table.d.ts",
"demo/libs/types/core/font/BaseFont.d.ts": "./demo/libs/types/core/font/BaseFont.d.ts",
"demo/libs/types/core/scene/SceneManager.d.ts": "./demo/libs/types/core/scene/SceneManager.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/plugins/sections/BaseBoxSection.d.ts": "./demo/libs/types/plugins/sections/BaseBoxSection.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/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/plugins/measure/DistanceMeasurement.d.ts": "./demo/libs/types/plugins/measure/DistanceMeasurement.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/core/model/Constants.d.ts": "./demo/libs/types/core/model/Constants.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/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/markup/LeaderLineMarkup.d.ts": "./demo/libs/types/core/markup/LeaderLineMarkup.d.ts",
"demo/libs/types/core/helpers/MobileTouchHelperDrawable.d.ts": "./demo/libs/types/core/helpers/MobileTouchHelperDrawable.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/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/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/helpers/PickMarkupHelper.d.ts": "./demo/libs/types/core/helpers/PickMarkupHelper.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/plugins/pdf/PdfLoaderPlugin.d.ts": "./demo/libs/types/plugins/pdf/PdfLoaderPlugin.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/shp-js/ShpThree.d.ts": "./demo/libs/types/core/shp-js/ShpThree.d.ts",
"demo/libs/types/core/utils/index.d.ts": "./demo/libs/types/core/utils/index.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/context-menu/ContextMenuPlugin.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenuPlugin.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/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/core/components/ProgressBar.d.ts": "./demo/libs/types/core/components/ProgressBar.d.ts",
"demo/libs/types/plugins/measure/AngleMeasurement.d.ts": "./demo/libs/types/plugins/measure/AngleMeasurement.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/plugins/measure/CoordinateMeasurement.d.ts": "./demo/libs/types/plugins/measure/CoordinateMeasurement.d.ts",
"demo/libs/types/core/canvas/Constants.d.ts": "./demo/libs/types/core/canvas/Constants.d.ts",
"demo/libs/types/core/font/shx/TextShape.d.ts": "./demo/libs/types/core/font/shx/TextShape.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/plugins/overview-map/OverviewMapDrawable.d.ts": "./demo/libs/types/plugins/overview-map/OverviewMapDrawable.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/components/dxf-layout-bar/DxfLayoutBar.d.ts": "./demo/libs/types/components/dxf-layout-bar/DxfLayoutBar.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/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/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/components/pop-panel/AxisSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/AxisSectionPopPanel.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/components/Container.d.ts": "./demo/libs/types/core/components/Container.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/components/pop-panel/PickSectionPopPanel.d.ts": "./demo/libs/types/components/pop-panel/PickSectionPopPanel.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/plugins/overview-map/LineDrawable.d.ts": "./demo/libs/types/plugins/overview-map/LineDrawable.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/ZoomToRectHelper.d.ts": "./demo/libs/types/core/helpers/ZoomToRectHelper.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/utils/EdgeUtils.d.ts": "./demo/libs/types/core/utils/EdgeUtils.d.ts",
"demo/libs/types/core/indexeddb/ImageDataTable.d.ts": "./demo/libs/types/core/indexeddb/ImageDataTable.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/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/indexeddb/DxfDataTable.d.ts": "./demo/libs/types/core/indexeddb/DxfDataTable.d.ts",
"demo/libs/types/core/utils/SectionUtils.d.ts": "./demo/libs/types/core/utils/SectionUtils.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/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/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/utils/CSS2DObjectUtils.d.ts": "./demo/libs/types/core/utils/CSS2DObjectUtils.d.ts",
"demo/libs/types/core/helpers/MeshBvhHelper.d.ts": "./demo/libs/types/core/helpers/MeshBvhHelper.d.ts",
"demo/libs/types/core/dxf-parser/entities/mtext.d.ts": "./demo/libs/types/core/dxf-parser/entities/mtext.d.ts",
"demo/libs/types/core/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/undo-redo/UndoRedoManager.d.ts": "./demo/libs/types/core/undo-redo/UndoRedoManager.d.ts",
"demo/libs/types/core/index.d.ts": "./demo/libs/types/core/index.d.ts",
"demo/libs/types/core/materials/GeminiStandardMaterial.d.ts": "./demo/libs/types/core/materials/GeminiStandardMaterial.d.ts",
"demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts": "./demo/libs/types/plugins/toolbars/MarkupToolbar.d.ts",
"demo/libs/types/core/vr/VRCube.d.ts": "./demo/libs/types/core/vr/VRCube.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/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/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/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/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/plugins/skybox/GradientColorSkybox.d.ts": "./demo/libs/types/plugins/skybox/GradientColorSkybox.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/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/markup/PolylineMarkup.d.ts": "./demo/libs/types/core/markup/PolylineMarkup.d.ts",
"demo/libs/types/core/vr/ImageManager.d.ts": "./demo/libs/types/core/vr/ImageManager.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/controls/PlanControl.d.ts": "./demo/libs/types/core/controls/PlanControl.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/dxf/HatchPatternShaders.d.ts": "./demo/libs/types/core/dxf/HatchPatternShaders.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/dxf-parser/entities/circle.d.ts": "./demo/libs/types/core/dxf-parser/entities/circle.d.ts",
"demo/libs/types/core/model/Model.d.ts": "./demo/libs/types/core/model/Model.d.ts",
"demo/libs/types/core/dxf/LinePatternShaders.d.ts": "./demo/libs/types/core/dxf/LinePatternShaders.d.ts",
"demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts": "./demo/libs/types/core/compare/DxfCompareMarkupManager.d.ts",
"demo/libs/types/core/markup/RectMarkup.d.ts": "./demo/libs/types/core/markup/RectMarkup.d.ts",
"demo/libs/types/core/model/Model.d.ts": "./demo/libs/types/core/model/Model.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/controls/VRControl.d.ts": "./demo/libs/types/core/controls/VRControl.d.ts",
"demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts": "./demo/libs/types/core/dxf-parser/DxfBinaryReader.d.ts",
"demo/libs/types/core/controls/OrbitControl.d.ts": "./demo/libs/types/core/controls/OrbitControl.d.ts",
"demo/libs/types/core/vr/VRSphere.d.ts": "./demo/libs/types/core/vr/VRSphere.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/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/point.d.ts": "./demo/libs/types/core/dxf-parser/entities/point.d.ts",
"demo/libs/types/core/helpers/index.d.ts": "./demo/libs/types/core/helpers/index.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/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/dxf-parser/entities/line.d.ts": "./demo/libs/types/core/dxf-parser/entities/line.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/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/markup/DotMarkup.d.ts": "./demo/libs/types/core/markup/DotMarkup.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/core/markup/DotMarkup.d.ts": "./demo/libs/types/core/markup/DotMarkup.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/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/undo-redo/AddMeasurementCommand.d.ts": "./demo/libs/types/core/undo-redo/AddMeasurementCommand.d.ts",
"demo/libs/types/core/components/Spinner.d.ts": "./demo/libs/types/core/components/Spinner.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/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/core/font/shx/gbk/index.d.ts": "./demo/libs/types/core/font/shx/gbk/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/core/viewers/index.d.ts": "./demo/libs/types/core/viewers/index.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/controls/Control.d.ts": "./demo/libs/types/core/controls/Control.d.ts",
"demo/libs/types/core/indexeddb/index.d.ts": "./demo/libs/types/core/indexeddb/index.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/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/plugins/toolbars/index.d.ts": "./demo/libs/types/plugins/toolbars/index.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/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/camera-controls/utils/extractClientCoordFromEvent.d.ts": "./demo/libs/types/core/camera-controls/utils/extractClientCoordFromEvent.d.ts",
"demo/libs/types/core/VersionManager.d.ts": "./demo/libs/types/core/VersionManager.d.ts",
"demo/libs/types/core/viewers/Constants.d.ts": "./demo/libs/types/core/viewers/Constants.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",
"demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts": "./demo/libs/types/core/patches/shaders/shaderChunk/outline_bc_pars_vertex.glsl.d.ts",
@ -270,22 +287,23 @@
"demo/libs/types/core/compare/index.d.ts": "./demo/libs/types/core/compare/index.d.ts",
"demo/libs/types/core/patches/index.d.ts": "./demo/libs/types/core/patches/index.d.ts",
"demo/libs/types/core/canvas/index.d.ts": "./demo/libs/types/core/canvas/index.d.ts",
"demo/libs/types/core/controls/index.d.ts": "./demo/libs/types/core/controls/index.d.ts",
"demo/libs/types/core/vr/index.d.ts": "./demo/libs/types/core/vr/index.d.ts",
"demo/libs/types/core/utils/DecimalPrecisionUtils.d.ts": "./demo/libs/types/core/utils/DecimalPrecisionUtils.d.ts",
"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/model/index.d.ts": "./demo/libs/types/core/model/index.d.ts",
"demo/libs/types/core/shp-js/index.d.ts": "./demo/libs/types/core/shp-js/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/ContextMenu.config.d.ts": "./demo/libs/types/plugins/context-menu/ContextMenu.config.d.ts",
"demo/libs/types/plugins/context-menu/index.d.ts": "./demo/libs/types/plugins/context-menu/index.d.ts",
"demo/libs/types/core/components/index.d.ts": "./demo/libs/types/core/components/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/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/core/input/index.d.ts": "./demo/libs/types/core/input/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",
"demo/libs/types/fetch-polyfill.d.ts": "./demo/libs/types/fetch-polyfill.d.ts",
@ -306,24 +324,28 @@
"demo/libs/types/plugins/dat-gui/index.d.ts": "./demo/libs/types/plugins/dat-gui/index.d.ts",
"demo/libs/types/plugins/hotpoint/index.d.ts": "./demo/libs/types/plugins/hotpoint/index.d.ts",
"demo/libs/types/plugins/view-cube/index.d.ts": "./demo/libs/types/plugins/view-cube/index.d.ts",
"demo/libs/types/core/camera/index.d.ts": "./demo/libs/types/core/camera/index.d.ts",
"demo/libs/types/core/effect/index.d.ts": "./demo/libs/types/core/effect/index.d.ts",
"demo/libs/types/core/font/shx/index.d.ts": "./demo/libs/types/core/font/shx/index.d.ts",
"demo/libs/types/plugins/explode/index.d.ts": "./demo/libs/types/plugins/explode/index.d.ts",
"demo/libs/types/plugins/nav-cube/index.d.ts": "./demo/libs/types/plugins/nav-cube/index.d.ts",
"demo/libs/types/components/dxf-layout-bar/index.d.ts": "./demo/libs/types/components/dxf-layout-bar/index.d.ts",
"demo/libs/types/core/scene/index.d.ts": "./demo/libs/types/core/scene/index.d.ts",
"demo/libs/types/plugins/skybox/index.d.ts": "./demo/libs/types/plugins/skybox/index.d.ts",
"demo/libs/types/components/progress-bar/index.d.ts": "./demo/libs/types/components/progress-bar/index.d.ts",
"demo/libs/types/core/font/index.d.ts": "./demo/libs/types/core/font/index.d.ts",
"demo/libs/types/core/pick/index.d.ts": "./demo/libs/types/core/pick/index.d.ts",
"demo/libs/types/plugins/stats/index.d.ts": "./demo/libs/types/plugins/stats/index.d.ts",
"demo/libs/types/components/tool-tip/index.d.ts": "./demo/libs/types/components/tool-tip/index.d.ts",
"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.f052ad65.css.map": "./static/css/main.f052ad65.css.map",
"main.b6487067.js.map": "./static/js/main.b6487067.js.map",
"787.cf5efa72.chunk.js.map": "./static/js/787.cf5efa72.chunk.js.map"
"main.90df8265.css.map": "./static/css/main.90df8265.css.map",
"main.f09baa39.js.map": "./static/js/main.f09baa39.js.map",
"787.55649ca3.chunk.js.map": "./static/js/787.55649ca3.chunk.js.map"
},
"entrypoints": [
"static/css/main.f052ad65.css",
"static/js/main.b6487067.js"
"static/css/main.90df8265.css",
"static/js/main.f09baa39.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 { PickPlaneSection } from "../../plugins/sections";
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);
setVisible(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);
setVisible(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,276 +1,281 @@
/**
* 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[];
}
/**
* 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 {
/**
* 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 {
/**
* 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;
/**
* 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;
}
/**
* 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 zoom
*/
zoom?: 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[];
}
/**
* 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 {
/**
* 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 {
/**
* 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;
/**
* 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;
enableCache?: 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,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,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,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 @@
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

@ -0,0 +1,78 @@
import * as THREE from "three";
import { CameraConfig } from "../../core/Configs";
import CameraControls from "../../core/camera-controls";
import { Control, NavigationModes } from "../../core/controls/Control";
import { type BaseViewer } from "../../core/viewers/BaseViewer";
export declare enum CameraProjections {
Perspective = 0,
Orthographic = 1
}
export declare type CameraInfo = CameraConfig;
export declare class CameraManager {
viewer: BaseViewer;
readonly perspectiveCamera: THREE.PerspectiveCamera;
readonly orthographicCamera: THREE.OrthographicCamera;
activeCamera: THREE.PerspectiveCamera | THREE.OrthographicCamera;
readonly cameraControls: CameraControls;
private previousDistance;
private previousAzimuthRotateSpeed;
private previousPolarRotateSpeed;
private previousDollySpeed;
private previousTruckSpeed;
private previousMouseLeft;
protected enableKeyDown: boolean;
navMode: Record<string, Control>;
currentNavMode: Control;
currentProjection: CameraProjections;
protected anchor: HTMLElement;
constructor(viewer: BaseViewer);
get viewerContainer(): HTMLElement;
get inputManager(): import("../../core/input/InputManager").InputManager;
private createAnchor;
protected setAnchorPosition(x: number, y: number): void;
setOrbitPointVisible(visible: boolean): void;
private setOrthoCameraAspect;
private setupCameras;
private setCameraPositionAndTarget;
private setupControls;
private onKeyDown;
private onChange;
setOrthoCamera(): void;
private getDims;
private setupOrthoCamera;
private setPerspectiveCamera;
update(delta: number): boolean;
updateAspect(): void;
get camera(): THREE.PerspectiveCamera | THREE.OrthographicCamera;
enableKeyControl(enable: boolean): void;
getTarget(): THREE.Vector3;
getPosition(): THREE.Vector3;
adjustCameraByBbox(bbox: THREE.Box3): void;
enableControl(active: boolean): void;
enableRotate(enable: boolean): void;
enableZoom(enable: boolean): void;
enablePan(enable: boolean): void;
enableMouseLeft(enable: boolean): void;
setCameraPosition(position: THREE.Vector3): void;
setCameraTarget(target: THREE.Vector3): void;
flyTo(position: THREE.Vector3, lookAt: THREE.Vector3): void;
flyToPosition(x: number, y: number, z: number): void;
flyToBox(box: THREE.Box3): void;
fitToSphere(box: THREE.Object3D | THREE.Sphere): void;
flyToObject(object: THREE.Object3D): void;
getDistanceToFitSphere(radius: number): number;
setNavigationMode(mode: NavigationModes): void;
setProjection(projection: CameraProjections): void;
setOrbitPoint(point: THREE.Vector3): void;
getCameraDirection(): THREE.Vector3;
getCameraInfo(): {
near: number;
far: number;
zoom: number;
eye: THREE.Vector3Tuple;
up: THREE.Vector3Tuple;
look: THREE.Vector3Tuple;
};
setCameraInfo(cameraInfo: CameraInfo): void;
destroy(): void;
}

View File

@ -0,0 +1 @@
export * from "./CameraManager";

View File

@ -1,52 +1,53 @@
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;
}
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 { BaseViewer } 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: BaseViewer);
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>>[];
getDrawablesByDrawableListAndPosition(drawList: DrawableList, p: THREE.Vector3): Drawable<Record<string, unknown>> | undefined;
getDrawablesByPosition(p: THREE.Vector3): 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

@ -0,0 +1,21 @@
export declare class Container {
width: number;
height: number;
container: HTMLDivElement;
viewerContainer?: HTMLDivElement;
widgetContainer?: HTMLDivElement;
constructor(containerId: string);
/**
* Creates a viewerContainer under the container that user passed in.
* There are some benefits to create a new one. e.g., its style won't affect
* the container div user passed in.
*/
private initViewerContainer;
/**
*
* @description Create a div for ui widget, if widget need position, just relative container, maybe remove later.
*/
private initWidgetContainer;
get needResize(): boolean;
destroy(): void;
}

View File

@ -0,0 +1,21 @@
import type { Container } from "./Container";
export interface ProgressItem {
div: HTMLDivElement;
onProgress?: (event: ProgressEvent) => void;
}
export declare class ProgressBar {
private element;
private progressItems;
private replaceReg;
constructor(container: Container);
addProgressItem(id: string, message?: string, onProgress?: (event: ProgressEvent) => void): void;
removeProgressItem(id: string): void;
updateProgressBar(id: string, progress: number | ProgressEvent, min?: number, max?: number): void;
setVisible(visible: boolean): void;
/**
* Removes a progress item after some time
* @param progressItemId
*/
delayRemoveProgressItem(progressItemId: string, delayInMs?: number): void;
destroy(): void;
}

View File

@ -0,0 +1,13 @@
import type { Container } from "./Container";
export declare class Spinner {
private element;
jobCount: number;
constructor(container: Container);
/**
* Sets spinner visibility
*/
private setSpinnerVisibility;
increaseJobCount(): void;
decreaseJobCount(): void;
destroy(): void;
}

View File

@ -0,0 +1,3 @@
export * from "./Spinner";
export * from "./Container";
export * from "./ProgressBar";

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

@ -0,0 +1,11 @@
export declare enum NavigationModes {
Orbit = 0,
FirstPerson = 1,
Plan = 2,
VR = 3
}
export interface Control {
mode: NavigationModes;
setupControl(): void;
adjustCameraByBbox(bbox: THREE.Box3): void;
}

View File

@ -0,0 +1,10 @@
import * as THREE from "three";
import { Control, NavigationModes } from "./Control";
import type { CameraManager } from "../../core/camera/CameraManager";
export declare class OrbitControl implements Control {
readonly mode = NavigationModes.Orbit;
private cameraManager;
constructor(cameraManager: CameraManager);
setupControl(): void;
adjustCameraByBbox(box: THREE.Box3): void;
}

View File

@ -0,0 +1,14 @@
import * as THREE from "three";
import { Control, NavigationModes } from "./Control";
import type { CameraManager } from "../../core/camera";
/**
*
* @description control for 2d. dxf,pdf etc.
*/
export declare class PlanControl implements Control {
readonly mode = NavigationModes.Plan;
private cameraManager;
constructor(cameraManager: CameraManager);
setupControl(): void;
adjustCameraByBbox(box: THREE.Box3): void;
}

View File

@ -0,0 +1,10 @@
import * as THREE from "three";
import { Control, NavigationModes } from "./Control";
import type { CameraManager } from "../../core/camera/CameraManager";
export declare class VRControl implements Control {
readonly mode = NavigationModes.FirstPerson;
private cameraManager;
constructor(cameraManager: CameraManager);
setupControl(): void;
adjustCameraByBbox(box: THREE.Box3): void;
}

View File

@ -1,131 +0,0 @@
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,4 @@
export * from "./VRControls";
export * from "./CameraControlsEx";
export * from "./Control";
export * from "./OrbitControl";
export * from "./PlanControl";
export * from "./VRControl";

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" | "ACAD_TABLE" | "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" | "ACAD_TABLE" | "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;
startPoint: IPoint;
endPoint: IPoint;
constructor(type: HatchEdgeType);
}
export declare class HatchPolyline extends HatchEdge {
points: IPoint[];
isClosed: boolean;
constructor();
}
export declare class HatchLine extends HatchEdge {
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;
startPoint: IPoint;
endPoint: IPoint;
constructor(type: HatchEdgeType);
}
export declare class HatchPolyline extends HatchEdge {
points: IPoint[];
isClosed: boolean;
constructor();
}
export declare class HatchLine extends HatchEdge {
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,42 +1,42 @@
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
import { IMtextEntity } from "./mtext";
export interface ITableEntity extends IEntity {
version: number;
startPoint: IPoint;
directionVector: IPoint;
tableValue: number;
rowCount: number;
columnCount: number;
overrideFlag?: number;
borderColorOverrideFlag?: number;
borderLineWeightOverrideFlag?: number;
borderVisibilityOverrideFlag?: number;
rowHeightArr: number[];
columnWidthArr: number[];
tableStyleId?: string;
blockRecordHandle?: string;
cells: TableCell[];
}
export interface TableCell extends IMtextEntity {
cellType: number;
flagValue?: number;
mergedValue?: number;
autoFit?: number;
borderWidth?: number;
borderHeight?: number;
overrideFlag?: number;
virtualEdgeFlag?: number;
fieldObjetId?: string;
blockTableRecordId?: string;
blockScale?: number;
blockAttrNum?: number;
attrDefineId?: string[];
attrText?: string;
textHeight: number;
extendedCellFlags?: number;
}
export default class Table implements IGeometry {
ForEntityName: "ACAD_TABLE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ITableEntity;
}
import { DxfBaseReader, IGroup } from "../DxfBaseReader";
import IGeometry, { IEntity, IPoint } from "./geomtry";
import { IMtextEntity } from "./mtext";
export interface ITableEntity extends IEntity {
version: number;
startPoint: IPoint;
directionVector: IPoint;
tableValue: number;
rowCount: number;
columnCount: number;
overrideFlag?: number;
borderColorOverrideFlag?: number;
borderLineWeightOverrideFlag?: number;
borderVisibilityOverrideFlag?: number;
rowHeightArr: number[];
columnWidthArr: number[];
tableStyleId?: string;
blockRecordHandle?: string;
cells: TableCell[];
}
export interface TableCell extends IMtextEntity {
cellType: number;
flagValue?: number;
mergedValue?: number;
autoFit?: number;
borderWidth?: number;
borderHeight?: number;
overrideFlag?: number;
virtualEdgeFlag?: number;
fieldObjetId?: string;
blockTableRecordId?: string;
blockScale?: number;
blockAttrNum?: number;
attrDefineId?: string[];
attrText?: string;
textHeight: number;
extendedCellFlags?: number;
}
export default class Table implements IGeometry {
ForEntityName: "ACAD_TABLE";
parseEntity(scanner: DxfBaseReader, curr: IGroup): ITableEntity;
}

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,27 +1,27 @@
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 { ITableEntity, TableCell } from "./entities/table";
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 { ITableEntity, TableCell } from "./entities/table";
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, fixedThicknessInWorldCoord?: number): 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, fixedThicknessInWorldCoord?: number): 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;

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