1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-26 10:19:45 +03:00

0023778: New Boolean Operation algorithm does not work with same arguments.

Fix for the bug.
This commit is contained in:
emv 2013-02-21 13:35:40 +04:00
parent c209782cf4
commit 7cfb39680f

View File

@ -155,11 +155,18 @@ static
// //
aNb=myArguments.Extent(); aNb=myArguments.Extent();
if (aNb!=myNbArgs) { if (aNb!=myNbArgs) {
if (aNb!=1 || !(myArgs[0].IsSame(myArgs[1]))) {
myErrorStatus=10; // invalid number of arguments myErrorStatus=10; // invalid number of arguments
return; return;
} }
}
// //
BOPAlgo_Builder::CheckData(); if (!myPaveFiller) {
myErrorStatus=101;
return;
}
//
myErrorStatus=myPaveFiller->ErrorStatus();
if (myErrorStatus) { if (myErrorStatus) {
return; return;
} }
@ -187,20 +194,20 @@ static
} }
// //
if (myOperation==BOPAlgo_UNKNOWN) { if (myOperation==BOPAlgo_UNKNOWN) {
myErrorStatus=14; // non-licit oprtation myErrorStatus=14; // non-licit operation
return; return;
} }
else if (myDims[0]<myDims[1]) { else if (myDims[0]<myDims[1]) {
if (myOperation==BOPAlgo_FUSE || if (myOperation==BOPAlgo_FUSE ||
myOperation==BOPAlgo_CUT21) { myOperation==BOPAlgo_CUT21) {
myErrorStatus=14; // non-licit oprtation for the arguments myErrorStatus=14; // non-licit operation for the arguments
return; return;
} }
} }
else if (myDims[0]>myDims[1]) { else if (myDims[0]>myDims[1]) {
if (myOperation==BOPAlgo_FUSE || if (myOperation==BOPAlgo_FUSE ||
myOperation==BOPAlgo_CUT) { myOperation==BOPAlgo_CUT) {
myErrorStatus=14; // non-licit oprtation for the arguments myErrorStatus=14; // non-licit operation for the arguments
return; return;
} }
} }