Fix porch wall slope clipping: reverse half-space normals

This commit is contained in:
Bruno Postle 2026-03-12 20:56:34 +00:00
parent 9af3f9d8cf
commit fe04095207

View file

@ -4138,7 +4138,7 @@ DATA;
#5022=IFCWALL('1_$aWwKov0Sf7It_vDy_tx',$,'porch south wall',$,$,#5033,#5028,$,$);
#5023=IFCMATERIALLAYERSETUSAGE(#142,.AXIS2.,.POSITIVE.,0.,$);
#5024=IFCRELASSOCIATESMATERIAL('2pXAM9FwrFY9lC4Sz49sXz',$,$,$,(#5022),#5023);
#5028=IFCPRODUCTDEFINITIONSHAPE($,$,(#8615,#8770));
#5028=IFCPRODUCTDEFINITIONSHAPE($,$,(#8615,#8770,#8804));
#5029=IFCCARTESIANPOINT((2.25000023841858,-1.15582501888275,0.));
#5030=IFCDIRECTION((0.,0.,1.));
#5031=IFCDIRECTION((1.,0.,0.));
@ -4162,7 +4162,7 @@ DATA;
#5072=IFCWALL('2donwy3Dr5CPaKmOIdQQcb',$,'porch north wall',$,$,#5181,#5078,$,$);
#5073=IFCMATERIALLAYERSETUSAGE(#142,.AXIS2.,.POSITIVE.,0.,$);
#5074=IFCRELASSOCIATESMATERIAL('3apSz7di97iBofXEAfmuJI',$,$,$,(#5072),#5073);
#5078=IFCPRODUCTDEFINITIONSHAPE($,$,(#8628,#8787));
#5078=IFCPRODUCTDEFINITIONSHAPE($,$,(#8628,#8821));
#5094=IFCPROPERTYSET('20$m9HA010xfEFnKAwwHBu',$,'EPset_Parametric',$,(#5096));
#5095=IFCRELDEFINESBYPROPERTIES('1cdFWS8Er9b8kFsrQJ0Aq0',$,$,$,(#5072),#5094);
#5096=IFCPROPERTYSINGLEVALUE('Engine',$,IFCLABEL('Bonsai.DumbLayer2'),$);
@ -6079,22 +6079,39 @@ DATA;
#8775=IFCPLANE(#8774);
#8776=IFCHALFSPACESOLID(#8775,.F.);
#8777=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#8769,#8776);
#8778=IFCCARTESIANPOINTLIST2D(((0.,0.),(1.9,0.),(1.9,0.33),(0.33,0.33)));
#8779=IFCINDEXEDPOLYCURVE(#8778,(IFCLINEINDEX((1,2,3,4,1))),$);
#8780=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#8779);
#8781=IFCCARTESIANPOINT((0.,0.,0.));
#8782=IFCDIRECTION((0.,0.,1.));
#8783=IFCDIRECTION((1.,0.,0.));
#8784=IFCAXIS2PLACEMENT3D(#8781,#8782,#8783);
#8785=IFCDIRECTION((0.,0.,1.));
#8786=IFCEXTRUDEDAREASOLID(#8780,#8784,#8785,3.5);
#8787=IFCSHAPEREPRESENTATION(#11,'Body','Clipping',(#8794));
#8788=IFCCARTESIANPOINT((0.,0.,2.384));
#8789=IFCDIRECTION((0.419,0.,-0.908));
#8790=IFCDIRECTION((0.,-1.,0.));
#8791=IFCAXIS2PLACEMENT3D(#8788,#8789,#8790);
#8792=IFCPLANE(#8791);
#8793=IFCHALFSPACESOLID(#8792,.F.);
#8794=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#8786,#8793);
#8795=IFCCARTESIANPOINTLIST2D(((0.,0.),(1.9,0.),(1.57,0.33),(0.,0.33)));
#8796=IFCINDEXEDPOLYCURVE(#8795,(IFCLINEINDEX((1,2,3,4,1))),$);
#8797=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#8796);
#8798=IFCCARTESIANPOINT((0.,0.,0.));
#8799=IFCDIRECTION((0.,0.,1.));
#8800=IFCDIRECTION((1.,0.,0.));
#8801=IFCAXIS2PLACEMENT3D(#8798,#8799,#8800);
#8802=IFCDIRECTION((0.,0.,1.));
#8803=IFCEXTRUDEDAREASOLID(#8797,#8801,#8802,3.5);
#8804=IFCSHAPEREPRESENTATION(#11,'Body','Clipping',(#8811));
#8805=IFCCARTESIANPOINT((0.,0.,3.26));
#8806=IFCDIRECTION((0.419,0.,0.908));
#8807=IFCDIRECTION((0.,-1.,0.));
#8808=IFCAXIS2PLACEMENT3D(#8805,#8806,#8807);
#8809=IFCPLANE(#8808);
#8810=IFCHALFSPACESOLID(#8809,.F.);
#8811=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#8803,#8810);
#8812=IFCCARTESIANPOINTLIST2D(((0.,0.),(1.9,0.),(1.9,0.33),(0.33,0.33)));
#8813=IFCINDEXEDPOLYCURVE(#8812,(IFCLINEINDEX((1,2,3,4,1))),$);
#8814=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#8813);
#8815=IFCCARTESIANPOINT((0.,0.,0.));
#8816=IFCDIRECTION((0.,0.,1.));
#8817=IFCDIRECTION((1.,0.,0.));
#8818=IFCAXIS2PLACEMENT3D(#8815,#8816,#8817);
#8819=IFCDIRECTION((0.,0.,1.));
#8820=IFCEXTRUDEDAREASOLID(#8814,#8818,#8819,3.5);
#8821=IFCSHAPEREPRESENTATION(#11,'Body','Clipping',(#8828));
#8822=IFCCARTESIANPOINT((0.,0.,2.384));
#8823=IFCDIRECTION((-0.419,0.,0.908));
#8824=IFCDIRECTION((0.,1.,-0.));
#8825=IFCAXIS2PLACEMENT3D(#8822,#8823,#8824);
#8826=IFCPLANE(#8825);
#8827=IFCHALFSPACESOLID(#8826,.F.);
#8828=IFCBOOLEANCLIPPINGRESULT(.DIFFERENCE.,#8820,#8827);
ENDSEC;
END-ISO-10303-21;