Gordon Surface Construction in OCCT #1183
dpasukhi
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
commit: 1cc42af
Introduction
OCCT 8.0.0-rc5 introduces a complete implementation of the Gordon surface algorithm via two new classes:
GeomFill_Gordon(high-level) andGeomFill_GordonBuilder(low-level kernel). A Gordon surface interpolates a network of intersecting curves — profiles and guides — producing a smooth B-spline surface that passes exactly through all input curves.This is particularly useful in CAD/CAM workflows where a designer defines a shape by cross-sections (profiles) and longitudinal curves (guides), such as ship hulls, aircraft fuselages, car body panels, and turbine blades.
Mathematical Background
The Gordon surface is constructed using the Boolean sum formula:
Where:
The subtraction of the tensor product surface corrects for the double-counting at intersection points, ensuring the final surface passes through all input curves exactly.
API Overview
High-Level:
GeomFill_GordonThe recommended entry point. Accepts arbitrary
Geom_Curveinputs (lines, B-splines, trimmed curves, etc.), handles conversion, intersection detection, sorting, and reparametrization automatically.Key features:
Geom_Curvesubtype (lines, B-splines, trimmed curves)aGordon.SetParallelMode(true)Low-Level:
GeomFill_GordonBuilderFor advanced users who already have compatible B-spline curves with known intersection parameters.
Additional features over the high-level API:
theIsUClosed,theIsVClosed)Demonstration Gallery
Six demonstration cases showcase the algorithm on diverse curve networks. Each produces both the input wireframe (
*_basis.brep) and the resulting surface (*_surface.brep).1. Barrel Vault
Arch-shaped profiles with height varying along span. The tallest arch is at mid-span, creating a tunnel/vault shape.


5 profiles + 5 guides.
2. Saddle
Classic saddle point: profiles arch upward, guides arch downward. The center is a saddle point where curvatures have opposite signs.


3 profiles + 3 guides.
3. Gaussian Peak
A bell-shaped dome with smooth Gaussian falloff in all directions. Both profiles and guides are bell curves with varying amplitudes.


5 profiles + 5 guides.
4. Traveling Wave
A cosine wave propagating diagonally across the surface. Profiles are phase-shifted cosines; guides are smooth arches alternating direction.
5 profiles + 5 guides.
5. Helicoid
A twisted helical surface built from true 3D space curves. Profiles are tilted radial lines at different angles; guides are helical arcs. This demonstrates the algorithm on genuinely non-planar curve networks.
4 profiles (radial lines) + 4 guides (helical arcs).
6. Monkey Saddle
A surface with 3-fold symmetry: three alternating hills and valleys meet at the center. Each profile and guide has a distinct S-shaped or M-shaped cubic curve.
5 profiles + 5 guides.
Complete Example: Custom Curve Network
Here is a self-contained example building a Gordon surface from a Z(x,y) function:
Requirements and Limitations
TKGeomAlgo(includeGeomFill_Gordon.hxx)Demo:
GordonDemo.zip
Best regards,
OCCT3D Team.
Beta Was this translation helpful? Give feedback.
All reactions