@turbox3d/design-engine
Version:
Large-scale design application engine library
54 lines (53 loc) • 1.94 kB
TypeScript
import { Domain, HistoryOperationType, Action } from '@turbox3d/reactivity';
import EntityObject from '../entity-object/index';
export default class DocumentSystem extends Domain {
models: Map<string, EntityObject>;
loading: boolean;
undoable: boolean;
redoable: boolean;
disableUndoRedo: boolean;
maxStepNumber: number;
name: string;
initDomainContext(): {
isNeedRecord: boolean;
};
/** 添加模型 */
addModel(model: EntityObject | EntityObject[]): void;
/** 删除模型 */
removeModel(model: EntityObject | EntityObject[]): void;
/** 根据 id 删除模型 */
removeModelById(id: string | string[]): void;
/** 清空所有模型 */
clear(): void;
/** 查找模型 */
findModel(model: EntityObject | EntityObject[]): EntityObject | (EntityObject | undefined)[] | undefined;
/** 根据 id 查找模型 */
findModelById(id: string | string[]): EntityObject | (EntityObject | undefined)[] | undefined;
/** 创建操作历史记录 */
createTimeTravel(name: string, maxStepNumber?: number): void;
/** 切换到指定的历史记录 */
applyTimeTravel(): void;
/** 历史记录变更会触发的自定义钩子,子类可以重写 */
historyChangeCustomHook(type: HistoryOperationType, action?: Action): void;
/** 清空历史记录 */
clearTimeTravel(): void;
/** 暂停记录历史 */
pauseRecord(): void;
/** 继续记录历史 */
resumeRecord(): void;
/** 撤销 */
undo(): void;
/** 重做 */
redo(): void;
/** 文档加载状态设置为加载中 */
isLoading(): void;
/** 文档加载状态设置为加载完成 */
isLoaded(): void;
/** 自动保存 */
protected autoSave(): Promise<void>;
/** 载入文档 */
protected load(): Promise<void>;
/** 保存文档 */
protected save(): Promise<void>;
private updateTimeTravelStatus;
}