]> OCCT Git - occt-copy.git/commitdiff
0032485: More ShallowCopy()
authorasuraven <andrey.suravenkov@opencascade.com>
Fri, 23 Jul 2021 16:15:28 +0000 (19:15 +0300)
committerasuraven <andrey.suravenkov@opencascade.com>
Mon, 26 Jul 2021 09:34:48 +0000 (12:34 +0300)
13 files changed:
src/Adaptor2d/Adaptor2d_OffsetCurve.cxx
src/Adaptor3d/Adaptor3d_CurveOnSurface.cxx
src/Adaptor3d/Adaptor3d_IsoCurve.cxx
src/BRepAdaptor/BRepAdaptor_CompCurve.cxx
src/BRepAdaptor/BRepAdaptor_Curve.cxx
src/BRepAdaptor/BRepAdaptor_Surface.cxx
src/BRepAdaptor/BRepAdaptor_Surface.hxx
src/GeomAdaptor/GeomAdaptor_SurfaceOfLinearExtrusion.cxx
src/GeomAdaptor/GeomAdaptor_SurfaceOfRevolution.cxx
src/GeomFill/GeomFill_SnglrFunc.cxx
src/ProjLib/ProjLib_CompProjectedCurve.cxx
src/ProjLib/ProjLib_ProjectOnPlane.cxx
src/ProjLib/ProjLib_ProjectedCurve.cxx

index 6a7e86eb9cc3b9e69f24e98add62b70066ae6056..1ed2ccf3ae9ed38cb7d90f0ab9cadeb4b20af5fa 100644 (file)
@@ -99,7 +99,7 @@ Handle(Adaptor2d_Curve2d) Adaptor2d_OffsetCurve::ShallowCopy() const
 {
   Handle(Adaptor2d_OffsetCurve) aCopy = new Adaptor2d_OffsetCurve();
 
-  aCopy->myCurve  = myCurve;
+  aCopy->myCurve  = myCurve->ShallowCopy();
   aCopy->myOffset = myOffset;
   aCopy->myFirst  = myFirst;
   aCopy->myLast   = myLast;
index 3967462bc2b00d9be6ea57699c7e748a36c29d63..afabec1d475ba0ada75edba3bf17a1254543bd62 100644 (file)
@@ -727,13 +727,13 @@ Handle(Adaptor3d_Curve) Adaptor3d_CurveOnSurface::ShallowCopy() const
 {
   Handle(Adaptor3d_CurveOnSurface) aCopy = new Adaptor3d_CurveOnSurface();
 
-  aCopy->mySurface    = mySurface;
-  aCopy->myCurve     = myCurve;
+  aCopy->mySurface   = mySurface->ShallowCopy();
+  aCopy->myCurve     = myCurve->ShallowCopy();
   aCopy->myType      = myType;
   aCopy->myCirc      = myCirc;
   aCopy->myLin       = myLin;
-  aCopy->myFirstSurf = myFirstSurf;
-  aCopy->myLastSurf  = myLastSurf;
+  aCopy->myFirstSurf = myFirstSurf->ShallowCopy();
+  aCopy->myLastSurf  = myLastSurf->ShallowCopy();
   aCopy->myIntervals = myIntervals;
   aCopy->myIntCont   = myIntCont;
 
index 092943093a735425d0452439a39ea34faad53c36..c8315f841952fef011bb0bed9bba672a25739e78 100644 (file)
@@ -112,7 +112,8 @@ Adaptor3d_IsoCurve::Adaptor3d_IsoCurve(const Handle(Adaptor3d_Surface)& theS,
 Handle(Adaptor3d_Curve) Adaptor3d_IsoCurve::ShallowCopy() const
 {
   Handle(Adaptor3d_IsoCurve) aCopy = new Adaptor3d_IsoCurve();
-  aCopy->mySurface   = mySurface;
+
+  aCopy->mySurface   = mySurface->ShallowCopy();
   aCopy->myIso       = myIso;
   aCopy->myFirst     = myFirst;
   aCopy->myLast      = myLast;
index ca1834ec01bd37480a1e86eda8d4fdeea2eb3c64..2cf7998f0ad5107afb3d5a075f07b1a88b5ba7ca 100644 (file)
@@ -92,7 +92,13 @@ Handle(Adaptor3d_Curve) BRepAdaptor_CompCurve::ShallowCopy() const
   aCopy->TFirst   = TFirst;
   aCopy->TLast    = TLast;
   aCopy->PTol     = PTol;
-  aCopy->myCurves = myCurves;
+  aCopy->myCurves = new (BRepAdaptor_HArray1OfCurve) (1, myCurves->Size());
+  for (Standard_Integer anI = 1; anI <= myCurves->Size(); ++anI)
+  {
+    const Handle(Adaptor3d_Curve) aCurve = myCurves->Value(anI).ShallowCopy();
+    const BRepAdaptor_Curve& aBrepCurve = *(Handle(BRepAdaptor_Curve)::DownCast(aCurve));
+    aCopy->myCurves->SetValue(anI, aBrepCurve);
+  }
   aCopy->myKnots  = myKnots;
   aCopy->CurIndex = CurIndex;
   aCopy->Forward  = Forward;
index 99d5f011fb26f4433d1eb13412d9fdf585d1a34a..6f0c0baaea9313886d9121cdce655dd1937a348d 100644 (file)
@@ -88,7 +88,7 @@ Handle(Adaptor3d_Curve) BRepAdaptor_Curve::ShallowCopy() const
 
   aCopy->myTrsf    = myTrsf;
   aCopy->myCurve   = Handle(GeomAdaptor_Curve)::DownCast(myCurve->ShallowCopy());
-  aCopy->myConSurf = myConSurf;
+  aCopy->myConSurf = Handle(Adaptor3d_CurveOnSurface)::DownCast(myConSurf->ShallowCopy());
   aCopy->myEdge    = myEdge;
 
   return aCopy;
index d16ccc62d60524bd2e76b2a647577813e6b26753..9afbd7d4edf1548b9463a817ae3756520585033d 100644 (file)
@@ -72,7 +72,7 @@ Handle(Adaptor3d_Surface) BRepAdaptor_Surface::ShallowCopy() const
 {
   Handle(BRepAdaptor_Surface) aCopy = new BRepAdaptor_Surface();
 
-  aCopy->mySurf = mySurf;
+  aCopy->mySurf = Handle(GeomAdaptor_Surface)::DownCast(mySurf->ShallowCopy());
   aCopy->myTrsf = myTrsf;
   aCopy->myFace = myFace;
 
@@ -92,13 +92,14 @@ void BRepAdaptor_Surface::Initialize(const TopoDS_Face& F,
   if (aSurface.IsNull())
     return;
 
+  mySurf = new GeomAdaptor_Surface;
   if (Restriction) {
     Standard_Real umin,umax,vmin,vmax;
     BRepTools::UVBounds(F,umin,umax,vmin,vmax);
-    mySurf.Load(aSurface,umin,umax,vmin,vmax);
+    mySurf->Load(aSurface,umin,umax,vmin,vmax);
   }
   else 
-    mySurf.Load(aSurface);
+    mySurf->Load(aSurface);
   myTrsf = L.Transformation();
 }
 
@@ -110,7 +111,7 @@ void BRepAdaptor_Surface::Initialize(const TopoDS_Face& F,
 
 const GeomAdaptor_Surface& BRepAdaptor_Surface::Surface() const 
 {
-  return mySurf;
+  return *mySurf;
 }
 
 
@@ -121,7 +122,7 @@ const GeomAdaptor_Surface& BRepAdaptor_Surface::Surface() const
 
 GeomAdaptor_Surface& BRepAdaptor_Surface::ChangeSurface()
 {
-  return mySurf;
+  return *mySurf;
 }
 
 
@@ -165,7 +166,7 @@ Standard_Real BRepAdaptor_Surface::Tolerance() const
 void BRepAdaptor_Surface::UIntervals(TColStd_Array1OfReal& T,
                                     const GeomAbs_Shape S) const 
 {
-  mySurf.UIntervals(T,S);
+  mySurf->UIntervals(T,S);
 }
 
 
@@ -177,7 +178,7 @@ void BRepAdaptor_Surface::UIntervals(TColStd_Array1OfReal& T,
 void BRepAdaptor_Surface::VIntervals(TColStd_Array1OfReal& T,
                                     const GeomAbs_Shape S) const 
 {
-  mySurf.VIntervals(T,S);
+  mySurf->VIntervals(T,S);
 }
 
 
@@ -192,7 +193,7 @@ Handle(Adaptor3d_Surface) BRepAdaptor_Surface::UTrim
  const Standard_Real Tol   ) const 
 {
   Handle(GeomAdaptor_Surface) HS = new GeomAdaptor_Surface();
-  HS->Load (Handle(Geom_Surface)::DownCast(mySurf.Surface()->Transformed(myTrsf)));
+  HS->Load (Handle(Geom_Surface)::DownCast(mySurf->Surface()->Transformed(myTrsf)));
   return HS->UTrim(First,Last,Tol);
 }
 
@@ -208,7 +209,7 @@ Handle(Adaptor3d_Surface) BRepAdaptor_Surface::VTrim
  const Standard_Real Tol) const 
 {
   Handle(GeomAdaptor_Surface) HS = new GeomAdaptor_Surface();
-  HS->Load (Handle(Geom_Surface)::DownCast(mySurf.Surface()->Transformed(myTrsf)));
+  HS->Load (Handle(Geom_Surface)::DownCast(mySurf->Surface()->Transformed(myTrsf)));
   return HS->VTrim(First,Last,Tol);
 }
 
@@ -221,7 +222,7 @@ Handle(Adaptor3d_Surface) BRepAdaptor_Surface::VTrim
 gp_Pnt BRepAdaptor_Surface::Value(const Standard_Real U,
                                  const Standard_Real V) const
 {
-  return mySurf.Value(U,V).Transformed(myTrsf);
+  return mySurf->Value(U,V).Transformed(myTrsf);
 }
 
 //=======================================================================
@@ -233,7 +234,7 @@ void  BRepAdaptor_Surface::D0(const Standard_Real U,
                              const Standard_Real V, 
                              gp_Pnt& P) const
 {
-  mySurf.D0(U,V,P);
+  mySurf->D0(U,V,P);
   P.Transform(myTrsf);
 }
 
@@ -248,7 +249,7 @@ void  BRepAdaptor_Surface::D1(const Standard_Real U,
                              gp_Vec& D1U,
                              gp_Vec& D1V)const 
 {
-  mySurf.D1(U,V,P,D1U,D1V);
+  mySurf->D1(U,V,P,D1U,D1V);
   P.Transform(myTrsf);
   D1U.Transform(myTrsf);
   D1V.Transform(myTrsf);
@@ -268,7 +269,7 @@ void  BRepAdaptor_Surface::D2(const Standard_Real U,
                              gp_Vec& D2V, 
                              gp_Vec& D2UV)const 
 {
-  mySurf.D2(U,V,P,D1U,D1V,D2U,D2V,D2UV);
+  mySurf->D2(U,V,P,D1U,D1V,D2U,D2V,D2UV);
   P.Transform(myTrsf);
   D1U.Transform(myTrsf);
   D1V.Transform(myTrsf);
@@ -291,7 +292,7 @@ void  BRepAdaptor_Surface::D3(const Standard_Real U,
                              gp_Vec& D3U, gp_Vec& D3V,
                              gp_Vec& D3UUV, gp_Vec& D3UVV)const 
 {
-  mySurf.D3(U,V,P,D1U,D1V,D2U,D2V,D2UV,D3U,D3V,D3UUV,D3UVV);
+  mySurf->D3(U,V,P,D1U,D1V,D2U,D2V,D2UV,D3U,D3V,D3UUV,D3UVV);
   P.Transform(myTrsf);
   D1U.Transform(myTrsf);
   D1V.Transform(myTrsf);
@@ -315,7 +316,7 @@ gp_Vec BRepAdaptor_Surface::DN(const Standard_Real U,
                               const Standard_Integer Nu,
                               const Standard_Integer Nv) const
 {
-  return mySurf.DN(U,V,Nu,Nv).Transformed(myTrsf);
+  return mySurf->DN(U,V,Nu,Nv).Transformed(myTrsf);
 }
 
 //=======================================================================
@@ -325,7 +326,7 @@ gp_Vec BRepAdaptor_Surface::DN(const Standard_Real U,
 
 gp_Pln  BRepAdaptor_Surface::Plane()const 
 {
-  return mySurf.Plane().Transformed(myTrsf);
+  return mySurf->Plane().Transformed(myTrsf);
 }
 
 
@@ -336,7 +337,7 @@ gp_Pln  BRepAdaptor_Surface::Plane()const
 
 gp_Cylinder  BRepAdaptor_Surface::Cylinder()const 
 {
-  return mySurf.Cylinder().Transformed(myTrsf);
+  return mySurf->Cylinder().Transformed(myTrsf);
 }
 
 
@@ -347,7 +348,7 @@ gp_Cylinder  BRepAdaptor_Surface::Cylinder()const
 
 gp_Sphere  BRepAdaptor_Surface::Sphere()const 
 {
-  return mySurf.Sphere().Transformed(myTrsf);
+  return mySurf->Sphere().Transformed(myTrsf);
 }
 
 
@@ -358,7 +359,7 @@ gp_Sphere  BRepAdaptor_Surface::Sphere()const
 
 gp_Cone  BRepAdaptor_Surface::Cone()const 
 {
-  return mySurf.Cone().Transformed(myTrsf);
+  return mySurf->Cone().Transformed(myTrsf);
 }
 
 //=======================================================================
@@ -368,7 +369,7 @@ gp_Cone  BRepAdaptor_Surface::Cone()const
 
 gp_Torus  BRepAdaptor_Surface::Torus()const 
 {
-  return mySurf.Torus().Transformed(myTrsf);
+  return mySurf->Torus().Transformed(myTrsf);
 }
 
 //=======================================================================
@@ -379,7 +380,7 @@ gp_Torus  BRepAdaptor_Surface::Torus()const
 Handle(Geom_BezierSurface) BRepAdaptor_Surface::Bezier() const 
 {
   return Handle(Geom_BezierSurface)::DownCast
-    (mySurf.Bezier()->Transformed(myTrsf));
+    (mySurf->Bezier()->Transformed(myTrsf));
 }
 
 
@@ -391,7 +392,7 @@ Handle(Geom_BezierSurface) BRepAdaptor_Surface::Bezier() const
 Handle(Geom_BSplineSurface) BRepAdaptor_Surface::BSpline() const 
 {
   return Handle(Geom_BSplineSurface)::DownCast
-    (mySurf.BSpline()->Transformed(myTrsf));
+    (mySurf->BSpline()->Transformed(myTrsf));
 }
 
 
@@ -402,7 +403,7 @@ Handle(Geom_BSplineSurface) BRepAdaptor_Surface::BSpline() const
 
 gp_Ax1 BRepAdaptor_Surface::AxeOfRevolution() const 
 {
-  return mySurf.AxeOfRevolution().Transformed(myTrsf);
+  return mySurf->AxeOfRevolution().Transformed(myTrsf);
 }
 
 
@@ -413,7 +414,7 @@ gp_Ax1 BRepAdaptor_Surface::AxeOfRevolution() const
 
 gp_Dir BRepAdaptor_Surface::Direction() const 
 {
-  return mySurf.Direction().Transformed(myTrsf);
+  return mySurf->Direction().Transformed(myTrsf);
 }
 
 
@@ -425,7 +426,7 @@ gp_Dir BRepAdaptor_Surface::Direction() const
 Handle(Adaptor3d_Curve) BRepAdaptor_Surface::BasisCurve() const 
 {
   Handle(GeomAdaptor_Surface) HS = new GeomAdaptor_Surface();
-  HS->Load (Handle(Geom_Surface)::DownCast(mySurf.Surface()->Transformed(myTrsf)));
+  HS->Load (Handle(Geom_Surface)::DownCast(mySurf->Surface()->Transformed(myTrsf)));
 
   return HS->BasisCurve();
 }
@@ -439,7 +440,7 @@ Handle(Adaptor3d_Curve) BRepAdaptor_Surface::BasisCurve() const
 Handle(Adaptor3d_Surface) BRepAdaptor_Surface::BasisSurface() const 
 {  
   Handle(GeomAdaptor_Surface) HS = new GeomAdaptor_Surface();
-  HS->Load (Handle(Geom_Surface)::DownCast(mySurf.Surface()->Transformed(myTrsf)));
+  HS->Load (Handle(Geom_Surface)::DownCast(mySurf->Surface()->Transformed(myTrsf)));
   return HS->BasisSurface();
 }
 
@@ -451,6 +452,6 @@ Handle(Adaptor3d_Surface) BRepAdaptor_Surface::BasisSurface() const
 
 Standard_Real BRepAdaptor_Surface::OffsetValue() const 
 {
-  return mySurf.OffsetValue();
+  return mySurf->OffsetValue();
 }
 
index ed067dc619f83970bede0a8c989ee3c0350d67fc..24d9ab7c0839ca76f76fefba4f938fd6123b370a 100644 (file)
@@ -90,27 +90,27 @@ public:
   //! Returns the face tolerance.
   Standard_EXPORT Standard_Real Tolerance() const;
 
-  virtual Standard_Real FirstUParameter() const Standard_OVERRIDE { return mySurf.FirstUParameter(); }
+  virtual Standard_Real FirstUParameter() const Standard_OVERRIDE { return mySurf->FirstUParameter(); }
 
-  virtual Standard_Real LastUParameter() const Standard_OVERRIDE { return mySurf.LastUParameter(); }
+  virtual Standard_Real LastUParameter() const Standard_OVERRIDE { return mySurf->LastUParameter(); }
 
-  virtual Standard_Real FirstVParameter() const Standard_OVERRIDE { return mySurf.FirstVParameter(); }
+  virtual Standard_Real FirstVParameter() const Standard_OVERRIDE { return mySurf->FirstVParameter(); }
 
-  virtual Standard_Real LastVParameter() const Standard_OVERRIDE { return mySurf.LastVParameter(); }
+  virtual Standard_Real LastVParameter() const Standard_OVERRIDE { return mySurf->LastVParameter(); }
 
-  virtual GeomAbs_Shape UContinuity() const Standard_OVERRIDE { return mySurf.UContinuity(); }
+  virtual GeomAbs_Shape UContinuity() const Standard_OVERRIDE { return mySurf->UContinuity(); }
 
-  virtual GeomAbs_Shape VContinuity() const Standard_OVERRIDE { return mySurf.VContinuity(); }
+  virtual GeomAbs_Shape VContinuity() const Standard_OVERRIDE { return mySurf->VContinuity(); }
   
   //! If necessary, breaks the surface in U intervals of
   //! continuity    <S>.  And   returns  the  number  of
   //! intervals.
-  virtual Standard_Integer NbUIntervals (const GeomAbs_Shape theSh) const Standard_OVERRIDE { return mySurf.NbUIntervals (theSh); }
+  virtual Standard_Integer NbUIntervals (const GeomAbs_Shape theSh) const Standard_OVERRIDE { return mySurf->NbUIntervals (theSh); }
 
   //! If necessary, breaks the surface in V intervals of
   //! continuity    <S>.  And   returns  the  number  of
   //! intervals.
-  virtual Standard_Integer NbVIntervals (const GeomAbs_Shape theSh) const Standard_OVERRIDE { return mySurf.NbVIntervals (theSh); }
+  virtual Standard_Integer NbVIntervals (const GeomAbs_Shape theSh) const Standard_OVERRIDE { return mySurf->NbVIntervals (theSh); }
   
   //! Returns the  intervals with the requested continuity
   //! in the U direction.
@@ -133,17 +133,17 @@ public:
   //! If <First> >= <Last>
   Standard_EXPORT Handle(Adaptor3d_Surface) VTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE;
 
-  virtual Standard_Boolean IsUClosed() const Standard_OVERRIDE { return mySurf.IsUClosed(); }
+  virtual Standard_Boolean IsUClosed() const Standard_OVERRIDE { return mySurf->IsUClosed(); }
 
-  virtual Standard_Boolean IsVClosed() const Standard_OVERRIDE { return mySurf.IsVClosed(); }
+  virtual Standard_Boolean IsVClosed() const Standard_OVERRIDE { return mySurf->IsVClosed(); }
 
-  virtual Standard_Boolean IsUPeriodic() const Standard_OVERRIDE { return mySurf.IsUPeriodic(); }
+  virtual Standard_Boolean IsUPeriodic() const Standard_OVERRIDE { return mySurf->IsUPeriodic(); }
 
-  virtual Standard_Real UPeriod() const Standard_OVERRIDE { return mySurf.UPeriod(); }
+  virtual Standard_Real UPeriod() const Standard_OVERRIDE { return mySurf->UPeriod(); }
 
-  virtual Standard_Boolean IsVPeriodic() const Standard_OVERRIDE { return mySurf.IsVPeriodic(); }
+  virtual Standard_Boolean IsVPeriodic() const Standard_OVERRIDE { return mySurf->IsVPeriodic(); }
 
-  virtual Standard_Real VPeriod() const Standard_OVERRIDE { return mySurf.VPeriod(); }
+  virtual Standard_Real VPeriod() const Standard_OVERRIDE { return mySurf->VPeriod(); }
 
   //! Computes the point of parameters U,V on the surface.
   Standard_EXPORT gp_Pnt Value (const Standard_Real U, const Standard_Real V) const Standard_OVERRIDE;
@@ -178,17 +178,17 @@ public:
   
   //! Returns the parametric U  resolution corresponding
   //! to the real space resolution <R3d>.
-  virtual Standard_Real UResolution (const Standard_Real theR3d) const Standard_OVERRIDE { return mySurf.UResolution (theR3d); }
+  virtual Standard_Real UResolution (const Standard_Real theR3d) const Standard_OVERRIDE { return mySurf->UResolution (theR3d); }
   
   //! Returns the parametric V  resolution corresponding
   //! to the real space resolution <R3d>.
-  virtual Standard_Real VResolution (const Standard_Real theR3d) const Standard_OVERRIDE { return mySurf.VResolution (theR3d); }
+  virtual Standard_Real VResolution (const Standard_Real theR3d) const Standard_OVERRIDE { return mySurf->VResolution (theR3d); }
 
   //! Returns the type of the surface : Plane, Cylinder,
   //! Cone,      Sphere,        Torus,    BezierSurface,
   //! BSplineSurface,               SurfaceOfRevolution,
   //! SurfaceOfExtrusion, OtherSurface
-  virtual GeomAbs_SurfaceType GetType() const Standard_OVERRIDE { return mySurf.GetType(); }
+  virtual GeomAbs_SurfaceType GetType() const Standard_OVERRIDE { return mySurf->GetType(); }
   
   Standard_EXPORT gp_Pln Plane() const Standard_OVERRIDE;
   
@@ -200,21 +200,21 @@ public:
   
   Standard_EXPORT gp_Torus Torus() const Standard_OVERRIDE;
   
-  virtual Standard_Integer UDegree() const Standard_OVERRIDE { return mySurf.UDegree(); }
+  virtual Standard_Integer UDegree() const Standard_OVERRIDE { return mySurf->UDegree(); }
 
-  virtual Standard_Integer NbUPoles() const Standard_OVERRIDE { return mySurf.NbUPoles(); }
+  virtual Standard_Integer NbUPoles() const Standard_OVERRIDE { return mySurf->NbUPoles(); }
 
-  virtual Standard_Integer VDegree() const Standard_OVERRIDE { return mySurf.VDegree(); }
+  virtual Standard_Integer VDegree() const Standard_OVERRIDE { return mySurf->VDegree(); }
 
-  virtual Standard_Integer NbVPoles() const Standard_OVERRIDE { return mySurf.NbVPoles(); }
+  virtual Standard_Integer NbVPoles() const Standard_OVERRIDE { return mySurf->NbVPoles(); }
 
-  virtual Standard_Integer NbUKnots() const Standard_OVERRIDE { return mySurf.NbUKnots(); }
+  virtual Standard_Integer NbUKnots() const Standard_OVERRIDE { return mySurf->NbUKnots(); }
 
-  virtual Standard_Integer NbVKnots() const Standard_OVERRIDE { return mySurf.NbVKnots(); }
+  virtual Standard_Integer NbVKnots() const Standard_OVERRIDE { return mySurf->NbVKnots(); }
 
-  virtual Standard_Boolean IsURational() const Standard_OVERRIDE { return mySurf.IsURational(); }
+  virtual Standard_Boolean IsURational() const Standard_OVERRIDE { return mySurf->IsURational(); }
 
-  virtual Standard_Boolean IsVRational() const Standard_OVERRIDE { return mySurf.IsVRational(); }
+  virtual Standard_Boolean IsVRational() const Standard_OVERRIDE { return mySurf->IsVRational(); }
 
   Standard_EXPORT Handle(Geom_BezierSurface) Bezier() const Standard_OVERRIDE;
 
@@ -240,7 +240,7 @@ public:
 
 private:
 
-  GeomAdaptor_Surface mySurf;
+  Handle(GeomAdaptor_Surface) mySurf;
   gp_Trsf myTrsf;
   TopoDS_Face myFace;
 
index e98a66884b261c34a34c578f457b1e009a6289d8..cb963d56608f430a453b32446699c0b4fa868ff9 100644 (file)
@@ -67,7 +67,7 @@ Handle(Adaptor3d_Surface) GeomAdaptor_SurfaceOfLinearExtrusion::ShallowCopy() co
 {
   Handle(GeomAdaptor_SurfaceOfLinearExtrusion) aCopy = new GeomAdaptor_SurfaceOfLinearExtrusion();
 
-  aCopy->myBasisCurve = myBasisCurve;
+  aCopy->myBasisCurve = myBasisCurve->ShallowCopy();
   aCopy->myDirection  = myDirection;
   aCopy->myHaveDir    = myHaveDir;
 
index 726085698053ecf8597d647248f7c405f864b0b2..aefd264d7827009007381543d1e63b40e860f32f 100644 (file)
@@ -67,7 +67,7 @@ Handle(Adaptor3d_Surface) GeomAdaptor_SurfaceOfRevolution::ShallowCopy() const
 {
   Handle(GeomAdaptor_SurfaceOfRevolution) aCopy = new GeomAdaptor_SurfaceOfRevolution();
 
-  aCopy->myBasisCurve = myBasisCurve;
+  aCopy->myBasisCurve = myBasisCurve->ShallowCopy();
   aCopy->myAxis       = myAxis;
   aCopy->myHaveAxis   = myHaveAxis;
   aCopy->myAxeRev     = myAxeRev;
index 28e802c2febe47d761aa1081c3082ce9163d2a86..337f52e50aa098e7727cf2deea7400717aff1547 100644 (file)
@@ -36,7 +36,7 @@ GeomFill_SnglrFunc::GeomFill_SnglrFunc(const Handle(Adaptor3d_Curve)& HC) :
 
 Handle(Adaptor3d_Curve) GeomFill_SnglrFunc::ShallowCopy() const
 {
-  Handle(GeomFill_SnglrFunc) aCopy = new GeomFill_SnglrFunc(myHCurve);
+  Handle(GeomFill_SnglrFunc) aCopy = new GeomFill_SnglrFunc(myHCurve->ShallowCopy());
   aCopy->ratio = ratio;
   return aCopy;
 }
index 0500f58c4708e0bbb610d178bb9418f6f324634c..80d49e5765ce6eea0e66af0ae6d66dc4626f164a 100644 (file)
@@ -640,8 +640,8 @@ Handle(Adaptor2d_Curve2d) ProjLib_CompProjectedCurve::ShallowCopy() const
 {
   Handle(ProjLib_CompProjectedCurve) aCopy = new ProjLib_CompProjectedCurve();
 
-  aCopy->mySurface     = mySurface;
-  aCopy->myCurve       = myCurve;
+  aCopy->mySurface     = mySurface->ShallowCopy();
+  aCopy->myCurve       = myCurve->ShallowCopy();
   aCopy->myNbCurves    = myNbCurves;
   aCopy->mySequence    = mySequence;
   aCopy->myTolU        = myTolU;
index 7da03167872d5acbae15af79476b132db4a7717b..dd5f21ddba8c5c5d8f652b28bd913a381983fcc0 100644 (file)
@@ -455,7 +455,7 @@ Handle(Adaptor3d_Curve) ProjLib_ProjectOnPlane::ShallowCopy() const
 {
   Handle(ProjLib_ProjectOnPlane) aCopy = new ProjLib_ProjectOnPlane();
 
-  aCopy->myCurve = myCurve;
+  aCopy->myCurve = myCurve->ShallowCopy();
   aCopy->myPlane = myPlane;
   aCopy->myDirection = myDirection;
   aCopy->myKeepParam = myKeepParam;
@@ -463,7 +463,7 @@ Handle(Adaptor3d_Curve) ProjLib_ProjectOnPlane::ShallowCopy() const
   aCopy->myLastPar = myLastPar;
   aCopy->myTolerance = myTolerance;
   aCopy->myType = myType;
-  aCopy->myResult = myResult;
+  aCopy->myResult = Handle(GeomAdaptor_Curve)::DownCast(myResult->ShallowCopy());
   aCopy->myIsApprox = myIsApprox;
 
   return aCopy;
index 64db5c578fa1ed0f8125bf6b9edbfeb1da04880e..edf2a7967fc9dc5b5eda8240773c0823726adabf 100644 (file)
@@ -381,8 +381,8 @@ Handle(Adaptor2d_Curve2d) ProjLib_ProjectedCurve::ShallowCopy() const
   Handle(ProjLib_ProjectedCurve) aCopy = new ProjLib_ProjectedCurve();
 
   aCopy->myTolerance   = myTolerance;
-  aCopy->mySurface     = mySurface;
-  aCopy->myCurve       = myCurve;
+  aCopy->mySurface     = mySurface->ShallowCopy();
+  aCopy->myCurve       = myCurve->ShallowCopy();
   aCopy->myResult      = myResult;
   aCopy->myDegMin      = myDegMin;
   aCopy->myDegMax      = myDegMax;