@manycore/custom-sdk 1.0.3-rc.0 → 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 +521 -25
  3. package/index.js +21 -21
  4. package/package.json +11 -14
package/index.d.ts CHANGED
@@ -1,9 +1,18 @@
1
1
  import { ELineType as ELineType_2 } from '@manycore/custom-miniapp-sdk';
2
2
  import { IExportModelData } from '@manycore/custom-miniapp-sdk';
3
- import { IParamModelLite as IParamModelLite_2 } from '@qunhe/custom-apass-api';
4
3
  import { IParamModelPhotoResponse } from '@manycore/custom-miniapp-sdk';
5
4
  import { Number3 } from '@manycore/custom-miniapp-sdk';
6
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
+
7
16
  /**
8
17
  * 对接2.0主应用
9
18
  *
@@ -93,13 +102,15 @@ export declare class CustomModelService extends BaseService {
93
102
  getCustomModelById(id: string): Promise<IParamModelLite | undefined>;
94
103
  /**
95
104
  * 保存模型改动
96
- * @param models IParamModelLite[]
97
- * @returns Promise<void>
98
105
  * @example
106
+ * ```typescript
99
107
  * // 模型改动:隐藏
100
108
  * model.setHidden(true);
101
109
  * // 保存模型改动
102
110
  * ModelService.save({ models: [model] }});
111
+ * ```
112
+ * @param option
113
+ * @returns Promise<void>
103
114
  */
104
115
  save(option: {
105
116
  models: IParamModelLite[];
@@ -150,6 +161,28 @@ export declare enum ECameraMoveDirection {
150
161
  BACK = "BACK"
151
162
  }
152
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',
184
+ }
185
+
153
186
  /**
154
187
  * 孔槽配件类型
155
188
  */
@@ -173,7 +206,7 @@ export declare enum EFittingType {
173
206
  /**
174
207
  * 交接面信息
175
208
  */
176
- INTERSECTED = "intersected"
209
+ INTERSECTED = 'intersected',
177
210
  }
178
211
 
179
212
  /**
@@ -183,11 +216,11 @@ export declare enum EIntersectedCreatedType {
183
216
  /**
184
217
  * 板与板之间产生的交界
185
218
  */
186
- BOTH_PLANK = 0,
219
+ BOTH_PLANK,
187
220
  /**
188
221
  * 板与五金之间产生的交界信息
189
222
  */
190
- PLANK_FURNITURE = 1
223
+ PLANK_FURNITURE,
191
224
  }
192
225
 
193
226
  /**
@@ -197,29 +230,29 @@ export declare enum EIntersectedType {
197
230
  /**
198
231
  * 交接体
199
232
  */
200
- SHELL = "1",
233
+ SHELL = '1',
201
234
  /**
202
235
  * 交界面
203
236
  */
204
- FACE = "2"
237
+ FACE = '2',
205
238
  }
206
239
 
207
240
  /**
208
241
  * 语言
209
242
  */
210
243
  export declare enum ELanguage {
211
- ZH_CN = "zh_CN",
212
- EN_US = "en_US",
213
- DE_DE = "de_DE",
214
- FR_FR = "fr_FR",
215
- JA_JP = "ja_JP",
216
- ZH_TW = "zh_TW",
217
- RU_RU = "ru_RU",
218
- KO_KR = "ko_KR",
219
- ES_ES = "es_ES",
220
- AR_EG = "ar_EG",
221
- EN_CN = "en_CN",
222
- 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',
223
256
  }
224
257
 
225
258
  /**
@@ -238,7 +271,61 @@ export declare enum ELineType {
238
271
  * 椭圆
239
272
  * 当前代码中,暂不支持
240
273
  */
241
- 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"
242
329
  }
243
330
 
244
331
  /**
@@ -260,7 +347,7 @@ export declare enum EPointType {
260
347
  /**
261
348
  * 切圆,就是内挖一个倒圆的形状
262
349
  */
263
- CUT_CIRCLE = 3
350
+ CUT_CIRCLE = 3,
264
351
  }
265
352
 
266
353
  /**
@@ -325,6 +412,36 @@ export declare enum EToolType {
325
412
  DOOR_WINDOW_COPY = "DW_COPY"
326
413
  }
327
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
+
328
445
  /**
329
446
  * 孔槽方案相关数据的管理
330
447
  *
@@ -522,14 +639,17 @@ export declare class FittingDesignService extends BaseService {
522
639
  * 孔/槽的深度
523
640
  */
524
641
  depth: number;
642
+
525
643
  /**
526
644
  * 所处的板面
527
645
  */
528
646
  plankFaceId: number;
647
+
529
648
  /**
530
649
  * 起点
531
650
  */
532
651
  start: Number3;
652
+
533
653
  /**
534
654
  * 终点
535
655
  */
@@ -550,6 +670,7 @@ export declare class FittingDesignService extends BaseService {
550
670
  * * 如果为交接体,length为8
551
671
  */
552
672
  points: Number3[];
673
+
553
674
  /**
554
675
  * 当前交接信息产生的元件ID
555
676
  */
@@ -587,12 +708,28 @@ export declare class FittingDesignService extends BaseService {
587
708
  * 模型ID
588
709
  */
589
710
  modelId?: string;
711
+ /**
712
+ * 是否强制重新获取
713
+ * @default true 默认值为true,当前浏览模型时,获取json数据时,将会缓存
714
+ */
715
+ force?: boolean;
590
716
  }
591
717
 
592
718
  declare interface IChangeMap {
593
719
  update?: IUpdateInfo[];
594
720
  }
595
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[];
731
+ }
732
+
596
733
  /**
597
734
  * 孔/槽方案的数据结构
598
735
  */
@@ -654,31 +791,38 @@ export declare class FittingDesignService extends BaseService {
654
791
  * 孔槽模型id
655
792
  */
656
793
  id: string;
794
+
657
795
  /**
658
796
  * 隐藏状态
659
797
  */
660
798
  isHidden: boolean;
799
+
661
800
  /**
662
801
  * 模型类型
663
802
  */
664
803
  modelType: EFittingType;
804
+
665
805
  /**
666
806
  * 关联 paramModel id
667
807
  */
668
808
  linkParamModelId: string;
809
+
669
810
  /**
670
811
  * 方案原始数据
671
812
  */
672
813
  originalData: IHoleData | IGrooveData | IHardwareData | IHardwareGrooveData;
814
+
673
815
  /**
674
816
  * 模型变更记录
675
817
  */
676
818
  __changeMap: IChangeMap;
819
+
677
820
  /**
678
821
  * 获取显示隐藏状态
679
822
  * @returns
680
823
  */
681
824
  getHidden(): boolean;
825
+
682
826
  /**
683
827
  * 更新显示隐藏状态
684
828
  * @param isHidden
@@ -686,7 +830,19 @@ export declare class FittingDesignService extends BaseService {
686
830
  setHidden(isHidden: boolean): void;
687
831
  }
688
832
 
833
+ /**
834
+ * 获取模型数据/交界面/体数据参数
835
+ */
836
+ export declare interface IGetParamModelJsonOption extends IBaseOptions {
837
+ /**
838
+ * 是否强制重新获取
839
+ * @default true 默认值为true,当前浏览模型时,获取json数据时,将会缓存
840
+ */
841
+ force?: boolean;
842
+ }
843
+
689
844
  export declare interface IGrooveData extends IBaseHoleGrooveData {
845
+ // 槽宽
690
846
  width: number;
691
847
  }
692
848
 
@@ -698,18 +854,22 @@ export declare class FittingDesignService extends BaseService {
698
854
  * 建模原点在板件坐标系下的坐标
699
855
  */
700
856
  position: Number3;
857
+
701
858
  /**
702
859
  * 相对建模坐标系中夹角,不传默认没有任何基于板件坐标的旋转,会将五金以建模原点放在 position 上,五金建模方向和板件建模方向一致进行摆放。
703
860
  */
704
861
  rotate: Number3;
862
+
705
863
  /**
706
864
  * 相对建模坐标系中缩放,不传默认五金和上传大小完全一致
707
865
  */
708
866
  scale: Number3;
867
+
709
868
  /**
710
869
  * 商品ID
711
870
  */
712
871
  brandGoodId: string;
872
+
713
873
  /**
714
874
  * 关联孔槽ID
715
875
  */
@@ -724,6 +884,7 @@ export declare class FittingDesignService extends BaseService {
724
884
  * 槽的深度
725
885
  */
726
886
  depth: number;
887
+
727
888
  /**
728
889
  * 所处的板面
729
890
  */
@@ -971,6 +1132,7 @@ export declare class FittingDesignService extends BaseService {
971
1132
  * @returns
972
1133
  */
973
1134
  getHidden(): boolean | undefined;
1135
+
974
1136
  /**
975
1137
  * 更新显示隐藏状态
976
1138
  * @param isHidden
@@ -978,7 +1140,255 @@ export declare class FittingDesignService extends BaseService {
978
1140
  setHidden(isHidden: boolean): void;
979
1141
  }
980
1142
 
981
- export { IParamModelPhotoResponse }
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
+ }
982
1392
 
983
1393
  /**
984
1394
  * 点的基本类型
@@ -1073,6 +1483,19 @@ export declare class FittingDesignService extends BaseService {
1073
1483
  roomName?: string;
1074
1484
  }
1075
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
+
1076
1499
  /**
1077
1500
  * 当前选中的数据
1078
1501
  */
@@ -1245,7 +1668,7 @@ export declare class FittingDesignService extends BaseService {
1245
1668
  }
1246
1669
 
1247
1670
  declare interface IUpdateInfo {
1248
- field: string;
1671
+ field: string; // 变更字段
1249
1672
  }
1250
1673
 
1251
1674
  /**
@@ -1402,7 +1825,7 @@ export declare class FittingDesignService extends BaseService {
1402
1825
  *
1403
1826
  * @param options
1404
1827
  */
1405
- getParamData(options?: IBaseOptions): Promise<any>;
1828
+ getParamData(options?: IGetParamModelJsonOption): Promise<any>;
1406
1829
  /**
1407
1830
  * 获取模型的交接数据
1408
1831
  *
@@ -1548,4 +1971,77 @@ export declare class FittingDesignService extends BaseService {
1548
1971
  setting(settings: Partial<ISettingColor>): void;
1549
1972
  }
1550
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
+
1551
2047
  export { }