@manycore/custom-sdk 1.0.1-rc.9 → 1.2.0-latest.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.
Files changed (4) hide show
  1. package/index.css +4 -4
  2. package/index.d.ts +790 -31
  3. package/index.js +37 -18
  4. package/package.json +13 -16
package/index.d.ts CHANGED
@@ -3,6 +3,16 @@ import { IExportModelData } from '@manycore/custom-miniapp-sdk';
3
3
  import { IParamModelPhotoResponse } from '@manycore/custom-miniapp-sdk';
4
4
  import { Number3 } from '@manycore/custom-miniapp-sdk';
5
5
 
6
+ declare interface AMap<K, V> {
7
+ clear(): void;
8
+ delete(key: K): boolean;
9
+ forEach(callbackfn: (value: V, key: K, map: AMap<K, V>) => void, thisArg?: any): void;
10
+ get(key: K): V | undefined;
11
+ has(key: K): boolean;
12
+ set(key: K, value: V): this;
13
+ readonly size: number;
14
+ }
15
+
6
16
  /**
7
17
  * 对接2.0主应用
8
18
  *
@@ -13,6 +23,7 @@ import { Number3 } from '@manycore/custom-miniapp-sdk';
13
23
  */
14
24
  export declare class Application {
15
25
  constructor();
26
+ private serviceMap;
16
27
  /**
17
28
  * 启动对接2.0应用
18
29
  *
@@ -65,7 +76,111 @@ export declare class Application {
65
76
  /**
66
77
  * @private
67
78
  */
68
- declare class BaseService {
79
+ declare abstract class BaseService {
80
+ __onDestroy?(): void;
81
+ }
82
+
83
+ /**
84
+ * 模型相关控制的逻辑
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const CustomModelService = application.getService(CustomModelService);
89
+ * ```
90
+ */
91
+ export declare class CustomModelService extends BaseService {
92
+ /**
93
+ * 获取所有模型
94
+ * @returns Promise<IParamModelLite[]>
95
+ */
96
+ getAllCustomModels(): Promise<IParamModelLite[]>;
97
+ /**
98
+ * 根据id获取所有模型
99
+ * @param id 模型id
100
+ * @returns Promise<IParamModelLite | undefined>
101
+ */
102
+ getCustomModelById(id: string): Promise<IParamModelLite | undefined>;
103
+ /**
104
+ * 保存模型改动
105
+ * @example
106
+ * ```typescript
107
+ * // 模型改动:隐藏
108
+ * model.setHidden(true);
109
+ * // 保存模型改动
110
+ * ModelService.save({ models: [model] }});
111
+ * ```
112
+ * @param option
113
+ * @returns Promise<void>
114
+ */
115
+ save(option: {
116
+ models: IParamModelLite[];
117
+ }): Promise<void>;
118
+ }
119
+
120
+ /**
121
+ * 相机展示模式
122
+ */
123
+ export declare enum ECameraMode {
124
+ /**
125
+ * 鸟瞰模式
126
+ */
127
+ View3D = "view3d",
128
+ /**
129
+ * 漫游模式
130
+ */
131
+ Roamer = "roamer"
132
+ }
133
+
134
+ /**
135
+ * 场景相机方向移动
136
+ */
137
+ export declare enum ECameraMoveDirection {
138
+ /**
139
+ * 上移
140
+ */
141
+ UP = "UP",
142
+ /**
143
+ * 下移
144
+ */
145
+ DOWN = "DOWN",
146
+ /**
147
+ * 左移
148
+ */
149
+ LEFT = "LEFT",
150
+ /**
151
+ * 右移
152
+ */
153
+ RIGHT = "RIGHT",
154
+ /**
155
+ * 前进
156
+ */
157
+ FRONT = "FRONT",
158
+ /**
159
+ * 后退
160
+ */
161
+ BACK = "BACK"
162
+ }
163
+
164
+ /**
165
+ * 交互模式
166
+ */
167
+ export declare enum EDesignMode {
168
+ /**
169
+ * 自定模式
170
+ */
171
+ CUSTOM = 'custom',
172
+ /**
173
+ * 顶层模式
174
+ */
175
+ TOP_MODEL = 'top_model',
176
+ /**
177
+ * 组件模式
178
+ */
179
+ ACCESSORY = 'accessory',
180
+ /**
181
+ * 底层商品模式
182
+ */
183
+ PRODUCT = 'product',
69
184
  }
70
185
 
71
186
  /**
@@ -91,7 +206,7 @@ export declare enum EFittingType {
91
206
  /**
92
207
  * 交接面信息
93
208
  */
94
- INTERSECTED = "intersected"
209
+ INTERSECTED = 'intersected',
95
210
  }
96
211
 
97
212
  /**
@@ -101,11 +216,11 @@ export declare enum EIntersectedCreatedType {
101
216
  /**
102
217
  * 板与板之间产生的交界
103
218
  */
104
- BOTH_PLANK = 0,
219
+ BOTH_PLANK,
105
220
  /**
106
221
  * 板与五金之间产生的交界信息
107
222
  */
108
- PLANK_FURNITURE = 1
223
+ PLANK_FURNITURE,
109
224
  }
110
225
 
111
226
  /**
@@ -115,29 +230,29 @@ export declare enum EIntersectedType {
115
230
  /**
116
231
  * 交接体
117
232
  */
118
- SHELL = "1",
233
+ SHELL = '1',
119
234
  /**
120
235
  * 交界面
121
236
  */
122
- FACE = "2"
237
+ FACE = '2',
123
238
  }
124
239
 
125
240
  /**
126
241
  * 语言
127
242
  */
128
243
  export declare enum ELanguage {
129
- ZH_CN = "zh_CN",
130
- EN_US = "en_US",
131
- DE_DE = "de_DE",
132
- FR_FR = "fr_FR",
133
- JA_JP = "ja_JP",
134
- ZH_TW = "zh_TW",
135
- RU_RU = "ru_RU",
136
- KO_KR = "ko_KR",
137
- ES_ES = "es_ES",
138
- AR_EG = "ar_EG",
139
- EN_CN = "en_CN",
140
- VI = "vi"
244
+ ZH_CN = 'zh_CN',
245
+ EN_US = 'en_US',
246
+ DE_DE = 'de_DE',
247
+ FR_FR = 'fr_FR',
248
+ JA_JP = 'ja_JP',
249
+ ZH_TW = 'zh_TW',
250
+ RU_RU = 'ru_RU',
251
+ KO_KR = 'ko_KR',
252
+ ES_ES = 'es_ES',
253
+ AR_EG = 'ar_EG',
254
+ EN_CN = 'en_CN',
255
+ VI = 'vi',
141
256
  }
142
257
 
143
258
  /**
@@ -156,7 +271,61 @@ export declare enum ELineType {
156
271
  * 椭圆
157
272
  * 当前代码中,暂不支持
158
273
  */
159
- ELLIPSE_ARC = 3
274
+ ELLIPSE_ARC = 3,
275
+ }
276
+
277
+ /**
278
+ * 模型类型
279
+ */
280
+ export declare enum EModelType {
281
+ /**
282
+ * 模型
283
+ */
284
+ PARAM_MODEL = 'param_model',
285
+ /**
286
+ * 模型组合
287
+ */
288
+ PARAM_MODEL_ASSEMBLY = 'param_model_assembly',
289
+ }
290
+
291
+ /**
292
+ * 当前模型的类型
293
+ */
294
+ declare enum EParamModelType {
295
+ /**
296
+ * 普通模型的单一模型
297
+ */
298
+ COMMON = 0,
299
+ /**
300
+ * 实例组合:即在设计方案当中,选中多个模型,组合之后的结果
301
+ */
302
+ ASSEMBLY = 1,
303
+ /**
304
+ * 参数化组合:在参数化编辑器中,对多个模型进行组合操作
305
+ */
306
+ TEMPLATE_ASSEMBLY = 2
307
+ }
308
+
309
+ declare enum EParamType {
310
+ FLOAT = "float",
311
+ FLOAT2 = "float2",
312
+ FLOAT3 = "float3",
313
+ FLOAT_BUFFER = "floatbuf",
314
+ FLOAT2_BUFFER = "float2buf",
315
+ FLOAT3_BUFFER = "float3buf",
316
+ REFERENCE = "reference",
317
+ INT = "int",
318
+ INT_BUFFER = "intbuf",
319
+ STRING = "string",
320
+ SHAPE = "shape",
321
+ MATERIAL = "material",
322
+ BOOLEAN = "boolean",
323
+ BOOLEAN_BUFFER = "booleanbuf",
324
+ FIT = "fit",
325
+ PATH = "paramcornerpath",
326
+ STYLE = "style",
327
+ FORMULA_STRING = "formulaString",
328
+ BOOLEAN_LIST = "booleanlist"
160
329
  }
161
330
 
162
331
  /**
@@ -178,7 +347,7 @@ export declare enum EPointType {
178
347
  /**
179
348
  * 切圆,就是内挖一个倒圆的形状
180
349
  */
181
- CUT_CIRCLE = 3
350
+ CUT_CIRCLE = 3,
182
351
  }
183
352
 
184
353
  /**
@@ -199,6 +368,20 @@ export declare enum ESelectedType {
199
368
  CASBIN = 2
200
369
  }
201
370
 
371
+ /**
372
+ * 设置选中内容类型
373
+ */
374
+ export declare enum ESetSelectType {
375
+ /**
376
+ * 模型或商品
377
+ */
378
+ MODEL = 1,
379
+ /**
380
+ * 五金
381
+ */
382
+ CASBIN = 2
383
+ }
384
+
202
385
  /**
203
386
  * 定制行业工具线
204
387
  */
@@ -229,6 +412,36 @@ export declare enum EToolType {
229
412
  DOOR_WINDOW_COPY = "DW_COPY"
230
413
  }
231
414
 
415
+ /** 定制工具线 */
416
+ declare enum EToolType_2 {
417
+ /** 厨卫定制 */
418
+ Cabinet = "Cabinet",
419
+ /** 家居定制 */
420
+ Wardrobe = "Wardrobe",
421
+ /** 门窗定制 */
422
+ DoorWindow = "DW",
423
+ /** 厨卫定制副本 */
424
+ CabinetCopy = "Cabinet_Copy",
425
+ /** 家居定制副本 */
426
+ WardrobeCopy = "Wardrobe_Copy",
427
+ /** 门窗定制副本 */
428
+ DoorWindowCopy = "DW_Copy"
429
+ }
430
+
431
+ /**
432
+ * 选中模型触发方式
433
+ */
434
+ export declare enum ETriggerType {
435
+ /**
436
+ * 单击
437
+ */
438
+ CLICK = 'click',
439
+ /**
440
+ * 双击
441
+ */
442
+ DB_CLICK = 'double_click',
443
+ }
444
+
232
445
  /**
233
446
  * 孔槽方案相关数据的管理
234
447
  *
@@ -357,6 +570,31 @@ export declare class FittingDesignService extends BaseService {
357
570
  clearDesign(options?: IBaseOptions): Promise<void>;
358
571
  }
359
572
 
573
+ /**
574
+ * 提供孔槽模型操作能力
575
+ *
576
+ * @example
577
+ * ```typescript
578
+ * const fittingModelService = application.getService(FittingModelService);
579
+ * ```
580
+ */
581
+ export declare class FittingModelService extends BaseService {
582
+ /**
583
+ * 获取所有五金孔槽模型
584
+ * @param modelId paramModel id,查找相关联孔槽五金
585
+ * @returns Promise<IFittingModelLite[]>
586
+ */
587
+ getAllFittingModels(modelId?: string): Promise<IFittingModelLite[]>;
588
+ /**
589
+ * 保存所有孔槽模型
590
+ * @param option
591
+ * @returns Promise<void>
592
+ */
593
+ save(option: {
594
+ models: IFittingModelLite[];
595
+ }): Promise<void>;
596
+ }
597
+
360
598
  /**
361
599
  * 孔槽数据基础示意
362
600
  */
@@ -401,14 +639,17 @@ export declare class FittingDesignService extends BaseService {
401
639
  * 孔/槽的深度
402
640
  */
403
641
  depth: number;
642
+
404
643
  /**
405
644
  * 所处的板面
406
645
  */
407
646
  plankFaceId: number;
647
+
408
648
  /**
409
649
  * 起点
410
650
  */
411
651
  start: Number3;
652
+
412
653
  /**
413
654
  * 终点
414
655
  */
@@ -429,6 +670,7 @@ export declare class FittingDesignService extends BaseService {
429
670
  * * 如果为交接体,length为8
430
671
  */
431
672
  points: Number3[];
673
+
432
674
  /**
433
675
  * 当前交接信息产生的元件ID
434
676
  */
@@ -466,6 +708,26 @@ export declare class FittingDesignService extends BaseService {
466
708
  * 模型ID
467
709
  */
468
710
  modelId?: string;
711
+ /**
712
+ * 是否强制重新获取
713
+ * @default true 默认值为true,当前浏览模型时,获取json数据时,将会缓存
714
+ */
715
+ force?: boolean;
716
+ }
717
+
718
+ declare interface IChangeMap {
719
+ update?: IUpdateInfo[];
720
+ }
721
+
722
+ export declare interface IFindHintModel {
723
+ (rayTarget: IParamModelLite): void | ISceneHintOption | ISceneHintOption[];
724
+ }
725
+
726
+ export declare interface IFindSelectModel {
727
+ (rayTarget: IParamModelLite, triggerType: ETriggerType):
728
+ | void
729
+ | ISceneSelectOption
730
+ | ISceneSelectOption[];
469
731
  }
470
732
 
471
733
  /**
@@ -521,7 +783,66 @@ export declare class FittingDesignService extends BaseService {
521
783
  */
522
784
  export declare type IFittingHoleCollect = Record<string, IHoleData[]>;
523
785
 
786
+ /**
787
+ * 五金孔槽通用模型
788
+ */
789
+ export declare interface IFittingModelLite {
790
+ /**
791
+ * 孔槽模型id
792
+ */
793
+ id: string;
794
+
795
+ /**
796
+ * 隐藏状态
797
+ */
798
+ isHidden: boolean;
799
+
800
+ /**
801
+ * 模型类型
802
+ */
803
+ modelType: EFittingType;
804
+
805
+ /**
806
+ * 关联 paramModel id
807
+ */
808
+ linkParamModelId: string;
809
+
810
+ /**
811
+ * 方案原始数据
812
+ */
813
+ originalData: IHoleData | IGrooveData | IHardwareData | IHardwareGrooveData;
814
+
815
+ /**
816
+ * 模型变更记录
817
+ */
818
+ __changeMap: IChangeMap;
819
+
820
+ /**
821
+ * 获取显示隐藏状态
822
+ * @returns
823
+ */
824
+ getHidden(): boolean;
825
+
826
+ /**
827
+ * 更新显示隐藏状态
828
+ * @param isHidden
829
+ */
830
+ setHidden(isHidden: boolean): void;
831
+ }
832
+
833
+ /**
834
+ * 获取模型数据/交界面/体数据参数
835
+ */
836
+ export declare interface IGetParamModelJsonOption extends IBaseOptions {
837
+ /**
838
+ * 是否强制重新获取
839
+ * @default true 默认值为true,当前浏览模型时,获取json数据时,将会缓存
840
+ */
841
+ force?: boolean;
842
+ }
843
+
524
844
  export declare interface IGrooveData extends IBaseHoleGrooveData {
845
+ // 槽宽
525
846
  width: number;
526
847
  }
527
848
 
@@ -533,18 +854,22 @@ export declare class FittingDesignService extends BaseService {
533
854
  * 建模原点在板件坐标系下的坐标
534
855
  */
535
856
  position: Number3;
857
+
536
858
  /**
537
859
  * 相对建模坐标系中夹角,不传默认没有任何基于板件坐标的旋转,会将五金以建模原点放在 position 上,五金建模方向和板件建模方向一致进行摆放。
538
860
  */
539
861
  rotate: Number3;
862
+
540
863
  /**
541
864
  * 相对建模坐标系中缩放,不传默认五金和上传大小完全一致
542
865
  */
543
866
  scale: Number3;
867
+
544
868
  /**
545
869
  * 商品ID
546
870
  */
547
871
  brandGoodId: string;
872
+
548
873
  /**
549
874
  * 关联孔槽ID
550
875
  */
@@ -559,6 +884,7 @@ export declare class FittingDesignService extends BaseService {
559
884
  * 槽的深度
560
885
  */
561
886
  depth: number;
887
+
562
888
  /**
563
889
  * 所处的板面
564
890
  */
@@ -800,7 +1126,269 @@ export declare class FittingDesignService extends BaseService {
800
1126
  toggleModelViewedIntersected(option?: IToggleIntersectedViewOption): void;
801
1127
  }
802
1128
 
803
- export { IParamModelPhotoResponse }
1129
+ export declare interface IParamModelLite extends IParamModelLite_2 {
1130
+ /**
1131
+ * 获取显示隐藏状态
1132
+ * @returns
1133
+ */
1134
+ getHidden(): boolean | undefined;
1135
+
1136
+ /**
1137
+ * 更新显示隐藏状态
1138
+ * @param isHidden
1139
+ */
1140
+ setHidden(isHidden: boolean): void;
1141
+ }
1142
+
1143
+ /**
1144
+ * 对定制参数化模型进行精简处理后的结果
1145
+ * @name ParamModel
1146
+ */
1147
+ declare interface IParamModelLite_2 {
1148
+ /**
1149
+ * 模型的唯一标识ID
1150
+ * 如果模型是从方案当中获取至的,则为模型在方案中的ID,非方案模型,将会随机生成ID
1151
+ * @readonly
1152
+ * @public
1153
+ * @type string
1154
+ */
1155
+ readonly id: string;
1156
+ /**
1157
+ * 当前位置信息
1158
+ * @readonly
1159
+ * @public
1160
+ * @typedef Number3
1161
+ */
1162
+ position: Number3_2;
1163
+ /**
1164
+ * 当前模型的旋转信息
1165
+ * @readonly
1166
+ * @public
1167
+ * @typedef Number3
1168
+ * @deprecated 将废弃,推荐使用 rotation
1169
+ */
1170
+ rotate: Number3_2;
1171
+ /**
1172
+ * 当前模型的旋转信息
1173
+ * @readonly
1174
+ * @public
1175
+ * @typedef Number3
1176
+ */
1177
+ rotation: Number3_2;
1178
+ /**
1179
+ * 当前尺寸信息
1180
+ * @readonly
1181
+ * @public
1182
+ * @typedef Number3
1183
+ */
1184
+ size: Number3_2;
1185
+ /**
1186
+ * 模型当中自定议的参数信息
1187
+ * @readonly
1188
+ * @protected
1189
+ * @typedef AMap<string, IParamModelLiteParam>
1190
+ */
1191
+ readonly params: AMap<string, IParamModelLiteParam>;
1192
+ /**
1193
+ * 商品ID,即商品后台的商品ID
1194
+ * @readonly
1195
+ */
1196
+ readonly productId?: string;
1197
+ /**
1198
+ * 当前模型所处的真分类信息
1199
+ * @readonly
1200
+ */
1201
+ category: number;
1202
+ /**
1203
+ * 此字段只有当模型从工具场景中获取,才具有意义
1204
+ * 当前模型在工具当中的显示与隐藏状态;如果为`true`,则表示为隐藏状态
1205
+ * @public
1206
+ * @readonly
1207
+ */
1208
+ isHidden?: boolean;
1209
+ /**
1210
+ * 模型类型,仅为从方案中获取模型才具备意义
1211
+ * @public
1212
+ * @readonly
1213
+ * @typedef EParamModelType
1214
+ */
1215
+ modelType?: EParamModelType;
1216
+ /**
1217
+ * 当前模型所处的定制行业线
1218
+ * @public
1219
+ * @readonly
1220
+ */
1221
+ toolType?: EToolType_2;
1222
+ /**
1223
+ * 当前模型是否为root节点,如果是,则为true
1224
+ * @public
1225
+ * @readonly
1226
+ */
1227
+ isRoot?: boolean;
1228
+ /**
1229
+ * 更新当前模型的位置信息
1230
+ * @param position {Number3} 坐标
1231
+ */
1232
+ setPosition(position: Number3_2): void;
1233
+ /**
1234
+ * 获取当前模型的坐标信息
1235
+ * @return Number3 相对父模型坐标,如果为顶层模型,则为世界坐标
1236
+ */
1237
+ getPosition(): Number3_2;
1238
+ /**
1239
+ * 更新当前模型的旋转信息
1240
+ * @description 特别说明,定制模型,使用的是右手坐标系,rotate字段中
1241
+ * @param rotate {Number3} 旋转的弧度
1242
+ * @deprecated 将废弃,推荐使用 rotation
1243
+ */
1244
+ setRotate(rotate: Number3_2): void;
1245
+ /**
1246
+ * 获取当前模型相对父级的旋转信息
1247
+ * @deprecated 将废弃,推荐使用 rotation
1248
+ */
1249
+ getRotate(): Number3_2;
1250
+ /**
1251
+ * 更新当前模型的旋转信息
1252
+ * @description 特别说明,定制模型,使用的是右手坐标系,rotation字段中
1253
+ * @param rotation {Number3} 旋转的弧度
1254
+ */
1255
+ setRotation(rotation: Number3_2): void;
1256
+ /**
1257
+ * 获取当前模型相对父级的旋转信息
1258
+ */
1259
+ getRotation(): Number3_2;
1260
+ /**
1261
+ * 模型的复制,返回一个新的`ParamModel`对象
1262
+ */
1263
+ clone(): IParamModelLite_2;
1264
+ /**
1265
+ * 将当前模型与父级模型断开联系
1266
+ * 可以更直接的理解为:删除当前模型
1267
+ * > 针对`clone()`后的对象,作`dispose()`操作,将不会产生任何作用
1268
+ */
1269
+ dispose(): void;
1270
+ /**
1271
+ * 查找当前模型的父节点
1272
+ */
1273
+ getParent(): IParamModelLite_2 | undefined;
1274
+ /**
1275
+ * 获取当前模型的顶层模型,如果当前模型就是顶层模型,则会返回undefined
1276
+ */
1277
+ getRoot(): IParamModelLite_2 | undefined;
1278
+ /**
1279
+ * 获取当前模型的所有子模型
1280
+ */
1281
+ getChild(): IParamModelLite_2[];
1282
+ /**
1283
+ * 获取当前模型下的所有非原生模型
1284
+ * @description 说明一下:非原生模型可以大致理解为:在方案当中,手动生成一个模型,添加到其他模型上;与之对应子模型可以理解为原生模型,即参数
1285
+ * 化编辑中自带的模型
1286
+ */
1287
+ getAccessory(): IParamModelLite_2[];
1288
+ /**
1289
+ * 向当前模型中,添加一个子模型;一般会向包裹层当中,添加子模型;另外,五金配件,也必须使用此方法添加
1290
+ * @param child {IParamModelLite} 待添加的模型
1291
+ */
1292
+ appendChild(child: IParamModelLite_2): void;
1293
+ /**
1294
+ * 向当前模型中,添加一个非原生模型;一般会使用在添加五金
1295
+ * @param accessory {IParamModelLite} 待添加的模型
1296
+ */
1297
+ appendAccessory(accessory: IParamModelLite_2): void;
1298
+ /**
1299
+ * 获取当前模型中的参数信息(参数即在参数化编辑中的信息)
1300
+ * @example
1301
+ * `m.getParam('W')` 获取模型的宽度信息
1302
+ * @param name {string} 参数名称
1303
+ */
1304
+ getParam(name: string): IParamModelLiteParam | undefined;
1305
+ /**
1306
+ * 判断当前模型是否包含某个参数
1307
+ * @param name {string} 参数名称
1308
+ */
1309
+ hasParam(name: string): boolean;
1310
+ /**
1311
+ * 将当前数据转换成一个纯对象
1312
+ * @private
1313
+ */
1314
+ toJSON(): Record<string, any>;
1315
+ /**
1316
+ * 对当前模型数据进行序列化操作
1317
+ */
1318
+ serialize(): string;
1319
+ /**
1320
+ * 将一个序列化之后的模型,进行反序列化操作
1321
+ */
1322
+ deserialize(model: string): IParamModelLite_2;
1323
+ }
1324
+
1325
+ /**
1326
+ * 模型的参数信息
1327
+ */
1328
+ declare interface IParamModelLiteParam<T = any> {
1329
+ /**
1330
+ * 获取当前参数解析后的值内容
1331
+ */
1332
+ getValue(): T;
1333
+ /**
1334
+ * @deprecated 请直接使用'getValue'方法
1335
+ */
1336
+ getParsedValue(): T;
1337
+ /**
1338
+ * 设置当前参数的值
1339
+ * @description 当前函数并未对输入的参数进行校验
1340
+ * @param value
1341
+ */
1342
+ setValue(value: T): any;
1343
+ /**
1344
+ * @deprecated 请直接使用'setValue'方法
1345
+ * @param value
1346
+ */
1347
+ setParsedValue(value: T): any;
1348
+ /**
1349
+ * 获取当前参数类型
1350
+ */
1351
+ getType(): EParamType;
1352
+ /**
1353
+ * 获取当前参数输入值的最大值(参数化编辑器中设置的)
1354
+ */
1355
+ getMax(): number | undefined;
1356
+ /**
1357
+ * 获取当前参数输入值的最小值(参数化编辑器中设置的)
1358
+ */
1359
+ getMin(): number | undefined;
1360
+ /**
1361
+ * 获取当前参数的步长信息
1362
+ */
1363
+ getStep(): number | undefined;
1364
+ /**
1365
+ * 获取可选值
1366
+ */
1367
+ getOptionValues(): NamedValue[];
1368
+ /**
1369
+ * 当前参数是否可以被编辑
1370
+ * @description 如果为不可编辑的话,强制更改参数也不会生效
1371
+ */
1372
+ getEditable(): boolean;
1373
+ /**
1374
+ * 获取当前模型在参数化编辑器中设置的推荐值
1375
+ */
1376
+ getRecommendValues(): NamedValue[];
1377
+ /**
1378
+ * 获取value展示的值
1379
+ */
1380
+ getValueDisplayNames(): string[];
1381
+ /**
1382
+ * 是否需要将设置的参数覆盖原始参数信息
1383
+ * 仅对部分参数设计有效,具体细节,见对应场景
1384
+ */
1385
+ getPrimitiveOverride(): boolean;
1386
+ /**
1387
+ * 是否需要将设置的参数覆盖原始参数信息
1388
+ * @param value {boolean}
1389
+ */
1390
+ setPrimitiveOverride(value: boolean): void;
1391
+ }
804
1392
 
805
1393
  /**
806
1394
  * 点的基本类型
@@ -895,6 +1483,19 @@ export declare class FittingDesignService extends BaseService {
895
1483
  roomName?: string;
896
1484
  }
897
1485
 
1486
+ export declare type ISceneHintOption = ISceneSelectOption;
1487
+
1488
+ export declare interface ISceneSelectOption {
1489
+ /**
1490
+ * 模型id | 组合id
1491
+ */
1492
+ id: string;
1493
+ /**
1494
+ * 模型类型
1495
+ */
1496
+ type: EModelType;
1497
+ }
1498
+
898
1499
  /**
899
1500
  * 当前选中的数据
900
1501
  */
@@ -909,6 +1510,20 @@ export declare class FittingDesignService extends BaseService {
909
1510
  type: ESelectedType;
910
1511
  }
911
1512
 
1513
+ /**
1514
+ * 通过ID选中模型参数
1515
+ */
1516
+ export declare interface ISetSelectedByIdOption {
1517
+ /**
1518
+ * 模型ID/五金ID
1519
+ */
1520
+ id: string;
1521
+ /**
1522
+ * 选中的类型
1523
+ */
1524
+ type: ESetSelectType;
1525
+ }
1526
+
912
1527
  /**
913
1528
  * 场景中,模型的颜色配置能力
914
1529
  *
@@ -1052,6 +1667,48 @@ export declare class FittingDesignService extends BaseService {
1052
1667
  pageNum?: number;
1053
1668
  }
1054
1669
 
1670
+ declare interface IUpdateInfo {
1671
+ field: string; // 变更字段
1672
+ }
1673
+
1674
+ /**
1675
+ * 主要提供了场景相机的模式、移动等
1676
+ *
1677
+ * @example
1678
+ * ```typescript
1679
+ * const modelCameraService = application.getService(ModelCameraService);
1680
+ * ```
1681
+ */
1682
+ export declare class ModelCameraService extends BaseService {
1683
+ /**
1684
+ * 切换相机模式
1685
+ * @param mode 相机模式
1686
+ * @example
1687
+ * ```ts
1688
+ * const modelCameraService = application.getService(ModelCameraService);
1689
+ *
1690
+ * // 切换至漫游模式
1691
+ * modelCameraService.toggleCameraMode(ECameraMode.Roamer);
1692
+ * ```
1693
+ */
1694
+ toggleCameraMode(mode: ECameraMode): void;
1695
+ /**
1696
+ * 根据方向移动相机
1697
+ * @param direction 移动方向
1698
+ * @example
1699
+ * ```ts
1700
+ * const modelCameraService = application.getService(ModelCameraService);
1701
+ *
1702
+ * // 相机向上移动
1703
+ * modelCameraService.moveCamera(ECameraMoveDirection.UP);
1704
+ *
1705
+ * // 相机向前移动
1706
+ * modelCameraService.moveCamera(ECameraMoveDirection.FRONT);
1707
+ * ```
1708
+ */
1709
+ moveCamera(direction: ECameraMoveDirection): void;
1710
+ }
1711
+
1055
1712
  /**
1056
1713
  * 配置板件特殊标识
1057
1714
  *
@@ -1168,7 +1825,7 @@ export declare class FittingDesignService extends BaseService {
1168
1825
  *
1169
1826
  * @param options
1170
1827
  */
1171
- getParamData(options?: IBaseOptions): Promise<any>;
1828
+ getParamData(options?: IGetParamModelJsonOption): Promise<any>;
1172
1829
  /**
1173
1830
  * 获取模型的交接数据
1174
1831
  *
@@ -1185,11 +1842,6 @@ export declare class FittingDesignService extends BaseService {
1185
1842
  * @param options
1186
1843
  */
1187
1844
  getTopParamModels(options?: ITopParamModelListOption): Promise<ITopParamModelDataResponse>;
1188
- /**
1189
- * 获取模型缩略图信息
1190
- * @param modelId
1191
- * @returns 模型缩略图信息
1192
- */
1193
1845
  getParamModelPhotoById(modelId: string | string[]): Promise<IParamModelPhotoResponse[]>;
1194
1846
  }
1195
1847
 
@@ -1208,14 +1860,48 @@ export declare class FittingDesignService extends BaseService {
1208
1860
  */
1209
1861
  getSelected(): ISelected;
1210
1862
  /**
1211
- * @ignore
1212
- * 设置当前选中内容
1863
+ * 设置选中的模型
1864
+ * 同时选中多个模型暂未支持,请勿使用
1865
+ * @param option ISetSelectedByIdOption
1866
+ * @example
1867
+ * ```
1868
+ * const viewerSelectionService = application.getService(ModelViewerSelectionService);
1869
+ * const selectOption = {
1870
+ * id: 'modelId...',
1871
+ * type: ESetSelectType.MODEL,
1872
+ * };
1873
+ *
1874
+ * viewerSelectionService.select(selectOption);
1875
+ * ```
1213
1876
  */
1214
- select(selected: any[]): void;
1877
+ select(option: ISetSelectedByIdOption | ISetSelectedByIdOption[]): void;
1215
1878
  /**
1216
1879
  * 取消场景当中选中内容
1880
+ * 同时取消多个模型暂未支持,请勿使用
1881
+ * @param option
1882
+ * @example
1883
+ * ```
1884
+ * const viewerSelectionService = application.getService(ModelViewerSelectionService);
1885
+ * const selectOption = {
1886
+ * id: 'modelId...',
1887
+ * type: ESetSelectType.MODEL,
1888
+ * };
1889
+ *
1890
+ * // 取消指定选中模型
1891
+ * viewerSelectionService.unSelect(selectOption);
1892
+ * // 默认取消全部选中模型
1893
+ * viewerSelectionService.unSelect();
1894
+ * ```
1217
1895
  */
1218
- unSelect(): void;
1896
+ unSelect(option?: ISetSelectedByIdOption | ISetSelectedByIdOption[]): void;
1897
+ /**
1898
+ * 根据参数生成entity
1899
+ * @param option
1900
+ * @returns entity
1901
+ * @private
1902
+ * @ignore
1903
+ */
1904
+ private __generateEntity;
1219
1905
  /**
1220
1906
  * @ignore
1221
1907
  */
@@ -1285,4 +1971,77 @@ export declare class FittingDesignService extends BaseService {
1285
1971
  setting(settings: Partial<ISettingColor>): void;
1286
1972
  }
1287
1973
 
1974
+ /**
1975
+ * 可选值参数每项数据类型
1976
+ */
1977
+ declare interface NamedValue<T = any> {
1978
+ /**
1979
+ * 显示的名称
1980
+ */
1981
+ name: string;
1982
+ value: T;
1983
+ }
1984
+
1985
+ /**
1986
+ * 二维空间下:坐标/向量/旋转/尺寸的基础表示
1987
+ */
1988
+ declare interface Number2 {
1989
+ /**
1990
+ * x轴上的数据
1991
+ */
1992
+ x: number;
1993
+ /**
1994
+ * y轴上数据
1995
+ */
1996
+ y: number;
1997
+ }
1998
+
1999
+ /**
2000
+ * 三维空间下,坐标/向量/旋转/尺寸的基础表示
2001
+ */
2002
+ declare interface Number3_2 extends Number2 {
2003
+ /**
2004
+ * z轴方向数据
2005
+ */
2006
+ z: number;
2007
+ }
2008
+
2009
+ /**
2010
+ * 提供渲染场景的控制
2011
+ *
2012
+ * @example
2013
+ * ```typescript
2014
+ * const SceneService = application.getService(SceneService);
2015
+ * ```
2016
+ */
2017
+ export declare class SceneService extends BaseService {
2018
+ /**
2019
+ * 设置场景内模型交互级别
2020
+ * @param param.mode EDesignMode
2021
+ * @param param.customModeCb 自定义模式回调
2022
+ * @param param.customModeCb.findSelectModel 检测选中模型
2023
+ * @param param.customModeCb.findHintModel 检测高亮模型
2024
+ *
2025
+ * 除自定义模式外,每一种模式内部定义了单击可选中的模型类型:
2026
+ * * `TOP_MODEL`: 顶层模型、模型组合
2027
+ * * `ACCESSORY`: 组件(组件定义来源定制工具线)
2028
+ * * `PRODUCT`: 底层商品模型
2029
+ *
2030
+ * 每一种模式单击选中某模型后,可双击选中下层模型
2031
+ *
2032
+ * 例:`TOP_MODEL`模式下,单击选中一个组合后,可双击双中组合中的顶层模型,再双击可选中顶层模型下的组件,单双击操作不可以逆向选择,假设处于`PRODUCT`模式下,那只能单击选中底层商品模型
2033
+ *
2034
+ * **自定义模式:**
2035
+ *
2036
+ * 自定义模式下,可以自定义选中模型的级别,以及高亮模型的级别,SDK传出目前的交互类型(`单击、双击、Hover`)及对应的底层商品模型
2037
+ */
2038
+ setDesignMode({ mode, customModeCb, }: {
2039
+ mode: EDesignMode;
2040
+ customModeCb?: {
2041
+ findSelectModel: IFindSelectModel;
2042
+ findHintModel: IFindHintModel;
2043
+ };
2044
+ }): void;
2045
+ }
2046
+
1288
2047
  export { }