diff --git a/src/ifcgeom/IfcGeomElement.h b/src/ifcgeom/IfcGeomElement.h
index 6842f7ab45..5b1473037c 100644
--- a/src/ifcgeom/IfcGeomElement.h
+++ b/src/ifcgeom/IfcGeomElement.h
@@ -28,7 +28,6 @@
#include "../ifcparse/IfcLogger.h"
#include "../ifcgeom/IfcGeomRepresentation.h"
-#include "../ifcgeom/IteratorSettings.h"
#include "../ifcgeom/ifc_geom_api.h"
namespace IfcGeom {
diff --git a/src/ifcgeom/IfcGeomIteratorSettings.cpp b/src/ifcgeom/IfcGeomIteratorSettings.cpp
deleted file mode 100644
index f239cc4437..0000000000
--- a/src/ifcgeom/IfcGeomIteratorSettings.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "IteratorSettings.h"
-
-#include "../ifcparse/IfcLogger.h"
-
-/*
-void IfcGeom::IteratorSettings::set_deflection_tolerance(double value)
-{
- deflection_tolerance_ = value;
- if (deflection_tolerance_ <= 1e-6) {
- Logger::Message(Logger::LOG_WARNING, "Deflection tolerance cannot be set to <= 1e-6; using the default value 1e-3");
- deflection_tolerance_ = 1e-3;
- }
-}
-
-*/
\ No newline at end of file
diff --git a/src/ifcgeom/Iterator.h b/src/ifcgeom/Iterator.h
index fc7f46ad86..78c6ddc532 100644
--- a/src/ifcgeom/Iterator.h
+++ b/src/ifcgeom/Iterator.h
@@ -61,7 +61,6 @@
#include "../ifcparse/IfcFile.h"
#include "../ifcgeom/IfcGeomElement.h"
-#include "../ifcgeom/IteratorSettings.h"
#include "../ifcgeom/ConversionResult.h"
#include "../ifcgeom/IfcGeomFilter.h"
#include "../ifcgeom/taxonomy.h"
diff --git a/src/ifcgeom/IteratorSettings.h b/src/ifcgeom/IteratorSettings.h
deleted file mode 100644
index 2a7c03c507..0000000000
--- a/src/ifcgeom/IteratorSettings.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/********************************************************************************
- * *
- * This file is part of IfcOpenShell. *
- * *
- * IfcOpenShell is free software: you can redistribute it and/or modify *
- * it under the terms of the Lesser GNU General Public License as published by *
- * the Free Software Foundation, either version 3.0 of the License, or *
- * (at your option) any later version. *
- * *
- * IfcOpenShell is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * Lesser GNU General Public License for more details. *
- * *
- * You should have received a copy of the Lesser GNU General Public License *
- * along with this program. If not, see . *
- * *
- ********************************************************************************/
-
-#ifndef IFCGEOMITERATORSETTINGS_H
-#define IFCGEOMITERATORSETTINGS_H
-
-/*
-
-#include "ifc_geom_api.h"
-
-#include "../ifcparse/IfcException.h"
-#include "../ifcparse/IfcBaseClass.h"
-
-#include
-#include
-
-namespace IfcGeom
-{
- class IFC_GEOM_API IteratorSettings
- {
- public:
- /// Enumeration of setting identifiers. These settings define the
- /// behaviour of various aspects of IfcOpenShell.
- enum Setting : uint64_t
- {
- /// Specifies whether vertices are welded, meaning that the coordinates
- /// vector will only contain unique xyz-triplets. This results in a
- /// manifold mesh which is useful for modelling applications, but might
- /// result in unwanted shading artifacts in rendering applications.
- WELD_VERTICES = 1,
- /// Specifies whether to apply the local placements of building elements
- /// directly to the coordinates of the representation mesh rather than
- /// to represent the local placement in the 4x3 matrix, which will in that
- /// case be the identity matrix.
- USE_WORLD_COORDS = 1 << 1,
- /// Internally IfcOpenShell measures everything in meters. This settings
- /// specifies whether to convert IfcGeomObjects back to the units in which
- /// the geometry in the IFC file is specified.
- CONVERT_BACK_UNITS = 1 << 2,
- /// Specifies whether to use the Open Cascade BREP format for representation
- /// items rather than to create triangle meshes. This is useful is IfcOpenShell
- /// is used as a library in an application that is also built on Open Cascade.
- USE_BREP_DATA = 1 << 3,
- /// Specifies whether to sew IfcConnectedFaceSets (open and closed shells) to
- /// TopoDS_Shells or whether to keep them as a loose collection of faces.
- SEW_SHELLS = 1 << 4,
- /// Disables the subtraction of IfcOpeningElement representations from
- /// the related building element representations.
- DISABLE_OPENING_SUBTRACTIONS = 1 << 5,
- /// Disables the triangulation of the topological representations. Useful if
- /// the client application understands Open Cascade's native format.
- DISABLE_TRIANGULATION = 1 << 6,
- /// Applies default materials to entity instances without a surface style or
- /// product-level material association.
- APPLY_DEFAULT_MATERIALS = 1 << 7,
- /// Specifies whether to include subtypes of IfcCurve.
- INCLUDE_CURVES = 1 << 8,
- /// Specifies whether to exclude subtypes of IfcSolidModel and IfcSurface.
- EXCLUDE_SOLIDS_AND_SURFACES = 1 << 9,
- /// Disables computation of normals. Saves time and file size and is useful
- /// in instances where you're going to recompute normals for the exported
- /// model in other modelling application in any case.
- NO_NORMALS = 1 << 10,
- /// Generates UVs by using simple box projection. Requires normals.
- /// Applicable for OBJ and DAE output.
- GENERATE_UVS = 1 << 11,
- /// Specifies whether to slice representations according to associated
- /// IfcMaterialLayerSets.
- APPLY_LAYERSETS = 1 << 12,
- /// Emit the relative placements from IFC instead of a flat listing of
- /// absolute placements.
- ELEMENT_HIERARCHY = 1 << 13,
- /// Emit placements relative to the IfcSite. Useful if the IfcSite itself
- /// introduces a placement with a large geospatial offset that inhibits
- /// rendering.
- SITE_LOCAL_PLACEMENT = 1 << 14,
- /// Emit placements relative to the IfcBuilding. Useful if the IfcBuilding
- /// itself introduces a placement with a large geospatial offset that
- /// inhibits rendering.
- BUILDING_LOCAL_PLACEMENT = 1 << 15,
- /// After geometry interpretation, lookup an IfcOpenShell-specific quantity set
- /// and compare values for validation.
- VALIDATE_QUANTITIES = 1 << 16,
- /// Assigns the first layer material to the entire product
- LAYERSET_FIRST = 1 << 17,
- /// Adds arrow heads to edge segments to signify edge direction. Useful as a
- /// debugging mechanism for face orientation or advanced brep IfcOrientedEdge.
- EDGE_ARROWS = 1 << 18,
- /// Disables the evaluation of IfcBooleanResult and simply returns FirstOperand
- DISABLE_BOOLEAN_RESULT = 1 << 19,
- /// Disables wire intersection checks. These checks are done on faces to prevent
- /// self-intersections of face bounds. Self-intersections reduce the reliability
- /// of boolean operations and may lead to crashes.
- NO_WIRE_INTERSECTION_CHECK = 1 << 20,
- /// Set wire intersection tolerance to 0. By default the above check is done
- /// using a tolerance criterium. So that when a vertex is a certain epsilon
- /// distance away from an edge this is flagged as an intersection.
- NO_WIRE_INTERSECTION_TOLERANCE = 1 << 21,
- /// Strictly use the tolerance from the IFC model. Typically this value is
- /// increased 10-fold to have more reliable boolean subtraction results.
- STRICT_TOLERANCE = 1 << 22,
- /// Write boolean operands to file in current directory for debugging purposes
- DEBUG_BOOLEAN = 1 << 23,
- /// Try to perform boolean subtractions in 2d. Defaults to true.
- BOOLEAN_ATTEMPT_2D = 1 << 24,
- /// Number of different setting flags.
- NUM_SETTINGS = 25,
- };
-
- IteratorSettings()
- : settings_(WELD_VERTICES | BOOLEAN_ATTEMPT_2D) // OR options that default to true here
- , deflection_tolerance_(1.e-3)
- , angular_tolerance_(0.5)
- , force_space_transparency_(-1.0)
- {
- }
-
- /// Note that this is independent of the IFC length unit, one millimeter by default.
- double deflection_tolerance() const { return deflection_tolerance_; }
- double angular_tolerance() const { return angular_tolerance_; }
- double force_space_transparency() const { return force_space_transparency_; }
- const std::set& context_ids() const { return context_ids_; }
-
- /// @todo Using deflection tolerance of 1e-6 or smaller hangs the conversion, research more in-depth.
- /// This bug can be reproduced e.g. with the Duplex model that can be found from http://www.nibs.org/?page=bsa_commonbimfiles#project1
- void set_deflection_tolerance(double value);
-
- void set_angular_tolerance(double value) {
- angular_tolerance_ = value;
- }
-
- void force_space_transparency(double value) {
- force_space_transparency_ = value;
- }
-
- void set_context_ids(std::vector value) {
- context_ids_ = std::set(value.begin(), value.end());
- }
-
- /// Get boolean value for a single settings or for a combination of settings.
- bool get(uint64_t setting) const
- {
- /// @todo If unknown setting value/combination: throw IfcParse::IfcException("Invalid IteratorSetting")?
- return (settings_ & setting) != 0;
- }
-
- /// Set boolean value for a single settings or for a combination of settings.
- void set(uint64_t setting, bool value)
- {
- /// @todo If unknown setting value/combination: throw IfcParse::IfcException("Invalid IteratorSetting")?
- if (value) {
- settings_ |= setting;
- } else {
- settings_ &= ~setting;
- }
- }
-
- /// Optional offset that is applied to serialized objects, (0,0,0) by default.
- std::array offset = std::array{0.0, 0.0, 0.0};
- /// Optional rotation that is applied to serialized objects, (0,0,0,1) by default.
- std::array rotation = std::array{0.0, 0.0, 0.0, 1.0};
-
- uint64_t get_raw() const {
- return settings_;
- }
-
- protected:
- uint64_t settings_;
- double deflection_tolerance_, angular_tolerance_, force_space_transparency_;
- std::set context_ids_;
- };
-
- class IFC_GEOM_API ElementSettings : public IteratorSettings
- {
- public:
- ElementSettings(const IteratorSettings& settings,
- double unit_magnitude,
- const std::string& element_type)
- : IteratorSettings(settings)
- , unit_magnitude_(unit_magnitude)
- , element_type_(element_type)
- {
- }
-
- double unit_magnitude() const { return unit_magnitude_; }
- const std::string& element_type() const { return element_type_; }
-
- private:
- double unit_magnitude_;
- std::string element_type_;
- };
-}
-
-*/
-
-#endif
diff --git a/src/ifcgeom/abstract_mapping.h b/src/ifcgeom/abstract_mapping.h
index 405a6b7c2f..c8174d5363 100644
--- a/src/ifcgeom/abstract_mapping.h
+++ b/src/ifcgeom/abstract_mapping.h
@@ -4,7 +4,6 @@
#include "../ifcparse/IfcBaseClass.h"
#include "../ifcparse/aggregate_of_instance.h"
#include "../ifcgeom/taxonomy.h"
-#include "../ifcgeom/IteratorSettings.h"
#include "../ifcgeom/ConversionSettings.h"
#include