Skip to content

Fix IfcFixedReferenceSweptAreaSolid FixedReference argument and sweep orientation - #2253

Closed
thbeu wants to merge 1 commit into
ThatOpen:mainfrom
thbeu:fix-2248-fixed-reference-swept-area-solid
Closed

thbeu wants to merge 1 commit into
ThatOpen:mainfrom
thbeu:fix-2248-fixed-reference-swept-area-solid

Conversation

@thbeu

@thbeu thbeu commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Fixes #2248.

The IFCFIXEDREFERENCESWEPTAREASOLID handler read FixedReference from argument 3 (StartParam) instead of argument 5, logging an unexpected-token error and producing a wrongly oriented solid. Skip StartParam/EndParam (each an IfcCurveMeasureSelect: EMPTY, a number, or a typed select such as IFCPARAMETERVALUE) and read FixedReference from argument 5.

Rewrite SweepFixedReference to follow the IFC definition: at each directrix point the profile local z-axis is the tangent and its local x-axis is the orthogonal projection of FixedReference onto the normal plane. Handle profile holes and build caps with earcut.

… orientation

The handler read FixedReference from argument 3 (StartParam) instead of argument 5, logging an unexpected-token error and producing a wrongly oriented solid. Skip StartParam/EndParam (IfcCurveMeasureSelect: EMPTY, a number, or a typed select such as IFCPARAMETERVALUE) and read FixedReference from argument 5.

Rewrite SweepFixedReference to follow the IFC definition: the profile local z-axis is the directrix tangent and its local x-axis is the orthogonal projection of FixedReference onto the normal plane. Handle profile holes and build caps with earcut. Extract NormalizeRing and ForEachEarcutTriangle helpers shared with RevolveProfile and ExtrudeTapered.

Fixes ThatOpen#2248
@thbeu

thbeu commented Oct 7, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #2250, which fixes the same issue (read FixedReference after the start/end parameters, orient the profile against the directrix tangent) with a more thorough implementation plus functional tests and fixtures. Closing as a duplicate.

@thbeu thbeu closed this Oct 7, 2026
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.

IfcFixedReferenceSweptAreaSolid: FixedReference seems to be read from the StartParam position

1 participant