Skip to content

Commit 25a5135

Browse files
committed
Disable geometry re-use with world coords
1 parent 4c574df commit 25a5135

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

src/ifcgeom/IfcGeomIterator.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,10 @@ namespace IfcGeom {
381381
}
382382
}
383383

384-
const bool process_maps_for_current_representation = (!has_openings || settings.get(IteratorSettings::DISABLE_OPENING_SUBTRACTIONS));
384+
// With world coords enabled, object transformations are directly applied to
385+
// the BRep. There is no way to re-use the geometry for multiple products.
386+
const bool process_maps_for_current_representation = !settings.get(IteratorSettings::USE_WORLD_COORDS) &&
387+
(!has_openings || settings.get(IteratorSettings::DISABLE_OPENING_SUBTRACTIONS));
385388
bool representation_processed_as_mapped_item = false;
386389

387390
IfcSchema::IfcRepresentation* representation_mapped_to = 0;
@@ -506,7 +509,7 @@ namespace IfcGeom {
506509
IfcSchema::IfcProduct* product = *ifcproduct_iterator;
507510

508511
BRepElement<P>* element;
509-
if (ifcproduct_iterator == ifcproducts->begin()) {
512+
if (ifcproduct_iterator == ifcproducts->begin() || !settings.get(IteratorSettings::USE_WORLD_COORDS)) {
510513
element = kernel.create_brep_for_representation_and_product<P>(settings, representation, product);
511514
} else {
512515
element = kernel.create_brep_for_processed_representation(settings, representation, product, current_shape_model);

0 commit comments

Comments
 (0)