11 #ifndef smtk_attribute_SelectionFootprint_h
12 #define smtk_attribute_SelectionFootprint_h
14 #include "smtk/geometry/queries/SelectionFootprint.h"
16 #include "smtk/attribute/Attribute.h"
17 #include "smtk/attribute/ReferenceItem.h"
19 #include "smtk/resource/query/BadTypeError.h"
42 :
public smtk::resource::query::
43 DerivedFrom<SelectionFootprint, smtk::geometry::SelectionFootprint>
52 std::unordered_set<smtk::resource::PersistentObject*>& footprint,
55 bool hasFootprint =
false;
60 if (this->hasGeometry(*attr, backend))
62 footprint.insert(attr);
69 auto assocs = attr->associations();
72 for (std::size_t ii = 0; ii < assocs->numberOfValues(); ++ii)
74 if (!assocs->isSet(ii))
78 const auto& obj = assocs->value(ii);
86 smtk::resource::queryForObject<smtk::geometry::SelectionFootprint>(*obj);
87 hasFootprint |= subquery(*obj, footprint, backend);