mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-04 18:06:22 +03:00
OCC22303 The algorithm BRepExtrema_DistShapeShape crashes with exception if one of the shapes does non contain vertices
This commit is contained in:
parent
98dbbeb433
commit
1aeb969a54
@ -206,7 +206,8 @@ Standard_Boolean BRepExtrema_DistShapeShape::Perform()
|
|||||||
BRepClass3d_SolidClassifier Classi(myShape1);
|
BRepClass3d_SolidClassifier Classi(myShape1);
|
||||||
nbv2=myMapV2.Extent();
|
nbv2=myMapV2.Extent();
|
||||||
nbv1=0;
|
nbv1=0;
|
||||||
do {
|
while ( (nbv1<nbv2) && (! myInnerSol))
|
||||||
|
{
|
||||||
nbv1++;
|
nbv1++;
|
||||||
TopoDS_Vertex V2 = TopoDS::Vertex(myMapV2(nbv1));
|
TopoDS_Vertex V2 = TopoDS::Vertex(myMapV2(nbv1));
|
||||||
P=BRep_Tool::Pnt(V2);
|
P=BRep_Tool::Pnt(V2);
|
||||||
@ -220,14 +221,15 @@ Standard_Boolean BRepExtrema_DistShapeShape::Perform()
|
|||||||
ListeDeSolutionShape1.Append(Sol);
|
ListeDeSolutionShape1.Append(Sol);
|
||||||
ListeDeSolutionShape2.Append(Sol);
|
ListeDeSolutionShape2.Append(Sol);
|
||||||
}
|
}
|
||||||
} while ( (nbv1<nbv2) && (! myInnerSol));
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(((Type2==TopAbs_SOLID)||(Type2==TopAbs_COMPSOLID))&&(!myInnerSol)) {
|
if(((Type2==TopAbs_SOLID)||(Type2==TopAbs_COMPSOLID))&&(!myInnerSol)) {
|
||||||
BRepClass3d_SolidClassifier Classi(myShape2);
|
BRepClass3d_SolidClassifier Classi(myShape2);
|
||||||
nbv1= myMapV1.Extent();
|
nbv1= myMapV1.Extent();
|
||||||
nbv2=0;
|
nbv2=0;
|
||||||
do {
|
while ((nbv2<nbv1) && (! myInnerSol))
|
||||||
|
{
|
||||||
nbv2++;
|
nbv2++;
|
||||||
TopoDS_Vertex V1=TopoDS::Vertex(myMapV1(nbv2));
|
TopoDS_Vertex V1=TopoDS::Vertex(myMapV1(nbv2));
|
||||||
P=BRep_Tool::Pnt(V1);
|
P=BRep_Tool::Pnt(V1);
|
||||||
@ -241,7 +243,7 @@ Standard_Boolean BRepExtrema_DistShapeShape::Perform()
|
|||||||
ListeDeSolutionShape1.Append(Sol);
|
ListeDeSolutionShape1.Append(Sol);
|
||||||
ListeDeSolutionShape2.Append(Sol);
|
ListeDeSolutionShape2.Append(Sol);
|
||||||
}
|
}
|
||||||
} while ((nbv2<nbv1) && (! myInnerSol));
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!myInnerSol) {
|
if (!myInnerSol) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user