!1859 优化:门板模块替换铰链信息继承

pull/1950/MERGE
林三 2 years ago committed by ChenX
parent a07dba9ef8
commit 0ee598e4f2

@ -15,11 +15,13 @@ import { KeyBoard } from '../../../Common/KeyEnum';
import { DirectoryId, PostJson, RequestStatus } from '../../../Common/Request';
import { DuplicateRecordCloning } from '../../../Common/Status';
import { StoreageKeys } from '../../../Common/StoreageKeys';
import { CADObject } from '../../../DatabaseServices/CADObject';
import { Board } from '../../../DatabaseServices/Entity/Board';
import { Entity } from '../../../DatabaseServices/Entity/Entity';
import { FileServer } from '../../../DatabaseServices/FileServer';
import { HardwareCompositeEntity } from '../../../DatabaseServices/Hardware/HardwareCompositeEntity';
import { HardwareTopline } from '../../../DatabaseServices/Hardware/HardwareTopline';
import { ObjectId } from '../../../DatabaseServices/ObjectId';
import { PositioningBoardSpace } from '../../../DatabaseServices/Template/Positioning/PositioningBoardSpace';
import { TemplateVisualSpace } from '../../../DatabaseServices/Template/ProgramTempate/TemplateVisualSpace';
import { EditorOnlineTemplate, GetOnlineTemplate, ReplaceTemplate, SetTemplatePositionAndSetParent, UploadTemplate } from '../../../DatabaseServices/Template/TempateUtils';
@ -643,6 +645,14 @@ export class TemplateManage extends React.Component<ITemplateManage, {}> {
else
DeleteTempate(oldTemp);
await template.UpdateTemplateTree();
for (let board of oldTemp.Entitys) //铰链继承
{
if (board instanceof Board)
this.extendHinge(board.RelativeHardware, template.Entitys);
else if (board instanceof HardwareCompositeEntity)
this.extendHinge(board.RelevanceHardware, template.Entitys);
}
}
AppToaster.show({
@ -753,6 +763,29 @@ export class TemplateManage extends React.Component<ITemplateManage, {}> {
app.Editor.MaskManage.ShowMask();
}
};
private extendHinge(hinges: ObjectId<CADObject>[], templateEnts: Entity[])
{
for (let hw of hinges)
{
let hinge = hw.Object;
if (hinge instanceof HardwareCompositeEntity)
{
for (let ent of templateEnts)
{
let enBox = ent.BoundingBox;
if (hinge.BoundingBox.intersectsBox(enBox))
{
hinge.RelevanceBoards.push(ent.Id);
if (ent instanceof Board)
ent.RelativeHardware.push(hinge.Id);
else if (ent instanceof HardwareCompositeEntity)
ent.RelevanceHardware.push(hinge.Id);
}
}
}
}
}
getSpaceAllEntitys(door: Entity)
{
let box = door.BoundingBox.clone();

Loading…
Cancel
Save