0026196: Wrong result obtained by projection algorithm.
[occt.git] / src / GeomAdaptor / GeomAdaptor.cxx
index 4378e5d..7880502 100644 (file)
@@ -101,8 +101,8 @@ Handle(Geom_Curve) GeomAdaptor::MakeCurve (const Adaptor3d_Curve& HC)
 //function : MakeSurface
 //purpose  : 
 //=======================================================================
 //function : MakeSurface
 //purpose  : 
 //=======================================================================
-
-Handle(Geom_Surface) GeomAdaptor::MakeSurface(const Adaptor3d_Surface& HS)
+Handle(Geom_Surface) GeomAdaptor::MakeSurface(const Adaptor3d_Surface& HS,
+                                              const Standard_Boolean theTrimFlag)
 {
   Handle(Geom_Surface) S;
 
 {
   Handle(Geom_Surface) S;
 
@@ -148,7 +148,7 @@ Handle(Geom_Surface) GeomAdaptor::MakeSurface(const Adaptor3d_Surface& HS)
 
   case GeomAbs_OffsetSurface:
     S = new Geom_OffsetSurface(GeomAdaptor::MakeSurface(HS.BasisSurface()->Surface()),
 
   case GeomAbs_OffsetSurface:
     S = new Geom_OffsetSurface(GeomAdaptor::MakeSurface(HS.BasisSurface()->Surface()),
-                              HS.OffsetValue());
+                               HS.OffsetValue());
     break;
 
   case GeomAbs_OtherSurface:
     break;
 
   case GeomAbs_OtherSurface:
@@ -156,7 +156,7 @@ Handle(Geom_Surface) GeomAdaptor::MakeSurface(const Adaptor3d_Surface& HS)
     break;
   }
 
     break;
   }
 
-  if ( S.IsNull() )
+  if ( S.IsNull() || !theTrimFlag)
     return S;
 
   // trim the surface if necassary.
     return S;
 
   // trim the surface if necassary.