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:
@@ -171,14 +171,14 @@ App::DocumentObjectExecReturn *Draft::execute(void)
|
||||
// Edge is linear
|
||||
// Find midpoint of edge and create auxiliary plane through midpoint normal to edge
|
||||
gp_Pnt pm = c.Value((c.FirstParameter() + c.LastParameter()) / 2.0);
|
||||
Handle_Geom_Plane aux = new Geom_Plane(pm, gp_Dir(p2.X() - p1.X(), p2.Y() - p1.Y(), p2.Z() - p1.Z()));
|
||||
Handle(Geom_Plane) aux = new Geom_Plane(pm, gp_Dir(p2.X() - p1.X(), p2.Y() - p1.Y(), p2.Z() - p1.Z()));
|
||||
// Intersect plane with face. Is there no easier way?
|
||||
BRepAdaptor_Surface adapt(TopoDS::Face(face), Standard_False);
|
||||
Handle_Geom_Surface sf = adapt.Surface().Surface();
|
||||
Handle(Geom_Surface) sf = adapt.Surface().Surface();
|
||||
GeomAPI_IntSS intersector(aux, sf, Precision::Confusion());
|
||||
if (!intersector.IsDone())
|
||||
continue;
|
||||
Handle_Geom_Curve icurve = intersector.Line(1);
|
||||
Handle(Geom_Curve) icurve = intersector.Line(1);
|
||||
if (!icurve->IsKind(STANDARD_TYPE(Geom_Line)))
|
||||
continue;
|
||||
// TODO: How to extract the line from icurve without creating an edge first?
|
||||
@@ -306,7 +306,7 @@ App::DocumentObjectExecReturn *Draft::execute(void)
|
||||
return App::DocumentObject::StdReturn;
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle_Standard_Failure e = Standard_Failure::Caught();
|
||||
Handle(Standard_Failure) e = Standard_Failure::Caught();
|
||||
return new App::DocumentObjectExecReturn(e->GetMessageString());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user