mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-09 18:02:50 +01:00
fix a bug
This commit is contained in:
parent
ecc48b47c2
commit
6af1e7f143
1 changed files with 10 additions and 6 deletions
|
|
@ -341,11 +341,13 @@ function mergeFaces(facesA, facesB, opType) {
|
|||
markEdgeTransferred(edgeB.edge);
|
||||
BREP_DEBUG.markEdge('same edge', edgeA);
|
||||
if (edgeA.vertexA === edgeB.vertexA) {
|
||||
// chooseBetweenEqualEdges();
|
||||
// canEdgeBeTransferred(edge, face, opType)
|
||||
throw new CadError('BOOLEAN_INVALID_RESULT', edgeCollisionError(edgeA, edgeB));
|
||||
} else if (edgeA.vertexA === edgeB.vertexB) {
|
||||
|
||||
invalid.add(edgeA);
|
||||
invalid.add(edgeA);
|
||||
invalid.add(edgeB);
|
||||
// markEdgeToReplace(testee, edge.twin());
|
||||
}
|
||||
}
|
||||
|
|
@ -663,6 +665,12 @@ function intersectFaces(shellA, shellB, operationType) {
|
|||
}
|
||||
}
|
||||
|
||||
function chooseBetweenEqualEdges(edgeA, edgeB, operationType) {
|
||||
let twinA = edgeA.twin();
|
||||
let twinB = edgeB.twin();
|
||||
|
||||
}
|
||||
|
||||
function canEdgeBeTransferred(edge, face, operationType) {
|
||||
let testPoint = edge.edge.curve.middlePoint();
|
||||
let edgeTangent = edge.tangent(testPoint);
|
||||
|
|
@ -1202,12 +1210,8 @@ function edgeCollinearToFace(edge, face) {
|
|||
if (!veq(pt1, pt2)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!face.rayCast(pt2).inside) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return face.rayCast(edge.edge.curve.middlePoint()).inside;
|
||||
}
|
||||
|
||||
function edgeCollisionError(e1, e2) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue