next-flow-interface 0.26.18 → 0.26.20
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/index.d.ts +144 -17
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1630,6 +1630,15 @@ export declare class DomNotFoundError extends NotFoundError {
|
|
|
1630
1630
|
constructor(message: string);
|
|
1631
1631
|
}
|
|
1632
1632
|
|
|
1633
|
+
declare interface DragNodeInfo {
|
|
1634
|
+
nid: string;
|
|
1635
|
+
location: StoredRhineVar<RvLocation>;
|
|
1636
|
+
initialPosition: V3;
|
|
1637
|
+
initialRotation?: V3;
|
|
1638
|
+
initialRotationQuaternion?: V4;
|
|
1639
|
+
initialScale: V3;
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1633
1642
|
/**
|
|
1634
1643
|
* @public
|
|
1635
1644
|
*/
|
|
@@ -5298,6 +5307,7 @@ export declare class RsSelectionService {
|
|
|
5298
5307
|
branchMode: boolean;
|
|
5299
5308
|
materialInfo: RsSelectionMaterialInfo;
|
|
5300
5309
|
highlight: HighLightInfo[];
|
|
5310
|
+
getSelectedNidList(): string[];
|
|
5301
5311
|
changeBranchMode(value?: boolean, message?: boolean): void;
|
|
5302
5312
|
toAllChildren(log?: boolean): boolean;
|
|
5303
5313
|
subscribe(subscriber: SelectedSubscriber): () => void;
|
|
@@ -5318,44 +5328,104 @@ export declare interface RsSelectionState {
|
|
|
5318
5328
|
}
|
|
5319
5329
|
|
|
5320
5330
|
/**
|
|
5321
|
-
*
|
|
5331
|
+
* 材质分离渲染服务
|
|
5332
|
+
*
|
|
5333
|
+
* 在 BabylonJS 渲染层执行实际的材质分离操作。
|
|
5334
|
+
* 当多个 mesh 共享同一材质时,通过 clone 材质实现独立编辑,
|
|
5335
|
+
* 避免修改一个节点的材质影响其他节点。
|
|
5336
|
+
*
|
|
5337
|
+
* @remarks
|
|
5338
|
+
* 采用"按需分离"策略,只在需要独立编辑时才 clone 材质,节省内存。
|
|
5339
|
+
*
|
|
5340
|
+
* 典型流程:
|
|
5341
|
+
* 1. 文件加载后调用 {@link analyzeByMeshes} 分析共享材质的节点
|
|
5342
|
+
* 2. 编辑材质时调用 {@link get} 或 {@link getWithEnsureType} 获取独立材质
|
|
5343
|
+
*
|
|
5344
|
+
* @example
|
|
5345
|
+
* ```typescript
|
|
5346
|
+
* // 获取节点的独立材质(按需分离)
|
|
5347
|
+
* const material = await RsSeparateService.instance.get(nid)
|
|
5348
|
+
*
|
|
5349
|
+
* // 获取并确保材质类型匹配
|
|
5350
|
+
* const material = await RsSeparateService.instance.getWithEnsureType(nid, rvMaterial)
|
|
5351
|
+
* ```
|
|
5352
|
+
*
|
|
5353
|
+
* @see {@link RvSeparateService} 协同数据层材质分离服务
|
|
5322
5354
|
*/
|
|
5323
5355
|
export declare class RsSeparateService {
|
|
5356
|
+
/**
|
|
5357
|
+
* 获取单例实例
|
|
5358
|
+
*
|
|
5359
|
+
* @returns 服务单例
|
|
5360
|
+
*/
|
|
5324
5361
|
static get instance(): RsSeparateService;
|
|
5325
5362
|
private constructor();
|
|
5363
|
+
/**
|
|
5364
|
+
* 已完成材质分离的节点 nid 列表
|
|
5365
|
+
*
|
|
5366
|
+
* 记录在当前会话中已经执行过材质 clone 的节点,避免重复分离。
|
|
5367
|
+
*/
|
|
5326
5368
|
separated: string[];
|
|
5369
|
+
/**
|
|
5370
|
+
* 检查节点是否已完成材质分离
|
|
5371
|
+
*
|
|
5372
|
+
* @param nid - 节点唯一标识符
|
|
5373
|
+
* @returns 是否已分离
|
|
5374
|
+
*/
|
|
5327
5375
|
has(nid: string): boolean;
|
|
5376
|
+
/**
|
|
5377
|
+
* 标记节点为已分离,并可选地设置材质
|
|
5378
|
+
*
|
|
5379
|
+
* @param nid - 节点唯一标识符
|
|
5380
|
+
* @param mesh - 目标 mesh(可选)
|
|
5381
|
+
* @param material - 要设置的材质(可选)
|
|
5382
|
+
*/
|
|
5328
5383
|
add(nid: string, mesh?: AbstractMesh, material?: Material | null): void;
|
|
5329
5384
|
/**
|
|
5330
5385
|
* 获取节点分离后的材质
|
|
5331
5386
|
*
|
|
5332
|
-
*
|
|
5387
|
+
* 如果节点在分离组中但尚未分离,则 clone 原材质并赋给该 mesh。
|
|
5388
|
+
* 如果已分离或不在分离组中,直接返回当前材质。
|
|
5333
5389
|
*
|
|
5334
|
-
* @param nid -
|
|
5335
|
-
* @param node -
|
|
5390
|
+
* @param nid - 节点唯一标识符
|
|
5391
|
+
* @param node - 可选的已知节点,避免重复查找
|
|
5392
|
+
* @returns 分离后的材质,若节点无材质则返回 null
|
|
5336
5393
|
*/
|
|
5337
5394
|
get(nid: string, node?: Node_2): Promise<Material | null>;
|
|
5338
5395
|
/**
|
|
5339
|
-
*
|
|
5396
|
+
* 获取节点分离后的材质,并确保材质类型匹配
|
|
5340
5397
|
*
|
|
5341
|
-
*
|
|
5398
|
+
* 会检查当前材质类型是否与协同数据中定义的类型一致,
|
|
5399
|
+
* 不一致则创建新的对应类型材质。
|
|
5342
5400
|
*
|
|
5343
|
-
*
|
|
5344
|
-
*
|
|
5345
|
-
* @param
|
|
5346
|
-
* @
|
|
5347
|
-
* @param node -
|
|
5401
|
+
* @param nid - 节点唯一标识符
|
|
5402
|
+
* @param rvMaterial - 协同数据中的材质定义
|
|
5403
|
+
* @param node - 可选的已知节点,避免重复查找
|
|
5404
|
+
* @returns 类型匹配的分离材质,若无法创建则返回 null
|
|
5348
5405
|
*/
|
|
5349
5406
|
getWithEnsureType(
|
|
5350
5407
|
nid: string,
|
|
5351
5408
|
rvMaterial: RvMaterial,
|
|
5352
5409
|
node?: Node_2,
|
|
5353
5410
|
): Promise<Material | null>;
|
|
5411
|
+
/**
|
|
5412
|
+
* 检查材质实例是否匹配指定类型
|
|
5413
|
+
*
|
|
5414
|
+
* @param material - BabylonJS 材质实例
|
|
5415
|
+
* @param type - 期望的材质类型枚举值
|
|
5416
|
+
* @returns 是否匹配
|
|
5417
|
+
*/
|
|
5354
5418
|
checkMaterialType(material: Material, type: RvMaterialType): boolean;
|
|
5355
5419
|
/**
|
|
5356
|
-
*
|
|
5420
|
+
* 分析一组 mesh,找出共享材质的节点并写入协同数据
|
|
5421
|
+
*
|
|
5422
|
+
* 遍历所有 mesh,按材质 uniqueId 分组,将共享同一材质的节点 nid 记录到
|
|
5423
|
+
* {@link RvSeparateService} 的协同数据中。
|
|
5357
5424
|
*
|
|
5358
|
-
* @
|
|
5425
|
+
* @remarks
|
|
5426
|
+
* 通常在文件加载完成后调用,用于初始化材质分离信息。
|
|
5427
|
+
*
|
|
5428
|
+
* @param meshes - 要分析的 mesh 数组
|
|
5359
5429
|
*/
|
|
5360
5430
|
analyzeByMeshes(meshes: AbstractMesh[]): void;
|
|
5361
5431
|
}
|
|
@@ -6102,7 +6172,7 @@ export declare class RvModelService {
|
|
|
6102
6172
|
has(mid: string): boolean;
|
|
6103
6173
|
hasFid(fid: string): boolean;
|
|
6104
6174
|
add(rvModel: RvModel): string;
|
|
6105
|
-
addTransformNode(): string;
|
|
6175
|
+
addTransformNode(name?: string): string;
|
|
6106
6176
|
remove(mid: string): boolean;
|
|
6107
6177
|
generateId(): string;
|
|
6108
6178
|
}
|
|
@@ -6404,7 +6474,7 @@ export declare class RvSceneService {
|
|
|
6404
6474
|
isAncestor(nid: string, of: string): boolean;
|
|
6405
6475
|
isParent(nid: string, of: string): boolean;
|
|
6406
6476
|
isChild(nid: string, of: string): boolean;
|
|
6407
|
-
|
|
6477
|
+
newTransformNode(parent?: string, name?: string): string;
|
|
6408
6478
|
move(nid: string, newParent?: string): void;
|
|
6409
6479
|
delete(nid: string): void;
|
|
6410
6480
|
getDescendantsWithSelf(nid: string): string[];
|
|
@@ -6422,7 +6492,64 @@ export declare class RvSceneService {
|
|
|
6422
6492
|
* @public
|
|
6423
6493
|
*/
|
|
6424
6494
|
export declare interface RvSeparate {
|
|
6425
|
-
groups: RhineVarArray<RhineVarArray
|
|
6495
|
+
groups: RhineVarArray<RhineVarArray<string>>;
|
|
6496
|
+
}
|
|
6497
|
+
|
|
6498
|
+
/**
|
|
6499
|
+
* 材质分离协同数据服务
|
|
6500
|
+
*
|
|
6501
|
+
* 管理材质分离相关的 RhineVar 协同数据,记录哪些节点共享同一材质。
|
|
6502
|
+
* 当 GLB 文件中多个 mesh 共用材质时,需要记录这些共享关系,
|
|
6503
|
+
* 以便在用户编辑某个节点材质时进行按需分离。
|
|
6504
|
+
*
|
|
6505
|
+
* @remarks
|
|
6506
|
+
* 数据结构 `RvSeparate.groups: string[][]`,每个 group 是一组共享同一材质的节点 nid 列表。
|
|
6507
|
+
*
|
|
6508
|
+
* @example
|
|
6509
|
+
* ```typescript
|
|
6510
|
+
* // 检查节点是否与其他节点共享材质
|
|
6511
|
+
* if (RvSeparateService.instance.has(nid)) {
|
|
6512
|
+
* // 需要分离材质
|
|
6513
|
+
* }
|
|
6514
|
+
* ```
|
|
6515
|
+
*
|
|
6516
|
+
* @see {@link RsSeparateService} 渲染层材质分离服务
|
|
6517
|
+
*/
|
|
6518
|
+
export declare class RvSeparateService {
|
|
6519
|
+
private static _instance;
|
|
6520
|
+
/**
|
|
6521
|
+
* 获取单例实例
|
|
6522
|
+
*
|
|
6523
|
+
* @returns 服务单例
|
|
6524
|
+
*/
|
|
6525
|
+
static get instance(): RvSeparateService;
|
|
6526
|
+
private constructor();
|
|
6527
|
+
/**
|
|
6528
|
+
* 材质分离协同数据
|
|
6529
|
+
*
|
|
6530
|
+
* 包含 `groups` 字段,记录所有共享材质的节点分组。
|
|
6531
|
+
*/
|
|
6532
|
+
separate: StoredRhineVar<RvSeparate>;
|
|
6533
|
+
/**
|
|
6534
|
+
* 检查节点是否在任意材质分离组中
|
|
6535
|
+
*
|
|
6536
|
+
* 若返回 true,表示该节点与其他节点共享材质,编辑前需要进行材质分离。
|
|
6537
|
+
*
|
|
6538
|
+
* @param nid - 节点唯一标识符
|
|
6539
|
+
* @returns 是否在分离组中
|
|
6540
|
+
*/
|
|
6541
|
+
has(nid: string): boolean;
|
|
6542
|
+
/**
|
|
6543
|
+
* 将新节点与源节点加入同一材质分离组
|
|
6544
|
+
*
|
|
6545
|
+
* 用于复制节点时,确保复制出的节点与原节点共享材质分离信息。
|
|
6546
|
+
* 如果源节点已在某个分离组中,则将新节点加入该组;
|
|
6547
|
+
* 否则创建一个新的分离组包含这两个节点。
|
|
6548
|
+
*
|
|
6549
|
+
* @param fromNid - 源节点 nid
|
|
6550
|
+
* @param newNid - 新复制的节点 nid
|
|
6551
|
+
*/
|
|
6552
|
+
addCopyToGroup(fromNid: string, newNid: string): void;
|
|
6426
6553
|
}
|
|
6427
6554
|
|
|
6428
6555
|
/**
|
|
@@ -6527,7 +6654,7 @@ export declare class SceneService {
|
|
|
6527
6654
|
offsetX: number;
|
|
6528
6655
|
offsetY: number;
|
|
6529
6656
|
};
|
|
6530
|
-
|
|
6657
|
+
newTransformNode(parent?: string, name?: string): void;
|
|
6531
6658
|
/**
|
|
6532
6659
|
* 批量复制
|
|
6533
6660
|
*
|