From 328773550df1ffa2eb27bfc3ce6be98246e535cd Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sat, 24 Apr 2021 14:18:53 +0200 Subject: [PATCH] SVG: Text annotations in elevations --- src/serializers/SvgSerializer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/serializers/SvgSerializer.cpp b/src/serializers/SvgSerializer.cpp index 475cbc0423..018afe0650 100644 --- a/src/serializers/SvgSerializer.cpp +++ b/src/serializers/SvgSerializer.cpp @@ -1671,7 +1671,10 @@ void SvgSerializer::addTextAnnotations(const drawing_key& k) { trsf.SetTranslationPart(v); } - if (!range || (v.Z() >= range->first && v.Z() < range->second)) { + auto z_local = gp::DZ().Transformed(trsf); + auto view_dir = z_local.Dot(meta.pln_3d.Axis().Direction()); + + if ((!range || (v.Z() >= range->first && v.Z() < range->second)) && view_dir > 0.99) { if (meta.pln_3d.Position().Direction().Dot(gp_Dir(trsf.HVectorialPart().Column(3))) > 0.99) { auto svg_name = nameElement(ann); @@ -1864,6 +1867,8 @@ void SvgSerializer::finalize() { draw_hlr(ax, { nullptr, drawing_name }); } + addTextAnnotations({ nullptr, drawing_name }); + if (storey_height_display_ != SH_NONE && pln && std::abs(pln->Position().Direction().Z()) < 1.e-5) { auto storeys = this->file->instances_by_type("IfcBuildingStorey"); if (storeys) {