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:
Peter Lama
2017-04-17 20:33:29 -04:00
committed by wmayer
parent ea3d86b735
commit a75a98ef27
141 changed files with 2198 additions and 2208 deletions

View File

@@ -73,7 +73,7 @@
#include "TopoShapeEdgePy.h"
namespace Part {
extern const Py::Object makeGeometryCurvePy(const Handle_Geom_Curve& c);
extern const Py::Object makeGeometryCurvePy(const Handle(Geom_Curve)& c);
}
using namespace Part;
@@ -100,8 +100,8 @@ int GeometryCurvePy::PyInit(PyObject* /*args*/, PyObject* /*kwd*/)
PyObject* GeometryCurvePy::toShape(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u,v;
@@ -115,7 +115,7 @@ PyObject* GeometryCurvePy::toShape(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -127,8 +127,8 @@ PyObject* GeometryCurvePy::toShape(PyObject *args)
PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
{
try {
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
if (c.IsNull()) {
PyErr_SetString(PartExceptionOCCError, "Geometry is not a curve");
return 0;
@@ -306,8 +306,8 @@ PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
PyObject* GeometryCurvePy::length(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u=c->FirstParameter();
@@ -321,7 +321,7 @@ PyObject* GeometryCurvePy::length(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -332,8 +332,8 @@ PyObject* GeometryCurvePy::length(PyObject *args)
PyObject* GeometryCurvePy::parameterAtDistance(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double abscissa;
@@ -347,7 +347,7 @@ PyObject* GeometryCurvePy::parameterAtDistance(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -358,8 +358,8 @@ PyObject* GeometryCurvePy::parameterAtDistance(PyObject *args)
PyObject* GeometryCurvePy::value(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u;
@@ -370,7 +370,7 @@ PyObject* GeometryCurvePy::value(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -381,8 +381,8 @@ PyObject* GeometryCurvePy::value(PyObject *args)
PyObject* GeometryCurvePy::tangent(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u;
@@ -400,7 +400,7 @@ PyObject* GeometryCurvePy::tangent(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -411,8 +411,8 @@ PyObject* GeometryCurvePy::tangent(PyObject *args)
PyObject* GeometryCurvePy::normal(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u;
@@ -425,7 +425,7 @@ PyObject* GeometryCurvePy::normal(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -436,8 +436,8 @@ PyObject* GeometryCurvePy::normal(PyObject *args)
PyObject* GeometryCurvePy::curvature(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u;
@@ -449,7 +449,7 @@ PyObject* GeometryCurvePy::curvature(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -460,8 +460,8 @@ PyObject* GeometryCurvePy::curvature(PyObject *args)
PyObject* GeometryCurvePy::centerOfCurvature(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u;
@@ -474,7 +474,7 @@ PyObject* GeometryCurvePy::centerOfCurvature(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -485,8 +485,8 @@ PyObject* GeometryCurvePy::centerOfCurvature(PyObject *args)
PyObject* GeometryCurvePy::parameter(PyObject *args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
PyObject *p;
@@ -500,7 +500,7 @@ PyObject* GeometryCurvePy::parameter(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -516,23 +516,23 @@ PyObject* GeometryCurvePy::makeRuledSurface(PyObject *args)
return 0;
try {
Handle_Geom_Curve aCrv1 = Handle_Geom_Curve::DownCast(getGeometryPtr()->handle());
Handle(Geom_Curve) aCrv1 = Handle(Geom_Curve)::DownCast(getGeometryPtr()->handle());
GeometryCurvePy* c = static_cast<GeometryCurvePy*>(curve);
Handle_Geom_Curve aCrv2 = Handle_Geom_Curve::DownCast(c->getGeometryPtr()->handle());
Handle_Geom_Surface aSurf = GeomFill::Surface (aCrv1, aCrv2);
Handle(Geom_Curve) aCrv2 = Handle(Geom_Curve)::DownCast(c->getGeometryPtr()->handle());
Handle(Geom_Surface) aSurf = GeomFill::Surface (aCrv1, aCrv2);
if (aSurf.IsNull()) {
PyErr_SetString(PartExceptionOCCError, "Failed to create ruled surface");
return 0;
}
// check the result surface type
if (aSurf->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface))) {
Handle_Geom_RectangularTrimmedSurface aTSurf =
Handle_Geom_RectangularTrimmedSurface::DownCast(aSurf);
Handle(Geom_RectangularTrimmedSurface) aTSurf =
Handle(Geom_RectangularTrimmedSurface)::DownCast(aSurf);
return new RectangularTrimmedSurfacePy(new GeomTrimmedSurface(aTSurf));
}
else if (aSurf->IsKind(STANDARD_TYPE(Geom_BSplineSurface))) {
Handle_Geom_BSplineSurface aBSurf =
Handle_Geom_BSplineSurface::DownCast(aSurf);
Handle(Geom_BSplineSurface) aBSurf =
Handle(Geom_BSplineSurface)::DownCast(aSurf);
return new BSplineSurfacePy(new GeomBSplineSurface(aBSurf));
}
else {
@@ -542,7 +542,7 @@ PyObject* GeometryCurvePy::makeRuledSurface(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -556,14 +556,14 @@ PyObject* GeometryCurvePy::intersect2d(PyObject *args)
return 0;
try {
Handle_Geom_Curve self = Handle_Geom_Curve::DownCast(getGeometryPtr()->handle());
Handle_Geom_Curve curv = Handle_Geom_Curve::DownCast(static_cast<GeometryPy*>(c)->
Handle(Geom_Curve) self = Handle(Geom_Curve)::DownCast(getGeometryPtr()->handle());
Handle(Geom_Curve) curv = Handle(Geom_Curve)::DownCast(static_cast<GeometryPy*>(c)->
getGeometryPtr()->handle());
Handle_Geom_Plane plane = Handle_Geom_Plane::DownCast(static_cast<GeometryPy*>(p)->
Handle(Geom_Plane) plane = Handle(Geom_Plane)::DownCast(static_cast<GeometryPy*>(p)->
getGeometryPtr()->handle());
Handle_Geom2d_Curve curv1 = GeomAPI::To2d(self, plane->Pln());
Handle_Geom2d_Curve curv2 = GeomAPI::To2d(curv, plane->Pln());
Handle(Geom2d_Curve) curv1 = GeomAPI::To2d(self, plane->Pln());
Handle(Geom2d_Curve) curv2 = GeomAPI::To2d(curv, plane->Pln());
Geom2dAPI_InterCurveCurve intCC(curv1, curv2);
int nbPoints = intCC.NbPoints();
Py::List list;
@@ -577,7 +577,7 @@ PyObject* GeometryCurvePy::intersect2d(PyObject *args)
return Py::new_reference_to(list);
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -585,8 +585,8 @@ PyObject* GeometryCurvePy::intersect2d(PyObject *args)
PyObject* GeometryCurvePy::toBSpline(PyObject * args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u,v;
@@ -599,7 +599,7 @@ PyObject* GeometryCurvePy::toBSpline(PyObject * args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -610,8 +610,8 @@ PyObject* GeometryCurvePy::toBSpline(PyObject * args)
PyObject* GeometryCurvePy::toNurbs(PyObject * args)
{
Handle_Geom_Geometry g = getGeometryPtr()->handle();
Handle_Geom_Curve c = Handle_Geom_Curve::DownCast(g);
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
try {
if (!c.IsNull()) {
double u,v;
@@ -624,7 +624,7 @@ PyObject* GeometryCurvePy::toNurbs(PyObject * args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -661,7 +661,7 @@ PyObject* GeometryCurvePy::approximateBSpline(PyObject *args)
absShape = GeomAbs_C2;
try {
Handle_Geom_Curve self = Handle_Geom_Curve::DownCast(getGeometryPtr()->handle());
Handle(Geom_Curve) self = Handle(Geom_Curve)::DownCast(getGeometryPtr()->handle());
GeomConvert_ApproxCurve approx(self, tolerance, absShape, maxSegment, maxDegree);
if (approx.IsDone()) {
return new BSplineCurvePy(new GeomBSplineCurve(approx.Curve()));
@@ -678,7 +678,7 @@ PyObject* GeometryCurvePy::approximateBSpline(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PartExceptionOCCError, e->GetMessageString());
return 0;
}
@@ -686,7 +686,7 @@ PyObject* GeometryCurvePy::approximateBSpline(PyObject *args)
Py::String GeometryCurvePy::getContinuity(void) const
{
GeomAbs_Shape c = Handle_Geom_Curve::DownCast
GeomAbs_Shape c = Handle(Geom_Curve)::DownCast
(getGeometryPtr()->handle())->Continuity();
std::string str;
switch (c) {
@@ -720,13 +720,13 @@ Py::String GeometryCurvePy::getContinuity(void) const
Py::Float GeometryCurvePy::getFirstParameter(void) const
{
return Py::Float(Handle_Geom_Curve::DownCast
return Py::Float(Handle(Geom_Curve)::DownCast
(getGeometryPtr()->handle())->FirstParameter());
}
Py::Float GeometryCurvePy::getLastParameter(void) const
{
return Py::Float(Handle_Geom_Curve::DownCast
return Py::Float(Handle(Geom_Curve)::DownCast
(getGeometryPtr()->handle())->LastParameter());
}
@@ -744,14 +744,14 @@ int GeometryCurvePy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/
PyObject* GeometryCurvePy::intersectCS(PyObject *args)
{
Handle_Geom_Curve curve = Handle_Geom_Curve::DownCast(getGeometryPtr()->handle());
Handle(Geom_Curve) curve = Handle(Geom_Curve)::DownCast(getGeometryPtr()->handle());
try {
if (!curve.IsNull()) {
PyObject *p;
double prec = Precision::Confusion();
if (!PyArg_ParseTuple(args, "O!|d", &(Part::GeometrySurfacePy::Type), &p, &prec))
return 0;
Handle_Geom_Surface surf = Handle_Geom_Surface::DownCast(static_cast<GeometryPy*>(p)->getGeometryPtr()->handle());
Handle(Geom_Surface) surf = Handle(Geom_Surface)::DownCast(static_cast<GeometryPy*>(p)->getGeometryPtr()->handle());
GeomAPI_IntCS intersector(curve, surf);
if (!intersector.IsDone()) {
PyErr_SetString(PyExc_Exception, "Intersection of curve and surface failed");
@@ -765,7 +765,7 @@ PyObject* GeometryCurvePy::intersectCS(PyObject *args)
}
Py::List segments;
for (int i = 1; i <= intersector.NbSegments(); i++) {
Handle_Geom_Curve seg = intersector.Segment(i);
Handle(Geom_Curve) seg = intersector.Segment(i);
segments.append(makeGeometryCurvePy(seg));
}
@@ -776,7 +776,7 @@ PyObject* GeometryCurvePy::intersectCS(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PyExc_Exception, e->GetMessageString());
return 0;
}
@@ -787,14 +787,14 @@ PyObject* GeometryCurvePy::intersectCS(PyObject *args)
PyObject* GeometryCurvePy::intersectCC(PyObject *args)
{
Handle_Geom_Curve curve1 = Handle_Geom_Curve::DownCast(getGeometryPtr()->handle());
Handle(Geom_Curve) curve1 = Handle(Geom_Curve)::DownCast(getGeometryPtr()->handle());
try {
if (!curve1.IsNull()) {
PyObject *p;
double prec = Precision::Confusion();
if (!PyArg_ParseTuple(args, "O!|d", &(Part::GeometryCurvePy::Type), &p, &prec))
return 0;
Handle_Geom_Curve curve2 = Handle_Geom_Curve::DownCast(static_cast<GeometryPy*>(p)->getGeometryPtr()->handle());
Handle(Geom_Curve) curve2 = Handle(Geom_Curve)::DownCast(static_cast<GeometryPy*>(p)->getGeometryPtr()->handle());
GeomAPI_ExtremaCurveCurve intersector(curve1, curve2);
if (intersector.LowerDistance() > Precision::Confusion()) {
// No intersection
@@ -814,7 +814,7 @@ PyObject* GeometryCurvePy::intersectCC(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PyExc_Exception, e->GetMessageString());
return 0;
}
@@ -827,7 +827,7 @@ PyObject* GeometryCurvePy::intersectCC(PyObject *args)
PyObject* GeometryCurvePy::intersect(PyObject *args)
{
Handle_Geom_Curve curve = Handle_Geom_Curve::DownCast(getGeometryPtr()->handle());
Handle(Geom_Curve) curve = Handle(Geom_Curve)::DownCast(getGeometryPtr()->handle());
try {
if (!curve.IsNull()) {
PyObject *p;
@@ -845,7 +845,7 @@ PyObject* GeometryCurvePy::intersect(PyObject *args)
}
}
catch (Standard_Failure) {
Handle_Standard_Failure e = Standard_Failure::Caught();
Handle(Standard_Failure) e = Standard_Failure::Caught();
PyErr_SetString(PyExc_Exception, e->GetMessageString());
return 0;
}