case GeomAbs_Cylinder:
{
quad2.SetValue(S2->Cylinder());
- Standard_Real H = S1->LastVParameter() - S1->FirstVParameter();
+ Standard_Real VMin, VMax, H;
+ //
+ VMin = S1->FirstVParameter();
+ VMax = S1->LastVParameter();
+ H = (Precision::IsNegativeInfinite(VMin) ||
+ Precision::IsPositiveInfinite(VMax)) ? 0 : (VMax - VMin);
if (!IntPCy(quad1,quad2,Tolang,TolTang,Standard_False,empt,slin,H)) {
return;
}
case GeomAbs_Plane:
{
quad2.SetValue(S2->Plane());
- Standard_Real H = S1->LastVParameter() - S1->FirstVParameter();
+ Standard_Real VMin, VMax, H;
+ //
+ VMin = S1->FirstVParameter();
+ VMax = S1->LastVParameter();
+ H = (Precision::IsNegativeInfinite(VMin) ||
+ Precision::IsPositiveInfinite(VMax)) ? 0 : (VMax - VMin);
if (!IntPCy(quad1,quad2,Tolang,TolTang,Standard_True,empt,slin,H)) {
return;
}