Skip to content

SecondMouseAU/SwiftTiGL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftTiGL

A very limited Swift port of algorithms from TiGL (DLR's geometry library for parametric aircraft design, Apache-2.0) for the OCCTSwift ecosystem. Not affiliated with or endorsed by DLR.

Scope (deliberately narrow, may grow)

B-spline section compatibilization + skinning — the algorithms production lofting needs before ThruSections-style skinning is numerically safe:

  • degree elevation to a common degree (exact, geometry-preserving)
  • knot-vector unification by exact knot insertion
  • reparametrization across a section family
  • kink-knot insertion (degree-multiplicity knots at feature parameters — corners survive fitting)
  • a generalized Schoenberg–Whitney rank pre-check (decline ill-posed skinning with evidence, instead of building a numerically wild surface)
  • curves-to-surface skinning over compatibilized sections

This is a port of the ideas and algorithm structure of TiGL's CTiglBSplineAlgorithms / CTiglCurvesToSurface onto OCCTSwift's Swift-native geometry API — not a build of the TiGL library (which targets older OpenCASCADE lines and carries CPACS/TiXI machinery out of scope here). If you need TiGL, use TiGL.

Status

0.1.0 — the pure compatibilization slice. Landed, driven by OCCTReconstruct's shell-reconstruction workstream (issue #240 there): degree elevation, exact knot union, C0 kink-knot insertion, the Piegl–Tiller averaged interpolation knot vector, the generalized Schoenberg–Whitney rank pre-check, and the section-family compatibilization decision (structure-mismatch / rank-deficiency DECLINE with evidence). This slice is exact arithmetic over control points, so it carries no OCCT dependency — it builds and tests in isolation.

The curves-to-surface skinning bullet above lands in a later slice, when it returns the OCCTSwift dependency (the B-spline primitives it needs already exist in OCCTSwift ≥1.11.1). API is pre-1.0 and may change. The compatibilization is a reimplementation of the textbook methods (Piegl–Tiller The NURBS Book; Wang et al. for Schoenberg–Whitney) that TiGL's CTiglBSplineAlgorithms also implements — see NOTICE for DLR attribution.

License

Apache-2.0, matching upstream TiGL. See LICENSE and NOTICE (DLR attribution).

About

Very limited Swift port of TiGL's B-spline compatibilization + skinning algorithms (DLR-SC/tigl, Apache-2.0) for the OCCTSwift ecosystem. Not affiliated with DLR.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages