From 04f851947dc7c2daf2a803880d22d17d14e571e6 Mon Sep 17 00:00:00 2001
From: Benjamin Bihler <benjamin.bihler@compositence.de>
Date: Thu, 11 Jan 2018 15:26:57 +0100
Subject: [PATCH] 0029420: TopoDS_Builder and BRep_Builder should prevent
 instantiation and their methods should be static

Methods of TopoDS_Builder and BRep_Builder have been made static.
---
 src/BRep/BRep_Builder.cxx     |  70 +++++++++++------------
 src/BRep/BRep_Builder.hxx     | 102 +++++++++++++++++-----------------
 src/BRep/BRep_Builder.lxx     |  32 +++++------
 src/TopoDS/TopoDS_Builder.cxx |   6 +-
 src/TopoDS/TopoDS_Builder.hxx |  19 +++----
 src/TopoDS/TopoDS_Builder.lxx |  10 ++--
 6 files changed, 118 insertions(+), 121 deletions(-)

diff --git a/src/BRep/BRep_Builder.cxx b/src/BRep/BRep_Builder.cxx
index a93ef4a688..d333aef103 100644
--- a/src/BRep/BRep_Builder.cxx
+++ b/src/BRep/BRep_Builder.cxx
@@ -452,7 +452,7 @@ static void UpdatePoints(BRep_ListOfPointRepresentation& lpr,
 
 void  BRep_Builder::MakeFace(TopoDS_Face& F,
                              const Handle(Geom_Surface)& S,
-                             const Standard_Real Tol) const 
+                             const Standard_Real Tol)
 {
   Handle(BRep_TFace) TF = new BRep_TFace();
   if(!F.IsNull() && F.Locked())
@@ -471,7 +471,7 @@ void  BRep_Builder::MakeFace(TopoDS_Face& F,
 //=======================================================================
 
 void  BRep_Builder::MakeFace(TopoDS_Face&                      F,
-                             const Handle(Poly_Triangulation)& T) const
+                             const Handle(Poly_Triangulation)& T)
 {
   Handle(BRep_TFace) TF = new BRep_TFace();
   if(!F.IsNull() && F.Locked())
@@ -491,7 +491,7 @@ void  BRep_Builder::MakeFace(TopoDS_Face&                      F,
 void  BRep_Builder::MakeFace(TopoDS_Face& F,
                              const Handle(Geom_Surface)& S,
                              const TopLoc_Location& L,
-                             const Standard_Real Tol) const 
+                             const Standard_Real Tol)
 {
   Handle(BRep_TFace) TF = new BRep_TFace();
   if(!F.IsNull() && F.Locked())
@@ -513,7 +513,7 @@ void  BRep_Builder::MakeFace(TopoDS_Face& F,
 void  BRep_Builder::UpdateFace(const TopoDS_Face& F,
                                const Handle(Geom_Surface)& S,
                                const TopLoc_Location& L,
-                               const Standard_Real Tol) const
+                               const Standard_Real Tol)
 {
   const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &F.TShape());
   if(TF->Locked())
@@ -533,7 +533,7 @@ void  BRep_Builder::UpdateFace(const TopoDS_Face& F,
 //=======================================================================
 
 void  BRep_Builder::UpdateFace(const TopoDS_Face& F,
-                               const Handle(Poly_Triangulation)& T) const
+                               const Handle(Poly_Triangulation)& T)
 {
   const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &F.TShape());
   if(TF->Locked())
@@ -551,7 +551,7 @@ void  BRep_Builder::UpdateFace(const TopoDS_Face& F,
 //=======================================================================
 
 void  BRep_Builder::UpdateFace(const TopoDS_Face& F,
-                               const Standard_Real Tol) const 
+                               const Standard_Real Tol)
 {
   const Handle(BRep_TFace)& TF = *((Handle(BRep_TFace)*) &F.TShape());
   if(TF->Locked())
@@ -569,7 +569,7 @@ void  BRep_Builder::UpdateFace(const TopoDS_Face& F,
 //=======================================================================
 
 void  BRep_Builder::NaturalRestriction(const TopoDS_Face& F,
-                                       const Standard_Boolean N) const 
+                                       const Standard_Boolean N)
 {
   const Handle(BRep_TFace)& TF = (*((Handle(BRep_TFace)*) &F.TShape()));
   if(TF->Locked())
@@ -586,7 +586,7 @@ void  BRep_Builder::NaturalRestriction(const TopoDS_Face& F,
 //purpose  : make undefined edge
 //=======================================================================
 
-void  BRep_Builder::MakeEdge(TopoDS_Edge& E) const
+void  BRep_Builder::MakeEdge(TopoDS_Edge& E)
 {
   Handle(BRep_TEdge) TE = new BRep_TEdge();
   if(!E.IsNull() && E.Locked())
@@ -605,7 +605,7 @@ void  BRep_Builder::MakeEdge(TopoDS_Edge& E) const
 void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E, 
                                const Handle(Geom_Curve)& C, 
                                const TopLoc_Location& L,
-                               const Standard_Real Tol) const
+                               const Standard_Real Tol)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -630,7 +630,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                const Handle(Geom2d_Curve)& C, 
                                const Handle(Geom_Surface)& S, 
                                const TopLoc_Location& L,
-                               const Standard_Real Tol) const
+                               const Standard_Real Tol)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -657,7 +657,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                const TopLoc_Location& L,
                                const Standard_Real Tol,
                                const gp_Pnt2d& Pf,
-                               const gp_Pnt2d& Pl) const
+                               const gp_Pnt2d& Pl)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -683,7 +683,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                const Handle(Geom2d_Curve)& C2, 
                                const Handle(Geom_Surface)& S, 
                                const TopLoc_Location& L, 
-                               const Standard_Real Tol) const
+                               const Standard_Real Tol)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -711,7 +711,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                const TopLoc_Location& L, 
                                const Standard_Real Tol,
                                const gp_Pnt2d& Pf,
-                               const gp_Pnt2d& Pl) const
+                               const gp_Pnt2d& Pl)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -734,7 +734,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 
 void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                const Handle(Poly_Polygon3D)& P,
-                               const TopLoc_Location& L) const
+                               const TopLoc_Location& L)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -774,7 +774,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                const Handle(Poly_PolygonOnTriangulation)& P,
                                const Handle(Poly_Triangulation)& T,
-                               const TopLoc_Location& L) const
+                               const TopLoc_Location& L)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -825,7 +825,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                const Handle(Poly_PolygonOnTriangulation)& P1,
                                const Handle(Poly_PolygonOnTriangulation)& P2,
                                const Handle(Poly_Triangulation)& T,
-                               const TopLoc_Location& L) const
+                               const TopLoc_Location& L)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -873,7 +873,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 
 void  BRep_Builder::UpdateEdge(const TopoDS_Edge&            E,
                                const Handle(Poly_Polygon2D)& P,
-                               const TopoDS_Face&            F) const
+                               const TopoDS_Face&            F)
 {
   TopLoc_Location l;
   const Handle(Geom_Surface)& S = BRep_Tool::Surface(F,l);
@@ -888,7 +888,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge&            E,
 void  BRep_Builder::UpdateEdge(const TopoDS_Edge&            E,
                                const Handle(Poly_Polygon2D)& P,
                                const Handle(Geom_Surface)&   S,
-                               const TopLoc_Location&        L) const
+                               const TopLoc_Location&        L)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -930,7 +930,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge&            E,
 void  BRep_Builder::UpdateEdge(const TopoDS_Edge&            E,
                                const Handle(Poly_Polygon2D)& P1,
                                const Handle(Poly_Polygon2D)& P2,
-                               const TopoDS_Face&            F) const
+                               const TopoDS_Face&            F)
 {
   TopLoc_Location l;
   const Handle(Geom_Surface)& S = BRep_Tool::Surface(F,l);
@@ -946,7 +946,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge&            E,
                                const Handle(Poly_Polygon2D)& P1,
                                const Handle(Poly_Polygon2D)& P2,
                                const Handle(Geom_Surface)&   S,
-                               const TopLoc_Location&        L) const
+                               const TopLoc_Location&        L)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -986,7 +986,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge&            E,
 //=======================================================================
 
 void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E, 
-                               const Standard_Real Tol) const
+                               const Standard_Real Tol)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -1006,7 +1006,7 @@ void  BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 void  BRep_Builder::Continuity(const TopoDS_Edge& E, 
                                const TopoDS_Face& F1, 
                                const TopoDS_Face& F2, 
-                               const GeomAbs_Shape C) const 
+                               const GeomAbs_Shape C)
 {
   TopLoc_Location l1,l2;
   const Handle(Geom_Surface)& S1 = BRep_Tool::Surface(F1,l1);
@@ -1024,7 +1024,7 @@ void  BRep_Builder::Continuity(const TopoDS_Edge& E,
                                const Handle(Geom_Surface)& S2, 
                                const TopLoc_Location& L1,
                                const TopLoc_Location& L2, 
-                               const GeomAbs_Shape C)const 
+                               const GeomAbs_Shape C)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -1045,7 +1045,7 @@ void  BRep_Builder::Continuity(const TopoDS_Edge& E,
 //=======================================================================
 
 void  BRep_Builder::SameParameter(const TopoDS_Edge& E, 
-                                  const Standard_Boolean S) const 
+                                  const Standard_Boolean S)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -1062,7 +1062,7 @@ void  BRep_Builder::SameParameter(const TopoDS_Edge& E,
 //=======================================================================
 
 void  BRep_Builder::SameRange(const TopoDS_Edge& E, 
-                              const Standard_Boolean S) const 
+                              const Standard_Boolean S)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -1079,7 +1079,7 @@ void  BRep_Builder::SameRange(const TopoDS_Edge& E,
 //=======================================================================
 
 void  BRep_Builder::Degenerated(const TopoDS_Edge& E, 
-                                const Standard_Boolean D) const 
+                                const Standard_Boolean D)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -1103,7 +1103,7 @@ void  BRep_Builder::Degenerated(const TopoDS_Edge& E,
 void  BRep_Builder::Range(const TopoDS_Edge&  E, 
                           const Standard_Real First, 
                           const Standard_Real Last,
-                          const Standard_Boolean Only3d) const
+                          const Standard_Boolean Only3d)
 {
   //  set the range to all the representations if Only3d=FALSE
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
@@ -1135,7 +1135,7 @@ void  BRep_Builder::Range(const TopoDS_Edge& E,
                           const Handle(Geom_Surface)& S,
                           const TopLoc_Location& L,
                           const Standard_Real First, 
-                          const Standard_Real Last) const
+                          const Standard_Real Last)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &E.TShape());
   if(TE->Locked())
@@ -1171,7 +1171,7 @@ void  BRep_Builder::Range(const TopoDS_Edge& E,
 //=======================================================================
 
 void  BRep_Builder::Transfert(const TopoDS_Edge& Ein, 
-                              const TopoDS_Edge& Eout) const
+                              const TopoDS_Edge& Eout)
 {
   const Handle(BRep_TEdge)& TE = *((Handle(BRep_TEdge)*) &Ein.TShape());
   if(TE->Locked())
@@ -1223,7 +1223,7 @@ void  BRep_Builder::Transfert(const TopoDS_Edge& Ein,
 
 void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& V, 
                                  const gp_Pnt& P, 
-                                 const Standard_Real Tol) const 
+                                 const Standard_Real Tol)
 {
   const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &V.TShape());
   if(TV->Locked())
@@ -1244,7 +1244,7 @@ void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& V,
 void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& V, 
                                  const Standard_Real Par, 
                                  const TopoDS_Edge& E,
-                                 const Standard_Real Tol) const
+                                 const Standard_Real Tol)
 {
   if (Precision::IsPositiveInfinite(Par) ||
       Precision::IsNegativeInfinite(Par))
@@ -1327,7 +1327,7 @@ void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& V,
                                  const TopoDS_Edge&   E,
                                  const Handle(Geom_Surface)& S,
                                  const TopLoc_Location& L,
-                                 const Standard_Real  Tol) const
+                                 const Standard_Real  Tol)
 {
   if (Precision::IsPositiveInfinite(Par) ||
       Precision::IsNegativeInfinite(Par))
@@ -1406,7 +1406,7 @@ void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& Ve,
                                  const Standard_Real U, 
                                  const Standard_Real V,
                                  const TopoDS_Face& F, 
-                                 const Standard_Real Tol) const
+                                 const Standard_Real Tol)
 {
   const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &Ve.TShape());
   
@@ -1431,7 +1431,7 @@ void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& Ve,
 //=======================================================================
 
 void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& V, 
-                                 const Standard_Real Tol) const
+                                 const Standard_Real Tol)
 {
   const Handle(BRep_TVertex)& TV = *((Handle(BRep_TVertex)*) &V.TShape());
     
@@ -1453,7 +1453,7 @@ void  BRep_Builder::UpdateVertex(const TopoDS_Vertex& V,
 void  BRep_Builder::Transfert(const TopoDS_Edge& Ein,
                               const TopoDS_Edge& Eout,
                               const TopoDS_Vertex& Vin,
-                              const TopoDS_Vertex& Vout) const
+                              const TopoDS_Vertex& Vout)
 {
   const Standard_Real tol = BRep_Tool::Tolerance(Vin);
   const Standard_Real parin = BRep_Tool::Parameter(Vin,Ein);
diff --git a/src/BRep/BRep_Builder.hxx b/src/BRep/BRep_Builder.hxx
index 2deef68951..1f8ea76aa0 100644
--- a/src/BRep/BRep_Builder.hxx
+++ b/src/BRep/BRep_Builder.hxx
@@ -71,187 +71,187 @@ public:
 
   
   //! Makes an undefined Face.
-    void MakeFace (TopoDS_Face& F) const;
+    static void MakeFace (TopoDS_Face& F);
   
   //! Makes a Face with a surface.
-  Standard_EXPORT void MakeFace (TopoDS_Face& F, const Handle(Geom_Surface)& S, const Standard_Real Tol) const;
+  Standard_EXPORT static void MakeFace (TopoDS_Face& F, const Handle(Geom_Surface)& S, const Standard_Real Tol);
   
   //! Makes a Face with a surface and a location.
-  Standard_EXPORT void MakeFace (TopoDS_Face& F, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const;
+  Standard_EXPORT static void MakeFace (TopoDS_Face& F, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol);
   
   //! Makes a Face with a triangulation. The triangulation
   //! is in the same reference system than the TFace.
-  Standard_EXPORT void MakeFace (TopoDS_Face& F, const Handle(Poly_Triangulation)& T) const;
+  Standard_EXPORT static void MakeFace (TopoDS_Face& F, const Handle(Poly_Triangulation)& T);
   
   //! Updates the face F using the tolerance value Tol,
   //! surface S and location Location.
-  Standard_EXPORT void UpdateFace (const TopoDS_Face& F, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateFace (const TopoDS_Face& F, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol);
   
   //! Changes a  face triangulation.
   //!
   //! A null Triangulation removes the triangulation.
-  Standard_EXPORT void UpdateFace (const TopoDS_Face& F, const Handle(Poly_Triangulation)& T) const;
+  Standard_EXPORT static void UpdateFace (const TopoDS_Face& F, const Handle(Poly_Triangulation)& T);
   
   //! Updates the face Tolerance.
-  Standard_EXPORT void UpdateFace (const TopoDS_Face& F, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateFace (const TopoDS_Face& F, const Standard_Real Tol);
   
   //! Sets the  NaturalRestriction flag of  the face.
-  Standard_EXPORT void NaturalRestriction (const TopoDS_Face& F, const Standard_Boolean N) const;
+  Standard_EXPORT static void NaturalRestriction (const TopoDS_Face& F, const Standard_Boolean N);
   
   //! Makes an undefined Edge (no geometry).
-  Standard_EXPORT void MakeEdge (TopoDS_Edge& E) const;
+  Standard_EXPORT static void MakeEdge (TopoDS_Edge& E);
   
   //! Makes an Edge with a curve.
-    void MakeEdge (TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol) const;
+    static void MakeEdge (TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol);
   
   //! Makes an Edge with a curve and a location.
-    void MakeEdge (TopoDS_Edge& E, const Handle(Geom_Curve)& C, const TopLoc_Location& L, const Standard_Real Tol) const;
+    static void MakeEdge (TopoDS_Edge& E, const Handle(Geom_Curve)& C, const TopLoc_Location& L, const Standard_Real Tol);
   
   //! Makes an Edge with a polygon 3d.
-    void MakeEdge (TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P) const;
+    static void MakeEdge (TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P);
   
   //! makes an Edge polygon on Triangulation.
-    void MakeEdge (TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T) const;
+    static void MakeEdge (TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T);
   
   //! makes an Edge polygon on Triangulation.
-    void MakeEdge (TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const;
+    static void MakeEdge (TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L);
   
   //! Sets a 3D curve for the edge.
   //! If <C> is a null handle, remove any existing 3d curve.
-    void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol) const;
+    static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol);
   
   //! Sets a 3D curve for the edge.
   //! If <C> is a null handle, remove any existing 3d curve.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom_Curve)& C, const TopLoc_Location& L, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom_Curve)& C, const TopLoc_Location& L, const Standard_Real Tol);
   
   //! Sets a pcurve for the edge on the face.
   //! If <C> is a null handle, remove any existing pcurve.
-    void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const TopoDS_Face& F, const Standard_Real Tol) const;
+    static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const TopoDS_Face& F, const Standard_Real Tol);
   
   //! Sets pcurves for the edge on the  closed face.  If
   //! <C1> or <C2> is a null handle, remove any existing
   //! pcurve.
-    void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const TopoDS_Face& F, const Standard_Real Tol) const;
+    static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const TopoDS_Face& F, const Standard_Real Tol);
   
   //! Sets a pcurve for the edge on the face.
   //! If <C> is a null handle, remove any existing pcurve.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol);
   
   //! Sets a pcurve for the edge on the face.
   //! If <C> is a null handle, remove any existing pcurve.
   //! Sets UV bounds for curve repsentation
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol, const gp_Pnt2d& Pf, const gp_Pnt2d& Pl) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol, const gp_Pnt2d& Pf, const gp_Pnt2d& Pl);
   
   //! Sets pcurves for the edge on the closed surface.
   //! <C1> or <C2> is a null handle, remove any existing
   //! pcurve.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol);
   
   //! Sets pcurves for the edge on the closed surface.
   //! <C1> or <C2> is a null handle, remove any existing
   //! pcurve.
   //! Sets UV bounds for curve repsentation
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol, const gp_Pnt2d& Pf, const gp_Pnt2d& Pl) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol, const gp_Pnt2d& Pf, const gp_Pnt2d& Pl);
   
   //! Changes an Edge 3D polygon.
   //! A null Polygon removes the 3d Polygon.
-    void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P) const;
+    static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P);
   
   //! Changes an Edge 3D polygon.
   //! A null Polygon removes the 3d Polygon.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P, const TopLoc_Location& L) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P, const TopLoc_Location& L);
   
   //! Changes an Edge polygon on Triangulation.
-    void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T) const;
+    static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T);
   
   //! Changes an Edge polygon on Triangulation.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L);
   
   //! Changes an Edge polygon on Triangulation.
-    void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N1, const Handle(Poly_PolygonOnTriangulation)& N2, const Handle(Poly_Triangulation)& T) const;
+    static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N1, const Handle(Poly_PolygonOnTriangulation)& N2, const Handle(Poly_Triangulation)& T);
   
   //! Changes an Edge polygon on Triangulation.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N1, const Handle(Poly_PolygonOnTriangulation)& N2, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N1, const Handle(Poly_PolygonOnTriangulation)& N2, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L);
   
   //! Changes Edge polygon on a face.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P, const TopoDS_Face& S) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P, const TopoDS_Face& S);
   
   //! Changes Edge polygon on a face.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P, const Handle(Geom_Surface)& S, const TopLoc_Location& T) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P, const Handle(Geom_Surface)& S, const TopLoc_Location& T);
   
   //! Changes Edge polygons on a face.
   //!
   //! A null Polygon removes the 2d Polygon.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const TopoDS_Face& S) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const TopoDS_Face& S);
   
   //! Changes Edge polygons on a face.
   //!
   //! A null Polygon removes the 2d Polygon.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const Handle(Geom_Surface)& S, const TopLoc_Location& L) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const Handle(Geom_Surface)& S, const TopLoc_Location& L);
   
   //! Updates the edge tolerance.
-  Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateEdge (const TopoDS_Edge& E, const Standard_Real Tol);
   
   //! Sets the geometric continuity on the edge.
-  Standard_EXPORT void Continuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2, const GeomAbs_Shape C) const;
+  Standard_EXPORT static void Continuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2, const GeomAbs_Shape C);
   
   //! Sets the geometric continuity on the edge.
-  Standard_EXPORT void Continuity (const TopoDS_Edge& E, const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2, const GeomAbs_Shape C) const;
+  Standard_EXPORT static void Continuity (const TopoDS_Edge& E, const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2, const GeomAbs_Shape C);
   
   //! Sets the same parameter flag for the edge <E>.
-  Standard_EXPORT void SameParameter (const TopoDS_Edge& E, const Standard_Boolean S) const;
+  Standard_EXPORT static void SameParameter (const TopoDS_Edge& E, const Standard_Boolean S);
   
   //! Sets the same range flag for the edge <E>.
-  Standard_EXPORT void SameRange (const TopoDS_Edge& E, const Standard_Boolean S) const;
+  Standard_EXPORT static void SameRange (const TopoDS_Edge& E, const Standard_Boolean S);
   
   //! Sets the degenerated flag for the edge <E>.
-  Standard_EXPORT void Degenerated (const TopoDS_Edge& E, const Standard_Boolean D) const;
+  Standard_EXPORT static void Degenerated (const TopoDS_Edge& E, const Standard_Boolean D);
   
   //! Sets the range of the 3d curve if Only3d=TRUE,
   //! otherwise sets the range to all the representations
-  Standard_EXPORT void Range (const TopoDS_Edge& E, const Standard_Real First, const Standard_Real Last, const Standard_Boolean Only3d = Standard_False) const;
+  Standard_EXPORT static void Range (const TopoDS_Edge& E, const Standard_Real First, const Standard_Real Last, const Standard_Boolean Only3d = Standard_False);
   
   //! Sets the range  of the edge  on the pcurve on  the
   //! surface.
-  Standard_EXPORT void Range (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real First, const Standard_Real Last) const;
+  Standard_EXPORT static void Range (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real First, const Standard_Real Last);
   
   //! Sets the range of the edge on the pcurve on the face.
-    void Range (const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real First, const Standard_Real Last) const;
+    static void Range (const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real First, const Standard_Real Last);
   
   //! Add  to <Eout>  the  geometric representations  of
   //! <Ein>.
-  Standard_EXPORT void Transfert (const TopoDS_Edge& Ein, const TopoDS_Edge& Eout) const;
+  Standard_EXPORT static void Transfert (const TopoDS_Edge& Ein, const TopoDS_Edge& Eout);
   
   //! Makes an udefined vertex without geometry.
-    void MakeVertex (TopoDS_Vertex& V) const;
+    static void MakeVertex (TopoDS_Vertex& V);
   
   //! Makes a vertex from a 3D point.
-    void MakeVertex (TopoDS_Vertex& V, const gp_Pnt& P, const Standard_Real Tol) const;
+    static void MakeVertex (TopoDS_Vertex& V, const gp_Pnt& P, const Standard_Real Tol);
   
   //! Sets a 3D point on the vertex.
-  Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const gp_Pnt& P, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateVertex (const TopoDS_Vertex& V, const gp_Pnt& P, const Standard_Real Tol);
   
   //! Sets  the parameter  for the   vertex on the  edge
   //! curves.
-  Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const Standard_Real Tol);
   
   //! Sets  the parameter  for the  vertex  on the  edge
   //! pcurve  on the face.
-    void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real Tol) const;
+    static void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real Tol);
   
   //! Sets  the parameter  for the  vertex  on the  edge
   //! pcurve  on the surface.
-  Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol);
   
   //! Sets the parameters for the vertex on the face.
-  Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& Ve, const Standard_Real U, const Standard_Real V, const TopoDS_Face& F, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateVertex (const TopoDS_Vertex& Ve, const Standard_Real U, const Standard_Real V, const TopoDS_Face& F, const Standard_Real Tol);
   
   //! Updates the vertex tolerance.
-  Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real Tol) const;
+  Standard_EXPORT static void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real Tol);
   
   //! Transfert the parameters  of   Vin on  Ein as  the
   //! parameter of Vout on Eout.
-  Standard_EXPORT void Transfert (const TopoDS_Edge& Ein, const TopoDS_Edge& Eout, const TopoDS_Vertex& Vin, const TopoDS_Vertex& Vout) const;
+  Standard_EXPORT static void Transfert (const TopoDS_Edge& Ein, const TopoDS_Edge& Eout, const TopoDS_Vertex& Vin, const TopoDS_Vertex& Vout);
 
 
 
diff --git a/src/BRep/BRep_Builder.lxx b/src/BRep/BRep_Builder.lxx
index 1a4fd54327..739a36e162 100644
--- a/src/BRep/BRep_Builder.lxx
+++ b/src/BRep/BRep_Builder.lxx
@@ -26,7 +26,7 @@
 //purpose  : 
 //=======================================================================
 
-inline void BRep_Builder::MakeFace(TopoDS_Face& F) const
+inline void BRep_Builder::MakeFace(TopoDS_Face& F)
 {
   Handle(BRep_TFace) TF = new BRep_TFace();
   MakeShape(F,TF);
@@ -40,7 +40,7 @@ inline void BRep_Builder::MakeFace(TopoDS_Face& F) const
 
 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E, 
                                    const Handle(Geom_Curve)& C, 
-                                   const Standard_Real Tol) const
+                                   const Standard_Real Tol)
 {
   MakeEdge(E);
   UpdateEdge(E,C,TopLoc_Location(),Tol);
@@ -53,7 +53,7 @@ inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
 //=======================================================================
 
 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E, 
-                                   const Handle(Poly_Polygon3D)& P) const
+                                   const Handle(Poly_Polygon3D)& P)
 {
   MakeEdge(E);
   UpdateEdge(E,P);
@@ -66,7 +66,7 @@ inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
 
 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
                                    const Handle(Poly_PolygonOnTriangulation)& P,
-                                   const Handle(Poly_Triangulation)& T) const
+                                   const Handle(Poly_Triangulation)& T)
 {
   MakeEdge(E);
   UpdateEdge(E,P,T,TopLoc_Location());
@@ -81,7 +81,7 @@ inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
                                    const Handle(Poly_PolygonOnTriangulation)& P,
                                    const Handle(Poly_Triangulation)& T,
-                                   const TopLoc_Location& L) const
+                                   const TopLoc_Location& L)
 {
   MakeEdge(E);
   UpdateEdge(E,P,T,L);
@@ -96,7 +96,7 @@ inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
                                    const Handle(Geom_Curve)& C,
                                    const TopLoc_Location& L,
-                                   const Standard_Real Tol) const
+                                   const Standard_Real Tol)
 {
   MakeEdge(E);
   UpdateEdge(E,C,L,Tol);
@@ -110,7 +110,7 @@ inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
 
 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                      const Handle(Geom_Curve)& C,
-                                     const Standard_Real Tol) const
+                                     const Standard_Real Tol)
 {
   UpdateEdge(E,C,TopLoc_Location(),Tol);
 }
@@ -124,7 +124,7 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                      const Handle(Geom2d_Curve)& C,
                                      const TopoDS_Face& F,
-                                     const Standard_Real Tol) const
+                                     const Standard_Real Tol)
 {
   TopLoc_Location l;
   UpdateEdge(E,C,BRep_Tool::Surface(F,l),l,Tol);
@@ -140,7 +140,7 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                      const Handle(Geom2d_Curve)& C1,
                                      const Handle(Geom2d_Curve)& C2,
                                      const TopoDS_Face& F,
-                                     const Standard_Real Tol) const
+                                     const Standard_Real Tol)
 {
   TopLoc_Location l;
   UpdateEdge(E,C1,C2,BRep_Tool::Surface(F,l),l,Tol);
@@ -153,7 +153,7 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 //=======================================================================
 
 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
-                                     const Handle(Poly_Polygon3D)& P) const
+                                     const Handle(Poly_Polygon3D)& P)
 {
   UpdateEdge(E,P,TopLoc_Location());
 }
@@ -166,7 +166,7 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 
 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                      const Handle(Poly_PolygonOnTriangulation)& P,
-                                     const Handle(Poly_Triangulation)& T) const
+                                     const Handle(Poly_Triangulation)& T)
 {
   UpdateEdge(E,P,T,TopLoc_Location());
 }
@@ -180,7 +180,7 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
                                      const Handle(Poly_PolygonOnTriangulation)& P1,
                                      const Handle(Poly_PolygonOnTriangulation)& P2,
-                                     const Handle(Poly_Triangulation)& T) const
+                                     const Handle(Poly_Triangulation)& T)
 {
   UpdateEdge(E,P1,P2,T,TopLoc_Location());
 }
@@ -194,7 +194,7 @@ inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
 inline void BRep_Builder::Range(const TopoDS_Edge& E, 
                                 const TopoDS_Face& F, 
                                 const Standard_Real First, 
-                                const Standard_Real Last) const
+                                const Standard_Real Last)
 {
   TopLoc_Location l;
   Range(E,BRep_Tool::Surface(F,l),l,First,Last);
@@ -206,7 +206,7 @@ inline void BRep_Builder::Range(const TopoDS_Edge& E,
 //purpose  : undefined vertex
 //=======================================================================
 
-inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V) const
+inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V)
 {
   Handle(BRep_TVertex) TV = new BRep_TVertex();
   MakeShape(V,TV);
@@ -220,7 +220,7 @@ inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V) const
 
 inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V,
                                      const gp_Pnt& P,
-                                     const Standard_Real Tol) const
+                                     const Standard_Real Tol)
 {
   MakeVertex(V);
   UpdateVertex(V,P,Tol);
@@ -236,7 +236,7 @@ inline void BRep_Builder::UpdateVertex(const TopoDS_Vertex& V,
                                        const Standard_Real  Par,
                                        const TopoDS_Edge&   E,
                                        const TopoDS_Face&   F,
-                                       const Standard_Real  Tol) const
+                                       const Standard_Real  Tol)
 {
   TopLoc_Location l;
   UpdateVertex(V,Par,E,BRep_Tool::Surface(F,l),l,Tol);
diff --git a/src/TopoDS/TopoDS_Builder.cxx b/src/TopoDS/TopoDS_Builder.cxx
index e248834a69..d073dac080 100644
--- a/src/TopoDS/TopoDS_Builder.cxx
+++ b/src/TopoDS/TopoDS_Builder.cxx
@@ -35,7 +35,7 @@
 //purpose  : Make a Shape from a TShape
 //=======================================================================
 void TopoDS_Builder::MakeShape (TopoDS_Shape& S, 
-                                const Handle(TopoDS_TShape)& T) const
+                                const Handle(TopoDS_TShape)& T)
 {
   S.TShape(T);
   S.Location(TopLoc_Location());
@@ -49,7 +49,7 @@ void TopoDS_Builder::MakeShape (TopoDS_Shape& S,
 //=======================================================================
 
 void TopoDS_Builder::Add (TopoDS_Shape& aShape, 
-                          const TopoDS_Shape& aComponent) const
+                          const TopoDS_Shape& aComponent)
 {
   // From now the Component cannot be edited
   aComponent.TShape()->Free(Standard_False);
@@ -126,7 +126,7 @@ void TopoDS_Builder::Add (TopoDS_Shape& aShape,
 //=======================================================================
 
 void TopoDS_Builder::Remove (TopoDS_Shape& aShape, 
-                             const TopoDS_Shape& aComponent) const
+                             const TopoDS_Shape& aComponent)
 {
   // check  if aShape  is  not Frozen
   TopoDS_FrozenShape_Raise_if (!aShape.Free(),"TopoDS_Builder::Remove");
diff --git a/src/TopoDS/TopoDS_Builder.hxx b/src/TopoDS/TopoDS_Builder.hxx
index 6aa8f95e5f..eac1608331 100644
--- a/src/TopoDS/TopoDS_Builder.hxx
+++ b/src/TopoDS/TopoDS_Builder.hxx
@@ -45,9 +45,6 @@ class TopoDS_Compound;
 //! The Remove  method  removes a  Shape from an other
 //! Shape.
 //!
-//! The methods in Builder are not static. They can be
-//! redefined in inherited builders.
-//!
 //! This   Builder does not  provide   methods to Make
 //! Vertices,  Edges, Faces,  Shells  or Solids. These
 //! methods are  provided  in  the inherited  Builders
@@ -80,30 +77,30 @@ public:
 
   
   //! Make an empty Wire.
-    void MakeWire (TopoDS_Wire& W) const;
+    static void MakeWire (TopoDS_Wire& W);
   
   //! Make an empty Shell.
-    void MakeShell (TopoDS_Shell& S) const;
+    static void MakeShell (TopoDS_Shell& S);
   
   //! Make a Solid covering the whole 3D space.
-    void MakeSolid (TopoDS_Solid& S) const;
+    static void MakeSolid (TopoDS_Solid& S);
   
   //! Make an empty Composite Solid.
-    void MakeCompSolid (TopoDS_CompSolid& C) const;
+    static void MakeCompSolid (TopoDS_CompSolid& C);
   
   //! Make an empty Compound.
-    void MakeCompound (TopoDS_Compound& C) const;
+    static void MakeCompound (TopoDS_Compound& C);
   
   //! Add the Shape C in the Shape S.
   //! Exceptions
   //! - TopoDS_FrozenShape if S is not free and cannot be modified.
   //! - TopoDS__UnCompatibleShapes if S and C are not compatible.
-  Standard_EXPORT void Add (TopoDS_Shape& S, const TopoDS_Shape& C) const;
+  Standard_EXPORT static void Add (TopoDS_Shape& S, const TopoDS_Shape& C);
   
   //! Remove the Shape C from the Shape S.
   //! Exceptions
   //! TopoDS_FrozenShape if S is frozen and cannot be modified.
-  Standard_EXPORT void Remove (TopoDS_Shape& S, const TopoDS_Shape& C) const;
+  Standard_EXPORT static void Remove (TopoDS_Shape& S, const TopoDS_Shape& C);
 
 
 
@@ -113,7 +110,7 @@ protected:
   
   //! The basic method to make  a Shape, used by all the
   //! Make methods.
-  Standard_EXPORT void MakeShape (TopoDS_Shape& S, const Handle(TopoDS_TShape)& T) const;
+  Standard_EXPORT void static MakeShape (TopoDS_Shape& S, const Handle(TopoDS_TShape)& T);
 
 
 
diff --git a/src/TopoDS/TopoDS_Builder.lxx b/src/TopoDS/TopoDS_Builder.lxx
index b5286e506c..d24206d004 100644
--- a/src/TopoDS/TopoDS_Builder.lxx
+++ b/src/TopoDS/TopoDS_Builder.lxx
@@ -31,7 +31,7 @@
 //purpose  : Make an empty wire
 //=======================================================================
 
-inline void TopoDS_Builder::MakeWire (TopoDS_Wire& W) const
+inline void TopoDS_Builder::MakeWire (TopoDS_Wire& W)
 {
   Handle(TopoDS_TWire) TW = new TopoDS_TWire();
   MakeShape(W,TW);
@@ -43,7 +43,7 @@ inline void TopoDS_Builder::MakeWire (TopoDS_Wire& W) const
 //purpose  : Make an empty Shell
 //=======================================================================
 
-inline void TopoDS_Builder::MakeShell (TopoDS_Shell& S) const
+inline void TopoDS_Builder::MakeShell (TopoDS_Shell& S)
 {
   Handle(TopoDS_TShell) TS = new TopoDS_TShell();
   MakeShape(S,TS);
@@ -54,7 +54,7 @@ inline void TopoDS_Builder::MakeShell (TopoDS_Shell& S) const
 //purpose  : Make an empty Solid
 //=======================================================================
 
-inline void TopoDS_Builder::MakeSolid (TopoDS_Solid& S) const
+inline void TopoDS_Builder::MakeSolid (TopoDS_Solid& S)
 {
   Handle(TopoDS_TSolid) TS = new TopoDS_TSolid();
   MakeShape(S,TS);
@@ -65,7 +65,7 @@ inline void TopoDS_Builder::MakeSolid (TopoDS_Solid& S) const
 //purpose  : Make an empty CompSolid
 //=======================================================================
 
-inline void TopoDS_Builder::MakeCompSolid (TopoDS_CompSolid& C) const
+inline void TopoDS_Builder::MakeCompSolid (TopoDS_CompSolid& C)
 {
   Handle(TopoDS_TCompSolid) TC = new TopoDS_TCompSolid();
   MakeShape(C,TC);
@@ -77,7 +77,7 @@ inline void TopoDS_Builder::MakeCompSolid (TopoDS_CompSolid& C) const
 //purpose  : Make an empty Compound
 //=======================================================================
 
-inline void TopoDS_Builder::MakeCompound (TopoDS_Compound& C) const
+inline void TopoDS_Builder::MakeCompound (TopoDS_Compound& C)
 {
   Handle(TopoDS_TCompound) TC = new TopoDS_TCompound();
   MakeShape(C,TC);
-- 
2.19.1.windows.1

