setOnlyValid() option that skips and logs invalid topology #4130

This commit is contained in:
Thomas Krijnen
2024-03-24 16:45:31 +01:00
parent 6944c247ca
commit 75b9e6cec9
4 changed files with 56 additions and 0 deletions
+4
View File
@@ -742,6 +742,10 @@ void SvgSerializer::write(const IfcGeom::BRepElement* brep_obj) {
compound_local = comp2;
}
if (only_valid_ && !IfcGeom::util::validate_shape(compound_local)) {
return;
}
geometry_data data{ compound_local, dash_arrays, trsf, brep_obj->product(), storey, elev, brep_obj->name(), nameElement(storey, brep_obj) };
if (auto_section_ || auto_elevation_ || section_ref_ || elevation_ref_ || elevation_ref_guid_ || deferred_section_data_) {
+9
View File
@@ -556,6 +556,7 @@ protected:
bool unify_inputs_;
bool mirror_y_;
bool mirror_x_;
bool only_valid_;
int profile_threshold_;
@@ -723,6 +724,14 @@ public:
return unify_inputs_;
}
void setOnlyValid(bool b) {
only_valid_ = b;
}
bool getOnlyValid(bool b) const {
return only_valid_;
}
void setScale(double s) { scale_ = s; }
void setDrawingCenter(double x, double y) {
center_x_ = x; center_y_ = y;