From 7f49c945b925c363809659bb612d94774388af51 Mon Sep 17 00:00:00 2001 From: Frozen Forest Reality Technologies Date: Wed, 24 Jun 2026 19:31:52 +0300 Subject: [PATCH] OCCT 8.0 Update Part 3 --- src/ifcgeom/kernels/opencascade/boolean_utils.cpp | 2 +- src/ifcgeom/kernels/opencascade/loop.cpp | 4 ++-- src/ifcgeom/kernels/opencascade/wire_utils.cpp | 4 ++-- src/serializers/SvgSerializer.cpp | 6 +++++- src/serializers/TtlWktSerializer.cpp | 10 ++++++---- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/ifcgeom/kernels/opencascade/boolean_utils.cpp b/src/ifcgeom/kernels/opencascade/boolean_utils.cpp index caa4f6dc24..b40822e5e4 100644 --- a/src/ifcgeom/kernels/opencascade/boolean_utils.cpp +++ b/src/ifcgeom/kernels/opencascade/boolean_utils.cpp @@ -1315,7 +1315,7 @@ bool IfcGeom::util::boolean_operation(const boolean_settings& settings, const To } if (has_open_shells) { - TopTools_IndexedMapOfShape faces; + NCollection_IndexedMap faces; TopExp::MapShapes(r, TopAbs_FACE, faces); for (TopExp_Explorer exp(a, TopAbs_FACE); exp.More(); exp.Next()) { auto& f = TopoDS::Face(exp.Current()); diff --git a/src/ifcgeom/kernels/opencascade/loop.cpp b/src/ifcgeom/kernels/opencascade/loop.cpp index 29d74f2c31..17294bad4f 100644 --- a/src/ifcgeom/kernels/opencascade/loop.cpp +++ b/src/ifcgeom/kernels/opencascade/loop.cpp @@ -40,8 +40,8 @@ namespace { const bool is_rational = !!bc->weights; - NCollection_Array1 Poles(0, bc->control_points.size() - 1); - NCollection_Array1 Weights(0, bc->control_points.size() - 1); + NCollection_Array1 Poles(0, (int)bc->control_points.size() - 1); + NCollection_Array1 Weights(0, (int)bc->control_points.size() - 1); NCollection_Array1 Knots(0, (int)bc->knots.size() - 1); NCollection_Array1 Mults(0, (int)bc->knots.size() - 1); int Degree = bc->degree; diff --git a/src/ifcgeom/kernels/opencascade/wire_utils.cpp b/src/ifcgeom/kernels/opencascade/wire_utils.cpp index 41b82c794b..638195136e 100644 --- a/src/ifcgeom/kernels/opencascade/wire_utils.cpp +++ b/src/ifcgeom/kernels/opencascade/wire_utils.cpp @@ -904,7 +904,7 @@ bool IfcGeom::util::convert_wire_to_faces(const TopoDS_Wire& w, TopoDS_Compound& } } - TopTools_ListOfShape results; + NCollection_List results; if (settings.use_wire_intersection_check && util::wire_intersections(w, results, settings)) { Logger::Root().Warning("GEO", 229, "Self-intersections with " + boost::lexical_cast(results.Extent()) + " cycles detected"); } else { @@ -919,7 +919,7 @@ bool IfcGeom::util::convert_wire_to_faces(const TopoDS_Wire& w, TopoDS_Compound& std::list> face_list; double max_area = 0.; - TopTools_ListIteratorOfListOfShape it(results); + NCollection_List::Iterator it(results); for (; it.More(); it.Next()) { const TopoDS_Wire& wire = TopoDS::Wire(it.Value()); if (!is_2d) { diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp index 1b27ce2159..e3ce6ea4b2 100644 --- a/src/serializers/SvgSerializer.cpp +++ b/src/serializers/SvgSerializer.cpp @@ -41,7 +41,11 @@ #include #include #include -#include + +#include +#include +#include + #include #include diff --git a/src/serializers/TtlWktSerializer.cpp b/src/serializers/TtlWktSerializer.cpp index ab6343fac4..ea4f7f3b74 100644 --- a/src/serializers/TtlWktSerializer.cpp +++ b/src/serializers/TtlWktSerializer.cpp @@ -22,7 +22,10 @@ #ifdef IFOPSH_WITH_OPENCASCADE #include "../ifcgeom/kernels/opencascade/OpenCascadeConversionResult.h" -#include +#include +#include +#include + #include #include #include @@ -408,14 +411,13 @@ void TtlWktSerializer::write(const IfcGeom::BRepElement* brep_obj) { for (int iter = 0; iter < 10; ++iter) { gp_Pln pln(gp_Pnt(0, 0, zmin + section_height + iter * (height - 1.) / 10.), gp::DZ()); - - Handle(TopTools_HSequenceOfShape) wires = new TopTools_HSequenceOfShape(); + opencascade::handle> wires = new NCollection_HSequence(); size_t N = 0; TopoDS_Iterator it(compound); // Iterate over components of compound to have better chance of matching section edges to closed wires for (; it.More(); it.Next()) { - Handle(TopTools_HSequenceOfShape) edges = new TopTools_HSequenceOfShape(); + opencascade::handle> edges = new NCollection_HSequence(); TopoDS_Shape result = BRepAlgoAPI_Section(it.Value(), pln); {