gl-draw 0.18.14 → 0.18.16

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/index.d.ts CHANGED
@@ -99,7 +99,9 @@ export declare class AmbientLightObject extends BaseObject<AmbientLight> {
99
99
  constructor(lightOrColor?: AmbientLight | string | number, intensity?: number);
100
100
  }
101
101
 
102
- declare function analyzeSceneJsonSize(sceneJson: any): void;
102
+ declare const _analysisCategoryKeys: readonly ["geometries", "materials", "textures", "images"];
103
+
104
+ declare function analyzeSceneExport(sceneJson: any, exportReport?: SceneExportReport): SceneJsonSizeAnalysis;
103
105
 
104
106
  declare function applyTextureColorSpace({ node, material, texture, }: ColorCorrectionOptions): void;
105
107
 
@@ -1721,6 +1723,13 @@ declare class EventDispatcher {
1721
1723
  dispatchEvent(event: DispatcherEvent): void;
1722
1724
  }
1723
1725
 
1726
+ declare interface ExportBaseObjectOptions {
1727
+ checkTextures?: boolean;
1728
+ includeHiddenChildren?: boolean;
1729
+ includeUnusedUnlockedMListMaterials?: boolean;
1730
+ includeAnalysisMeta?: boolean;
1731
+ }
1732
+
1724
1733
  /**
1725
1734
  * Custom ExtrudeGeometry extending Three.js ExtrudeGeometry.
1726
1735
  */
@@ -1910,7 +1919,7 @@ export declare class Lead extends Pick_2 {
1910
1919
  setSize(width: number, height: number): void;
1911
1920
  eraseAll(): void;
1912
1921
  private _serializer;
1913
- exportBaseObject(...args: Parameters<SceneSerializer['exportBaseObject']>): string;
1922
+ exportBaseObject(...args: Parameters<SceneSerializer['exportBaseObject']>): Object3DJSON;
1914
1923
  restoreBaseObject(...args: Parameters<SceneSerializer['restoreBaseObject']>): Promise<BaseObject<Object3D<Object3DEventMap>>>;
1915
1924
  dispose(): void;
1916
1925
  }
@@ -2190,10 +2199,13 @@ declare class MList {
2190
2199
  pencil: Pencil;
2191
2200
  private materials;
2192
2201
  fixBaseObjects: Map<string, BaseObject>;
2202
+ private lockedKeys;
2193
2203
  private materialBaseObjectMap;
2194
2204
  private static _emptyGeometry;
2195
2205
  constructor(pencil: Pencil);
2196
- add(key: string, material: Material): void;
2206
+ add(key: string, material: Material, ops?: {
2207
+ locked?: boolean;
2208
+ }): void;
2197
2209
  get(key: string): Material | undefined;
2198
2210
  getByName(name: string): Material | undefined;
2199
2211
  getKey(material: Material): string | undefined;
@@ -2213,6 +2225,12 @@ declare class MList {
2213
2225
  addBaseObjectMap(object: BaseObject): void;
2214
2226
  rmBaseObjectMap(object: BaseObject, targetMaterial?: Material | Material[]): void;
2215
2227
  getBaseObjectMap(material: Material): Set<BaseObject<Object3D<Object3DEventMap>>>;
2228
+ setLocked(key: string, locked?: boolean): boolean;
2229
+ lock(key: string): boolean;
2230
+ unlock(key: string): boolean;
2231
+ isLocked(key: string): boolean;
2232
+ isMaterialUsed(key: string): boolean;
2233
+ shouldExportFixBaseObject(key: string, includeUnusedUnlockedMaterials?: boolean): boolean;
2216
2234
  syncChangeMaterial(oldMaterial: Material, material: Material): void;
2217
2235
  dispose(): void;
2218
2236
  }
@@ -2516,6 +2534,7 @@ declare class Pencil {
2516
2534
  alpha: boolean;
2517
2535
  outputColorSpace: "srgb";
2518
2536
  logarithmicDepthBuffer: boolean;
2537
+ reversedDepthBuffer: boolean;
2519
2538
  preserveDrawingBuffer: boolean;
2520
2539
  stencil: boolean;
2521
2540
  depth: boolean;
@@ -2792,6 +2811,7 @@ declare interface RendererParams {
2792
2811
  preserveDrawingBuffer: boolean;
2793
2812
  stencil: boolean;
2794
2813
  depth: boolean;
2814
+ reversedDepthBuffer: boolean;
2795
2815
  }
2796
2816
 
2797
2817
  declare type Resource = Object3D | Material | Texture | BufferGeometry | BaseObject | HTMLVideoElement;
@@ -2835,6 +2855,155 @@ declare class ScanEffect_2 {
2835
2855
  stop(): void;
2836
2856
  }
2837
2857
 
2858
+ declare interface SceneExportReasonStat {
2859
+ code: SceneExportSkipReasonCode;
2860
+ label: string;
2861
+ count: number;
2862
+ }
2863
+
2864
+ declare interface SceneExportReport {
2865
+ generatedAt: string;
2866
+ summary: {
2867
+ skippedCount: number;
2868
+ skippedObjectCount: number;
2869
+ skippedMaterialCount: number;
2870
+ lockRequiredMaterialCount: number;
2871
+ reasonStats: SceneExportReasonStat[];
2872
+ };
2873
+ objects: SceneExportSkippedObjectReportItem[];
2874
+ materials: SceneExportSkippedMaterialReportItem[];
2875
+ items: SceneExportSkippedReportItem[];
2876
+ }
2877
+
2878
+ declare interface SceneExportReportAction {
2879
+ type: 'lock-material';
2880
+ label: string;
2881
+ hint: string;
2882
+ key: string;
2883
+ command: string;
2884
+ }
2885
+
2886
+ declare interface SceneExportReportViewCard {
2887
+ key: string;
2888
+ label: string;
2889
+ value: number;
2890
+ tone?: 'default' | 'warning';
2891
+ }
2892
+
2893
+ declare interface SceneExportReportViewItem {
2894
+ id: string;
2895
+ title: string;
2896
+ subtitle?: string;
2897
+ reasonLabel: string;
2898
+ reasonDetail: string;
2899
+ tags: string[];
2900
+ action?: SceneExportSkippedReportItem['action'];
2901
+ }
2902
+
2903
+ declare interface SceneExportReportViewModel {
2904
+ cards: SceneExportReportViewCard[];
2905
+ sections: SceneExportReportViewSection[];
2906
+ }
2907
+
2908
+ declare interface SceneExportReportViewSection {
2909
+ key: 'objects' | 'materials';
2910
+ title: string;
2911
+ emptyText: string;
2912
+ count: number;
2913
+ items: SceneExportReportViewItem[];
2914
+ }
2915
+
2916
+ declare interface SceneExportSkippedMaterialReportItem extends SceneExportSkippedReportItemBase {
2917
+ category: 'material';
2918
+ name: string;
2919
+ locked: boolean;
2920
+ used: boolean;
2921
+ }
2922
+
2923
+ declare interface SceneExportSkippedObjectReportItem extends SceneExportSkippedReportItemBase {
2924
+ category: 'object';
2925
+ name: string;
2926
+ objectType: string;
2927
+ hiddenBy?: {
2928
+ key: string;
2929
+ title: string;
2930
+ };
2931
+ }
2932
+
2933
+ declare type SceneExportSkippedReportItem = SceneExportSkippedObjectReportItem | SceneExportSkippedMaterialReportItem;
2934
+
2935
+ declare interface SceneExportSkippedReportItemBase {
2936
+ id: string;
2937
+ category: 'object' | 'material';
2938
+ key: string;
2939
+ title: string;
2940
+ subtitle?: string;
2941
+ reasonCode: SceneExportSkipReasonCode;
2942
+ reasonLabel: string;
2943
+ reasonDetail: string;
2944
+ action?: SceneExportReportAction;
2945
+ }
2946
+
2947
+ declare type SceneExportSkipReasonCode = 'node-object' | 'select-hide' | 'hidden-self' | 'hidden-parent' | 'unused-unlocked-material';
2948
+
2949
+ declare type SceneJsonAnalysisCategoryKey = (typeof _analysisCategoryKeys)[number];
2950
+
2951
+ declare interface SceneJsonAnalysisCategorySummary {
2952
+ key: SceneJsonAnalysisCategoryKey;
2953
+ label: string;
2954
+ count: number;
2955
+ size: SceneJsonSizeInfo;
2956
+ topItems: SceneJsonAnalysisCategoryTopItem[];
2957
+ }
2958
+
2959
+ declare interface SceneJsonAnalysisCategoryTopItem {
2960
+ uuid: string;
2961
+ type?: string;
2962
+ name?: string;
2963
+ usedBy: string;
2964
+ size: SceneJsonSizeInfo;
2965
+ }
2966
+
2967
+ declare interface SceneJsonAnalysisEmptyImage {
2968
+ uuid: string;
2969
+ usedBy: string;
2970
+ }
2971
+
2972
+ declare interface SceneJsonAnalysisExportReportSummary {
2973
+ summary: SceneExportReport['summary'];
2974
+ viewModel: SceneExportReportViewModel;
2975
+ }
2976
+
2977
+ declare interface SceneJsonAnalysisObjectGraphSummary {
2978
+ structureSize: SceneJsonSizeInfo;
2979
+ options?: SceneJsonAnalysisObjectOptionsSummary;
2980
+ }
2981
+
2982
+ declare interface SceneJsonAnalysisObjectOptionItem {
2983
+ key: string;
2984
+ type: string;
2985
+ size: SceneJsonSizeInfo;
2986
+ }
2987
+
2988
+ declare interface SceneJsonAnalysisObjectOptionsSummary {
2989
+ totalSize: SceneJsonSizeInfo;
2990
+ sharedRefCount: number;
2991
+ topItems: SceneJsonAnalysisObjectOptionItem[];
2992
+ }
2993
+
2994
+ declare interface SceneJsonAnalysisSharedOptionsEntry {
2995
+ index: number;
2996
+ size: SceneJsonSizeInfo;
2997
+ }
2998
+
2999
+ declare interface SceneJsonAnalysisSharedOptionsPool {
3000
+ count: number;
3001
+ size: SceneJsonSizeInfo;
3002
+ topEntries: SceneJsonAnalysisSharedOptionsEntry[];
3003
+ totalReferences: number;
3004
+ duplicatesEliminated: number;
3005
+ }
3006
+
2838
3007
  /**
2839
3008
  * 场景 JSON 引用回溯工具
2840
3009
  * 从 sceneJson 中构建 uuid -> 可读路径 的映射表
@@ -2860,6 +3029,20 @@ declare class SceneJsonRefTracer {
2860
3029
  private _traceTextures;
2861
3030
  }
2862
3031
 
3032
+ declare interface SceneJsonSizeAnalysis {
3033
+ total: SceneJsonSizeInfo;
3034
+ exportReport?: SceneJsonAnalysisExportReportSummary;
3035
+ emptyUrlImages: SceneJsonAnalysisEmptyImage[];
3036
+ categories: SceneJsonAnalysisCategorySummary[];
3037
+ sharedOptionsPool?: SceneJsonAnalysisSharedOptionsPool;
3038
+ objectGraph?: SceneJsonAnalysisObjectGraphSummary;
3039
+ }
3040
+
3041
+ declare interface SceneJsonSizeInfo {
3042
+ bytes: number;
3043
+ mbStr: string;
3044
+ }
3045
+
2863
3046
  declare class ScenePages extends OrigonPages<Scene> {
2864
3047
  options: Options_4;
2865
3048
  get scene(): Scene<Object3DEventMap>;
@@ -2881,12 +3064,11 @@ declare class SceneSerializer {
2881
3064
  private get prefabGroup();
2882
3065
  private get mList();
2883
3066
  private get objects();
2884
- exportCompressBaseObject(root: BaseObject, { checkTextures }?: {
2885
- checkTextures?: boolean;
2886
- }): Promise<ArrayBuffer>;
2887
- exportBaseObject(root: BaseObject, { checkTextures }?: {
2888
- checkTextures?: boolean;
2889
- }): string;
3067
+ exportCompressBaseObject(root: BaseObject, options?: ExportBaseObjectOptions): Promise<ArrayBuffer>;
3068
+ exportBaseObject(root: BaseObject, { checkTextures, includeHiddenChildren, includeUnusedUnlockedMListMaterials, includeAnalysisMeta, }?: ExportBaseObjectOptions): Object3DJSON;
3069
+ private _getSkippedObjectReportItem;
3070
+ private _findHiddenAncestor;
3071
+ private _getBaseObjectTitle;
2890
3072
  restoreBaseObject(target: BaseObject, data: string | ArrayBuffer | Object3DJSON, registry?: Record<string, new (...args: any[]) => any>, roomEnvMap?: any, createIfNeeded?: boolean): Promise<BaseObject<Object3D<Object3DEventMap>>>;
2891
3073
  private _restoreFixBaseObjects;
2892
3074
  private _eraseNonCoreObjects;
@@ -3056,7 +3238,7 @@ declare class UseMaterial extends PointerEvent_2 {
3056
3238
 
3057
3239
  export declare const utils: {
3058
3240
  applyTextureColorSpace: typeof applyTextureColorSpace;
3059
- analyzeSceneJsonSize: typeof analyzeSceneJsonSize;
3241
+ analyzeSceneExport: typeof analyzeSceneExport;
3060
3242
  CacheManager: typeof CacheManager;
3061
3243
  cartographicToCartesian: typeof cartographicToCartesian;
3062
3244
  WGS84: {