@mlightcad/cad-simple-viewer 1.5.6 → 1.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -1
- package/dist/cad-simple-viewer.js +30394 -28405
- package/dist/cad-simple-viewer.umd.cjs +150 -158
- package/dist/dxf-parser-worker.js +796 -707
- package/lib/app/AcApContext.d.ts.map +1 -1
- package/lib/app/AcApContext.js +15 -5
- package/lib/app/AcApContext.js.map +1 -1
- package/lib/app/AcApDocManager.d.ts +56 -0
- package/lib/app/AcApDocManager.d.ts.map +1 -1
- package/lib/app/AcApDocManager.js +112 -14
- package/lib/app/AcApDocManager.js.map +1 -1
- package/lib/app/AcApDocument.d.ts +81 -0
- package/lib/app/AcApDocument.d.ts.map +1 -1
- package/lib/app/AcApDocument.js +154 -0
- package/lib/app/AcApDocument.js.map +1 -1
- package/lib/app/AcApLayerSessionState.d.ts +15 -0
- package/lib/app/AcApLayerSessionState.d.ts.map +1 -0
- package/lib/app/AcApLayerSessionState.js +2 -0
- package/lib/app/AcApLayerSessionState.js.map +1 -0
- package/lib/app/AcApOpenFileDialog.d.ts +35 -0
- package/lib/app/AcApOpenFileDialog.d.ts.map +1 -0
- package/lib/app/AcApOpenFileDialog.js +192 -0
- package/lib/app/AcApOpenFileDialog.js.map +1 -0
- package/lib/app/AcApWebworkerReadiness.d.ts +18 -0
- package/lib/app/AcApWebworkerReadiness.d.ts.map +1 -0
- package/lib/app/AcApWebworkerReadiness.js +126 -0
- package/lib/app/AcApWebworkerReadiness.js.map +1 -0
- package/lib/app/index.d.ts +3 -0
- package/lib/app/index.d.ts.map +1 -1
- package/lib/app/index.js +2 -0
- package/lib/app/index.js.map +1 -1
- package/lib/command/AcApOpenCmd.d.ts +3 -22
- package/lib/command/AcApOpenCmd.d.ts.map +1 -1
- package/lib/command/AcApOpenCmd.js +3 -22
- package/lib/command/AcApOpenCmd.js.map +1 -1
- package/lib/command/AcApRedoCmd.d.ts +10 -0
- package/lib/command/AcApRedoCmd.d.ts.map +1 -0
- package/lib/command/AcApRedoCmd.js +85 -0
- package/lib/command/AcApRedoCmd.js.map +1 -0
- package/lib/command/AcApUndoCmd.d.ts +10 -0
- package/lib/command/AcApUndoCmd.d.ts.map +1 -0
- package/lib/command/AcApUndoCmd.js +85 -0
- package/lib/command/AcApUndoCmd.js.map +1 -0
- package/lib/command/draw/AcApEllipseCmd.d.ts.map +1 -1
- package/lib/command/draw/AcApEllipseCmd.js +12 -4
- package/lib/command/draw/AcApEllipseCmd.js.map +1 -1
- package/lib/command/draw/AcApLineCmd.d.ts.map +1 -1
- package/lib/command/draw/AcApLineCmd.js +8 -2
- package/lib/command/draw/AcApLineCmd.js.map +1 -1
- package/lib/command/draw/AcApMLineCmd.d.ts.map +1 -1
- package/lib/command/draw/AcApMLineCmd.js +2 -0
- package/lib/command/draw/AcApMLineCmd.js.map +1 -1
- package/lib/command/draw/AcApPolylineCmd.d.ts.map +1 -1
- package/lib/command/draw/AcApPolylineCmd.js +3 -0
- package/lib/command/draw/AcApPolylineCmd.js.map +1 -1
- package/lib/command/draw/AcApSplineCmd.d.ts.map +1 -1
- package/lib/command/draw/AcApSplineCmd.js +2 -0
- package/lib/command/draw/AcApSplineCmd.js.map +1 -1
- package/lib/command/index.d.ts +2 -0
- package/lib/command/index.d.ts.map +1 -1
- package/lib/command/index.js +2 -0
- package/lib/command/index.js.map +1 -1
- package/lib/command/layer/AcApLayerCmd.d.ts +3 -187
- package/lib/command/layer/AcApLayerCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerCmd.js +52 -376
- package/lib/command/layer/AcApLayerCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerCurCmd.d.ts +2 -27
- package/lib/command/layer/AcApLayerCurCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerCurCmd.js +18 -67
- package/lib/command/layer/AcApLayerCurCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerDelCmd.d.ts +2 -25
- package/lib/command/layer/AcApLayerDelCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerDelCmd.js +22 -155
- package/lib/command/layer/AcApLayerDelCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerFreezeCmd.d.ts +2 -9
- package/lib/command/layer/AcApLayerFreezeCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerFreezeCmd.js +27 -39
- package/lib/command/layer/AcApLayerFreezeCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerIsoCmd.d.ts +2 -24
- package/lib/command/layer/AcApLayerIsoCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerIsoCmd.js +14 -183
- package/lib/command/layer/AcApLayerIsoCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerLockCmd.d.ts +2 -33
- package/lib/command/layer/AcApLayerLockCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerLockCmd.js +18 -55
- package/lib/command/layer/AcApLayerLockCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerMutationCmd.d.ts +13 -0
- package/lib/command/layer/AcApLayerMutationCmd.d.ts.map +1 -0
- package/lib/command/layer/AcApLayerMutationCmd.js +42 -0
- package/lib/command/layer/AcApLayerMutationCmd.js.map +1 -0
- package/lib/command/layer/AcApLayerOffCmd.d.ts +2 -2
- package/lib/command/layer/AcApLayerOffCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerOffCmd.js +27 -28
- package/lib/command/layer/AcApLayerOffCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerOnCmd.d.ts +2 -15
- package/lib/command/layer/AcApLayerOnCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerOnCmd.js +6 -49
- package/lib/command/layer/AcApLayerOnCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerPCmd.d.ts +2 -68
- package/lib/command/layer/AcApLayerPCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerPCmd.js +4 -152
- package/lib/command/layer/AcApLayerPCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerThawCmd.d.ts +2 -22
- package/lib/command/layer/AcApLayerThawCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerThawCmd.js +6 -61
- package/lib/command/layer/AcApLayerThawCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerUnisoCmd.d.ts +2 -37
- package/lib/command/layer/AcApLayerUnisoCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerUnisoCmd.js +7 -108
- package/lib/command/layer/AcApLayerUnisoCmd.js.map +1 -1
- package/lib/command/layer/AcApLayerUnlockCmd.d.ts +2 -33
- package/lib/command/layer/AcApLayerUnlockCmd.d.ts.map +1 -1
- package/lib/command/layer/AcApLayerUnlockCmd.js +18 -55
- package/lib/command/layer/AcApLayerUnlockCmd.js.map +1 -1
- package/lib/command/modify/AcApCopyCmd.d.ts +12 -0
- package/lib/command/modify/AcApCopyCmd.d.ts.map +1 -1
- package/lib/command/modify/AcApCopyCmd.js +67 -177
- package/lib/command/modify/AcApCopyCmd.js.map +1 -1
- package/lib/command/modify/AcApCopyPreviewJig.d.ts +21 -0
- package/lib/command/modify/AcApCopyPreviewJig.d.ts.map +1 -0
- package/lib/command/modify/AcApCopyPreviewJig.js +61 -0
- package/lib/command/modify/AcApCopyPreviewJig.js.map +1 -0
- package/lib/command/modify/AcApEraseCmd.d.ts +0 -6
- package/lib/command/modify/AcApEraseCmd.d.ts.map +1 -1
- package/lib/command/modify/AcApEraseCmd.js +11 -38
- package/lib/command/modify/AcApEraseCmd.js.map +1 -1
- package/lib/command/modify/AcApHideObjectsCmd.d.ts +0 -7
- package/lib/command/modify/AcApHideObjectsCmd.d.ts.map +1 -1
- package/lib/command/modify/AcApHideObjectsCmd.js +0 -7
- package/lib/command/modify/AcApHideObjectsCmd.js.map +1 -1
- package/lib/command/modify/AcApMoveCmd.d.ts +0 -6
- package/lib/command/modify/AcApMoveCmd.d.ts.map +1 -1
- package/lib/command/modify/AcApMoveCmd.js +26 -105
- package/lib/command/modify/AcApMoveCmd.js.map +1 -1
- package/lib/command/modify/AcApMovePreviewJig.d.ts +18 -0
- package/lib/command/modify/AcApMovePreviewJig.d.ts.map +1 -0
- package/lib/command/modify/AcApMovePreviewJig.js +45 -0
- package/lib/command/modify/AcApMovePreviewJig.js.map +1 -0
- package/lib/command/modify/AcApOffsetCmd.d.ts.map +1 -1
- package/lib/command/modify/AcApOffsetCmd.js +5 -33
- package/lib/command/modify/AcApOffsetCmd.js.map +1 -1
- package/lib/command/modify/AcApRotateCmd.d.ts +2 -2
- package/lib/command/modify/AcApRotateCmd.d.ts.map +1 -1
- package/lib/command/modify/AcApRotateCmd.js +37 -200
- package/lib/command/modify/AcApRotateCmd.js.map +1 -1
- package/lib/command/modify/AcApRotatePreviewJig.d.ts +47 -0
- package/lib/command/modify/AcApRotatePreviewJig.d.ts.map +1 -0
- package/lib/command/modify/AcApRotatePreviewJig.js +97 -0
- package/lib/command/modify/AcApRotatePreviewJig.js.map +1 -0
- package/lib/editor/command/AcEdCommand.d.ts +8 -0
- package/lib/editor/command/AcEdCommand.d.ts.map +1 -1
- package/lib/editor/command/AcEdCommand.js +48 -5
- package/lib/editor/command/AcEdCommand.js.map +1 -1
- package/lib/editor/global/eventBus.d.ts +10 -2
- package/lib/editor/global/eventBus.d.ts.map +1 -1
- package/lib/editor/global/eventBus.js.map +1 -1
- package/lib/editor/grip/AcEdGripAppearance.d.ts +18 -0
- package/lib/editor/grip/AcEdGripAppearance.d.ts.map +1 -0
- package/lib/editor/grip/AcEdGripAppearance.js +30 -0
- package/lib/editor/grip/AcEdGripAppearance.js.map +1 -0
- package/lib/editor/grip/AcEdGripEditSession.d.ts.map +1 -1
- package/lib/editor/grip/AcEdGripEditSession.js +9 -2
- package/lib/editor/grip/AcEdGripEditSession.js.map +1 -1
- package/lib/editor/grip/AcEdGripHandle.d.ts +3 -2
- package/lib/editor/grip/AcEdGripHandle.d.ts.map +1 -1
- package/lib/editor/grip/AcEdGripHandle.js +9 -6
- package/lib/editor/grip/AcEdGripHandle.js.map +1 -1
- package/lib/editor/grip/AcEdGripManager.d.ts +13 -1
- package/lib/editor/grip/AcEdGripManager.d.ts.map +1 -1
- package/lib/editor/grip/AcEdGripManager.js +54 -14
- package/lib/editor/grip/AcEdGripManager.js.map +1 -1
- package/lib/editor/input/AcEdBatchPreview.d.ts +96 -0
- package/lib/editor/input/AcEdBatchPreview.d.ts.map +1 -0
- package/lib/editor/input/AcEdBatchPreview.js +125 -0
- package/lib/editor/input/AcEdBatchPreview.js.map +1 -0
- package/lib/editor/input/AcEdPreviewJig.d.ts +1 -1
- package/lib/editor/input/AcEdPreviewJig.d.ts.map +1 -1
- package/lib/editor/input/AcEdPreviewJig.js +14 -0
- package/lib/editor/input/AcEdPreviewJig.js.map +1 -1
- package/lib/editor/input/AcEdSelectionPreviewJig.d.ts +109 -0
- package/lib/editor/input/AcEdSelectionPreviewJig.d.ts.map +1 -0
- package/lib/editor/input/AcEdSelectionPreviewJig.js +185 -0
- package/lib/editor/input/AcEdSelectionPreviewJig.js.map +1 -0
- package/lib/editor/input/index.d.ts +2 -0
- package/lib/editor/input/index.d.ts.map +1 -1
- package/lib/editor/input/index.js +2 -0
- package/lib/editor/input/index.js.map +1 -1
- package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts +7 -0
- package/lib/editor/input/prompt/AcEdPromptAngleOptions.d.ts.map +1 -1
- package/lib/editor/input/prompt/AcEdPromptAngleOptions.js +17 -0
- package/lib/editor/input/prompt/AcEdPromptAngleOptions.js.map +1 -1
- package/lib/editor/input/ui/AcEdFloatingInputBox.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdFloatingInputBox.js +10 -2
- package/lib/editor/input/ui/AcEdFloatingInputBox.js.map +1 -1
- package/lib/editor/input/ui/AcEdFloatingInputBoxes.d.ts.map +1 -1
- package/lib/editor/input/ui/AcEdFloatingInputBoxes.js +9 -4
- package/lib/editor/input/ui/AcEdFloatingInputBoxes.js.map +1 -1
- package/lib/editor/view/AcEdBaseView.d.ts +37 -2
- package/lib/editor/view/AcEdBaseView.d.ts.map +1 -1
- package/lib/editor/view/AcEdBaseView.js +14 -12
- package/lib/editor/view/AcEdBaseView.js.map +1 -1
- package/lib/editor/view/AcEdSpatialQueryResult.d.ts +28 -0
- package/lib/editor/view/AcEdSpatialQueryResult.d.ts.map +1 -1
- package/lib/editor/view/AcEdSpatialQueryResult.js +65 -1
- package/lib/editor/view/AcEdSpatialQueryResult.js.map +1 -1
- package/lib/i18n/AcApI18n.d.ts +42 -0
- package/lib/i18n/AcApI18n.d.ts.map +1 -1
- package/lib/i18n/AcApI18n.js +56 -4
- package/lib/i18n/AcApI18n.js.map +1 -1
- package/lib/i18n/en/command.d.ts +23 -0
- package/lib/i18n/en/command.d.ts.map +1 -1
- package/lib/i18n/en/command.js +23 -0
- package/lib/i18n/en/command.js.map +1 -1
- package/lib/i18n/zh/command.d.ts +23 -0
- package/lib/i18n/zh/command.d.ts.map +1 -1
- package/lib/i18n/zh/command.js +23 -0
- package/lib/i18n/zh/command.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/service/AcApEntitySelection.d.ts +42 -0
- package/lib/service/AcApEntitySelection.d.ts.map +1 -0
- package/lib/service/AcApEntitySelection.js +156 -0
- package/lib/service/AcApEntitySelection.js.map +1 -0
- package/lib/service/AcApEntityService.d.ts +115 -0
- package/lib/service/AcApEntityService.d.ts.map +1 -0
- package/lib/service/AcApEntityService.js +194 -0
- package/lib/service/AcApEntityService.js.map +1 -0
- package/lib/{command/layer → service}/AcApLayerIsoState.d.ts +6 -24
- package/lib/service/AcApLayerIsoState.d.ts.map +1 -0
- package/lib/service/AcApLayerIsoState.js +28 -0
- package/lib/service/AcApLayerIsoState.js.map +1 -0
- package/lib/service/AcApLayerService.d.ts +400 -0
- package/lib/service/AcApLayerService.d.ts.map +1 -0
- package/lib/service/AcApLayerService.js +1240 -0
- package/lib/service/AcApLayerService.js.map +1 -0
- package/lib/service/AcApLayerStore.d.ts +198 -0
- package/lib/service/AcApLayerStore.d.ts.map +1 -0
- package/lib/service/AcApLayerStore.js +335 -0
- package/lib/service/AcApLayerStore.js.map +1 -0
- package/lib/service/AcApServiceEdit.d.ts +18 -0
- package/lib/service/AcApServiceEdit.d.ts.map +1 -0
- package/lib/service/AcApServiceEdit.js +34 -0
- package/lib/service/AcApServiceEdit.js.map +1 -0
- package/lib/service/index.d.ts +16 -0
- package/lib/service/index.d.ts.map +1 -0
- package/lib/service/index.js +16 -0
- package/lib/service/index.js.map +1 -0
- package/lib/service/types.d.ts +116 -0
- package/lib/service/types.d.ts.map +1 -0
- package/lib/service/types.js +5 -0
- package/lib/service/types.js.map +1 -0
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts +21 -6
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js +56 -10
- package/lib/spatialIndex/AcTrHierarchicalSpatialIndex.js.map +1 -1
- package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts +2 -2
- package/lib/spatialIndex/AcTrLinearSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrLinearSpatialIndex.js +9 -3
- package/lib/spatialIndex/AcTrLinearSpatialIndex.js.map +1 -1
- package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts +2 -2
- package/lib/spatialIndex/AcTrRBushSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrRBushSpatialIndex.js +19 -5
- package/lib/spatialIndex/AcTrRBushSpatialIndex.js.map +1 -1
- package/lib/spatialIndex/AcTrSpatialIndex.d.ts +10 -1
- package/lib/spatialIndex/AcTrSpatialIndex.d.ts.map +1 -1
- package/lib/spatialIndex/AcTrSpatialIndex.js +7 -1
- package/lib/spatialIndex/AcTrSpatialIndex.js.map +1 -1
- package/lib/util/AcApDatabaseEdit.d.ts +11 -0
- package/lib/util/AcApDatabaseEdit.d.ts.map +1 -0
- package/lib/util/AcApDatabaseEdit.js +20 -0
- package/lib/util/AcApDatabaseEdit.js.map +1 -0
- package/lib/util/AcApGeTransform.d.ts +10 -0
- package/lib/util/AcApGeTransform.d.ts.map +1 -0
- package/lib/util/AcApGeTransform.js +15 -0
- package/lib/util/AcApGeTransform.js.map +1 -0
- package/lib/util/index.d.ts +2 -0
- package/lib/util/index.d.ts.map +1 -1
- package/lib/util/index.js +2 -0
- package/lib/util/index.js.map +1 -1
- package/lib/view/AcEdViewKeyHandler.d.ts +32 -0
- package/lib/view/AcEdViewKeyHandler.d.ts.map +1 -0
- package/lib/view/AcEdViewKeyHandler.js +101 -0
- package/lib/view/AcEdViewKeyHandler.js.map +1 -0
- package/lib/view/AcTrGroupWcsBboxAssert.d.ts +16 -0
- package/lib/view/AcTrGroupWcsBboxAssert.d.ts.map +1 -1
- package/lib/view/AcTrGroupWcsBboxAssert.js +19 -0
- package/lib/view/AcTrGroupWcsBboxAssert.js.map +1 -1
- package/lib/view/AcTrInheritedLayerMaterialMapper.d.ts +49 -0
- package/lib/view/AcTrInheritedLayerMaterialMapper.d.ts.map +1 -0
- package/lib/view/AcTrInheritedLayerMaterialMapper.js +138 -0
- package/lib/view/AcTrInheritedLayerMaterialMapper.js.map +1 -0
- package/lib/view/AcTrLayer.d.ts +26 -2
- package/lib/view/AcTrLayer.d.ts.map +1 -1
- package/lib/view/AcTrLayer.js +64 -0
- package/lib/view/AcTrLayer.js.map +1 -1
- package/lib/view/AcTrLayerAppearanceController.d.ts +55 -0
- package/lib/view/AcTrLayerAppearanceController.d.ts.map +1 -0
- package/lib/view/AcTrLayerAppearanceController.js +86 -0
- package/lib/view/AcTrLayerAppearanceController.js.map +1 -0
- package/lib/view/AcTrLayout.d.ts +36 -1
- package/lib/view/AcTrLayout.d.ts.map +1 -1
- package/lib/view/AcTrLayout.js +160 -14
- package/lib/view/AcTrLayout.js.map +1 -1
- package/lib/view/AcTrScene.d.ts +47 -1
- package/lib/view/AcTrScene.d.ts.map +1 -1
- package/lib/view/AcTrScene.js +78 -3
- package/lib/view/AcTrScene.js.map +1 -1
- package/lib/view/AcTrView2d.d.ts +50 -53
- package/lib/view/AcTrView2d.d.ts.map +1 -1
- package/lib/view/AcTrView2d.js +195 -312
- package/lib/view/AcTrView2d.js.map +1 -1
- package/lib/view/index.d.ts +3 -0
- package/lib/view/index.d.ts.map +1 -1
- package/lib/view/index.js +3 -0
- package/lib/view/index.js.map +1 -1
- package/package.json +7 -7
- package/lib/command/layer/AcApLayerIsoState.d.ts.map +0 -1
- package/lib/command/layer/AcApLayerIsoState.js +0 -53
- package/lib/command/layer/AcApLayerIsoState.js.map +0 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AcDbDatabase } from '@mlightcad/data-model';
|
|
2
|
+
/**
|
|
3
|
+
* Notifies UI listeners that undo/redo availability may have changed.
|
|
4
|
+
*/
|
|
5
|
+
export declare function acapNotifyUndoStackChanged(): void;
|
|
6
|
+
/**
|
|
7
|
+
* Application-layer shortcut for {@link AcDbDatabase.runDatabaseEdit} that also
|
|
8
|
+
* notifies UI listeners when a new undo mark is created.
|
|
9
|
+
*/
|
|
10
|
+
export declare function acapRunDatabaseEdit(db: AcDbDatabase, label: string, fn: () => void): void;
|
|
11
|
+
//# sourceMappingURL=AcApDatabaseEdit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcApDatabaseEdit.d.ts","sourceRoot":"","sources":["../../src/util/AcApDatabaseEdit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAIpD;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,IAAI,GACb,IAAI,CAMN"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { eventBus } from '../editor/global/eventBus';
|
|
2
|
+
/**
|
|
3
|
+
* Notifies UI listeners that undo/redo availability may have changed.
|
|
4
|
+
*/
|
|
5
|
+
export function acapNotifyUndoStackChanged() {
|
|
6
|
+
eventBus.emit('undo-stack-changed', {});
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Application-layer shortcut for {@link AcDbDatabase.runDatabaseEdit} that also
|
|
10
|
+
* notifies UI listeners when a new undo mark is created.
|
|
11
|
+
*/
|
|
12
|
+
export function acapRunDatabaseEdit(db, label, fn) {
|
|
13
|
+
var _a, _b;
|
|
14
|
+
var wasRecording = (_b = (_a = db.isUndoRecording) === null || _a === void 0 ? void 0 : _a.call(db)) !== null && _b !== void 0 ? _b : false;
|
|
15
|
+
db.runDatabaseEdit(label, fn);
|
|
16
|
+
if (!wasRecording) {
|
|
17
|
+
acapNotifyUndoStackChanged();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=AcApDatabaseEdit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcApDatabaseEdit.js","sourceRoot":"","sources":["../../src/util/AcApDatabaseEdit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEpD;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,EAAgB,EAChB,KAAa,EACb,EAAc;;IAEd,IAAM,YAAY,GAAG,MAAA,MAAA,EAAE,CAAC,eAAe,kDAAI,mCAAI,KAAK,CAAA;IACpD,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,0BAA0B,EAAE,CAAA;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AcGeMatrix3d, AcGePoint3dLike } from '@mlightcad/data-model';
|
|
2
|
+
/**
|
|
3
|
+
* Builds a world-space rotation matrix around a given base point.
|
|
4
|
+
*
|
|
5
|
+
* @param basePoint - Rotation origin.
|
|
6
|
+
* @param angleRad - Rotation angle in radians.
|
|
7
|
+
* @returns Composite transform that rotates around `basePoint`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createRotationMatrix(basePoint: AcGePoint3dLike, angleRad: number): AcGeMatrix3d;
|
|
10
|
+
//# sourceMappingURL=AcApGeTransform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcApGeTransform.d.ts","sourceRoot":"","sources":["../../src/util/AcApGeTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAErE;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,MAAM,gBAYjB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AcGeMatrix3d } from '@mlightcad/data-model';
|
|
2
|
+
/**
|
|
3
|
+
* Builds a world-space rotation matrix around a given base point.
|
|
4
|
+
*
|
|
5
|
+
* @param basePoint - Rotation origin.
|
|
6
|
+
* @param angleRad - Rotation angle in radians.
|
|
7
|
+
* @returns Composite transform that rotates around `basePoint`.
|
|
8
|
+
*/
|
|
9
|
+
export function createRotationMatrix(basePoint, angleRad) {
|
|
10
|
+
return new AcGeMatrix3d()
|
|
11
|
+
.makeTranslation(basePoint.x, basePoint.y, basePoint.z)
|
|
12
|
+
.multiply(new AcGeMatrix3d().makeRotationZ(angleRad))
|
|
13
|
+
.multiply(new AcGeMatrix3d().makeTranslation(-basePoint.x, -basePoint.y, -basePoint.z));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=AcApGeTransform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcApGeTransform.js","sourceRoot":"","sources":["../../src/util/AcApGeTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmB,MAAM,uBAAuB,CAAA;AAErE;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAA0B,EAC1B,QAAgB;IAEhB,OAAO,IAAI,YAAY,EAAE;SACtB,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;SACtD,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SACpD,QAAQ,CACP,IAAI,YAAY,EAAE,CAAC,eAAe,CAChC,CAAC,SAAS,CAAC,CAAC,EACZ,CAAC,SAAS,CAAC,CAAC,EACZ,CAAC,SAAS,CAAC,CAAC,CACb,CACF,CAAA;AACL,CAAC"}
|
package/lib/util/index.d.ts
CHANGED
package/lib/util/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
|
package/lib/util/index.js
CHANGED
package/lib/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AcTrView2d } from './AcTrView2d';
|
|
2
|
+
/**
|
|
3
|
+
* Document-level undo/redo shortcut resolved from a keyboard event.
|
|
4
|
+
*
|
|
5
|
+
* - Windows: Ctrl+Z (undo), Ctrl+Y (redo)
|
|
6
|
+
* - macOS: Cmd+Z (undo), Shift+Cmd+Z (redo)
|
|
7
|
+
*
|
|
8
|
+
* Ctrl/Cmd+Shift+Z is also accepted as redo on Windows for convenience.
|
|
9
|
+
*/
|
|
10
|
+
export type AcEdUndoRedoShortcut = 'undo' | 'redo';
|
|
11
|
+
/**
|
|
12
|
+
* Handles global keyboard shortcuts for a CAD view.
|
|
13
|
+
*
|
|
14
|
+
* Shortcuts are suppressed while the user is typing in editable fields, during
|
|
15
|
+
* IME composition, while a command is acquiring input, or while MText is being
|
|
16
|
+
* edited inline.
|
|
17
|
+
*/
|
|
18
|
+
export declare class AcEdViewKeyHandler {
|
|
19
|
+
private readonly view;
|
|
20
|
+
private static readonly COMMAND_LINE_INPUT_CLASS;
|
|
21
|
+
constructor(view: AcTrView2d);
|
|
22
|
+
/**
|
|
23
|
+
* Handles a document `keydown` event for global view shortcuts.
|
|
24
|
+
*
|
|
25
|
+
* @returns `true` when the event was consumed and default action prevented.
|
|
26
|
+
*/
|
|
27
|
+
handleKeyDown(e: KeyboardEvent): boolean;
|
|
28
|
+
private resolveUndoRedoShortcut;
|
|
29
|
+
private shouldIgnoreEditableTargetShortcut;
|
|
30
|
+
private shouldHandleUndoRedoShortcut;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=AcEdViewKeyHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcEdViewKeyHandler.d.ts","sourceRoot":"","sources":["../../src/view/AcEdViewKeyHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,CAAA;AAElD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAgB;gBAEnC,IAAI,EAAE,UAAU;IAE7C;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO;IA0CxC,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,kCAAkC;IAmB1C,OAAO,CAAC,4BAA4B;CA4BrC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { AcApDocManager } from '../app';
|
|
2
|
+
import { AcEdMTextEditor } from '../editor/input/ui/AcEdMTextEditor';
|
|
3
|
+
/**
|
|
4
|
+
* Handles global keyboard shortcuts for a CAD view.
|
|
5
|
+
*
|
|
6
|
+
* Shortcuts are suppressed while the user is typing in editable fields, during
|
|
7
|
+
* IME composition, while a command is acquiring input, or while MText is being
|
|
8
|
+
* edited inline.
|
|
9
|
+
*/
|
|
10
|
+
var AcEdViewKeyHandler = /** @class */ (function () {
|
|
11
|
+
function AcEdViewKeyHandler(view) {
|
|
12
|
+
this.view = view;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Handles a document `keydown` event for global view shortcuts.
|
|
16
|
+
*
|
|
17
|
+
* @returns `true` when the event was consumed and default action prevented.
|
|
18
|
+
*/
|
|
19
|
+
AcEdViewKeyHandler.prototype.handleKeyDown = function (e) {
|
|
20
|
+
var undoRedoShortcut = this.resolveUndoRedoShortcut(e);
|
|
21
|
+
var ignoreEditableTarget = this.shouldIgnoreEditableTargetShortcut(e);
|
|
22
|
+
if (ignoreEditableTarget && !undoRedoShortcut) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (undoRedoShortcut) {
|
|
26
|
+
if (!this.shouldHandleUndoRedoShortcut(e) ||
|
|
27
|
+
AcEdMTextEditor.getActiveInputBox() ||
|
|
28
|
+
this.view.editor.isActive) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
AcApDocManager.instance.sendStringToExecute(undoRedoShortcut);
|
|
32
|
+
e.preventDefault();
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
switch (e.code) {
|
|
36
|
+
case 'Escape':
|
|
37
|
+
this.view.selectionSet.clear();
|
|
38
|
+
return false;
|
|
39
|
+
case 'Delete':
|
|
40
|
+
case 'Backspace':
|
|
41
|
+
// Only dispatch erase when no command is currently active.
|
|
42
|
+
// Dispatching erase mid-command (e.g. while LINE awaits the next
|
|
43
|
+
// point) corrupts the active command's input pipeline because
|
|
44
|
+
// sendStringToExecute clears scripted inputs unconditionally.
|
|
45
|
+
if (!this.view.editor.isActive) {
|
|
46
|
+
AcApDocManager.instance.sendStringToExecute('erase');
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
};
|
|
52
|
+
AcEdViewKeyHandler.prototype.resolveUndoRedoShortcut = function (e) {
|
|
53
|
+
if (!e.ctrlKey && !e.metaKey) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
if (e.code === 'KeyY') {
|
|
57
|
+
return 'redo';
|
|
58
|
+
}
|
|
59
|
+
if (e.code === 'KeyZ') {
|
|
60
|
+
return e.shiftKey ? 'redo' : 'undo';
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
};
|
|
64
|
+
AcEdViewKeyHandler.prototype.shouldIgnoreEditableTargetShortcut = function (e) {
|
|
65
|
+
if (e.isComposing || e.keyCode === 229) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
var target = e.target;
|
|
69
|
+
if ((target === null || target === void 0 ? void 0 : target.tagName) === 'TEXTAREA') {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
if (target === null || target === void 0 ? void 0 : target.isContentEditable) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return (target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT';
|
|
76
|
+
};
|
|
77
|
+
AcEdViewKeyHandler.prototype.shouldHandleUndoRedoShortcut = function (e) {
|
|
78
|
+
if (e.isComposing || e.keyCode === 229) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
var target = e.target;
|
|
82
|
+
if ((target === null || target === void 0 ? void 0 : target.tagName) === 'TEXTAREA') {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
if (target === null || target === void 0 ? void 0 : target.isContentEditable) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if ((target === null || target === void 0 ? void 0 : target.tagName) === 'INPUT') {
|
|
89
|
+
var input = target;
|
|
90
|
+
if (input.classList.contains(AcEdViewKeyHandler.COMMAND_LINE_INPUT_CLASS)) {
|
|
91
|
+
return input.value.trim() === '' && !input.readOnly;
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
return true;
|
|
96
|
+
};
|
|
97
|
+
AcEdViewKeyHandler.COMMAND_LINE_INPUT_CLASS = 'ml-cli-text';
|
|
98
|
+
return AcEdViewKeyHandler;
|
|
99
|
+
}());
|
|
100
|
+
export { AcEdViewKeyHandler };
|
|
101
|
+
//# sourceMappingURL=AcEdViewKeyHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcEdViewKeyHandler.js","sourceRoot":"","sources":["../../src/view/AcEdViewKeyHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,24 @@ export interface AcTrGroupWcsBboxLike {
|
|
|
9
9
|
maxY: number;
|
|
10
10
|
}>;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Tests whether a 2D axis-aligned box has finite extents.
|
|
14
|
+
*
|
|
15
|
+
* Deferred MText/Shape geometry can seed `±Infinity` placeholders in
|
|
16
|
+
* {@link AcTrGroup.wcsChildBoxes}; those entries must be skipped when unioning
|
|
17
|
+
* bounds for spatial indexing.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isFiniteSpatialBBox(box: {
|
|
20
|
+
minX: number;
|
|
21
|
+
minY: number;
|
|
22
|
+
maxX: number;
|
|
23
|
+
maxY: number;
|
|
24
|
+
}): boolean;
|
|
12
25
|
/**
|
|
13
26
|
* Unions per-child WCS boxes into one axis-aligned WCS box.
|
|
27
|
+
*
|
|
28
|
+
* Non-finite child boxes are skipped, matching
|
|
29
|
+
* {@link AcTrGroup.syncWcsBboxFromChildBoxes}.
|
|
14
30
|
*/
|
|
15
31
|
export declare function unionGroupWcsChildBoxes(group: AcTrGroupWcsBboxLike): THREE.Box3;
|
|
16
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcTrGroupWcsBboxAssert.d.ts","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;IACnB,aAAa,EAAE,aAAa,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;CACH;AAED
|
|
1
|
+
{"version":3,"file":"AcTrGroupWcsBboxAssert.d.ts","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;IACnB,aAAa,EAAE,aAAa,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAC,CAAA;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAOV;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,KAAK,CAAC,IAAI,CAcZ;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,oBAAoB,GAC1B,IAAI,CAsBN;AAED,0DAA0D;AAC1D,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAEzE"}
|
|
@@ -11,8 +11,24 @@ var __values = (this && this.__values) || function(o) {
|
|
|
11
11
|
};
|
|
12
12
|
import * as THREE from 'three';
|
|
13
13
|
var WCS_BBOX_TOLERANCE = 1e-5;
|
|
14
|
+
/**
|
|
15
|
+
* Tests whether a 2D axis-aligned box has finite extents.
|
|
16
|
+
*
|
|
17
|
+
* Deferred MText/Shape geometry can seed `±Infinity` placeholders in
|
|
18
|
+
* {@link AcTrGroup.wcsChildBoxes}; those entries must be skipped when unioning
|
|
19
|
+
* bounds for spatial indexing.
|
|
20
|
+
*/
|
|
21
|
+
export function isFiniteSpatialBBox(box) {
|
|
22
|
+
return (Number.isFinite(box.minX) &&
|
|
23
|
+
Number.isFinite(box.minY) &&
|
|
24
|
+
Number.isFinite(box.maxX) &&
|
|
25
|
+
Number.isFinite(box.maxY));
|
|
26
|
+
}
|
|
14
27
|
/**
|
|
15
28
|
* Unions per-child WCS boxes into one axis-aligned WCS box.
|
|
29
|
+
*
|
|
30
|
+
* Non-finite child boxes are skipped, matching
|
|
31
|
+
* {@link AcTrGroup.syncWcsBboxFromChildBoxes}.
|
|
16
32
|
*/
|
|
17
33
|
export function unionGroupWcsChildBoxes(group) {
|
|
18
34
|
var e_1, _a;
|
|
@@ -20,6 +36,9 @@ export function unionGroupWcsChildBoxes(group) {
|
|
|
20
36
|
try {
|
|
21
37
|
for (var _b = __values(group.wcsChildBoxes), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
22
38
|
var box = _c.value;
|
|
39
|
+
if (!isFiniteSpatialBBox(box)) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
23
42
|
union.union(new THREE.Box3(new THREE.Vector3(box.minX, box.minY, 0), new THREE.Vector3(box.maxX, box.maxY, 0)));
|
|
24
43
|
}
|
|
25
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcTrGroupWcsBboxAssert.js","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,IAAM,kBAAkB,GAAG,IAAI,CAAA;AAY/B
|
|
1
|
+
{"version":3,"file":"AcTrGroupWcsBboxAssert.js","sourceRoot":"","sources":["../../src/view/AcTrGroupWcsBboxAssert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { AcGiSubEntityTraits } from '@mlightcad/data-model';
|
|
2
|
+
import { AcTrRenderer } from '@mlightcad/three-renderer';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
/**
|
|
5
|
+
* Remaps layer metadata and material bindings when block contents inherit an INSERT layer.
|
|
6
|
+
*
|
|
7
|
+
* AutoCAD requires entities authored on layer "0" inside a block to inherit the INSERT's
|
|
8
|
+
* layer for ByLayer traits. This mapper mutates drawable `userData.layerName` and rebinds
|
|
9
|
+
* materials via the renderer style cache so subsequent layer-level style edits target the
|
|
10
|
+
* correct material instances.
|
|
11
|
+
*/
|
|
12
|
+
export declare class AcTrInheritedLayerMaterialMapper {
|
|
13
|
+
private readonly getLayerTraits;
|
|
14
|
+
private readonly renderer;
|
|
15
|
+
/**
|
|
16
|
+
* @param getLayerTraits - Resolves live layer-table traits for an effective layer name.
|
|
17
|
+
* @param renderer - Renderer used to rebind materials through the style cache.
|
|
18
|
+
*/
|
|
19
|
+
constructor(getLayerTraits: (layerName: string) => Partial<AcGiSubEntityTraits> | undefined, renderer: AcTrRenderer);
|
|
20
|
+
/**
|
|
21
|
+
* Remaps materials for objects in a layer bucket after INSERT decomposition.
|
|
22
|
+
*
|
|
23
|
+
* @param objects - Root objects in the current layer bucket to traverse and remap.
|
|
24
|
+
* @param sourceLayerName - Layer name found in the block definition before inheritance.
|
|
25
|
+
* @param effectiveLayerName - Final layer name used by rendering and style updates.
|
|
26
|
+
*/
|
|
27
|
+
remap(objects: THREE.Object3D[], sourceLayerName: string, effectiveLayerName: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Layer-0 block contents with ByLayer color resolve to ACI-7 foreground materials before
|
|
30
|
+
* INSERT remapping. Those materials must still inherit the INSERT layer when their colour
|
|
31
|
+
* is layer-bound, while explicit ACI-7 entities on layer 0 stay untouched.
|
|
32
|
+
*
|
|
33
|
+
* @param material - Candidate material to evaluate for INSERT-layer rebinding.
|
|
34
|
+
* @param sourceLayerName - Layer name from the block definition before inheritance.
|
|
35
|
+
* @returns True when the material should be rebound to the INSERT layer.
|
|
36
|
+
*/
|
|
37
|
+
private shouldRemap;
|
|
38
|
+
/**
|
|
39
|
+
* Some DXF conversion paths lose `isByLayerColor` on layer-0 block contents while still
|
|
40
|
+
* retaining other ByLayer markers (lineType/lineWeight/transparency). For AutoCAD-compatible
|
|
41
|
+
* INSERT inheritance, treat such colors as inheritable when remapping from layer "0".
|
|
42
|
+
*
|
|
43
|
+
* @param material - Material whose ByLayer metadata may need normalization.
|
|
44
|
+
* @param sourceLayerName - Source bucket layer name (typically `"0"`).
|
|
45
|
+
* @returns The same material instance, possibly with patched metadata.
|
|
46
|
+
*/
|
|
47
|
+
private promoteLayerZeroByLayerColor;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=AcTrInheritedLayerMaterialMapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcTrInheritedLayerMaterialMapper.d.ts","sourceRoot":"","sources":["../../src/view/AcTrInheritedLayerMaterialMapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EACL,YAAY,EAMb,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;;;;;GAOG;AACH,qBAAa,gCAAgC;IAMzC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B;;;OAGG;gBAEgB,cAAc,EAAE,CAC/B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,EAC5B,QAAQ,EAAE,YAAY;IAGzC;;;;;;OAMG;IACH,KAAK,CACH,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EACzB,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,GACzB,IAAI;IAoEP;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;;;;;OAQG;IACH,OAAO,CAAC,4BAA4B;CAarC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
var __values = (this && this.__values) || function(o) {
|
|
2
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
3
|
+
if (m) return m.call(o);
|
|
4
|
+
if (o && typeof o.length === "number") return {
|
|
5
|
+
next: function () {
|
|
6
|
+
if (o && i >= o.length) o = void 0;
|
|
7
|
+
return { value: o && o[i++], done: !o };
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
11
|
+
};
|
|
12
|
+
import { getMaterialMetadata, getSceneDrawableUserData, hasByLayerBinding, setMaterialMetadata, syncStyleMaterialIdFromMaterials } from '@mlightcad/three-renderer';
|
|
13
|
+
/**
|
|
14
|
+
* Remaps layer metadata and material bindings when block contents inherit an INSERT layer.
|
|
15
|
+
*
|
|
16
|
+
* AutoCAD requires entities authored on layer "0" inside a block to inherit the INSERT's
|
|
17
|
+
* layer for ByLayer traits. This mapper mutates drawable `userData.layerName` and rebinds
|
|
18
|
+
* materials via the renderer style cache so subsequent layer-level style edits target the
|
|
19
|
+
* correct material instances.
|
|
20
|
+
*/
|
|
21
|
+
var AcTrInheritedLayerMaterialMapper = /** @class */ (function () {
|
|
22
|
+
/**
|
|
23
|
+
* @param getLayerTraits - Resolves live layer-table traits for an effective layer name.
|
|
24
|
+
* @param renderer - Renderer used to rebind materials through the style cache.
|
|
25
|
+
*/
|
|
26
|
+
function AcTrInheritedLayerMaterialMapper(getLayerTraits, renderer) {
|
|
27
|
+
this.getLayerTraits = getLayerTraits;
|
|
28
|
+
this.renderer = renderer;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Remaps materials for objects in a layer bucket after INSERT decomposition.
|
|
32
|
+
*
|
|
33
|
+
* @param objects - Root objects in the current layer bucket to traverse and remap.
|
|
34
|
+
* @param sourceLayerName - Layer name found in the block definition before inheritance.
|
|
35
|
+
* @param effectiveLayerName - Final layer name used by rendering and style updates.
|
|
36
|
+
*/
|
|
37
|
+
AcTrInheritedLayerMaterialMapper.prototype.remap = function (objects, sourceLayerName, effectiveLayerName) {
|
|
38
|
+
var e_1, _a;
|
|
39
|
+
var _this = this;
|
|
40
|
+
if (sourceLayerName === effectiveLayerName) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
var layerTraits = this.getLayerTraits(effectiveLayerName);
|
|
44
|
+
try {
|
|
45
|
+
for (var objects_1 = __values(objects), objects_1_1 = objects_1.next(); !objects_1_1.done; objects_1_1 = objects_1.next()) {
|
|
46
|
+
var object = objects_1_1.value;
|
|
47
|
+
object.traverse(function (child) {
|
|
48
|
+
var inheritsInsertLayer = child.userData.layerName === sourceLayerName;
|
|
49
|
+
if (inheritsInsertLayer) {
|
|
50
|
+
child.userData.layerName = effectiveLayerName;
|
|
51
|
+
}
|
|
52
|
+
if (!('material' in child)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
// Only layer-"0" (or the current source bucket) inherits INSERT traits.
|
|
56
|
+
// Attributes/text on other layers must keep their own layer materials.
|
|
57
|
+
if (!inheritsInsertLayer) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
var material = child.material;
|
|
61
|
+
if (Array.isArray(material)) {
|
|
62
|
+
var materials = material;
|
|
63
|
+
child.material = materials.map(function (entry) {
|
|
64
|
+
var _a;
|
|
65
|
+
if (!_this.shouldRemap(entry, sourceLayerName)) {
|
|
66
|
+
return entry;
|
|
67
|
+
}
|
|
68
|
+
return ((_a = _this.renderer.getLayerBoundMaterial(_this.promoteLayerZeroByLayerColor(entry, sourceLayerName), effectiveLayerName, layerTraits)) !== null && _a !== void 0 ? _a : entry);
|
|
69
|
+
});
|
|
70
|
+
syncStyleMaterialIdFromMaterials(getSceneDrawableUserData(child), child.material);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (!_this.shouldRemap(material, sourceLayerName)) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
var remappedMaterial = _this.renderer.getLayerBoundMaterial(_this.promoteLayerZeroByLayerColor(material, sourceLayerName), effectiveLayerName, layerTraits);
|
|
77
|
+
if (!remappedMaterial) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
child.material = remappedMaterial;
|
|
81
|
+
syncStyleMaterialIdFromMaterials(getSceneDrawableUserData(child), remappedMaterial);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
86
|
+
finally {
|
|
87
|
+
try {
|
|
88
|
+
if (objects_1_1 && !objects_1_1.done && (_a = objects_1.return)) _a.call(objects_1);
|
|
89
|
+
}
|
|
90
|
+
finally { if (e_1) throw e_1.error; }
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Layer-0 block contents with ByLayer color resolve to ACI-7 foreground materials before
|
|
95
|
+
* INSERT remapping. Those materials must still inherit the INSERT layer when their colour
|
|
96
|
+
* is layer-bound, while explicit ACI-7 entities on layer 0 stay untouched.
|
|
97
|
+
*
|
|
98
|
+
* @param material - Candidate material to evaluate for INSERT-layer rebinding.
|
|
99
|
+
* @param sourceLayerName - Layer name from the block definition before inheritance.
|
|
100
|
+
* @returns True when the material should be rebound to the INSERT layer.
|
|
101
|
+
*/
|
|
102
|
+
AcTrInheritedLayerMaterialMapper.prototype.shouldRemap = function (material, sourceLayerName) {
|
|
103
|
+
var metadata = getMaterialMetadata(material);
|
|
104
|
+
if (metadata.isForeground !== true) {
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
if (sourceLayerName !== '0') {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
if (metadata.isByLayerColor === true) {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
return (sourceLayerName === '0' &&
|
|
114
|
+
(metadata.isByLayerLineType === true ||
|
|
115
|
+
metadata.isByLayerLineWeight === true ||
|
|
116
|
+
metadata.isByLayerTransparency === true));
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Some DXF conversion paths lose `isByLayerColor` on layer-0 block contents while still
|
|
120
|
+
* retaining other ByLayer markers (lineType/lineWeight/transparency). For AutoCAD-compatible
|
|
121
|
+
* INSERT inheritance, treat such colors as inheritable when remapping from layer "0".
|
|
122
|
+
*
|
|
123
|
+
* @param material - Material whose ByLayer metadata may need normalization.
|
|
124
|
+
* @param sourceLayerName - Source bucket layer name (typically `"0"`).
|
|
125
|
+
* @returns The same material instance, possibly with patched metadata.
|
|
126
|
+
*/
|
|
127
|
+
AcTrInheritedLayerMaterialMapper.prototype.promoteLayerZeroByLayerColor = function (material, sourceLayerName) {
|
|
128
|
+
var metadata = getMaterialMetadata(material);
|
|
129
|
+
var hasAnyOtherByLayerBinding = hasByLayerBinding(metadata) && metadata.isByLayerColor !== true;
|
|
130
|
+
if (sourceLayerName === '0' && hasAnyOtherByLayerBinding) {
|
|
131
|
+
setMaterialMetadata(material, { isByLayerColor: true });
|
|
132
|
+
}
|
|
133
|
+
return material;
|
|
134
|
+
};
|
|
135
|
+
return AcTrInheritedLayerMaterialMapper;
|
|
136
|
+
}());
|
|
137
|
+
export { AcTrInheritedLayerMaterialMapper };
|
|
138
|
+
//# sourceMappingURL=AcTrInheritedLayerMaterialMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AcTrInheritedLayerMaterialMapper.js","sourceRoot":"","sources":["../../src/view/AcTrInheritedLayerMaterialMapper.ts"],"names":[],"mappings":"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"}
|
package/lib/view/AcTrLayer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AcDbObjectId } from '@mlightcad/data-model';
|
|
2
|
-
import { AcTrBatchedGroup, AcTrBatchedGroupStats, AcTrEntity } from '@mlightcad/three-renderer';
|
|
1
|
+
import { AcDbObjectId, AcGiSubEntityTraits } from '@mlightcad/data-model';
|
|
2
|
+
import { AcTrBatchedGroup, AcTrBatchedGroupStats, AcTrEntity, AcTrPreviewSubsetOptions, AcTrRenderer, AcTrStyleManager } from '@mlightcad/three-renderer';
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { AcEdLayerInfo } from '../editor';
|
|
5
5
|
/**
|
|
@@ -124,6 +124,22 @@ export declare class AcTrLayer {
|
|
|
124
124
|
* @param material - The new material associated with entities
|
|
125
125
|
*/
|
|
126
126
|
updateMaterial(oldId: number, material: THREE.Material): void;
|
|
127
|
+
/**
|
|
128
|
+
* Refreshes drawable materials after a layer-table style change.
|
|
129
|
+
*
|
|
130
|
+
* Updates batched material ids when the style cache remaps instances, patches
|
|
131
|
+
* unbatched drawables, and rematerializes text glyph hierarchies.
|
|
132
|
+
*
|
|
133
|
+
* @param layerName - Target layer whose drawables should be refreshed.
|
|
134
|
+
* @param layerTraits - Resolved layer traits from the live layer-table record.
|
|
135
|
+
* @param materials - Style-cache material map, keyed by previous material id.
|
|
136
|
+
* @param renderer - Renderer used to rebind layer-bound materials.
|
|
137
|
+
*/
|
|
138
|
+
syncAppearanceFromRecord(layerName: string, layerTraits: Partial<AcGiSubEntityTraits>, materials: Record<number, THREE.Material>, renderer: AcTrRenderer): void;
|
|
139
|
+
/** Rebinds batched drawables whose materials follow live layer-table style. */
|
|
140
|
+
rebindMaterialsForLayer(layerName: string, layerTraits: Partial<AcGiSubEntityTraits>, getLayerBoundMaterial: (material: THREE.Material, layerName: string, layerTraits?: Partial<AcGiSubEntityTraits>) => THREE.Material | undefined, styleManager?: AcTrStyleManager): void;
|
|
141
|
+
/** Rematerializes MTEXT/TEXT drawables stored as unbatched glyph subtrees. */
|
|
142
|
+
rematerializeLayerTextDrawables(layerName: string, styleManager: AcTrStyleManager, layerTraits?: Partial<AcGiSubEntityTraits>): void;
|
|
127
143
|
/**
|
|
128
144
|
* Re-render points with latest point style settings
|
|
129
145
|
* @param displayMode Input display mode of points
|
|
@@ -144,6 +160,14 @@ export declare class AcTrLayer {
|
|
|
144
160
|
* Returns the current scene visibility for one entity.
|
|
145
161
|
*/
|
|
146
162
|
getEntityVisible(objectId: AcDbObjectId): boolean | undefined;
|
|
163
|
+
/**
|
|
164
|
+
* Builds a preview subset for entities stored in this layer group.
|
|
165
|
+
*
|
|
166
|
+
* @param entityIds - Database object ids to extract from this layer
|
|
167
|
+
* @param options - Optional preview style and slot limits
|
|
168
|
+
* @returns Preview subset group, or `null` when extraction failed
|
|
169
|
+
*/
|
|
170
|
+
createPreviewSubset(entityIds: AcDbObjectId[], options?: AcTrPreviewSubsetOptions): THREE.Group<THREE.Object3DEventMap> | null;
|
|
147
171
|
/**
|
|
148
172
|
* Add one AutoCAD entity into this layer.
|
|
149
173
|
* @param entity Input AutoCAD entity to be added into this layer.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcTrLayer.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"AcTrLayer.d.ts","sourceRoot":"","sources":["../../src/view/AcTrLayer.ts"],"names":[],"mappings":"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"}
|