SVG serialization UnifyInputs option

This commit is contained in:
Thomas Krijnen
2023-07-29 10:07:33 +08:00
parent aa7b5bd1e3
commit 23d096be07
2 changed files with 20 additions and 1 deletions
+9 -1
View File
@@ -81,6 +81,7 @@
#include "../ifcparse/IfcGlobalId.h"
#include "../ifcgeom/kernels/opencascade/base_utils.h"
#include "../ifcgeom/kernels/opencascade/boolean_utils.h"
#include "../ifcgeom/kernels/opencascade/OpenCascadeConversionResult.h"
#include <boost/format.hpp>
@@ -1191,7 +1192,14 @@ void SvgSerializer::write(const geometry_data& data) {
// Iterate over components of compound to have better chance of matching section edges to closed wires
for (; it.More(); it.Next(), ++dash_it) {
const TopoDS_Shape& subshape = it.Value();
const TopoDS_Shape& subshape_before_unification = it.Value();
TopoDS_Shape subshape;
if (unify_inputs_) {
subshape = IfcGeom::util::unify(subshape_before_unification, 1. - 6);
} else {
subshape = subshape_before_unification;
}
Bnd_Box bb;
try {
+11
View File
@@ -43,6 +43,7 @@
#include <BRepTopAdaptor_FClass2d.hxx>
#include <Geom_Plane.hxx>
#include <BRepBndLib.hxx>
#include <BRepMesh_IncrementalMesh.hxx>
#if OCC_VERSION_HEX >= 0x70300
#include <Bnd_OBB.hxx>
@@ -517,6 +518,7 @@ protected:
bool use_namespace_, use_hlr_poly_, use_prefiltering_, always_project_, polygonal_;
bool emit_building_storeys_;
bool no_css_;
bool unify_inputs_;
int profile_threshold_;
@@ -568,6 +570,7 @@ public:
, polygonal_(false)
, emit_building_storeys_(true)
, no_css_(false)
, unify_inputs_(false)
, profile_threshold_(-1)
, file(0)
, storey_(0)
@@ -664,6 +667,14 @@ public:
no_css_ = b;
}
void setUnifyInputs(bool b) {
unify_inputs_ = b;
}
bool getUnifyInputs() const {
return unify_inputs_;
}
void setScale(double s) { scale_ = s; }
void setDrawingCenter(double x, double y) {
center_x_ = x; center_y_ = y;