webcad-ue4-api/types/DatabaseServices/Database.d.ts
2024-05-10 11:33:53 +08:00

104 lines
4.4 KiB
TypeScript

import { Vector3 } from 'three';
import { DuplicateRecordCloning } from '../Common/Status';
import { AlignLineGroupTable } from './AlignLine/AlignLineGroupTable';
import { BlockTableRecord } from './BlockTableRecord';
import { CADFiler } from './CADFiler';
import { CADObject } from './CADObject';
import { CameraSnapshootRecord } from './CameraSnapshoot/CameraSnapshootRecord';
import { DeepCloneFiler } from './DeepCloneFiler';
import { DimStyleTable } from './DimStyle/DimStyleTable';
import { GroupTable } from './GroupTable';
import { HistoricManage } from './HistoricManage';
import { IdMaping } from './IdMaping';
import { AmbientLight } from './Lights/AmbientLight';
import { DirectionalLight } from './Lights/DirectionalLight';
import { HemisphereLight } from './Lights/HemisphereLight';
import { ObjectId } from './ObjectId';
import { OwnerContainer } from './OwnerContainer';
import { PhysicalMaterialRecord } from './PhysicalMaterialRecord';
import { ProcessingGroupTable } from './ProcessingGroup/ProcessingGroupTable';
import { BlockTable } from './Tables/BlockTable';
import { MaterialTable } from './Tables/MaterialTable';
import { TextureTable } from './Tables/TextureTable';
import { TemplateTable } from './Template/TemplateTable';
import { WblockCloneFiler } from './WblockCloneFiler';
export declare class Database {
IsDefaultDatabase: boolean;
hm: HistoricManage;
BlockTable: BlockTable;
MaterialTable: MaterialTable;
TextureTable: TextureTable;
TemplateTable: TemplateTable;
GroupTable: GroupTable;
ProcessingGroupTable: ProcessingGroupTable;
AlignLineGroupTable: AlignLineGroupTable;
DimStyleTable: DimStyleTable;
ModelSpace: BlockTableRecord;
LayoutSpace: BlockTableRecord;
Lights: BlockTableRecord;
CameraSnapshoots: CameraSnapshootRecord[];
AmbientLight: AmbientLight;
SunLight: DirectionalLight;
HemisphereLight: HemisphereLight;
DefaultMaterial: PhysicalMaterialRecord;
/** 这是为UE设计器提供的拓展数据,WebCAD只负责保存,不使用它.
* 在存储吊顶模块时,存储了材质槽信息
*/
ExtendedData: any;
private idIndex;
private idMap;
constructor(buildDefaultDrawing?: boolean, IsDefaultDatabase?: boolean, disableHistoric?: boolean);
private InitDimStyle;
private InitMaterial;
private InitLight;
SettingDefaultStyleAndMaterial(): void;
Destroy(): void;
FileWrite(file?: CADFiler): CADFiler;
FileRead(file: CADFiler): this;
/**
* 单个数据库内克隆对象(objects),并将他们附加到指定的容器对象(owner).
* @param objects 被克隆的对象
* @param owner 克隆对象的容器
* @param idMap id映射
* @param deferXlation 指示是否应该进行ID转换
* @returns 新克隆的对象列表
*/
DeepCloneObjects(objects: CADObject[], owner: OwnerContainer, idMap?: IdMaping, deferXlation?: boolean): CADObject[];
/**
* 清理拷贝后的实体空引用
*/
private ClearEmptyAssoc;
DeepCloneObject(filer: DeepCloneFiler, object: CADObject, owner: OwnerContainer, idMap?: IdMaping): CADObject | undefined;
/**
* 将来自不同数据库的对象列表拷贝到本数据库中.
* 当前支持使用HardId模式来硬关联某个对象,使该对象能够在WblockClone时一起被带过来.
* 当前不支持硬关联对象的Owner不是默认的容器.
* 如果需要这么做,请将该对象的Owner设置为Hard关联
* @param objects 对象不能属于本数据库
* @param owner 克隆对象的新容器
* @param idMap id映射
*/
WblockCloneObejcts(objects: CADObject[], owner: OwnerContainer, idMap: IdMaping, drc: DuplicateRecordCloning, filer?: WblockCloneFiler): CADObject[];
/**
* 克隆引用对象 WriteHardObjectId
*/
private WblockCloneReferenceObject;
private WblockCloneObject;
/**
* 为拷贝出来的对象分配id索引,并在数据库中注册
*/
private AllocationObjectId;
Insert(): void;
/**
* 写块
* @param outputDatabase 输出到指定的数据库
* @param objects
* @param basePoint
* @param cloning
*/
Wblock(outputDataBase: Database, objects: CADObject[], basePoint: Vector3, cloning: any): void;
AllocateId(): ObjectId;
GetObjectId(index: number, create?: boolean): ObjectId;
DeleteId(idIndex: number): void;
}
//# sourceMappingURL=Database.d.ts.map