@gcode-viewer/plugins 0.3.0
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 +26 -0
- package/dist/index.esm.js +288 -0
- package/dist/types/axis-gizmo/AxisGizmoPlugin.d.ts +25 -0
- package/dist/types/axis-gizmo/CoordinateAxes.d.ts +1 -0
- package/dist/types/axis-gizmo/index.d.ts +2 -0
- package/dist/types/bottom-bar/BottomBarPlugin.d.ts +36 -0
- package/dist/types/bottom-bar/index.d.ts +2 -0
- package/dist/types/context-menu/Constants.d.ts +34 -0
- package/dist/types/context-menu/ContextMenu.config.d.ts +2 -0
- package/dist/types/context-menu/ContextMenuPlugin.d.ts +23 -0
- package/dist/types/context-menu/Locale.d.ts +51 -0
- package/dist/types/context-menu/index.d.ts +4 -0
- package/dist/types/dat-gui/Viewer3dDatGui.d.ts +69 -0
- package/dist/types/dat-gui/index.d.ts +1 -0
- package/dist/types/explode/ExplodePlugin.d.ts +46 -0
- package/dist/types/explode/ObjectExploder.d.ts +48 -0
- package/dist/types/explode/index.d.ts +1 -0
- package/dist/types/export/ExportPlugin.d.ts +57 -0
- package/dist/types/export/Locale.d.ts +41 -0
- package/dist/types/export/gltf/GltfExporter.d.ts +32 -0
- package/dist/types/export/gltf/index.d.ts +1 -0
- package/dist/types/export/index.d.ts +2 -0
- package/dist/types/export/obj/ObjZipExporter.d.ts +14 -0
- package/dist/types/export/obj/index.d.ts +3 -0
- package/dist/types/export/obj/mtl.d.ts +9 -0
- package/dist/types/export/obj/textures.d.ts +15 -0
- package/dist/types/gcode-layer-bar/GCodeLayerBarPlugin.d.ts +66 -0
- package/dist/types/gcode-layer-bar/Locale.d.ts +13 -0
- package/dist/types/gcode-layer-bar/index.d.ts +2 -0
- package/dist/types/gcode-legend/GCodeLegendPlugin.d.ts +58 -0
- package/dist/types/gcode-legend/Locale.d.ts +83 -0
- package/dist/types/gcode-legend/NephogramLegend.d.ts +8 -0
- package/dist/types/gcode-legend/index.d.ts +2 -0
- package/dist/types/gcode-steps-bar/GCodeStepsBarPlugin.d.ts +46 -0
- package/dist/types/gcode-steps-bar/Locale.d.ts +11 -0
- package/dist/types/gcode-steps-bar/index.d.ts +2 -0
- package/dist/types/gcode-text-panel/GCodeTextPanelPlugin.d.ts +54 -0
- package/dist/types/gcode-text-panel/Locale.d.ts +11 -0
- package/dist/types/gcode-text-panel/index.d.ts +2 -0
- package/dist/types/ground-grid/GroundGridPlugin.d.ts +38 -0
- package/dist/types/ground-grid/index.d.ts +1 -0
- package/dist/types/ground-shaow/GroundShadowPlugin.d.ts +58 -0
- package/dist/types/ground-shaow/index.d.ts +1 -0
- package/dist/types/hotpoint/HotpointPlugin.d.ts +92 -0
- package/dist/types/hotpoint/index.d.ts +1 -0
- package/dist/types/index.d.ts +29 -0
- package/dist/types/local-model-uploader/IUploader.d.ts +55 -0
- package/dist/types/local-model-uploader/LocalModelUploader.d.ts +19 -0
- package/dist/types/local-model-uploader/index.d.ts +2 -0
- package/dist/types/measurements/AngleMeasureDrawable.d.ts +12 -0
- package/dist/types/measurements/AngleMeasurement.d.ts +13 -0
- package/dist/types/measurements/AreaMeasureDrawable.d.ts +14 -0
- package/dist/types/measurements/AreaMeasurement.d.ts +24 -0
- package/dist/types/measurements/BaseMeasureDrawable.d.ts +28 -0
- package/dist/types/measurements/BaseMeasurement.d.ts +123 -0
- package/dist/types/measurements/CoordinateMeasureDrawable.d.ts +10 -0
- package/dist/types/measurements/CoordinateMeasurement.d.ts +12 -0
- package/dist/types/measurements/DistanceMeasureDrawable.d.ts +13 -0
- package/dist/types/measurements/DistanceMeasurement.d.ts +21 -0
- package/dist/types/measurements/Locale.d.ts +13 -0
- package/dist/types/measurements/MeasurementPlugin.d.ts +102 -0
- package/dist/types/measurements/index.d.ts +3 -0
- package/dist/types/measurements/undo/AddMeasurementCommand.d.ts +10 -0
- package/dist/types/measurements/undo/RemoveMeasurementCommand.d.ts +10 -0
- package/dist/types/plate/PlatePlugin.d.ts +85 -0
- package/dist/types/plate/index.d.ts +1 -0
- package/dist/types/property/AnimationPanel.d.ts +3 -0
- package/dist/types/property/CameraEditor.d.ts +3 -0
- package/dist/types/property/EnvironmentPanel.d.ts +3 -0
- package/dist/types/property/LightEditor.d.ts +3 -0
- package/dist/types/property/Locale.d.ts +83 -0
- package/dist/types/property/MaterialEditor.d.ts +9 -0
- package/dist/types/property/PropertyPanelUi.d.ts +34 -0
- package/dist/types/property/PropertyPlugin.d.ts +95 -0
- package/dist/types/property/Utils.d.ts +19 -0
- package/dist/types/property/Vec3Field.d.ts +25 -0
- package/dist/types/property/index.d.ts +2 -0
- package/dist/types/rhino-3dm-loader/Rhino3dmLoaderPlugin.d.ts +17 -0
- package/dist/types/rhino-3dm-loader/Rhino3dmModelLoader.d.ts +25 -0
- package/dist/types/rhino-3dm-loader/index.d.ts +1 -0
- package/dist/types/scene-edit/SceneEditActions.d.ts +24 -0
- package/dist/types/scene-edit/SceneEditPlugin.d.ts +26 -0
- package/dist/types/scene-edit/SceneEditRecording.d.ts +11 -0
- package/dist/types/scene-edit/SceneMeshSnapshot.d.ts +23 -0
- package/dist/types/scene-edit/SceneMeshSnapshotUtils.d.ts +11 -0
- package/dist/types/scene-edit/SceneNodeSnapshot.d.ts +7 -0
- package/dist/types/scene-edit/SceneNodeSnapshotUtils.d.ts +11 -0
- package/dist/types/scene-edit/commands/GeometryEditCommand.d.ts +10 -0
- package/dist/types/scene-edit/commands/InsertSceneNodeCommand.d.ts +10 -0
- package/dist/types/scene-edit/commands/MaterialEditCommand.d.ts +10 -0
- package/dist/types/scene-edit/commands/MoveSceneNodeCommand.d.ts +10 -0
- package/dist/types/scene-edit/commands/RemoveSceneObjectCommand.d.ts +9 -0
- package/dist/types/scene-edit/commands/TransformSceneObjectCommand.d.ts +17 -0
- package/dist/types/scene-edit/index.d.ts +13 -0
- package/dist/types/screenshot/ScreenshotPlugin.d.ts +134 -0
- package/dist/types/screenshot/index.d.ts +1 -0
- package/dist/types/sections/AxisPlaneSection.d.ts +65 -0
- package/dist/types/sections/AxisSectionPopPanel.d.ts +18 -0
- package/dist/types/sections/BaseSection.d.ts +64 -0
- package/dist/types/sections/Locale.d.ts +21 -0
- package/dist/types/sections/ObjectsBoxSection.d.ts +29 -0
- package/dist/types/sections/PickPlaneSection.d.ts +48 -0
- package/dist/types/sections/PickSectionPopPanel.d.ts +18 -0
- package/dist/types/sections/Section.constants.d.ts +13 -0
- package/dist/types/sections/SectionGizmo.d.ts +22 -0
- package/dist/types/sections/SectionPlaneMesh.d.ts +23 -0
- package/dist/types/sections/SectionPlugin.d.ts +147 -0
- package/dist/types/sections/index.d.ts +6 -0
- package/dist/types/settings-3d/Locale.d.ts +61 -0
- package/dist/types/settings-3d/Settings3dPlugin.d.ts +46 -0
- package/dist/types/settings-3d/index.d.ts +2 -0
- package/dist/types/skybox/GradientColorSkybox.d.ts +9 -0
- package/dist/types/skybox/SkyboxPlugin.d.ts +48 -0
- package/dist/types/skybox/index.d.ts +1 -0
- package/dist/types/stats/StatsPlugin.d.ts +18 -0
- package/dist/types/stats/index.d.ts +2 -0
- package/dist/types/step-loader/OcctImportScriptLoader.d.ts +22 -0
- package/dist/types/step-loader/StepLoaderPlugin.d.ts +22 -0
- package/dist/types/step-loader/StepModelLoader.d.ts +39 -0
- package/dist/types/step-loader/index.d.ts +3 -0
- package/dist/types/step-loader/occtMeshBuilder.d.ts +35 -0
- package/dist/types/toolbars/Locale.d.ts +57 -0
- package/dist/types/toolbars/Toolbar.config.d.ts +5 -0
- package/dist/types/toolbars/Toolbar.constants.d.ts +71 -0
- package/dist/types/toolbars/Toolbar.d.ts +112 -0
- package/dist/types/toolbars/Viewer3dToolbarPlugin.d.ts +37 -0
- package/dist/types/toolbars/index.d.ts +5 -0
- package/dist/types/transform/Locale.d.ts +21 -0
- package/dist/types/transform/TransformPlugin.d.ts +38 -0
- package/dist/types/transform/index.d.ts +1 -0
- package/dist/types/tree-view/Locale.d.ts +29 -0
- package/dist/types/tree-view/TreeNodeTypeIcons.d.ts +15 -0
- package/dist/types/tree-view/TreeViewDragDrop.d.ts +17 -0
- package/dist/types/tree-view/TreeViewPlugin.d.ts +66 -0
- package/dist/types/tree-view/index.d.ts +2 -0
- package/dist/types/view-cube/Locale.d.ts +21 -0
- package/dist/types/view-cube/ViewCube.d.ts +86 -0
- package/dist/types/view-cube/ViewCubePlugin.d.ts +20 -0
- package/dist/types/view-cube/index.d.ts +2 -0
- package/package.json +73 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseModelLoader, THREE, type ModelLoadContext, type ModelLoadFromBufferContext } from "@gcode-viewer/core";
|
|
2
|
+
export declare const DEFAULT_OCCT_IMPORT_SCRIPT_URL = "https://cdn.jsdelivr.net/npm/occt-import-js@0.0.23/dist/occt-import-js.js";
|
|
3
|
+
/** Folder containing `occt-import-js.wasm` (same layout as npm `dist/`). */
|
|
4
|
+
export declare const DEFAULT_OCCT_WASM_BASE_URL = "https://cdn.jsdelivr.net/npm/occt-import-js@0.0.23/dist/";
|
|
5
|
+
type OcctExchangeImportParams = {
|
|
6
|
+
linearUnit?: "millimeter" | "centimeter" | "meter" | "inch" | "foot";
|
|
7
|
+
linearDeflectionType?: "bounding_box_ratio" | "absolute_value";
|
|
8
|
+
linearDeflection?: number;
|
|
9
|
+
angularDeflection?: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* occt-import-js defaults `linearUnit` to millimeter; gcode-viewer uses meters for scene and measurements.
|
|
13
|
+
* Applies to STEP and IGES readers. BREP ignores `linearUnit` on vertex positions; see `BREP_TO_METERS_SCALE` below.
|
|
14
|
+
*/
|
|
15
|
+
export declare const DEFAULT_STEP_IMPORT_PARAMS: OcctExchangeImportParams;
|
|
16
|
+
export interface StepModelLoaderOptions {
|
|
17
|
+
/** Full URL to `occt-import-js.js`. Default: {@link DEFAULT_OCCT_IMPORT_SCRIPT_URL}. */
|
|
18
|
+
scriptUrl?: string;
|
|
19
|
+
/** Folder URL for wasm (trailing `/` optional). Default: {@link DEFAULT_OCCT_WASM_BASE_URL}. */
|
|
20
|
+
wasmBaseUrl?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Loads STEP (`.step` / `.stp`), IGES (`.iges` / `.igs`), and BREP (`.brep` / `.rle`) via occt-import-js.
|
|
24
|
+
* BREP geometry is scaled from assumed millimeters to meters so it matches STEP/IGES with `linearUnit: "meter"`.
|
|
25
|
+
*/
|
|
26
|
+
export declare class StepModelLoader extends BaseModelLoader {
|
|
27
|
+
readonly id = "loader.plugin.step";
|
|
28
|
+
readonly priority = 10;
|
|
29
|
+
readonly formats: readonly ["step", "stp", "iges", "igs", "brep", "rle"];
|
|
30
|
+
private readonly scriptUrl;
|
|
31
|
+
private readonly wasmBaseUrl;
|
|
32
|
+
private readonly importParams;
|
|
33
|
+
constructor(options?: StepModelLoaderOptions);
|
|
34
|
+
load(ctx: ModelLoadContext): Promise<THREE.Object3D>;
|
|
35
|
+
loadFromBuffer(ctx: ModelLoadFromBufferContext): Promise<THREE.Object3D>;
|
|
36
|
+
private parseOcctToResult;
|
|
37
|
+
private reportProgress;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { StepLoaderPlugin, type StepLoaderPluginConfig } from "./StepLoaderPlugin";
|
|
2
|
+
export { StepModelLoader, DEFAULT_OCCT_IMPORT_SCRIPT_URL, DEFAULT_OCCT_WASM_BASE_URL, DEFAULT_STEP_IMPORT_PARAMS, type StepModelLoaderOptions, } from "./StepModelLoader";
|
|
3
|
+
export { loadOcctImportOnce, type OcctImportFactory, type OcctImportRuntime } from "./OcctImportScriptLoader";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { THREE } from "@gcode-viewer/core";
|
|
2
|
+
export type OcctMeshNode = {
|
|
3
|
+
name?: string;
|
|
4
|
+
meshes?: number[];
|
|
5
|
+
children?: OcctMeshNode[];
|
|
6
|
+
};
|
|
7
|
+
export type OcctMeshAttributes = {
|
|
8
|
+
position?: {
|
|
9
|
+
array?: number[] | ArrayLike<number>;
|
|
10
|
+
};
|
|
11
|
+
normal?: {
|
|
12
|
+
array?: number[] | ArrayLike<number>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type OcctMeshData = {
|
|
16
|
+
name?: string;
|
|
17
|
+
color?: number[];
|
|
18
|
+
attributes?: OcctMeshAttributes;
|
|
19
|
+
index?: {
|
|
20
|
+
array?: number[] | ArrayLike<number>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export type OcctMeshParseResult = {
|
|
24
|
+
success: boolean;
|
|
25
|
+
reason?: string;
|
|
26
|
+
root?: OcctMeshNode;
|
|
27
|
+
meshes?: OcctMeshData[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Builds a Three.js group from occt-import-js `ReadStepFile` / `ReadIgesFile` / `ReadBrepFile` JSON result.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildOcctMeshGroup(result: OcctMeshParseResult, options: {
|
|
33
|
+
rootName: string;
|
|
34
|
+
defaultNodeName: string;
|
|
35
|
+
}): THREE.Group;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { i18n } from "@gcode-viewer/core";
|
|
2
|
+
export declare const en: {
|
|
3
|
+
homeView: string;
|
|
4
|
+
orthoView: string;
|
|
5
|
+
measurement: string;
|
|
6
|
+
distanceMeasurement: string;
|
|
7
|
+
areaMeasurement: string;
|
|
8
|
+
angleMeasurement: string;
|
|
9
|
+
coordinateMeasurement: string;
|
|
10
|
+
clearMeasurement: string;
|
|
11
|
+
section: string;
|
|
12
|
+
axisSection: string;
|
|
13
|
+
pickSectionPlane: string;
|
|
14
|
+
sectionBox: string;
|
|
15
|
+
treeView: string;
|
|
16
|
+
viewpoint: string;
|
|
17
|
+
annotation: string;
|
|
18
|
+
property: string;
|
|
19
|
+
settings: string;
|
|
20
|
+
compared: string;
|
|
21
|
+
quitCompare: string;
|
|
22
|
+
fullscreen: string;
|
|
23
|
+
layers: string;
|
|
24
|
+
zoomToRectangle: string;
|
|
25
|
+
zoomToExtent: string;
|
|
26
|
+
screenshot: string;
|
|
27
|
+
};
|
|
28
|
+
export declare const zh: {
|
|
29
|
+
homeView: string;
|
|
30
|
+
orthoView: string;
|
|
31
|
+
measurement: string;
|
|
32
|
+
distanceMeasurement: string;
|
|
33
|
+
areaMeasurement: string;
|
|
34
|
+
angleMeasurement: string;
|
|
35
|
+
coordinateMeasurement: string;
|
|
36
|
+
clearMeasurement: string;
|
|
37
|
+
section: string;
|
|
38
|
+
axisSection: string;
|
|
39
|
+
pickSectionPlane: string;
|
|
40
|
+
sectionBox: string;
|
|
41
|
+
treeView: string;
|
|
42
|
+
viewpoint: string;
|
|
43
|
+
annotation: string;
|
|
44
|
+
property: string;
|
|
45
|
+
settings: string;
|
|
46
|
+
compared: string;
|
|
47
|
+
quitCompare: string;
|
|
48
|
+
fullscreen: string;
|
|
49
|
+
layers: string;
|
|
50
|
+
zoomToRectangle: string;
|
|
51
|
+
zoomToExtent: string;
|
|
52
|
+
screenshot: string;
|
|
53
|
+
};
|
|
54
|
+
export declare const TOOLBAR_I18N_NAMESPACE: "toolbar";
|
|
55
|
+
export { i18n };
|
|
56
|
+
export type ToolbarTranslationKey = keyof typeof en;
|
|
57
|
+
export declare function t(key: ToolbarTranslationKey | string): string;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type BaseViewer, IconClass } from "@gcode-viewer/core";
|
|
2
|
+
import type { Toolbar } from "./Toolbar";
|
|
3
|
+
/**
|
|
4
|
+
* @type
|
|
5
|
+
* 1: button
|
|
6
|
+
* 2: dropdown menu
|
|
7
|
+
* 3: toggle button
|
|
8
|
+
*/
|
|
9
|
+
export declare enum ToolbarMenuType {
|
|
10
|
+
Button = 1,
|
|
11
|
+
DropdownMenu = 2,
|
|
12
|
+
ToggleButton = 3
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Buildin toolbar ids
|
|
16
|
+
*/
|
|
17
|
+
export declare enum ToolbarMenuId {
|
|
18
|
+
HomeView = "HomeView",
|
|
19
|
+
OrthoMode = "OrthoMode",
|
|
20
|
+
Measure = "Measure",
|
|
21
|
+
MeasureDistance = "MeasureDistance",
|
|
22
|
+
MeasureArea = "MeasureArea",
|
|
23
|
+
MeasureAngle = "MeasureAngle",
|
|
24
|
+
MeasureCoordinate = "MeasureCoordinate",
|
|
25
|
+
MeasureClear = "MeasureClear",
|
|
26
|
+
Section = "Section",
|
|
27
|
+
SectionBox = "SectionBox",
|
|
28
|
+
SectionPlane = "SectionPlane",
|
|
29
|
+
SectionAxis = "SectionAxis",
|
|
30
|
+
TreeView = "Tree View",
|
|
31
|
+
Viewpoint = "Viewpoint",
|
|
32
|
+
Annotation = "Annotation",
|
|
33
|
+
Property = "Property",
|
|
34
|
+
Settings = "Settings",
|
|
35
|
+
Compared = "Compared",
|
|
36
|
+
QuitCompare = "QuitCompare",
|
|
37
|
+
Fullscreen = "FullScreen",
|
|
38
|
+
SceneClear = "SceneClear",
|
|
39
|
+
Layers = "Layers",
|
|
40
|
+
ZoomToRectangle = "ZoomToRectangle",
|
|
41
|
+
ZoomToExtent = "ZoomToExtent",
|
|
42
|
+
Screenshot = "GetScreenshot"
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Toolbar menu config.
|
|
46
|
+
* Used to define menu item name, icon, child items, etc.
|
|
47
|
+
*/
|
|
48
|
+
export interface ToolbarMenuConfig {
|
|
49
|
+
menuName?: string;
|
|
50
|
+
icon?: IconClass;
|
|
51
|
+
children?: ToolbarConfig;
|
|
52
|
+
visible?: boolean;
|
|
53
|
+
mutexIds?: ToolbarMenuId[];
|
|
54
|
+
defaultActive?: boolean;
|
|
55
|
+
type?: ToolbarMenuType;
|
|
56
|
+
customElement?: (viewer: BaseViewer, menuId: string, cfg: ToolbarMenuConfig) => HTMLDivElement;
|
|
57
|
+
onActive?: (viewer: BaseViewer, toolbar: Toolbar) => void;
|
|
58
|
+
onDeactive?: (viewer: BaseViewer) => void;
|
|
59
|
+
onClick?: (viewer: BaseViewer, toolbar: Toolbar, event: MouseEvent | TouchEvent) => void;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Toolbar config.
|
|
63
|
+
* The key is ToolbarMenuId, and the value is a ToolbarMenuConfig.
|
|
64
|
+
*/
|
|
65
|
+
export type ToolbarConfig = {
|
|
66
|
+
[key in ToolbarMenuId]?: ToolbarMenuConfig;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* @hidden
|
|
70
|
+
*/
|
|
71
|
+
export declare const GroupConfig: ToolbarMenuId[][];
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type BaseViewer } from "@gcode-viewer/core";
|
|
2
|
+
import { ToolbarConfig, ToolbarMenuConfig, ToolbarMenuId } from "./Toolbar.constants";
|
|
3
|
+
/**
|
|
4
|
+
* @class Toolbar
|
|
5
|
+
* @description A customized toolbar.
|
|
6
|
+
*
|
|
7
|
+
* For example:
|
|
8
|
+
* #### Example 1:
|
|
9
|
+
* Using {@link updateMenu} to modify the toolbar configuration
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const toolbar = this.viewer.toolbar;
|
|
12
|
+
* toolbar.updateMenu(ToolbarMenuId.Viewpoint, { onActive: this.handleActive });
|
|
13
|
+
* toolbar.updateMenu(ToolbarMenuId.Annotation, { visible: false });
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* #### Example 2:
|
|
17
|
+
* Using {@link addMenu} to add a new menu to the toolbar with specific position.
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const toolbar = this.viewer.toolbar;
|
|
20
|
+
* toolbar.addMenu(
|
|
21
|
+
* "newMenu",
|
|
22
|
+
* { icon: { default: "icon-new" }, menuName: "New menu item", controller: TreeViewerController },
|
|
23
|
+
* [2, 5]
|
|
24
|
+
* );
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* #### Example 3:
|
|
28
|
+
* Modify the configuration in to custmize the toolbar directly, and then {@link refresh} the whole toolbar.
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const toolbar = this.viewer.toolbar;
|
|
31
|
+
* const toolbarGroupConfig = [
|
|
32
|
+
* [ToolbarMenuId.OrthoMode, ToolbarMenuId.FullScreen],
|
|
33
|
+
* [ToolbarMenuId.Measure, ToolbarMenuId.Section],
|
|
34
|
+
* [ToolbarMenuId.TreeView, ToolbarMenuId.Viewpoint, ToolbarMenuId.Annotation, ToolbarMenuId.Property],
|
|
35
|
+
* [ToolbarMenuId.Setting, "newMenu"],
|
|
36
|
+
* ];
|
|
37
|
+
* toolbar.toolbarGroupConfig = toolbarGroupConfig;
|
|
38
|
+
* toolbar.refresh();
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare class Toolbar {
|
|
42
|
+
protected viewer: BaseViewer;
|
|
43
|
+
protected element: HTMLDivElement | undefined;
|
|
44
|
+
protected visible: boolean;
|
|
45
|
+
activateMenuId?: string;
|
|
46
|
+
menuList: Map<string, ToolbarMenu>;
|
|
47
|
+
protected menuCfg: ToolbarConfig;
|
|
48
|
+
protected groupCfg: ToolbarMenuId[][] | string[][];
|
|
49
|
+
protected screenshotDownloadFileName: string;
|
|
50
|
+
private collapsed;
|
|
51
|
+
private collapseToggleEl?;
|
|
52
|
+
constructor(viewer: BaseViewer, menuCfg: ToolbarConfig, groupCfg?: ToolbarMenuId[][] | string[][]);
|
|
53
|
+
private init;
|
|
54
|
+
private toggleCollapsed;
|
|
55
|
+
private syncCollapseUi;
|
|
56
|
+
keydown: (e: KeyboardEvent) => void;
|
|
57
|
+
clearActive(): void;
|
|
58
|
+
setActive(menuId: string, active: boolean): void;
|
|
59
|
+
isActive(menuId: string): boolean;
|
|
60
|
+
setScreenshotDownloadFileName(filename: string): void;
|
|
61
|
+
getScreenshotDownloadFileName(): string;
|
|
62
|
+
private createToolbarMenu;
|
|
63
|
+
/**
|
|
64
|
+
* @description Modify the menu configuration and update the toolbar.
|
|
65
|
+
* @param {ToolbarMenuId} menuId
|
|
66
|
+
* @param {Partial<ToolbarMenuConfig>} config
|
|
67
|
+
* @memberof Toolbar
|
|
68
|
+
*/
|
|
69
|
+
updateMenu(menuId: ToolbarMenuId, config: Partial<ToolbarMenuConfig>): void;
|
|
70
|
+
/**
|
|
71
|
+
* @description Modify the menu configuration and update the toolbar.
|
|
72
|
+
* @param {{ menuId: ToolbarMenuId; config: Partial<ToolbarMenuConfig> }[]} configs
|
|
73
|
+
* @memberof Toolbar
|
|
74
|
+
*/
|
|
75
|
+
updateMenus(configs: {
|
|
76
|
+
menuId: ToolbarMenuId;
|
|
77
|
+
config: Partial<ToolbarMenuConfig>;
|
|
78
|
+
}[]): void;
|
|
79
|
+
/**
|
|
80
|
+
* @description Add a custmized menu to toolbar.
|
|
81
|
+
* @param {string} menuId
|
|
82
|
+
* @param {ToolbarMenuConfig} config
|
|
83
|
+
* @param {[number, number]} [insertPosition]
|
|
84
|
+
* @return {*}
|
|
85
|
+
* @memberof Toolbar
|
|
86
|
+
*/
|
|
87
|
+
addMenu(menuId: string, config: ToolbarMenuConfig, insertPosition?: [number, number]): void;
|
|
88
|
+
/**
|
|
89
|
+
* @description Update the whole toolbar element with the current configuration.
|
|
90
|
+
* @memberof Toolbar
|
|
91
|
+
*/
|
|
92
|
+
refresh(): void;
|
|
93
|
+
setVisible(visible: boolean): void;
|
|
94
|
+
isVisible(): boolean;
|
|
95
|
+
/** Refresh menu button titles after {@link ViewerEvent.LanguageChange}. */
|
|
96
|
+
refreshLocalizedLabels(): void;
|
|
97
|
+
destroy(): void;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* @hidden
|
|
101
|
+
*/
|
|
102
|
+
export declare class ToolbarMenu {
|
|
103
|
+
private eventBus;
|
|
104
|
+
active: boolean;
|
|
105
|
+
element: HTMLDivElement;
|
|
106
|
+
toolbar: Toolbar;
|
|
107
|
+
menuId: string;
|
|
108
|
+
constructor(viewer: BaseViewer, toolbar: Toolbar, menuId: string, cfg: ToolbarMenuConfig, parent?: ToolbarMenu);
|
|
109
|
+
private createButton;
|
|
110
|
+
setActive(active: boolean): void;
|
|
111
|
+
isActive(): boolean;
|
|
112
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Plugin, type BaseViewer, PluginConfig } from "@gcode-viewer/core";
|
|
2
|
+
import { Toolbar } from "./Toolbar";
|
|
3
|
+
import { ToolbarConfig, ToolbarMenuId } from "./Toolbar.constants";
|
|
4
|
+
/**
|
|
5
|
+
* Viewer3d toolbar plugin config.
|
|
6
|
+
*/
|
|
7
|
+
export interface Viewer3dToolbarPluginConfig extends Partial<PluginConfig> {
|
|
8
|
+
menuConfig: ToolbarConfig;
|
|
9
|
+
groupConfig?: ToolbarMenuId[][] | string[][];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Viewer3d toolbar plugin.
|
|
13
|
+
*/
|
|
14
|
+
export declare class Viewer3dToolbarPlugin extends Plugin {
|
|
15
|
+
static readonly DEFAULT_ID = "Viewer3dToolbarPlugin";
|
|
16
|
+
protected cfg: Viewer3dToolbarPluginConfig;
|
|
17
|
+
constructor(viewer: BaseViewer, cfg?: Viewer3dToolbarPluginConfig);
|
|
18
|
+
private onLanguageChange;
|
|
19
|
+
getToolbar(): Toolbar;
|
|
20
|
+
/**
|
|
21
|
+
* Sets a menu item to be active or inactive.
|
|
22
|
+
*/
|
|
23
|
+
setActive(menuId: string, active: boolean): void;
|
|
24
|
+
/**
|
|
25
|
+
* Gets if a menu item is active.
|
|
26
|
+
*/
|
|
27
|
+
isActive(menuId: string): boolean;
|
|
28
|
+
setVisible(visible: boolean): void;
|
|
29
|
+
isVisible(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* When taking a screenshot, user may want to set a custom filename.
|
|
32
|
+
* If not set, it will be "download", so the file is "download.png" or "download.jpg".
|
|
33
|
+
* @param filename The filename, e.g., "thumbnail".
|
|
34
|
+
*/
|
|
35
|
+
setScreenshotDownloadFileName(filename: string): void;
|
|
36
|
+
destroy(): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { i18n } from "@gcode-viewer/core";
|
|
2
|
+
export declare const en: {
|
|
3
|
+
select: string;
|
|
4
|
+
move: string;
|
|
5
|
+
rotate: string;
|
|
6
|
+
scale: string;
|
|
7
|
+
worldSpace: string;
|
|
8
|
+
localSpace: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const zh: {
|
|
11
|
+
select: string;
|
|
12
|
+
move: string;
|
|
13
|
+
rotate: string;
|
|
14
|
+
scale: string;
|
|
15
|
+
worldSpace: string;
|
|
16
|
+
localSpace: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const TRANSFORM_I18N_NAMESPACE: "transform";
|
|
19
|
+
export { i18n };
|
|
20
|
+
export type TransformTranslationKey = keyof typeof en;
|
|
21
|
+
export declare function t(key: TransformTranslationKey): string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseViewer, Plugin, PluginConfig } from "@gcode-viewer/core";
|
|
2
|
+
import "./transform.css";
|
|
3
|
+
export interface TransformPluginConfig extends Partial<PluginConfig> {
|
|
4
|
+
/** Host element id; if omitted, a bar is appended to {@link BaseViewer.widgetContainer}. */
|
|
5
|
+
containerId?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Adds a transform gizmo UI to {@link Viewer3d}: attach on {@link ViewerEvent.ObjectSelected},
|
|
9
|
+
* detach on deselect, and controls for translate / rotate / scale and world vs local space.
|
|
10
|
+
*/
|
|
11
|
+
export declare class TransformPlugin extends Plugin {
|
|
12
|
+
static readonly DEFAULT_ID = "TransformPlugin";
|
|
13
|
+
private readonly viewer3d;
|
|
14
|
+
private readonly cfg;
|
|
15
|
+
private root?;
|
|
16
|
+
private btnSelect?;
|
|
17
|
+
private btnTranslate?;
|
|
18
|
+
private btnRotate?;
|
|
19
|
+
private btnScale?;
|
|
20
|
+
private btnSpace?;
|
|
21
|
+
private enabled;
|
|
22
|
+
/** When true the gizmo is suppressed even if an object is selected. Select is the default state. */
|
|
23
|
+
private inSelectMode;
|
|
24
|
+
private readonly onObjectSelected;
|
|
25
|
+
private readonly onObjectDeselected;
|
|
26
|
+
constructor(viewer: BaseViewer, cfg?: TransformPluginConfig);
|
|
27
|
+
private readonly onLanguageChange;
|
|
28
|
+
private mount;
|
|
29
|
+
private applyLocalizedChrome;
|
|
30
|
+
private applySelectMode;
|
|
31
|
+
private applyMode;
|
|
32
|
+
private toggleSpace;
|
|
33
|
+
private refreshSpaceButton;
|
|
34
|
+
private refreshModeButtons;
|
|
35
|
+
setEnabled(enable: boolean): void;
|
|
36
|
+
isEnabled(): boolean;
|
|
37
|
+
destroy(): void;
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TransformPlugin";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { i18n } from "@gcode-viewer/core";
|
|
2
|
+
export declare const en: {
|
|
3
|
+
treeView: string;
|
|
4
|
+
treeSearchPlaceholder: string;
|
|
5
|
+
nothingLoaded: string;
|
|
6
|
+
focus: string;
|
|
7
|
+
select: string;
|
|
8
|
+
deselect: string;
|
|
9
|
+
hide: string;
|
|
10
|
+
show: string;
|
|
11
|
+
delete: string;
|
|
12
|
+
export: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const zh: {
|
|
15
|
+
treeView: string;
|
|
16
|
+
treeSearchPlaceholder: string;
|
|
17
|
+
nothingLoaded: string;
|
|
18
|
+
focus: string;
|
|
19
|
+
select: string;
|
|
20
|
+
deselect: string;
|
|
21
|
+
hide: string;
|
|
22
|
+
show: string;
|
|
23
|
+
delete: string;
|
|
24
|
+
export: string;
|
|
25
|
+
};
|
|
26
|
+
export declare const TREE_VIEW_I18N_NAMESPACE: "treeView";
|
|
27
|
+
export { i18n };
|
|
28
|
+
export type TreeViewTranslationKey = keyof typeof en;
|
|
29
|
+
export declare function t(key: TreeViewTranslationKey): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { THREE } from "@gcode-viewer/core";
|
|
2
|
+
/**
|
|
3
|
+
* Visual category for the scene-graph tree (outline) icon.
|
|
4
|
+
* Kept in TS with the SVG markup so icons stay co-located with type logic.
|
|
5
|
+
*/
|
|
6
|
+
export type TreeNodeVisualKind = "group" | "scene" | "mesh" | "line" | "points" | "sprite" | "light" | "camera" | "object3d" | "unknown";
|
|
7
|
+
/**
|
|
8
|
+
* Map a Three.js object to a stable outline icon kind.
|
|
9
|
+
* Order follows the class hierarchy (specific types before {@link THREE.Object3D}).
|
|
10
|
+
*/
|
|
11
|
+
export declare function getTreeNodeVisualKind(node: THREE.Object3D): TreeNodeVisualKind;
|
|
12
|
+
/**
|
|
13
|
+
* Full inline SVG for the tree row; uses currentColor so .node-type { color } in SCSS themes the icon.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getTreeNodeTypeIconMarkup(kind: TreeNodeVisualKind): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type THREE } from "@gcode-viewer/core";
|
|
2
|
+
export type TreeDropPosition = "before" | "after" | "inside";
|
|
3
|
+
export interface TreeViewDragDropContext {
|
|
4
|
+
canEdit: () => boolean;
|
|
5
|
+
findObjectByUuid: (uuid: string) => THREE.Object3D | undefined;
|
|
6
|
+
isModelNode: (node: THREE.Object3D) => boolean;
|
|
7
|
+
onReparent: (object: THREE.Object3D, newParent: THREE.Object3D, targetIndex: number) => boolean;
|
|
8
|
+
/** Called when the pointer was dragged past the threshold (suppress tree click selection). */
|
|
9
|
+
onDragEnded?: (moved: boolean) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface TreeViewDragDropHandle {
|
|
12
|
+
destroy: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Pointer drag-and-drop for the tree view (gltfeditor-style before / after / inside).
|
|
16
|
+
*/
|
|
17
|
+
export declare function attachTreeViewDragDrop(content: HTMLElement, ctx: TreeViewDragDropContext): TreeViewDragDropHandle;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Viewer3d, Plugin, PluginConfig, THREE } from "@gcode-viewer/core";
|
|
2
|
+
import { BasePanel } from "@gcode-viewer/ui";
|
|
3
|
+
/**
|
|
4
|
+
* Tree view plugin config.
|
|
5
|
+
*/
|
|
6
|
+
export interface TreeViewPluginConfig extends Partial<PluginConfig> {
|
|
7
|
+
/**
|
|
8
|
+
* Host element id: panel is embedded there (fills the box) with left-dock styling.
|
|
9
|
+
* If omitted, the panel floats over the viewer `widgetContainer` as before.
|
|
10
|
+
*/
|
|
11
|
+
containerId?: string;
|
|
12
|
+
/**
|
|
13
|
+
* If panel is visible. It is visible by default.
|
|
14
|
+
*/
|
|
15
|
+
visible?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Tree view plugin events.
|
|
19
|
+
*/
|
|
20
|
+
type TreeViewPluginEvents = {
|
|
21
|
+
/**
|
|
22
|
+
* Panel visibility change event.
|
|
23
|
+
*/
|
|
24
|
+
visibilitychange: boolean;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Tree view plugin.
|
|
28
|
+
*/
|
|
29
|
+
export declare class TreeViewPlugin extends Plugin<TreeViewPluginEvents> {
|
|
30
|
+
static readonly DEFAULT_ID = "TreeViewPlugin";
|
|
31
|
+
protected cfg: TreeViewPluginConfig;
|
|
32
|
+
protected basePanel?: BasePanel;
|
|
33
|
+
protected container?: HTMLDivElement;
|
|
34
|
+
protected content?: HTMLDivElement;
|
|
35
|
+
protected lastHighlightedObject?: THREE.Object3D;
|
|
36
|
+
/** Current tree name filter (persisted across panel rebuilds). */
|
|
37
|
+
private treeSearchQuery;
|
|
38
|
+
private treeSearchInput?;
|
|
39
|
+
private treeSearchDebounceId;
|
|
40
|
+
/** `null` = no filter; otherwise uuids kept visible for current `treeSearchQuery`. */
|
|
41
|
+
private treeSearchVisibleCache;
|
|
42
|
+
/** Ends inline tree rename if one is active (`commit`: apply input to `node.name`). */
|
|
43
|
+
private finishActiveTreeRename?;
|
|
44
|
+
private treeDragDrop?;
|
|
45
|
+
/** Suppresses the synthetic click after a tree drag (pointerup → click). */
|
|
46
|
+
private suppressTreeClickAfterDrag;
|
|
47
|
+
constructor(viewer: Viewer3d, cfg?: TreeViewPluginConfig);
|
|
48
|
+
private onLanguageChange;
|
|
49
|
+
protected applyLocalizedChrome(): void;
|
|
50
|
+
protected updateContent(): void;
|
|
51
|
+
setVisible(visible: boolean): void;
|
|
52
|
+
isVisible(): boolean;
|
|
53
|
+
protected onModelLoadOrRemove: () => void;
|
|
54
|
+
protected onObjectSelected: (evt: THREE.Object3D) => void;
|
|
55
|
+
protected onObjectDeselected: (evt: THREE.Object3D) => void;
|
|
56
|
+
protected onSceneObjectRemoved: (object: THREE.Object3D) => void;
|
|
57
|
+
protected onSceneObjectAdded: (object: THREE.Object3D) => void;
|
|
58
|
+
destroy(): void;
|
|
59
|
+
protected addContent(): void;
|
|
60
|
+
protected onSceneNodeReparented: (object: THREE.Object3D) => void;
|
|
61
|
+
private onTreeSearchInputClick;
|
|
62
|
+
private onTreeSearchKeydown;
|
|
63
|
+
private onTreeSearchInput;
|
|
64
|
+
private removeTreeDomForSceneObject;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { i18n } from "@gcode-viewer/core";
|
|
2
|
+
export declare const en: {
|
|
3
|
+
front: string;
|
|
4
|
+
back: string;
|
|
5
|
+
top: string;
|
|
6
|
+
bottom: string;
|
|
7
|
+
left: string;
|
|
8
|
+
right: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const zh: {
|
|
11
|
+
front: string;
|
|
12
|
+
back: string;
|
|
13
|
+
top: string;
|
|
14
|
+
bottom: string;
|
|
15
|
+
left: string;
|
|
16
|
+
right: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const VIEW_CUBE_I18N_NAMESPACE: "viewCube";
|
|
19
|
+
export { i18n };
|
|
20
|
+
export type ViewCubeTranslationKey = keyof typeof en;
|
|
21
|
+
export declare function t(key: ViewCubeTranslationKey | string): string;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { THREE } from "@gcode-viewer/core";
|
|
2
|
+
/**
|
|
3
|
+
* View cube config.
|
|
4
|
+
*/
|
|
5
|
+
export interface ViewCubeConfig {
|
|
6
|
+
showAxes?: boolean;
|
|
7
|
+
lineColor?: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* View cube element names.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum ViewCubeElement {
|
|
13
|
+
TopFace = "TopFace",
|
|
14
|
+
FrontFace = "FrontFace",
|
|
15
|
+
RightFace = "RightFace",
|
|
16
|
+
BackFace = "BackFace",
|
|
17
|
+
LeftFace = "LeftFace",
|
|
18
|
+
BottomFace = "BottomFace",
|
|
19
|
+
TopFrontEdge = "TopFrontEdge",
|
|
20
|
+
TopRightEdge = "TopRightEdge",
|
|
21
|
+
TopBackEdge = "TopBackEdge",
|
|
22
|
+
TopLeftEdge = "TopLeftEdge",
|
|
23
|
+
FrontRightEdge = "FrontRightEdge",
|
|
24
|
+
BackRightEdge = "BackRightEdge",
|
|
25
|
+
BackLeftEdge = "BackLeftEdge",
|
|
26
|
+
FrontLeftEdge = "FrontLeftEdge",
|
|
27
|
+
BottomFrontEdge = "BottomFrontEdge",
|
|
28
|
+
BottomRightEdge = "BottomRightEdge",
|
|
29
|
+
BottomBackEdge = "BottomBackEdge",
|
|
30
|
+
BottomLeftEdge = "BottomLeftEdge",
|
|
31
|
+
TopFrontRightCorner = "TopFrontRightCorner",
|
|
32
|
+
TopBackRightCorner = "TopBackRightCorner",
|
|
33
|
+
TopBackLeftCorner = "TopBackLeftCorner",
|
|
34
|
+
TopFrontLeftCorner = "TopFrontLeftCorner",
|
|
35
|
+
BottomFrontRightCorner = "BottomFrontRightCorner",
|
|
36
|
+
BottomBackRightCorner = "BottomBackRightCorner",
|
|
37
|
+
BottomBackLeftCorner = "BottomBackLeftCorner",
|
|
38
|
+
BottomFrontLeftCorner = "BottomFrontLeftCorner"
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* ViewCube class.
|
|
42
|
+
*/
|
|
43
|
+
export declare class ViewCube extends THREE.Object3D {
|
|
44
|
+
readonly name = "ViewCube";
|
|
45
|
+
private readonly AXIS_COLOR_X;
|
|
46
|
+
private readonly AXIS_COLOR_Y;
|
|
47
|
+
private readonly AXIS_COLOR_Z;
|
|
48
|
+
private readonly FACE_BACKGROUND_COLOR;
|
|
49
|
+
private readonly FACE_HOVER_BACKGROUND_COLOR;
|
|
50
|
+
private readonly INNER_CUBE_WIDTH;
|
|
51
|
+
private readonly OUTER_CUBE_WIDTH;
|
|
52
|
+
private readonly CORNER_WIDTH;
|
|
53
|
+
private readonly AXIS_LENGTH;
|
|
54
|
+
private readonly EDGE_COLOUR;
|
|
55
|
+
private readonly EDGE_OPACITY;
|
|
56
|
+
private readonly EDGE_SIZE;
|
|
57
|
+
private readonly CORNER_COLOR;
|
|
58
|
+
private readonly CORNER_OPACITY;
|
|
59
|
+
private faces;
|
|
60
|
+
private innerViewCubeMesh?;
|
|
61
|
+
private showAxes;
|
|
62
|
+
private lineColor;
|
|
63
|
+
dirty: boolean;
|
|
64
|
+
activateMeshName?: string;
|
|
65
|
+
constructor(cfg?: ViewCubeConfig);
|
|
66
|
+
private init;
|
|
67
|
+
private createAxes;
|
|
68
|
+
private createViewCubeFaces;
|
|
69
|
+
private createViewCubeFace;
|
|
70
|
+
private createViewCubeEdges;
|
|
71
|
+
private createEdge;
|
|
72
|
+
private createViewCubeCorners;
|
|
73
|
+
private createCorner;
|
|
74
|
+
getBBox(): THREE.Box3;
|
|
75
|
+
/**
|
|
76
|
+
* Maps a Y-up view-cube direction into this product's Z-up world:
|
|
77
|
+
* `(x, y, z)_yup → (x, -z, y)_zup`.
|
|
78
|
+
*/
|
|
79
|
+
private static toZUpDirection;
|
|
80
|
+
getDirectionByElement(viewCubeName: ViewCubeElement): THREE.Vector3 | undefined;
|
|
81
|
+
update(): void;
|
|
82
|
+
private updateViewCube;
|
|
83
|
+
private updateMeshTick;
|
|
84
|
+
/** Refresh face label textures after {@link ViewerEvent.LanguageChange}. */
|
|
85
|
+
updateLocalizedLabels(): void;
|
|
86
|
+
}
|