mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-12 18:43:26 +00:00
Allow tree.select(BRepElement)
This commit is contained in:
@@ -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"])
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user