WebCAD-Lib-TS API 文档 - v1.0.0
    Preparing search index...

    Interface IEntityReactor

    实体反应器接口

    所有需要响应其他实体变化的实体需实现此接口。

    class MyDimension extends EntityBase implements IEntityReactor {
    private _ownerRefs: OwnerReference[] = [];
    private _reactorDirty = false;

    getOwnerIds(): number[] {
    return this._ownerRefs.map(ref => ref.entityId);
    }

    onOwnerChanged(args: ReactorEventArgs): void {
    this.setReactorDirty();
    }
    // ... other implementations
    }
    interface IEntityReactor {
        id: number;
        getOwnerIds(): number[];
        onOwnerChanged(args: ReactorEventArgs): void;
        setReactorDirty(): void;
        isReactorDirty(): boolean;
        updateFromOwners(): boolean;
        unlinkAllOwners(): void;
        tryRegisterReactor(docId: number): boolean;
    }

    Implemented by

    Index

    Properties

    id: number

    实体ID 用于在管理器中唯一标识此反应器

    Methods

    • 获取此反应器订阅的所有Owner实体ID

      Returns number[]

      Owner实体ID数组

    • 当Owner实体发生变化时的回调

      管理器会在Owner变化时调用此方法,反应器应在此方法中 标记自己需要更新(setReactorDirty),而不是立即执行更新。

      Parameters

      Returns void

    • 标记反应器需要更新

      实现懒更新机制,调用此方法后,实际更新会在渲染前执行。

      Returns void

    • 检查反应器是否处于脏状态

      Returns boolean

      是否需要更新

    • 执行更新逻辑

      在渲染前由管理器调用,从Owner实体重新计算自身状态。

      Returns boolean

      更新是否成功

    • 断开与所有Owner的关联

      将此反应器从管理器中注销,清空所有Owner引用。 通常在实体被删除或主动断开关联时调用。

      Returns void

    • 尝试注册到反应器管理器

      在文档加载完成后由 CadDocument 统一调用。 实体内部判断是否满足注册条件(如关联实体是否存在), 满足条件则执行注册,避免重复注册。

      Parameters

      • docId: number

        文档ID

      Returns boolean

      是否成功注册