mirror of https://gitee.com/cf-fz/WebCAD.git
parent
079b360d06
commit
20a669254c
@ -1,47 +0,0 @@
|
||||
import { Matrix4 } from "three";
|
||||
import { Arc } from "../../DatabaseServices/Entity/Arc";
|
||||
import { Board } from "../../DatabaseServices/Entity/Board";
|
||||
import { Curve } from "../../DatabaseServices/Entity/Curve";
|
||||
import { GetBoardContour } from "../../GraphicsSystem/CalcEdgeSealing";
|
||||
import { GetSideCuFaceMtx } from "../Board2DModelCSG/BoardSideModelCSGBuilder";
|
||||
import { equaln } from "../GeUtils";
|
||||
import { BoardFaceType, BoardGetFace } from "./BoardGetFace";
|
||||
import { Face } from "./Face";
|
||||
|
||||
export class ParseBoardSideFace extends BoardGetFace
|
||||
{
|
||||
constructor(public Board: Board)
|
||||
{
|
||||
super(Board);
|
||||
}
|
||||
|
||||
ParseFaces()
|
||||
{
|
||||
this.GetSideFaces();
|
||||
}
|
||||
|
||||
GetSideFaces()
|
||||
{
|
||||
let con = GetBoardContour(this.Board);
|
||||
let inverseZ = con.Area2 < 0;
|
||||
let cus = con.Explode() as Curve[];
|
||||
for (let cu of cus)
|
||||
{
|
||||
let type = BoardFaceType.Side;
|
||||
|
||||
let length = cu.Length;
|
||||
if (equaln(length, 0) || cu instanceof Arc)
|
||||
type = BoardFaceType.NoSide;
|
||||
|
||||
let mtx = GetSideCuFaceMtx(cu, inverseZ);
|
||||
let face = new Face({
|
||||
type,
|
||||
localBoard: this.Board,
|
||||
matrix4: new Matrix4().multiplyMatrices(this.Board.OCS.clone(), mtx),
|
||||
length,
|
||||
width: this.Board.Thickness,
|
||||
});
|
||||
this.Faces.push(face);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue