mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 06:39:13 +00:00
SvgSerializer: Fix bug in ellipse writeout
Add a missing "=" to create a valid SVG for ellipses. I accidentally stumbled upon a way to actually get an ellipse in SVG by tilting a cylinder. If I tilt the cylinder via the `ObjectPlacement` of the `IfcProduct` I get an ellipse. If I set the `ExtrudedDirection` of the `IfcExtrudedAreasolid`, however, I get a sampled path.
This commit is contained in:
committed by
Thomas Krijnen
parent
c0a2e3395f
commit
34e2ff31bb
@@ -107,7 +107,7 @@ void SvgSerializer::write(path_object& p, const TopoDS_Wire& wire) {
|
|||||||
// Write the ellipse with major radius along X axis:
|
// Write the ellipse with major radius along X axis:
|
||||||
path.add(" <ellipse style=\"stroke:black; fill:none;\" rx=\"");
|
path.add(" <ellipse style=\"stroke:black; fill:none;\" rx=\"");
|
||||||
radii.push_back(path.add(e.MajorRadius()));
|
radii.push_back(path.add(e.MajorRadius()));
|
||||||
path.add("\" ry\"");
|
path.add("\" ry=\"");
|
||||||
radii.push_back(path.add(e.MinorRadius()));
|
radii.push_back(path.add(e.MinorRadius()));
|
||||||
path.add("\" cx=\"");
|
path.add("\" cx=\"");
|
||||||
xcoords.push_back(path.add(center.X()));
|
xcoords.push_back(path.add(center.X()));
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ DATA;
|
|||||||
#21=IFCCARTESIANPOINT((0.,0.));
|
#21=IFCCARTESIANPOINT((0.,0.));
|
||||||
#22=IFCDIRECTION((1.,0.));
|
#22=IFCDIRECTION((1.,0.));
|
||||||
#23=IFCAXIS2PLACEMENT2D(#21,#22);
|
#23=IFCAXIS2PLACEMENT2D(#21,#22);
|
||||||
#24=IFCCIRCLEPROFILEDEF(.AREA.,'Circle',#23,0.5);
|
#24=IFCCIRCLEPROFILEDEF(.AREA.,'Circle',#23,0.4);
|
||||||
#25=IFCCARTESIANPOINT((0.,0.,0.));
|
#25=IFCCARTESIANPOINT((0.,0.,0.));
|
||||||
#26=IFCAXIS2PLACEMENT3D(#25,$,$);
|
#26=IFCAXIS2PLACEMENT3D(#25,$,$);
|
||||||
#27=IFCDIRECTION((0.,0.,1.));
|
#27=IFCDIRECTION((0.,0.,1.));
|
||||||
@@ -36,11 +36,11 @@ DATA;
|
|||||||
#29=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#28));
|
#29=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#28));
|
||||||
#30=IFCPRODUCTDEFINITIONSHAPE($,$,(#29));
|
#30=IFCPRODUCTDEFINITIONSHAPE($,$,(#29));
|
||||||
#31=IFCCARTESIANPOINT((0.,0.,0.));
|
#31=IFCCARTESIANPOINT((0.,0.,0.));
|
||||||
#32=IFCDIRECTION((0.,0.,1.));
|
#32=IFCDIRECTION((0.284030681745204,-0.260541987798268,0.922737473185891));
|
||||||
#33=IFCDIRECTION((1.,0.,0.));
|
#33=IFCDIRECTION((1.,0.,0.));
|
||||||
#34=IFCAXIS2PLACEMENT3D(#31,#32,#33);
|
#34=IFCAXIS2PLACEMENT3D(#31,#32,#33);
|
||||||
#35=IFCLOCALPLACEMENT($,#34);
|
#35=IFCLOCALPLACEMENT($,#34);
|
||||||
#36=IFCBUILDINGELEMENTPROXY('0qs7mimyyHvuvRW1aqWGIT',#5,'Vertical cylinder',$,$,#35,#30,$,$);
|
#36=IFCBUILDINGELEMENTPROXY('0qs7mimyyHvuvRW1aqWGIT',#5,'Tilted cylinder',$,$,#35,#30,$,$);
|
||||||
#37=IFCCARTESIANPOINT((0.,0.));
|
#37=IFCCARTESIANPOINT((0.,0.));
|
||||||
#38=IFCDIRECTION((1.,0.));
|
#38=IFCDIRECTION((1.,0.));
|
||||||
#39=IFCAXIS2PLACEMENT2D(#37,#38);
|
#39=IFCAXIS2PLACEMENT2D(#37,#38);
|
||||||
|
|||||||
Reference in New Issue
Block a user