0024023: Revamp the OCCT Handle -- downcast (automatic)
[occt.git] / src / FEmTool / FEmTool_Curve.cxx
index eb55106..a08d6b8 100644 (file)
@@ -77,7 +77,7 @@ FEmTool_Curve::FEmTool_Curve(const Standard_Integer Dimension,
 
   Standard_Real stenor = (myKnots->Value(IndexOfElement + 1) - myKnots->Value(IndexOfElement)) / 2.,
                 mfact;
-  Handle(PLib_HermitJacobi) myHermitJacobi = (*((Handle(PLib_HermitJacobi)*)&myBase));
+  Handle(PLib_HermitJacobi) myHermitJacobi = Handle(PLib_HermitJacobi)::DownCast (myBase);
 
   i1 = iBase;
   i2 = iBase + (myHermitJacobi->NivConstr() + 1) * myDimension;
@@ -117,7 +117,7 @@ FEmTool_Curve::FEmTool_Curve(const Standard_Integer Dimension,
   Standard_Real stenor = 2. / (myKnots->Value(IndexOfElement + 1) - myKnots->Value(IndexOfElement)),
                 mfact;
 
-  Handle(PLib_HermitJacobi) myHermitJacobi = (*((Handle(PLib_HermitJacobi)*)&myBase));
+  Handle(PLib_HermitJacobi) myHermitJacobi = Handle(PLib_HermitJacobi)::DownCast (myBase);
 
   i2 = Coeffs.LowerRow();
   Standard_Integer i3 = i2 + myHermitJacobi->NivConstr() + 1;
@@ -417,7 +417,7 @@ FEmTool_Curve::FEmTool_Curve(const Standard_Integer Dimension,
     (myBase->WorkDegree() + 1)*myDimension + 1;
   
   myBase->ReduceDegree(myDimension, deg, Tol, myCoeff.ChangeValue(Ptr), NewDegree, MaxError);
-  Handle(PLib_HermitJacobi) myHermitJacobi = (*((Handle(PLib_HermitJacobi)*)&myBase));
+  Handle(PLib_HermitJacobi) myHermitJacobi = Handle(PLib_HermitJacobi)::DownCast (myBase);
   
   NewDegree = Max(NewDegree, 2 * myHermitJacobi->NivConstr() + 1);