gl-draw 0.18.15 → 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
  }
@@ -2837,6 +2855,155 @@ declare class ScanEffect_2 {
2837
2855
  stop(): void;
2838
2856
  }
2839
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
+
2840
3007
  /**
2841
3008
  * 场景 JSON 引用回溯工具
2842
3009
  * 从 sceneJson 中构建 uuid -> 可读路径 的映射表
@@ -2862,6 +3029,20 @@ declare class SceneJsonRefTracer {
2862
3029
  private _traceTextures;
2863
3030
  }
2864
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
+
2865
3046
  declare class ScenePages extends OrigonPages<Scene> {
2866
3047
  options: Options_4;
2867
3048
  get scene(): Scene<Object3DEventMap>;
@@ -2883,12 +3064,11 @@ declare class SceneSerializer {
2883
3064
  private get prefabGroup();
2884
3065
  private get mList();
2885
3066
  private get objects();
2886
- exportCompressBaseObject(root: BaseObject, { checkTextures }?: {
2887
- checkTextures?: boolean;
2888
- }): Promise<ArrayBuffer>;
2889
- exportBaseObject(root: BaseObject, { checkTextures }?: {
2890
- checkTextures?: boolean;
2891
- }): 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;
2892
3072
  restoreBaseObject(target: BaseObject, data: string | ArrayBuffer | Object3DJSON, registry?: Record<string, new (...args: any[]) => any>, roomEnvMap?: any, createIfNeeded?: boolean): Promise<BaseObject<Object3D<Object3DEventMap>>>;
2893
3073
  private _restoreFixBaseObjects;
2894
3074
  private _eraseNonCoreObjects;
@@ -3058,7 +3238,7 @@ declare class UseMaterial extends PointerEvent_2 {
3058
3238
 
3059
3239
  export declare const utils: {
3060
3240
  applyTextureColorSpace: typeof applyTextureColorSpace;
3061
- analyzeSceneJsonSize: typeof analyzeSceneJsonSize;
3241
+ analyzeSceneExport: typeof analyzeSceneExport;
3062
3242
  CacheManager: typeof CacheManager;
3063
3243
  cartographicToCartesian: typeof cartographicToCartesian;
3064
3244
  WGS84: {