}
if(Is2d) {
p1 = myAC3d.Value(firstPar).Transformed(myLocation);
+ if(Precision::IsInfinite(p1.X()) || Precision::IsInfinite(p1.Y()) ||
+ Precision::IsInfinite(p1.Z()))
+ {
+ B.SameRange(newEdge, Standard_False);
+ return;
+ }
p2 = myAC3d.Value(lastPar).Transformed(myLocation);
+ if(Precision::IsInfinite(p2.X()) || Precision::IsInfinite(p2.Y()) ||
+ Precision::IsInfinite(p2.Z()))
+ {
+ B.SameRange(newEdge, Standard_False);
+ return;
+ }
Standard_Real fact = myAC3d.LastParameter() - myAC3d.FirstParameter();
if( fact > Epsilon(myAC3d.LastParameter()) ) {
alpha = ( firstPar - myAC3d.FirstParameter() ) / fact;
}
else {
p1 = myCurve->Value(firstPar);
+ if(Precision::IsInfinite(p1.X()) || Precision::IsInfinite(p1.Y()) ||
+ Precision::IsInfinite(p1.Z()))
+ {
+ B.SameRange(newEdge, Standard_False);
+ return;
+ }
p2 = myCurve->Value(lastPar);
+ if(Precision::IsInfinite(p2.X()) || Precision::IsInfinite(p2.Y()) ||
+ Precision::IsInfinite(p2.Z()))
+ {
+ B.SameRange(newEdge, Standard_False);
+ return;
+ }
Standard_Real fact = myLast - myFirst;
if( fact > Epsilon(myLast) ) {
alpha = ( firstPar - myFirst ) / fact;