You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
WebCAD/__test__/Utils/LoadEntity.util.ts

69 lines
2.4 KiB

import { Factory } from "../../src/DatabaseServices/CADFactory";
import { CADFiler } from "../../src/DatabaseServices/CADFiler";
import { Board } from "../../src/DatabaseServices/Entity/Board";
import { Curve } from "../../src/DatabaseServices/Entity/Curve";
import { Entity } from "../../src/DatabaseServices/Entity/Entity";
import { Polyline } from "../../src/DatabaseServices/Entity/Polyline";
import { Region } from "../../src/DatabaseServices/Entity/Region";
import { GroupRecord } from "../../src/DatabaseServices/GroupTableRecord";
import { HardwareCompositeEntity } from "../../src/DatabaseServices/Hardware/HardwareCompositeEntity";
import { HardwareTopline } from "../../src/DatabaseServices/Hardware/HardwareTopline";
import { RoomHolePolyline } from "../../src/DatabaseServices/Room/Entity/Wall/Hole/RoomHolePolyline";
import { RoomWallArc } from "../../src/DatabaseServices/Room/Entity/Wall/RoomWallArc";
import { RoomWallLine } from "../../src/DatabaseServices/Room/Entity/Wall/RoomWallLine";
import { TemplateStretchGripAction } from "../../src/DatabaseServices/Template/Action/TemplateStretchGripAction";
import { TemplateLeftRightBoardRecord } from "../../src/DatabaseServices/Template/ProgramTempate/TemplateLeftRightBoardRecord";
import { TemplateSizeBoard } from "../../src/DatabaseServices/Template/ProgramTempate/TemplateSizeBoard";
import { Text } from "../../src/DatabaseServices/Text/Text";
Factory(Polyline);
Factory(Region);
Factory(Board);
Factory(HardwareTopline);
Factory(TemplateLeftRightBoardRecord);
TemplateSizeBoard;
TemplateStretchGripAction;
RoomWallLine;
RoomHolePolyline;
RoomWallArc;
Text;
HardwareCompositeEntity;
GroupRecord;
export function LoadEntityFromFileData<T = Entity>(data: any)
{
if (!Array.isArray(data))
data = data.file;
let file = new CADFiler();
file.Data = data;
let ens: T[] = [];
let count = file.Read();
if (typeof count !== "number")
{
count = file.Data.length;
file.Reset();
}
for (let i = 0; i < count; i++)
{
ens.push(file.ReadObject() as unknown as T);
}
return ens;
}
export function LoadCurvesFromFileData(data)
{
return LoadEntityFromFileData(data) as Curve[];
}
export function LoadBoardsFromFileData(data)
{
return LoadEntityFromFileData(data) as Board[];
}
export function LoadRegionsFromFileData(data): Region[]
{
return LoadEntityFromFileData(data) as Region[];
}