@lingbi/studio 0.3.2 → 0.4.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/Application.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { ModelResourceSceneSource } from './ModelResourceSceneSource';
1
2
  import type { ObjImportResult } from './ObjImportResult';
2
3
  import type { ObjImportSource } from './ObjImportSource';
3
4
  import type { ObjResourceListSource } from './ObjResourceListSource';
@@ -5,18 +6,34 @@ import type { ObjResourceSceneSource } from './ObjResourceSceneSource';
5
6
  import type { ObjSceneSource } from './ObjSceneSource';
6
7
  export declare class Application {
7
8
  private disposed;
9
+ private lastPublishedEditState;
10
+ private lastPublishedInset;
8
11
  private renderer;
9
- attach(canvas: HTMLCanvasElement): void;
12
+ private workspace;
13
+ mount(container: HTMLElement): void;
10
14
  importObj(source: ObjImportSource): Promise<ObjImportResult>;
15
+ importModelResourceScene(source: ModelResourceSceneSource): Promise<ObjImportResult>;
11
16
  importObjResources(source: ObjResourceListSource): Promise<ObjImportResult>;
12
17
  importObjResourceScene(source: ObjResourceSceneSource): Promise<ObjImportResult>;
13
18
  importObjScene(source: ObjSceneSource): Promise<ObjImportResult>;
14
19
  resetView(): void;
15
20
  takeScreenshot(): Promise<Blob>;
16
21
  dispose(): void;
22
+ private handleEditRequested;
23
+ private handleEditExited;
17
24
  private assertNotDisposed;
18
25
  private getRenderer;
19
- private releaseRenderer;
26
+ private hasValidSceneSource;
27
+ private releaseRuntime;
20
28
  private mapObjImportResult;
29
+ private mapObjImportSource;
30
+ private mapModelResourceSceneSource;
31
+ private mapModelResourceListSource;
32
+ private mapObjResourceSceneSource;
33
+ private mapObjSceneSource;
34
+ private mapObjResourceListSource;
35
+ private mapUpAxis;
36
+ private mapStoneBasePoseMode;
21
37
  private mapAsyncObjImportResult;
38
+ private mapWarnings;
22
39
  }
@@ -0,0 +1,5 @@
1
+ import type { ModelUpAxis } from './ModelUpAxis';
2
+ export interface ModelResourceListSource {
3
+ readonly fileUrls: readonly string[];
4
+ readonly upAxis?: ModelUpAxis;
5
+ }
@@ -0,0 +1,14 @@
1
+ import type { ModelResourceListSource } from './ModelResourceListSource';
2
+ import type { StoneBasePoseMode } from './StoneBasePoseMode';
3
+ interface SingleStoneModelResourceSceneSource {
4
+ readonly base?: never;
5
+ readonly poseMode?: never;
6
+ readonly stone: ModelResourceListSource;
7
+ }
8
+ interface StoneBaseModelResourceSceneSource {
9
+ readonly base: ModelResourceListSource;
10
+ readonly poseMode: StoneBasePoseMode;
11
+ readonly stone: ModelResourceListSource;
12
+ }
13
+ export type ModelResourceSceneSource = SingleStoneModelResourceSceneSource | StoneBaseModelResourceSceneSource;
14
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare enum ModelUpAxis {
2
+ Y = "y",
3
+ Z = "z"
4
+ }
@@ -3,7 +3,14 @@ export declare enum ObjImportFailureCode {
3
3
  InvalidSource = "invalid-source",
4
4
  Unavailable = "unavailable"
5
5
  }
6
+ export declare enum ObjImportWarningCode {
7
+ IncompleteMaterial = "incomplete-material"
8
+ }
9
+ export interface ObjImportWarning {
10
+ readonly code: ObjImportWarningCode;
11
+ }
6
12
  export interface ObjImportResult {
7
13
  readonly success: boolean;
8
14
  readonly code?: ObjImportFailureCode;
15
+ readonly warnings?: readonly ObjImportWarning[];
9
16
  }
@@ -1,5 +1,7 @@
1
+ import type { ModelUpAxis } from './ModelUpAxis';
1
2
  export interface ObjImportSource {
2
3
  readonly mtlUrl?: string;
3
4
  readonly objUrl: string;
4
5
  readonly textureUrls?: Readonly<Record<string, string>>;
6
+ readonly upAxis?: ModelUpAxis;
5
7
  }
@@ -1,3 +1,5 @@
1
+ import type { ModelUpAxis } from './ModelUpAxis';
1
2
  export interface ObjResourceListSource {
2
3
  readonly fileUrls: readonly string[];
4
+ readonly upAxis?: ModelUpAxis;
3
5
  }
@@ -1,5 +1,14 @@
1
1
  import type { ObjResourceListSource } from './ObjResourceListSource';
2
- export interface ObjResourceSceneSource {
3
- readonly stone?: ObjResourceListSource;
4
- readonly base?: ObjResourceListSource;
2
+ import type { StoneBasePoseMode } from './StoneBasePoseMode';
3
+ interface SingleStoneObjResourceSceneSource {
4
+ readonly base?: never;
5
+ readonly poseMode?: never;
6
+ readonly stone: ObjResourceListSource;
5
7
  }
8
+ interface StoneBaseObjResourceSceneSource {
9
+ readonly base: ObjResourceListSource;
10
+ readonly poseMode: StoneBasePoseMode;
11
+ readonly stone: ObjResourceListSource;
12
+ }
13
+ export type ObjResourceSceneSource = SingleStoneObjResourceSceneSource | StoneBaseObjResourceSceneSource;
14
+ export {};
@@ -1,5 +1,14 @@
1
1
  import type { ObjImportSource } from './ObjImportSource';
2
- export interface ObjSceneSource {
3
- readonly stone?: ObjImportSource;
4
- readonly base?: ObjImportSource;
2
+ import type { StoneBasePoseMode } from './StoneBasePoseMode';
3
+ interface SingleStoneObjSceneSource {
4
+ readonly base?: never;
5
+ readonly poseMode?: never;
6
+ readonly stone: ObjImportSource;
5
7
  }
8
+ interface StoneBaseObjSceneSource {
9
+ readonly base: ObjImportSource;
10
+ readonly poseMode: StoneBasePoseMode;
11
+ readonly stone: ObjImportSource;
12
+ }
13
+ export type ObjSceneSource = SingleStoneObjSceneSource | StoneBaseObjSceneSource;
14
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare enum StoneBasePoseMode {
2
+ AutoCorrect = "auto-correct",
3
+ PreservePose = "preserve-pose"
4
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Studio-owned chrome around the render canvas: the viewport, the bottom
3
+ * toolbar with its edit control, and the floating edit-status bubble that
4
+ * appears above it while editing. The workspace renders whatever state
5
+ * Application forwards; it never inspects models or WebGL objects.
6
+ */
7
+ export declare class StudioWorkspace {
8
+ readonly canvas: HTMLCanvasElement;
9
+ private static readonly EDIT_BUTTON_VIEWPORT_BOTTOM_INSET;
10
+ private readonly bottomToolbarElement;
11
+ private readonly editButtonElement;
12
+ private readonly editStatusElement;
13
+ private readonly listenerAbortController;
14
+ private readonly rootElement;
15
+ private readonly styleElement;
16
+ constructor(container: HTMLElement, onEditRequested: () => void, onEditExited: () => void);
17
+ /**
18
+ * Single entry point that reflects the renderer-owned edit truth onto the
19
+ * toolbar: viewing shows an inert 编辑 until a dual-model scene enables
20
+ * it; editing floats a hint bubble with a dedicated exit above it.
21
+ */
22
+ setEditButtonState(visible: boolean, enabled: boolean, active: boolean): void;
23
+ getViewportBottomInset(): number;
24
+ dispose(): void;
25
+ private wrapClick;
26
+ }
package/index.d.ts CHANGED
@@ -1,7 +1,12 @@
1
1
  export { Application } from './Application';
2
+ export type { ModelResourceListSource } from './ModelResourceListSource';
3
+ export type { ModelResourceSceneSource } from './ModelResourceSceneSource';
4
+ export { ModelUpAxis } from './ModelUpAxis';
2
5
  export type { ObjImportResult } from './ObjImportResult';
3
- export { ObjImportFailureCode } from './ObjImportResult';
6
+ export type { ObjImportWarning } from './ObjImportResult';
7
+ export { ObjImportFailureCode, ObjImportWarningCode } from './ObjImportResult';
4
8
  export type { ObjImportSource } from './ObjImportSource';
5
9
  export type { ObjResourceListSource } from './ObjResourceListSource';
6
10
  export type { ObjResourceSceneSource } from './ObjResourceSceneSource';
7
11
  export type { ObjSceneSource } from './ObjSceneSource';
12
+ export { StoneBasePoseMode } from './StoneBasePoseMode';