Allow tree.select(BRepElement)

This commit is contained in:
Thomas Krijnen
2021-11-07 19:49:37 +01:00
parent 1cdf695891
commit e0e8281a1e
3 changed files with 12 additions and 1 deletions
+6
View File
@@ -224,6 +224,12 @@ namespace IfcGeom {
return ts_filtered;
}
std::vector<T> select(const IfcGeom::BRepElement* elem, bool completely_within = false, double extend = -1.e-5) const {
auto compound = elem->geometry().as_compound();
compound.Move(elem->transformation().data());
return select(compound, completely_within, extend);
}
std::vector<T> select(const gp_Pnt& p, double extend=0.0) const {
distances_.clear();
@@ -146,7 +146,7 @@ class tree(ifcopenshell_wrapper.tree):
return value
args = [self, unwrap(value)]
if isinstance(value, entity_instance):
if isinstance(value, (entity_instance, ifcopenshell_wrapper.BRepElement)):
args.append(kwargs.get("completely_within", False))
if "extend" in kwargs:
args.append(kwargs["extend"])
+5
View File
@@ -127,6 +127,11 @@
return IfcGeom_tree_vector_to_list(ps);
}
aggregate_of_instance::ptr select(const IfcGeom::BRepElement* elem, bool completely_within = false, double extend = -1.e-5) const {
std::vector<IfcUtil::IfcBaseEntity*> ps = $self->select(elem, completely_within, extend);
return IfcGeom_tree_vector_to_list(ps);
}
}
// A visitor