vim-webgl-component
Version:
A demonstration app built on top of the vim-webgl-viewer
66 lines (65 loc) • 2.34 kB
TypeScript
/**
* @module viw-webgl-component
*/
/**
* Makes all fields optional recursively
* https://stackoverflow.com/questions/41980195/recursive-partialt-in-typescript
*/
export type RecursivePartial<T> = {
[P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object ? RecursivePartial<T[P]> : T[P];
};
/**
* true, false or restricted
* Restricted: is false and cannot be changed by the user.
*/
export type UserBoolean = boolean | 'AlwaysTrue' | 'AlwaysFalse';
export declare function isTrue(value: UserBoolean | boolean): boolean;
export declare function isFalse(value: UserBoolean | boolean): boolean;
/**
* Vim component settings, can either be set at component intialization or by user using UI.
*/
export type ComponentSettings = {
peformance: {
useFastMaterial: boolean;
};
isolation: {
enable: boolean;
useIsolationMaterial: boolean;
};
capacity: {
canFollowUrl: boolean;
canGoFullScreen: boolean;
useOrthographicCamera: boolean;
canDownload: boolean;
};
ui: {
logo: UserBoolean;
bimTreePanel: UserBoolean;
bimInfoPanel: UserBoolean;
performance: UserBoolean;
axesPanel: UserBoolean;
orthographic: UserBoolean;
resetCamera: UserBoolean;
enableGhost: UserBoolean;
controlBar: UserBoolean;
orbit: UserBoolean;
lookAround: UserBoolean;
pan: UserBoolean;
zoom: UserBoolean;
zoomWindow: UserBoolean;
zoomToFit: UserBoolean;
sectioningMode: UserBoolean;
measuringMode: UserBoolean;
toggleIsolation: UserBoolean;
projectInspector: UserBoolean;
settings: UserBoolean;
help: UserBoolean;
maximise: UserBoolean;
};
};
export type PartialComponentSettings = RecursivePartial<ComponentSettings>;
export declare function anyUiAxesButton(settings: ComponentSettings): UserBoolean;
export declare function anyUiCursorButton(settings: ComponentSettings): boolean;
export declare function anyUiToolButton(settings: ComponentSettings): boolean;
export declare function anyUiSettingButton(settings: ComponentSettings): boolean;
export declare const defaultSettings: ComponentSettings;