fix a bug

This commit is contained in:
Val Erastov 2018-01-01 00:16:34 -07:00
parent ecc48b47c2
commit 6af1e7f143

View file

@ -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) {