Class IteratorSettings

Inheritance Relationships

Derived Types

Class Documentation

class IfcGeom::IteratorSettings

Subclassed by IfcGeom::ElementSettings, SerializerSettings

Public Types

enum Setting

Enumeration of setting identifiers. These settings define the behaviour of various aspects of IfcOpenShell.

Values:

enumerator WELD_VERTICES

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.

enumerator USE_WORLD_COORDS

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.

enumerator CONVERT_BACK_UNITS

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.

enumerator USE_BREP_DATA

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.

enumerator SEW_SHELLS

Specifies whether to sew IfcConnectedFaceSets (open and closed shells) to TopoDS_Shells or whether to keep them as a loose collection of faces.

enumerator FASTER_BOOLEANS

Specifies whether to compose IfcOpeningElements into a single compound in order to speed up the processing of opening subtractions.

enumerator DISABLE_OPENING_SUBTRACTIONS

Disables the subtraction of IfcOpeningElement representations from the related building element representations.

enumerator DISABLE_TRIANGULATION

Disables the triangulation of the topological representations. Useful if the client application understands Open Cascade’s native format.

enumerator APPLY_DEFAULT_MATERIALS

Applies default materials to entity instances without a surface style.

enumerator INCLUDE_CURVES

Specifies whether to include subtypes of IfcCurve.

enumerator EXCLUDE_SOLIDS_AND_SURFACES

Specifies whether to exclude subtypes of IfcSolidModel and IfcSurface.

enumerator NO_NORMALS

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.

enumerator GENERATE_UVS

Generates UVs by using simple box projection. Requires normals. Applicable for OBJ and DAE output.

enumerator APPLY_LAYERSETS

Specifies whether to slice representations according to associated IfcLayerSets.

enumerator SEARCH_FLOOR

Search for a parent of type IfcBuildingStorey for each representation.

enumerator SITE_LOCAL_PLACEMENT
enumerator BUILDING_LOCAL_PLACEMENT
enumerator VALIDATE_QUANTITIES
enumerator LAYERSET_FIRST

Assigns the first layer material to the entire product.

enumerator EDGE_ARROWS

Adds arrow heads to edge segments to signify edge direction.

enumerator DISABLE_BOOLEAN_RESULT

Disables the evaluation of IfcBooleanResult and simply returns FirstOperand.

enumerator NUM_SETTINGS

Number of different setting flags.

typedef unsigned SettingField

Used to store logical OR combination of setting flags.

Public Functions

IteratorSettings()
double deflection_tolerance() const

Note that this is independent of the IFC length unit, one millimeter by default.

double angular_tolerance() const
double force_space_transparency() const
void set_deflection_tolerance(double value)
void set_angular_tolerance(double value)
void force_space_transparency(double value)
bool get(SettingField setting) const

Get boolean value for a single settings or for a combination of settings.

void set(SettingField setting, bool value)

Set boolean value for a single settings or for a combination of settings.

Public Members

std::array<double, 3> offset = std::array<double, 3>{0.0, 0.0, 0.0}

Optional offset that is applied to serialized objects, (0,0,0) by default.

std::array<double, 4> rotation = std::array<double, 4>{0.0, 0.0, 0.0, 1.0}

Optional rotation that is applied to serialized objects, (0,0,0,1) by default.

Protected Attributes

SettingField settings_
double deflection_tolerance_
double angular_tolerance_
double force_space_transparency_