0026460: Implicit cast to TopoDS_Shape compilation error due to ambiguous conversion
authorcshorler <cshorler@googlemail.com>
Thu, 13 Aug 2015 07:52:52 +0000 (10:52 +0300)
committerski <ski@opencascade.com>
Thu, 13 Aug 2015 07:57:04 +0000 (10:57 +0300)
- make operator TopoDS_Shape() cast a "non-const" member function
- make operator TopoDS_*() cast "non-const" when mutating behaviour is possible
- align derived class methods and overrides with the above changes

fix compilation for CR26460
- make argument for IsWRCase2 (non-const) BRepAlgoAPI_BooleanOperation&

32 files changed:
src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx
src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.hxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.hxx
src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cxx
src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.hxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.hxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.hxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.hxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cxx
src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.hxx
src/BRepLib/BRepLib_MakeEdge.cxx
src/BRepLib/BRepLib_MakeEdge.hxx
src/BRepLib/BRepLib_MakeEdge2d.cxx
src/BRepLib/BRepLib_MakeEdge2d.hxx
src/BRepLib/BRepLib_MakePolygon.cxx
src/BRepLib/BRepLib_MakePolygon.hxx
src/BRepLib/BRepLib_MakeShape.cxx
src/BRepLib/BRepLib_MakeShape.hxx
src/BRepLib/BRepLib_MakeSolid.cxx
src/BRepLib/BRepLib_MakeSolid.hxx
src/BRepLib/BRepLib_MakeVertex.cxx
src/BRepLib/BRepLib_MakeVertex.hxx
src/BRepLib/BRepLib_MakeWire.cxx
src/BRepLib/BRepLib_MakeWire.hxx
src/QANewBRepNaming/QANewBRepNaming_BooleanOperationFeat.cxx
src/QANewBRepNaming/QANewBRepNaming_BooleanOperationFeat.hxx

index ecd7fdf..e2b5c05 100644 (file)
@@ -118,7 +118,7 @@ void BRepAlgoAPI_Algo::UserBreak() const
 //function : Shape
 //purpose  : 
 //=======================================================================
-const TopoDS_Shape& BRepAlgoAPI_Algo::Shape() const
+const TopoDS_Shape& BRepAlgoAPI_Algo::Shape()
 {
   return myShape;
 }
index 158dae3..6e890e6 100644 (file)
@@ -58,7 +58,7 @@ public:
   //! Set the Progress Indicator object.
   Standard_EXPORT void SetProgressIndicator (const Handle(Message_ProgressIndicator)& theObj);
   
-  Standard_EXPORT virtual const TopoDS_Shape& Shape() const Standard_OVERRIDE;
+  Standard_EXPORT virtual const TopoDS_Shape& Shape() Standard_OVERRIDE;
 
 
 
index 71fdefd..e1c467e 100644 (file)
@@ -875,7 +875,7 @@ BRepBuilderAPI_EdgeError BRepBuilderAPI_MakeEdge::Error() const
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Edge&  BRepBuilderAPI_MakeEdge::Edge()const 
+const TopoDS_Edge&  BRepBuilderAPI_MakeEdge::Edge() 
 {
   return myMakeEdge.Edge();
 }
@@ -909,7 +909,7 @@ const TopoDS_Vertex&  BRepBuilderAPI_MakeEdge::Vertex2()const
 //purpose  : 
 //=======================================================================
 
-BRepBuilderAPI_MakeEdge::operator TopoDS_Edge() const
+BRepBuilderAPI_MakeEdge::operator TopoDS_Edge()
 {
   return Edge();
 }
index 7c5d852..20150a9 100644 (file)
@@ -250,8 +250,8 @@ public:
 
   //! Returns the constructed edge.
   //! Exceptions StdFail_NotDone if the edge is not built.
-  Standard_EXPORT const TopoDS_Edge& Edge() const;
-Standard_EXPORT operator TopoDS_Edge() const;
+  Standard_EXPORT const TopoDS_Edge& Edge();
+  Standard_EXPORT operator TopoDS_Edge();
   
   //! Returns the first vertex of the edge. May be Null.
   Standard_EXPORT const TopoDS_Vertex& Vertex1() const;
index 5e15332..1a7de2f 100644 (file)
@@ -617,7 +617,7 @@ BRepBuilderAPI_EdgeError BRepBuilderAPI_MakeEdge2d::Error() const
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Edge&  BRepBuilderAPI_MakeEdge2d::Edge()const 
+const TopoDS_Edge&  BRepBuilderAPI_MakeEdge2d::Edge()
 {
   return myMakeEdge2d.Edge();
 }
@@ -651,7 +651,7 @@ const TopoDS_Vertex&  BRepBuilderAPI_MakeEdge2d::Vertex2()const
 //purpose  : 
 //=======================================================================
 
-BRepBuilderAPI_MakeEdge2d::operator TopoDS_Edge() const
+BRepBuilderAPI_MakeEdge2d::operator TopoDS_Edge()
 {
   return Edge();
 }
index 95d373b..44bac00 100644 (file)
@@ -149,8 +149,8 @@ public:
   //! Returns the error description when NotDone.
   Standard_EXPORT BRepBuilderAPI_EdgeError Error() const;
   
-  Standard_EXPORT const TopoDS_Edge& Edge() const;
-Standard_EXPORT operator TopoDS_Edge() const;
+  Standard_EXPORT const TopoDS_Edge& Edge();
+  Standard_EXPORT operator TopoDS_Edge();
   
   //! Returns the first vertex of the edge. May be Null.
   Standard_EXPORT const TopoDS_Vertex& Vertex1() const;
index 1f05a6d..15ca15f 100644 (file)
@@ -236,7 +236,7 @@ const TopoDS_Edge&  BRepBuilderAPI_MakePolygon::Edge()const
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Wire&  BRepBuilderAPI_MakePolygon::Wire()const 
+const TopoDS_Wire&  BRepBuilderAPI_MakePolygon::Wire()
 {
   return myMakePolygon.Wire();
 }
@@ -256,7 +256,7 @@ BRepBuilderAPI_MakePolygon::operator TopoDS_Edge() const
 //purpose  : 
 //=======================================================================
 
-BRepBuilderAPI_MakePolygon::operator TopoDS_Wire() const
+BRepBuilderAPI_MakePolygon::operator TopoDS_Wire()
 {
   return Wire();
 }
index 1a84d30..0753ed4 100644 (file)
@@ -168,8 +168,8 @@ Standard_EXPORT operator TopoDS_Edge() const;
   //! Exceptions
   //! StdFail_NotDone if the wire is not built, i.e. if fewer than
   //! two vertices have been chained together by this construction algorithm.
-  Standard_EXPORT const TopoDS_Wire& Wire() const;
-Standard_EXPORT operator TopoDS_Wire() const;
+  Standard_EXPORT const TopoDS_Wire& Wire();
+  Standard_EXPORT operator TopoDS_Wire();
 
 
 
index 119c542..9572753 100644 (file)
@@ -49,7 +49,7 @@ void BRepBuilderAPI_MakeShape::Build()
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Shape&  BRepBuilderAPI_MakeShape::Shape() const
+const TopoDS_Shape&  BRepBuilderAPI_MakeShape::Shape()
 {
   if (!IsDone()) {
     // the following is const cast away
@@ -65,7 +65,7 @@ const TopoDS_Shape&  BRepBuilderAPI_MakeShape::Shape() const
 //purpose  : 
 //=======================================================================
 
-BRepBuilderAPI_MakeShape::operator TopoDS_Shape() const
+BRepBuilderAPI_MakeShape::operator TopoDS_Shape()
 {
   return Shape();
 }
index ab87f3e..acc3160 100644 (file)
@@ -50,8 +50,8 @@ Standard_EXPORT virtual ~BRepBuilderAPI_MakeShape(){Delete() ; }
   
   //! Returns a shape built by the shape construction algorithm.
   //! Raises exception StdFail_NotDone if the shape was not built.
-  Standard_EXPORT virtual const TopoDS_Shape& Shape() const;
-Standard_EXPORT operator TopoDS_Shape() const;
+  Standard_EXPORT virtual const TopoDS_Shape& Shape();
+  Standard_EXPORT operator TopoDS_Shape();
   
   //! Returns the  list   of shapes generated   from the
   //! shape <S>.
index f523104..e796d86 100644 (file)
@@ -155,7 +155,7 @@ Standard_Boolean BRepBuilderAPI_MakeSolid::IsDone() const
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Solid&  BRepBuilderAPI_MakeSolid::Solid()const 
+const TopoDS_Solid&  BRepBuilderAPI_MakeSolid::Solid()
 {
   return myMakeSolid.Solid();
 }
@@ -167,7 +167,7 @@ const TopoDS_Solid&  BRepBuilderAPI_MakeSolid::Solid()const
 //purpose  : 
 //=======================================================================
 
-BRepBuilderAPI_MakeSolid::operator TopoDS_Solid() const
+BRepBuilderAPI_MakeSolid::operator TopoDS_Solid()
 {
   return Solid();
 }
index 8e4d275..90c14a3 100644 (file)
@@ -117,8 +117,8 @@ public:
   Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE;
   
   //! Returns the new Solid.
-  Standard_EXPORT const TopoDS_Solid& Solid() const;
-Standard_EXPORT operator TopoDS_Solid() const;
+  Standard_EXPORT const TopoDS_Solid& Solid();
+  Standard_EXPORT operator TopoDS_Solid();
   
   Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& S) Standard_OVERRIDE;
 
index 6ceb7e4..8620832 100644 (file)
@@ -41,7 +41,7 @@ BRepBuilderAPI_MakeVertex::BRepBuilderAPI_MakeVertex(const gp_Pnt& P)
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Vertex&  BRepBuilderAPI_MakeVertex::Vertex()const 
+const TopoDS_Vertex&  BRepBuilderAPI_MakeVertex::Vertex()
 {
   return myMakeVertex.Vertex();
 }
@@ -53,7 +53,7 @@ const TopoDS_Vertex&  BRepBuilderAPI_MakeVertex::Vertex()const
 //=======================================================================
 
 
-BRepBuilderAPI_MakeVertex::operator TopoDS_Vertex() const
+BRepBuilderAPI_MakeVertex::operator TopoDS_Vertex()
 {
   return Vertex();
 }
index c5b48b9..3356af3 100644 (file)
@@ -50,8 +50,8 @@ public:
   Standard_EXPORT BRepBuilderAPI_MakeVertex(const gp_Pnt& P);
   
   //! Returns the constructed vertex.
-  Standard_EXPORT const TopoDS_Vertex& Vertex() const;
-Standard_EXPORT operator TopoDS_Vertex() const;
+  Standard_EXPORT const TopoDS_Vertex& Vertex();
+  Standard_EXPORT operator TopoDS_Vertex();
 
 
 
index 896c588..4b0a5a6 100644 (file)
@@ -175,7 +175,7 @@ void  BRepBuilderAPI_MakeWire::Add(const TopTools_ListOfShape& L)
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Wire&  BRepBuilderAPI_MakeWire::Wire()const 
+const TopoDS_Wire&  BRepBuilderAPI_MakeWire::Wire()
 {
   return myMakeWire.Wire();
 }
@@ -208,7 +208,7 @@ const TopoDS_Vertex&  BRepBuilderAPI_MakeWire::Vertex()const
 //purpose  : 
 //=======================================================================
 
-BRepBuilderAPI_MakeWire::operator TopoDS_Wire() const
+BRepBuilderAPI_MakeWire::operator TopoDS_Wire()
 {
   return Wire();
 }
index 759bde5..97f8f90 100644 (file)
@@ -160,8 +160,8 @@ public:
   //! Returns the constructed wire; or the part of the wire
   //! under construction already built.
   //! Exceptions StdFail_NotDone if a wire is not built.
-  Standard_EXPORT const TopoDS_Wire& Wire() const;
-Standard_EXPORT operator TopoDS_Wire() const;
+  Standard_EXPORT const TopoDS_Wire& Wire();
+  Standard_EXPORT operator TopoDS_Wire();
   
   //! Returns the last edge added to the wire under construction.
   //! Warning
index e8b9985..6a3d8d5 100644 (file)
@@ -1214,7 +1214,7 @@ BRepLib_EdgeError BRepLib_MakeEdge::Error() const
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Edge&  BRepLib_MakeEdge::Edge()const 
+const TopoDS_Edge&  BRepLib_MakeEdge::Edge()
 {
   return TopoDS::Edge(Shape());
 }
@@ -1250,7 +1250,7 @@ const TopoDS_Vertex&  BRepLib_MakeEdge::Vertex2()const
 //purpose  : 
 //=======================================================================
 
-BRepLib_MakeEdge::operator TopoDS_Edge() const
+BRepLib_MakeEdge::operator TopoDS_Edge()
 {
   return Edge();
 }
index f192eaf..4b80180 100644 (file)
@@ -174,8 +174,8 @@ public:
   //! Returns the error description when NotDone.
   Standard_EXPORT BRepLib_EdgeError Error() const;
   
-  Standard_EXPORT const TopoDS_Edge& Edge() const;
-Standard_EXPORT operator TopoDS_Edge() const;
+  Standard_EXPORT const TopoDS_Edge& Edge();
+  Standard_EXPORT operator TopoDS_Edge();
   
   //! Returns the first vertex of the edge. May be Null.
   Standard_EXPORT const TopoDS_Vertex& Vertex1() const;
index e6f83ce..f04af3e 100644 (file)
@@ -738,7 +738,7 @@ BRepLib_EdgeError BRepLib_MakeEdge2d::Error() const
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Edge&  BRepLib_MakeEdge2d::Edge()const 
+const TopoDS_Edge&  BRepLib_MakeEdge2d::Edge()
 {
   return TopoDS::Edge(Shape());
 }
@@ -774,7 +774,7 @@ const TopoDS_Vertex&  BRepLib_MakeEdge2d::Vertex2()const
 //purpose  : 
 //=======================================================================
 
-BRepLib_MakeEdge2d::operator TopoDS_Edge() const
+BRepLib_MakeEdge2d::operator TopoDS_Edge()
 {
   return Edge();
 }
index 85fb341..e686036 100644 (file)
@@ -146,8 +146,8 @@ public:
   //! Returns the error description when NotDone.
   Standard_EXPORT BRepLib_EdgeError Error() const;
   
-  Standard_EXPORT const TopoDS_Edge& Edge() const;
-Standard_EXPORT operator TopoDS_Edge() const;
+  Standard_EXPORT const TopoDS_Edge& Edge();
+  Standard_EXPORT operator TopoDS_Edge();
   
   //! Returns the first vertex of the edge. May be Null.
   Standard_EXPORT const TopoDS_Vertex& Vertex1() const;
index a3be9f6..18965a8 100644 (file)
@@ -271,7 +271,7 @@ const TopoDS_Edge&  BRepLib_MakePolygon::Edge()const
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Wire&  BRepLib_MakePolygon::Wire()const 
+const TopoDS_Wire&  BRepLib_MakePolygon::Wire() 
 {
   return TopoDS::Wire(Shape());
 }
@@ -291,7 +291,7 @@ BRepLib_MakePolygon::operator TopoDS_Edge() const
 //purpose  : 
 //=======================================================================
 
-BRepLib_MakePolygon::operator TopoDS_Wire() const
+BRepLib_MakePolygon::operator TopoDS_Wire()
 {
   return Wire();
 }
index 0ebc42b..085cd9e 100644 (file)
@@ -87,8 +87,8 @@ public:
   Standard_EXPORT const TopoDS_Edge& Edge() const;
 Standard_EXPORT operator TopoDS_Edge() const;
   
-  Standard_EXPORT const TopoDS_Wire& Wire() const;
-Standard_EXPORT operator TopoDS_Wire() const;
+  Standard_EXPORT const TopoDS_Wire& Wire();
+  Standard_EXPORT operator TopoDS_Wire();
 
 
 
index 2ddbad2..c8df93f 100644 (file)
@@ -43,7 +43,7 @@ void BRepLib_MakeShape::Build()
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Shape&  BRepLib_MakeShape::Shape() const
+const TopoDS_Shape&  BRepLib_MakeShape::Shape()
 {
   if (!IsDone()) {
     // the following is const cast away
@@ -59,7 +59,7 @@ const TopoDS_Shape&  BRepLib_MakeShape::Shape() const
 //purpose  : 
 //=======================================================================
 
-BRepLib_MakeShape::operator TopoDS_Shape() const
+BRepLib_MakeShape::operator TopoDS_Shape()
 {
   return Shape();
 }
index 461b4c8..64c151b 100644 (file)
@@ -49,8 +49,8 @@ public:
   //! may be redefined.
   Standard_EXPORT void Build();
   
-  Standard_EXPORT const TopoDS_Shape& Shape() const;
-Standard_EXPORT operator TopoDS_Shape() const;
+  Standard_EXPORT const TopoDS_Shape& Shape();
+  Standard_EXPORT operator TopoDS_Shape();
   
   //! returns the status of the Face after
   //! the shape creation.
index 2342ac3..178fb9d 100644 (file)
@@ -170,7 +170,7 @@ void  BRepLib_MakeSolid::Add(const TopoDS_Shell& S)
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Solid&  BRepLib_MakeSolid::Solid()const 
+const TopoDS_Solid&  BRepLib_MakeSolid::Solid()
 {
   return TopoDS::Solid(Shape());
 }
@@ -182,7 +182,7 @@ const TopoDS_Solid&  BRepLib_MakeSolid::Solid()const
 //purpose  : 
 //=======================================================================
 
-BRepLib_MakeSolid::operator TopoDS_Solid() const
+BRepLib_MakeSolid::operator TopoDS_Solid()
 {
   return TopoDS::Solid(Shape());
 }
index d1be543..b476db8 100644 (file)
@@ -64,8 +64,8 @@ public:
   Standard_EXPORT void Add (const TopoDS_Shell& S);
   
   //! Returns the new Solid.
-  Standard_EXPORT const TopoDS_Solid& Solid() const;
-Standard_EXPORT operator TopoDS_Solid() const;
+  Standard_EXPORT const TopoDS_Solid& Solid();
+  Standard_EXPORT operator TopoDS_Solid();
   
   //! returns the status of the Face after
   //! the shape creation.
index 8dcc1bb..f76871b 100644 (file)
@@ -39,7 +39,7 @@ BRepLib_MakeVertex::BRepLib_MakeVertex(const gp_Pnt& P)
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Vertex&  BRepLib_MakeVertex::Vertex()const 
+const TopoDS_Vertex&  BRepLib_MakeVertex::Vertex() 
 {
   return TopoDS::Vertex(Shape());
 }
@@ -51,7 +51,7 @@ const TopoDS_Vertex&  BRepLib_MakeVertex::Vertex()const
 //=======================================================================
 
 
-BRepLib_MakeVertex::operator TopoDS_Vertex() const
+BRepLib_MakeVertex::operator TopoDS_Vertex()
 {
   return Vertex();
 }
index 64a0e11..a84d9c6 100644 (file)
@@ -36,8 +36,8 @@ public:
   
   Standard_EXPORT BRepLib_MakeVertex(const gp_Pnt& P);
   
-  Standard_EXPORT const TopoDS_Vertex& Vertex() const;
-Standard_EXPORT operator TopoDS_Vertex() const;
+  Standard_EXPORT const TopoDS_Vertex& Vertex();
+  Standard_EXPORT operator TopoDS_Vertex();
 
 
 
index 6c82af2..ef02e24 100644 (file)
@@ -396,7 +396,7 @@ void  BRepLib_MakeWire::Add(const TopoDS_Edge& E)
 //purpose  : 
 //=======================================================================
 
-const TopoDS_Wire&  BRepLib_MakeWire::Wire()const 
+const TopoDS_Wire&  BRepLib_MakeWire::Wire()
 {
   return TopoDS::Wire(Shape());
 }
@@ -429,7 +429,7 @@ const TopoDS_Vertex&  BRepLib_MakeWire::Vertex()const
 //purpose  : 
 //=======================================================================
 
-BRepLib_MakeWire::operator TopoDS_Wire() const
+BRepLib_MakeWire::operator TopoDS_Wire()
 {
   return Wire();
 }
index e46a760..11c58fc 100644 (file)
@@ -117,8 +117,8 @@ public:
   Standard_EXPORT BRepLib_WireError Error() const;
   
   //! Returns the new wire.
-  Standard_EXPORT const TopoDS_Wire& Wire() const;
-Standard_EXPORT operator TopoDS_Wire() const;
+  Standard_EXPORT const TopoDS_Wire& Wire();
+  Standard_EXPORT operator TopoDS_Wire();
   
   //! Returns the last edge added to the wire.
   Standard_EXPORT const TopoDS_Edge& Edge() const;
index 529d26c..d7d3a48 100644 (file)
@@ -1528,7 +1528,7 @@ void QANewBRepNaming_BooleanOperationFeat::LoadSymmetricalEdges (BRepAlgoAPI_Boo
 //function : ISWRCase2
 //purpose  : 
 //=======================================================================
-Standard_Boolean QANewBRepNaming_BooleanOperationFeat::IsWRCase2(const BRepAlgoAPI_BooleanOperation& MS) {
+Standard_Boolean QANewBRepNaming_BooleanOperationFeat::IsWRCase2(BRepAlgoAPI_BooleanOperation& MS) {
   const TopoDS_Shape& Result = MS.Shape();
   const TopAbs_ShapeEnum& ResType = ShapeType(Result);
   if(ResType  == TopAbs_COMPOUND || ResType >= TopAbs_FACE) return Standard_False;
index cab2154..114ea0c 100644 (file)
@@ -73,7 +73,7 @@ public:
   Standard_EXPORT static Standard_Boolean IsWRCase (const BRepAlgoAPI_BooleanOperation& theMS);
   
   //! Returns true if workaround case identified
-  Standard_EXPORT static Standard_Boolean IsWRCase2 (const BRepAlgoAPI_BooleanOperation& theMS);
+  Standard_EXPORT static Standard_Boolean IsWRCase2 (BRepAlgoAPI_BooleanOperation& MS);