vim-web 1.0.0-alpha.0 → 1.0.0-alpha.1
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/dist/style.css +3 -0
- package/dist/vim-web.d.ts +95 -7
- package/dist/vim-web.iife.js +21190 -8915
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +21189 -8914
- package/dist/vim-web.js.map +1 -1
- package/package.json +3 -3
package/dist/style.css
CHANGED
package/dist/vim-web.d.ts
CHANGED
|
@@ -89,6 +89,14 @@ type RecursivePartial<T> = {
|
|
|
89
89
|
@module viw-webgl-viewer
|
|
90
90
|
*/
|
|
91
91
|
|
|
92
|
+
/**
|
|
93
|
+
* How selected elements are filled (beyond the outline).
|
|
94
|
+
* - 'none': Outline only, no fill.
|
|
95
|
+
* - 'default': Tint selected meshes in the main render pass (zero cost).
|
|
96
|
+
* - 'xray': Tint + render selected on top of everything (1 extra pass).
|
|
97
|
+
* - 'seethrough': Tint + render a semi-transparent ghost where behind geometry (1 extra pass).
|
|
98
|
+
*/
|
|
99
|
+
type SelectionFillMode = 'none' | 'default' | 'xray' | 'seethrough';
|
|
92
100
|
type MaterialSettings = {
|
|
93
101
|
/**
|
|
94
102
|
* Ghost material options
|
|
@@ -132,6 +140,33 @@ type MaterialSettings = {
|
|
|
132
140
|
*/
|
|
133
141
|
thickness: number;
|
|
134
142
|
};
|
|
143
|
+
/**
|
|
144
|
+
* Selection fill options (beyond outlines).
|
|
145
|
+
*/
|
|
146
|
+
selection: {
|
|
147
|
+
/**
|
|
148
|
+
* How selected elements are filled.
|
|
149
|
+
* Default: 'none'
|
|
150
|
+
*/
|
|
151
|
+
fillMode: SelectionFillMode;
|
|
152
|
+
/**
|
|
153
|
+
* Tint color applied to selected elements.
|
|
154
|
+
* Default: rgb(0, 100, 255) — blue
|
|
155
|
+
*/
|
|
156
|
+
color: THREE.Color;
|
|
157
|
+
/**
|
|
158
|
+
* Tint blend strength (0 = no tint, 1 = solid color).
|
|
159
|
+
* Default: 0.3
|
|
160
|
+
*/
|
|
161
|
+
opacity: number;
|
|
162
|
+
/**
|
|
163
|
+
* Opacity of the overlay pass in 'xray' and 'seethrough' modes.
|
|
164
|
+
* In xray: applies to all selected geometry rendered on top.
|
|
165
|
+
* In seethrough: applies to selected geometry rendered behind other objects.
|
|
166
|
+
* Default: 0.25
|
|
167
|
+
*/
|
|
168
|
+
overlayOpacity: number;
|
|
169
|
+
};
|
|
135
170
|
};
|
|
136
171
|
/**
|
|
137
172
|
* Core renderer configuration, passed to `Core.Webgl.createViewer(settings)` at initialization.
|
|
@@ -375,6 +410,14 @@ interface IMaterials {
|
|
|
375
410
|
outlineColor: THREE.Color;
|
|
376
411
|
/** Clipping planes applied to all materials. Set to undefined to disable clipping. */
|
|
377
412
|
clippingPlanes: THREE.Plane[] | undefined;
|
|
413
|
+
/** Selection fill mode: 'none' | 'default' | 'xray' | 'seethrough'. */
|
|
414
|
+
selectionFillMode: SelectionFillMode;
|
|
415
|
+
/** Color used to tint selected elements. */
|
|
416
|
+
selectionColor: THREE.Color;
|
|
417
|
+
/** Blend strength for selection tint (0 = off, 1 = solid). */
|
|
418
|
+
selectionOpacity: number;
|
|
419
|
+
/** Opacity of the overlay pass in 'xray' and 'seethrough' modes. */
|
|
420
|
+
selectionOverlayOpacity: number;
|
|
378
421
|
/** Applies a full set of material settings from the viewer configuration. */
|
|
379
422
|
applySettings(settings: MaterialSettings): void;
|
|
380
423
|
}
|
|
@@ -931,19 +974,22 @@ interface IWebglCamera {
|
|
|
931
974
|
* The default forward direction in Z-up space (X = right, Y = forward, Z = up).
|
|
932
975
|
*/
|
|
933
976
|
defaultForward: THREE.Vector3;
|
|
977
|
+
/**
|
|
978
|
+
* When true, lockMovement and lockRotation are bypassed.
|
|
979
|
+
* Set temporarily to position the camera while ignoring user-configured constraints.
|
|
980
|
+
*/
|
|
981
|
+
ignoreConstraints: boolean;
|
|
934
982
|
/**
|
|
935
983
|
* Interface for instantaneously moving the camera.
|
|
936
|
-
* @param {boolean} [force=false] - Set to true to ignore locked axis and rotation.
|
|
937
984
|
* @returns {ICameraMovement} The camera movement api.
|
|
938
985
|
*/
|
|
939
|
-
snap(
|
|
986
|
+
snap(): ICameraMovement;
|
|
940
987
|
/**
|
|
941
988
|
* Interface for smoothly moving the camera over time.
|
|
942
989
|
* @param {number} [duration=1] - The duration of the camera movement animation.
|
|
943
|
-
* @param {boolean} [force=false] - Set to true to ignore locked axis and rotation.
|
|
944
990
|
* @returns {ICameraMovement} The camera movement api.
|
|
945
991
|
*/
|
|
946
|
-
lerp(duration: number
|
|
992
|
+
lerp(duration: number): ICameraMovement;
|
|
947
993
|
/**
|
|
948
994
|
* Calculates the frustum size at a given point in the scene.
|
|
949
995
|
* @param {THREE.Vector3} point - The point in the scene to calculate the frustum size at.
|
|
@@ -1534,6 +1580,10 @@ interface IWebglRenderer {
|
|
|
1534
1580
|
getBoundingBox(target?: THREE.Box3): THREE.Box3 | undefined;
|
|
1535
1581
|
/** When true (default), only renders when dirty (`requestRender()` was called). When false, renders every frame. */
|
|
1536
1582
|
autoRender: boolean;
|
|
1583
|
+
/** Whether selection outlines are enabled. */
|
|
1584
|
+
outlineEnabled: boolean;
|
|
1585
|
+
/** Selection fill mode for the rendering pipeline. */
|
|
1586
|
+
selectionFillMode: SelectionFillMode;
|
|
1537
1587
|
}
|
|
1538
1588
|
|
|
1539
1589
|
/**
|
|
@@ -1600,7 +1650,7 @@ declare function createCoreWebglViewer(settings?: PartialViewerSettings): IWebgl
|
|
|
1600
1650
|
|
|
1601
1651
|
declare namespace Core_Webgl {
|
|
1602
1652
|
export { MaterialSet, createCoreWebglViewer as createViewer, isElement3D };
|
|
1603
|
-
export type { AxesSettings, ICameraMovement, IElement3D, IGizmoAxes, IGizmoMarkers, IGizmoOrbit, IGizmos, IMarker, IMaterials, IMeasure, IRenderingSection, IScene, ISelectable, ISubset, IWebglCamera, IWebglLoadRequest, IWebglRaycastResult, IWebglRaycaster, IWebglRenderer, IWebglSectionBox, IWebglSelection, IWebglViewport, IWebglVim, MaterialSettings, MeasureStage, PartialViewerSettings, RequestSource, SubsetFilter, TransparencyMode, IWebglViewer as Viewer, ViewerSettings, VimPartialSettings, VimSettings };
|
|
1653
|
+
export type { AxesSettings, ICameraMovement, IElement3D, IGizmoAxes, IGizmoMarkers, IGizmoOrbit, IGizmos, IMarker, IMaterials, IMeasure, IRenderingSection, IScene, ISelectable, ISubset, IWebglCamera, IWebglLoadRequest, IWebglRaycastResult, IWebglRaycaster, IWebglRenderer, IWebglSectionBox, IWebglSelection, IWebglViewport, IWebglVim, MaterialSettings, MeasureStage, PartialViewerSettings, RequestSource, SelectionFillMode, SubsetFilter, TransparencyMode, IWebglViewer as Viewer, ViewerSettings, VimPartialSettings, VimSettings };
|
|
1604
1654
|
}
|
|
1605
1655
|
|
|
1606
1656
|
/**
|
|
@@ -2295,6 +2345,16 @@ interface IsolationApi {
|
|
|
2295
2345
|
ghostOpacity: StateRef<number>;
|
|
2296
2346
|
/** Whether transparent materials are rendered (observable). */
|
|
2297
2347
|
transparency: StateRef<boolean>;
|
|
2348
|
+
/** Whether selection outlines are enabled (observable). */
|
|
2349
|
+
outlineEnabled: StateRef<boolean>;
|
|
2350
|
+
/** Outline quality: 'low' (0.5x) | 'medium' (1x) | 'high' (2x) render target scale. */
|
|
2351
|
+
outlineQuality: StateRef<string>;
|
|
2352
|
+
/** Outline thickness in screen pixels (1-5). */
|
|
2353
|
+
outlineThickness: StateRef<number>;
|
|
2354
|
+
/** Selection fill mode: 'none' | 'default' | 'xray' | 'seethrough' (observable). */
|
|
2355
|
+
selectionFillMode: StateRef<string>;
|
|
2356
|
+
/** Opacity of the overlay pass in 'xray' and 'seethrough' modes (0-1). */
|
|
2357
|
+
selectionOverlayOpacity: StateRef<number>;
|
|
2298
2358
|
/** Whether room elements are shown (observable). */
|
|
2299
2359
|
showRooms: StateRef<boolean>;
|
|
2300
2360
|
/** Hook called when auto-isolate triggers. Use `update()` to add middleware. */
|
|
@@ -2824,7 +2884,19 @@ interface GenericBoolEntry {
|
|
|
2824
2884
|
visible?: () => boolean;
|
|
2825
2885
|
state: StateRef<boolean>;
|
|
2826
2886
|
}
|
|
2827
|
-
|
|
2887
|
+
interface GenericSelectEntry {
|
|
2888
|
+
type: "select";
|
|
2889
|
+
id: string;
|
|
2890
|
+
label: string;
|
|
2891
|
+
enabled?: () => boolean;
|
|
2892
|
+
visible?: () => boolean;
|
|
2893
|
+
options: {
|
|
2894
|
+
label: string;
|
|
2895
|
+
value: string;
|
|
2896
|
+
}[];
|
|
2897
|
+
state: StateRef<string>;
|
|
2898
|
+
}
|
|
2899
|
+
type GenericEntryType = GenericTextEntry | GenericBoolEntry | GenericNumberEntry | GenericSelectEntry;
|
|
2828
2900
|
|
|
2829
2901
|
type GenericPanelApi = {
|
|
2830
2902
|
customize(fn: (entries: GenericEntryType[]) => GenericEntryType[]): void;
|
|
@@ -2838,7 +2910,7 @@ type GenericPanelApi = {
|
|
|
2838
2910
|
type AnySettings = WebglSettings | UltraSettings;
|
|
2839
2911
|
|
|
2840
2912
|
type SettingsCustomization<T extends AnySettings> = (items: SettingsItem<T>[]) => SettingsItem<T>[];
|
|
2841
|
-
type SettingsItem<T extends AnySettings> = SettingsSubtitle | SettingsToggle<T> | SettingsBox<T> | SettingsElement;
|
|
2913
|
+
type SettingsItem<T extends AnySettings> = SettingsSubtitle | SettingsToggle<T> | SettingsBox<T> | SettingsSelect<T> | SettingsElement;
|
|
2842
2914
|
type SettingsSubtitle = {
|
|
2843
2915
|
type: 'subtitle';
|
|
2844
2916
|
key: string;
|
|
@@ -2860,6 +2932,17 @@ type SettingsBox<T extends AnySettings> = {
|
|
|
2860
2932
|
getter: (settings: T) => number;
|
|
2861
2933
|
setter: (settings: T, b: number) => void;
|
|
2862
2934
|
};
|
|
2935
|
+
type SettingsSelect<T extends AnySettings> = {
|
|
2936
|
+
type: 'select';
|
|
2937
|
+
key: string;
|
|
2938
|
+
label: string;
|
|
2939
|
+
options: {
|
|
2940
|
+
label: string;
|
|
2941
|
+
value: string;
|
|
2942
|
+
}[];
|
|
2943
|
+
getter: (settings: T) => string;
|
|
2944
|
+
setter: (settings: T, value: string) => void;
|
|
2945
|
+
};
|
|
2863
2946
|
type SettingsElement = {
|
|
2864
2947
|
type: 'element';
|
|
2865
2948
|
key: string;
|
|
@@ -3252,6 +3335,11 @@ declare const IsolationPanel: {
|
|
|
3252
3335
|
showGhost: string;
|
|
3253
3336
|
ghostOpacity: string;
|
|
3254
3337
|
transparency: string;
|
|
3338
|
+
outlineEnabled: string;
|
|
3339
|
+
outlineQuality: string;
|
|
3340
|
+
outlineThickness: string;
|
|
3341
|
+
selectionFillMode: string;
|
|
3342
|
+
selectionOverlayOpacity: string;
|
|
3255
3343
|
};
|
|
3256
3344
|
};
|
|
3257
3345
|
|