@bitbybit-dev/occt
Version:
Bit By Bit Developers CAD algorithms using OpenCascade Technology kernel. Run in Node and in Browser.
93 lines (92 loc) • 3.34 kB
JavaScript
export class OCCTFillets {
constructor(occ, och) {
this.occ = occ;
this.och = och;
}
filletEdges(inputs) {
return this.och.filletsService.filletEdges(inputs);
}
filletEdgesList(inputs) {
return this.och.filletsService.filletEdgesList(inputs);
}
filletEdgesListOneRadius(inputs) {
return this.och.filletsService.filletEdgesListOneRadius(inputs);
}
filletEdgeVariableRadius(inputs) {
return this.och.filletsService.filletEdgeVariableRadius(inputs);
}
filletEdgesVariableRadius(inputs) {
return this.och.filletsService.filletEdgesVariableRadius(inputs);
}
filletEdgesSameVariableRadius(inputs) {
return this.och.filletsService.filletEdgesSameVariableRadius(inputs);
}
chamferEdges(inputs) {
return this.och.filletsService.chamferEdges(inputs);
}
chamferEdgesList(inputs) {
return this.och.filletsService.chamferEdgesList(inputs);
}
chamferEdgeDistAngle(inputs) {
return this.och.filletsService.chamferEdgeDistAngle(inputs);
}
chamferEdgesDistAngle(inputs) {
return this.och.filletsService.chamferEdgesDistAngle(inputs);
}
chamferEdgesDistsAngles(inputs) {
return this.och.filletsService.chamferEdgesDistsAngles(inputs);
}
chamferEdgeTwoDistances(inputs) {
return this.och.filletsService.chamferEdgeTwoDistances(inputs);
}
chamferEdgesTwoDistances(inputs) {
return this.och.filletsService.chamferEdgesTwoDistances(inputs);
}
chamferEdgesTwoDistancesLists(inputs) {
return this.och.filletsService.chamferEdgesTwoDistancesLists(inputs);
}
filletTwoEdgesInPlaneIntoAWire(inputs) {
const pln = this.och.entitiesService.gpPln(inputs.planeOrigin, inputs.planeDirection);
const fil = new this.occ.ChFi2d_FilletAlgo_3(inputs.edge1, inputs.edge2, pln);
fil.Perform(inputs.radius);
const pt = this.och.entitiesService.gpPnt(inputs.planeOrigin);
const edge1 = new this.occ.TopoDS_Edge();
const edge2 = new this.occ.TopoDS_Edge();
let solution = -1;
if (inputs.solution !== undefined) {
solution = inputs.solution;
}
const filletedEdge = fil.Result(pt, edge1, edge2, solution);
const result = this.och.converterService.combineEdgesAndWiresIntoAWire({ shapes: [edge1, filletedEdge, edge2] });
fil.delete();
pt.delete();
pln.delete();
edge1.delete();
edge2.delete();
filletedEdge.delete();
return result;
}
fillet3DWires(inputs) {
return inputs.shapes.map(shape => this.och.filletsService.fillet3DWire({
shape,
radius: inputs.radius,
radiusList: inputs.radiusList,
indexes: inputs.indexes,
direction: inputs.direction
}));
}
fillet3DWire(inputs) {
return this.och.filletsService.fillet3DWire(inputs);
}
fillet2d(inputs) {
return this.och.filletsService.fillet2d(inputs);
}
fillet2dShapes(inputs) {
return inputs.shapes.map(shape => this.och.filletsService.fillet2d({
shape,
radius: inputs.radius,
radiusList: inputs.radiusList,
indexes: inputs.indexes
}));
}
}