View Issue Details

IDProjectCategoryView StatusLast Update
0025123CommunityOCCT:Shape Healingpublic2023-08-01 15:06
ReporterRoman Lygin Assigned Togka 
Status newResolutionopen 
Product Version6.7.1 
Target VersionUnscheduled 
Summary0025123: Feature request – enabling C0-to-G1 continuity upgrade for geometries
DescriptionProblem statement:
Unlike other modeling kernels (e.g. Parasolid), Open CASCADE has more relaxed requirements to geometry underneath topology in terms of continuity. While OCC accepts C0 pcurves, 3D curves and surfaces, other kernels require at least G1 continuity. G1 continuity requires smoothness of tangent/normal direction (whereas C1 continuity additionally strengthens that requirement to magnitude of the tangent or the normal). Therefore when exporting 3D models to other kernels, it is required to upgrade the geometry to G1.
OCC does have utilities to upgrade to Cn continuity (e.g. ShapeUpgrade_ShapeDivideContinuity et al). These tools either reduce multiplicity of the knot which is equal to degree (i.e. where the geometry has C0 continuity) or make split at that knot. Thus, this upgrade C0-to-C1 continuity is done using more significant modifications than might be required for C0-to-G1 upgrade. For instance, Parasolid does not modify knots of G1 continuity (i.e. where multiplicity is degree but tangents are collinear within a tolerance) and readjusts knot multiplicities where G1 is not initially provided.
The proposal is to design an algorithm for C0-to-G1 upgrade for 2D/3D curves and surfaces that would apply less significant modifications than for C0-to-C1 upgrade. The new functionality might reside in ShapeUpgrade_Split*Continuity classes that would specifically recognize G1 requirement.
This functionality might be used in own OCC exporters (to STEP, IGES, etc) or in customer projects where such requirement might be relevant.

(The topic has also been published at, awaiting for moderator approval.)
TagsNo tags attached.
Test case number


There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2014-08-04 12:48 Roman Lygin New Issue
2014-08-04 12:48 Roman Lygin Assigned To => gka
2014-09-11 19:00 abv Target Version => 7.1.0
2016-10-26 12:17 gka Target Version 7.1.0 => 7.2.0
2017-07-27 09:33 abv Target Version 7.2.0 => 7.4.0
2019-09-04 12:58 abv Target Version 7.4.0 => 7.5.0
2020-09-11 16:48 utverdov Target Version 7.5.0 => 7.6.0
2021-11-01 18:13 szy Target Version 7.6.0 => 7.7.0
2022-10-24 10:43 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:06 dpasukhi Target Version 7.8.0 => Unscheduled