Use OCCT Handle macro for Handle_ classes
This is the result of running OCCT's upgrade script provided with OCCT 7.0. See https://www.opencascade.com/content/freecad-occt710-and-windows-rtti-data-missing#comment-form and https://www.forum.freecadweb.org/viewtopic.php?f=4&t=21405&start=120#p169019 for why this is necessary for OCCT >= 7.1
This commit is contained in:
@@ -66,7 +66,7 @@ int SurfaceOfExtrusionPy::PyInit(PyObject* args, PyObject* /*kwd*/)
|
||||
return -1;
|
||||
|
||||
GeometryPy* pcGeo = static_cast<GeometryPy*>(pGeom);
|
||||
Handle_Geom_Curve curve = Handle_Geom_Curve::DownCast
|
||||
Handle(Geom_Curve) curve = Handle(Geom_Curve)::DownCast
|
||||
(pcGeo->getGeometryPtr()->handle());
|
||||
if (curve.IsNull()) {
|
||||
PyErr_SetString(PyExc_TypeError, "geometry is not a curve");
|
||||
@@ -75,13 +75,13 @@ int SurfaceOfExtrusionPy::PyInit(PyObject* args, PyObject* /*kwd*/)
|
||||
|
||||
try {
|
||||
Base::Vector3d dir = static_cast<Base::VectorPy*>(pDir)->value();
|
||||
Handle_Geom_SurfaceOfLinearExtrusion curve2 = new Geom_SurfaceOfLinearExtrusion(curve,
|
||||
Handle(Geom_SurfaceOfLinearExtrusion) curve2 = new Geom_SurfaceOfLinearExtrusion(curve,
|
||||
gp_Dir(dir.x,dir.y,dir.z));
|
||||
getGeomSurfaceOfExtrusionPtr()->setHandle(curve2);
|
||||
return 0;
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle_Standard_Failure e = Standard_Failure::Caught();
|
||||
Handle(Standard_Failure) e = Standard_Failure::Caught();
|
||||
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
|
||||
return -1;
|
||||
}
|
||||
@@ -89,7 +89,7 @@ int SurfaceOfExtrusionPy::PyInit(PyObject* args, PyObject* /*kwd*/)
|
||||
|
||||
Py::Object SurfaceOfExtrusionPy::getDirection(void) const
|
||||
{
|
||||
Handle_Geom_SurfaceOfLinearExtrusion curve = Handle_Geom_SurfaceOfLinearExtrusion::DownCast
|
||||
Handle(Geom_SurfaceOfLinearExtrusion) curve = Handle(Geom_SurfaceOfLinearExtrusion)::DownCast
|
||||
(getGeometryPtr()->handle());
|
||||
const gp_Dir& dir = curve->Direction();
|
||||
return Py::Vector(Base::Vector3d(dir.X(),dir.Y(),dir.Z()));
|
||||
@@ -100,13 +100,13 @@ void SurfaceOfExtrusionPy::setDirection(Py::Object arg)
|
||||
PyObject* p = arg.ptr();
|
||||
if (PyObject_TypeCheck(p, &(Base::VectorPy::Type))) {
|
||||
Base::Vector3d dir = static_cast<Base::VectorPy*>(p)->value();
|
||||
Handle_Geom_SurfaceOfLinearExtrusion curve = Handle_Geom_SurfaceOfLinearExtrusion::DownCast
|
||||
Handle(Geom_SurfaceOfLinearExtrusion) curve = Handle(Geom_SurfaceOfLinearExtrusion)::DownCast
|
||||
(getGeometryPtr()->handle());
|
||||
curve->SetDirection(gp_Dir(dir.x,dir.y,dir.z));
|
||||
}
|
||||
else if (PyObject_TypeCheck(p, &PyTuple_Type)) {
|
||||
Base::Vector3d dir = Base::getVectorFromTuple<double>(p);
|
||||
Handle_Geom_SurfaceOfLinearExtrusion curve = Handle_Geom_SurfaceOfLinearExtrusion::DownCast
|
||||
Handle(Geom_SurfaceOfLinearExtrusion) curve = Handle(Geom_SurfaceOfLinearExtrusion)::DownCast
|
||||
(getGeometryPtr()->handle());
|
||||
curve->SetDirection(gp_Dir(dir.x,dir.y,dir.z));
|
||||
}
|
||||
@@ -127,19 +127,19 @@ void SurfaceOfExtrusionPy::setBasisCurve(Py::Object arg)
|
||||
PyObject* p = arg.ptr();
|
||||
if (PyObject_TypeCheck(p, &(GeometryPy::Type))) {
|
||||
GeometryPy* pcGeo = static_cast<GeometryPy*>(p);
|
||||
Handle_Geom_Curve curve = Handle_Geom_Curve::DownCast
|
||||
Handle(Geom_Curve) curve = Handle(Geom_Curve)::DownCast
|
||||
(pcGeo->getGeometryPtr()->handle());
|
||||
if (curve.IsNull()) {
|
||||
throw Py::TypeError("geometry is not a curve");
|
||||
}
|
||||
|
||||
try {
|
||||
Handle_Geom_SurfaceOfLinearExtrusion curve2 = Handle_Geom_SurfaceOfLinearExtrusion::DownCast
|
||||
Handle(Geom_SurfaceOfLinearExtrusion) curve2 = Handle(Geom_SurfaceOfLinearExtrusion)::DownCast
|
||||
(getGeometryPtr()->handle());
|
||||
curve2->SetBasisCurve(curve);
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle_Standard_Failure e = Standard_Failure::Caught();
|
||||
Handle(Standard_Failure) e = Standard_Failure::Caught();
|
||||
throw Py::Exception(e->GetMessageString());
|
||||
}
|
||||
}
|
||||
@@ -152,25 +152,25 @@ PyObject* SurfaceOfExtrusionPy::uIso(PyObject * args)
|
||||
return 0;
|
||||
|
||||
try {
|
||||
Handle_Geom_Surface surf = Handle_Geom_Surface::DownCast
|
||||
Handle(Geom_Surface) surf = Handle(Geom_Surface)::DownCast
|
||||
(getGeometryPtr()->handle());
|
||||
Handle_Geom_Curve c = surf->UIso(v);
|
||||
Handle(Geom_Curve) c = surf->UIso(v);
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) {
|
||||
Handle_Geom_TrimmedCurve aCurve = Handle_Geom_TrimmedCurve::DownCast(c);
|
||||
Handle(Geom_TrimmedCurve) aCurve = Handle(Geom_TrimmedCurve)::DownCast(c);
|
||||
return new GeometryCurvePy(new GeomTrimmedCurve(aCurve));
|
||||
}
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_BezierCurve))) {
|
||||
Handle_Geom_BezierCurve aCurve = Handle_Geom_BezierCurve::DownCast(c);
|
||||
Handle(Geom_BezierCurve) aCurve = Handle(Geom_BezierCurve)::DownCast(c);
|
||||
return new BezierCurvePy(new GeomBezierCurve(aCurve));
|
||||
}
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_BSplineCurve))) {
|
||||
Handle_Geom_BSplineCurve aCurve = Handle_Geom_BSplineCurve::DownCast(c);
|
||||
Handle(Geom_BSplineCurve) aCurve = Handle(Geom_BSplineCurve)::DownCast(c);
|
||||
return new BSplineCurvePy(new GeomBSplineCurve(aCurve));
|
||||
}
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_Line))) {
|
||||
Handle_Geom_Line aLine = Handle_Geom_Line::DownCast(c);
|
||||
Handle(Geom_Line) aLine = Handle(Geom_Line)::DownCast(c);
|
||||
GeomLine* line = new GeomLine();
|
||||
Handle_Geom_Line this_line = Handle_Geom_Line::DownCast
|
||||
Handle(Geom_Line) this_line = Handle(Geom_Line)::DownCast
|
||||
(line->handle());
|
||||
this_line->SetLin(aLine->Lin());
|
||||
return new LinePy(line);
|
||||
@@ -180,7 +180,7 @@ PyObject* SurfaceOfExtrusionPy::uIso(PyObject * args)
|
||||
return 0;
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle_Standard_Failure e = Standard_Failure::Caught();
|
||||
Handle(Standard_Failure) e = Standard_Failure::Caught();
|
||||
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
|
||||
return 0;
|
||||
}
|
||||
@@ -193,25 +193,25 @@ PyObject* SurfaceOfExtrusionPy::vIso(PyObject * args)
|
||||
return 0;
|
||||
|
||||
try {
|
||||
Handle_Geom_Surface surf = Handle_Geom_Surface::DownCast
|
||||
Handle(Geom_Surface) surf = Handle(Geom_Surface)::DownCast
|
||||
(getGeometryPtr()->handle());
|
||||
Handle_Geom_Curve c = surf->VIso(v);
|
||||
Handle(Geom_Curve) c = surf->VIso(v);
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_TrimmedCurve))) {
|
||||
Handle_Geom_TrimmedCurve aCurve = Handle_Geom_TrimmedCurve::DownCast(c);
|
||||
Handle(Geom_TrimmedCurve) aCurve = Handle(Geom_TrimmedCurve)::DownCast(c);
|
||||
return new GeometryCurvePy(new GeomTrimmedCurve(aCurve));
|
||||
}
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_BezierCurve))) {
|
||||
Handle_Geom_BezierCurve aCurve = Handle_Geom_BezierCurve::DownCast(c);
|
||||
Handle(Geom_BezierCurve) aCurve = Handle(Geom_BezierCurve)::DownCast(c);
|
||||
return new BezierCurvePy(new GeomBezierCurve(aCurve));
|
||||
}
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_BSplineCurve))) {
|
||||
Handle_Geom_BSplineCurve aCurve = Handle_Geom_BSplineCurve::DownCast(c);
|
||||
Handle(Geom_BSplineCurve) aCurve = Handle(Geom_BSplineCurve)::DownCast(c);
|
||||
return new BSplineCurvePy(new GeomBSplineCurve(aCurve));
|
||||
}
|
||||
if (c->IsKind(STANDARD_TYPE(Geom_Line))) {
|
||||
Handle_Geom_Line aLine = Handle_Geom_Line::DownCast(c);
|
||||
Handle(Geom_Line) aLine = Handle(Geom_Line)::DownCast(c);
|
||||
GeomLine* line = new GeomLine();
|
||||
Handle_Geom_Line this_curv = Handle_Geom_Line::DownCast
|
||||
Handle(Geom_Line) this_curv = Handle(Geom_Line)::DownCast
|
||||
(line->handle());
|
||||
this_curv->SetLin(aLine->Lin());
|
||||
return new LinePy(line);
|
||||
@@ -221,7 +221,7 @@ PyObject* SurfaceOfExtrusionPy::vIso(PyObject * args)
|
||||
return 0;
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle_Standard_Failure e = Standard_Failure::Caught();
|
||||
Handle(Standard_Failure) e = Standard_Failure::Caught();
|
||||
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user