OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
Loading...
Searching...
No Matches
OCCT-Light — Module Charter

This document lists the maintained OCCT-Light modules, their purpose, and build toggles. The source of truth for module registration is cmake/OCCTLRegistry.cmake.

Companion docs: ARCHITECTURE.md · ABI_PATTERNS.md · BREPGRAPH_AS_CANONICAL.md · BINDINGS.md.

1. Dependency shape

  • core is always enabled.
  • geom and topo are enabled by default.
  • Other modules are opt-in via OCCTL_BUILD_<MODULE> options.

2. Implemented modules

<tt>core</tt> (always on)

  • Purpose: runtime lifecycle, status/error model, base POD types.
  • Option: implicit (always linked).
  • Headers: occtl_core.h, umbrella occtl.h.

<tt>geom</tt> (default ON)

<tt>topo</tt> (default ON)

<tt>prim</tt> (default OFF)

<tt>text</tt> (default OFF)

  • Purpose: text measurement and text-to-shape topology generation.
  • Option: OCCTL_BUILD_TEXT (OFF).
  • Header: occtl_text.h.

<tt>bool</tt> (default OFF)

  • Purpose: boolean operations (fuse, cut, common, section, split) with history.
  • Option: OCCTL_BUILD_BOOL (OFF).
  • Header: occtl_bool.h.

<tt>mesh</tt> (default OFF)

  • Purpose: triangulation generation and mesh views/buffers.
  • Option: OCCTL_BUILD_MESH (OFF).
  • Header: occtl_mesh.h.

<tt>heal</tt> (default OFF)

  • Purpose: healing and same-domain unification.
  • Option: OCCTL_BUILD_HEAL (OFF).
  • Header: occtl_heal.h.

<tt>io_brep</tt> (default OFF)

  • Purpose: native BRep read/write.
  • Option: OCCTL_BUILD_IO_BREP (OFF).
  • Header: occtl_io_brep.h.

<tt>io_step</tt> (default OFF)

  • Purpose: STEP read/write.
  • Option: OCCTL_BUILD_IO_STEP (OFF).
  • Header: occtl_io_step.h.

<tt>io_iges</tt> (default OFF)

  • Purpose: IGES read/write.
  • Option: OCCTL_BUILD_IO_IGES (OFF).
  • Header: occtl_io_iges.h.

<tt>io_stl</tt> (default OFF)

  • Purpose: STL read/write.
  • Option: OCCTL_BUILD_IO_STL (OFF).
  • Header: occtl_io_stl.h.

<tt>de</tt> (default OFF)

  • Purpose: unified data-exchange dispatch and format routing.
  • Option: OCCTL_BUILD_DE (OFF).
  • Header: occtl_de.h.

<tt>io_obj</tt> (default OFF)

  • Purpose: Wavefront OBJ read/write.
  • Option: OCCTL_BUILD_IO_OBJ (OFF).
  • Header: occtl_io_obj.h.

<tt>io_gltf</tt> (default OFF)

  • Purpose: glTF 2.0/GLB read/write.
  • Option: OCCTL_BUILD_IO_GLTF (OFF).
  • Header: occtl_io_gltf.h.

<tt>io_vrml</tt> (default OFF)

  • Purpose: VRML read/write.
  • Option: OCCTL_BUILD_IO_VRML (OFF).
  • Header: occtl_io_vrml.h.

<tt>io_ply</tt> (default OFF)

  • Purpose: PLY exchange support.
  • Option: OCCTL_BUILD_IO_PLY (OFF).
  • Header: occtl_io_ply.h.

<tt>viz</tt> (default OFF)

  • Purpose: interactive/offscreen visualization and picking.
  • Option: OCCTL_BUILD_VIZ (OFF).
  • Header: occtl_viz.h.

3. Preset mapping (current)

  • core-only: core
  • geom-only: core + geom
  • minimal: core + geom + topo + prim
  • cad: minimal + bool + mesh + heal + text + io_brep + io_step + io_stl + de
  • full: cad + io_iges + io_obj + io_gltf + io_vrml + io_ply
  • full-with-viz: full + viz

4. Notes

  • Public C ABI headers never expose OCCT or STL types.
  • TopoDS_* remains internal-only; public topology is graph + ids.
  • Module docs should be updated alongside cmake/OCCTLRegistry.cmake changes.