Skip to content

Bump OCCT to 8.0.0-beta1 and migrate freshly-deprecated APIs#2

Merged
gsdali merged 1 commit into
mainfrom
feat/occt-8.0.0-beta1
May 2, 2026
Merged

Bump OCCT to 8.0.0-beta1 and migrate freshly-deprecated APIs#2
gsdali merged 1 commit into
mainfrom
feat/occt-8.0.0-beta1

Conversation

@gsdali
Copy link
Copy Markdown
Owner

@gsdali gsdali commented May 1, 2026

Summary

  • Bumps OCCT static dep from V8_0_0_rc5 to V8_0_0_beta1 (feature-freeze tag; final 8.0.0 planned 2026-05-07).
  • Migrates two new beta1 deprecation classes in src/occt_templot_io.cpp: Standard_False/True -> false/true (3 sites), and TColStd_IndexedDataMapOfStringString -> NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString> (2 sites in glTF/PLY writer calls).
  • No source changes elsewhere — our codebase touches none of the removed/renamed beta1 surfaces (BRepGraph, NCollection_Vector, IVtk SetTolerance, V3d grids).

What we get for free from the rebuild

  • PR #940 — BRepMesh_BaseMeshAlgo node-registration fix → better internal-vertex tracking under ot_mesh_shape.
  • PR #1195 — TopExp_Explorer::Clear() allocation reuse → hot-path win in our face-walk loops.
  • PR #1227 / #1247 — ShapeFix cycle rejection + DFS guards → eliminates stack-overflow class of bugs in ot_heal_shape* on shapes with shared sub-shapes.
  • PR #924 — BVH-accelerated polyhedra interference → O(log n) instead of pairwise scans.
  • PR #1212 — Lock-free NCollection_IncAllocator fast path.

Out of scope

The marquee "new mesh storage" feature (BRepGraph_MeshCache / BRepGraph_MeshView) is tied to the new BRepGraph data structure (parallel to TopoDS_Shape, not a drop-in cache). Adopting it is a multi-week rearchitecture and is left to its own initiative.

Test plan

  • OCCT 8.0.0 beta1 builds clean locally on macOS arm64 (50 static libs, 6874 headers, all 8 required toolkits resolved).
  • simpleOCCTVP rebuilds with zero warnings against beta1.
  • ctest 4/4 green on macOS arm64 (test_io, test_heal, test_viewer, test_render_data).
  • Linux CI build (Dockerfile.test) — run via PR checks.
  • Windows CI build — run via PR checks.

🤖 Generated with Claude Code

beta1 is the feature-freeze tag on the 8.0.0 line (final 8.0.0 planned
2026-05-07). The transition is source-compatible for our codebase: we
do not touch BRepGraph, NCollection_Vector, IVtk SetTolerance, V3d
grids, or any of the other removed/renamed surfaces. Two new
deprecation warnings did surface and are migrated here:

- Standard_False / Standard_True -> false / true (3 sites)
- TColStd_IndexedDataMapOfStringString ->
  NCollection_IndexedDataMap<TCollection_AsciiString, TCollection_AsciiString>
  (2 sites in glTF/PLY writer calls)

Transparent gains we get from the rebuild: BRepMesh_BaseMeshAlgo node
registration fix (#940), TopExp_Explorer::Clear() allocation reuse
(#1195), ShapeFix cycle/DFS guards eliminating stack overflow on shared
sub-shapes (#1227, #1247), BVH-accelerated polyhedra interference
(#924), and lock-free NCollection_IncAllocator fast path (#1212).

ctest 4/4 green on macOS arm64 (test_io, test_heal, test_viewer,
test_render_data).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gsdali gsdali merged commit 6552dbd into main May 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant