10 #ifndef smtk_view_SubphraseGenerator_h
11 #define smtk_view_SubphraseGenerator_h
13 #include "smtk/view/DescriptivePhrase.h"
61 using Path = std::vector<int>;
62 using PhrasesByPath = std::multimap<Path, DescriptivePhrasePtr>;
104 virtual void subphrasesForCreatedObjects(
107 PhrasesByPath& resultingPhrases);
119 virtual int directLimit()
const;
130 virtual bool setDirectLimit(
int val);
136 virtual bool shouldOmitProperty(
137 DescriptivePhrase::Ptr parent,
139 const std::string& pname)
const;
145 virtual void setSkipProperties(
bool val);
147 virtual bool skipProperties()
const;
154 virtual void setSkipAttributes(
bool val);
156 virtual bool skipAttributes()
const;
164 virtual Path indexOfObjectInParent(
167 const Path& parentPath);
169 virtual int findResourceLocation(
171 const DescriptivePhrase::Ptr& root)
const;
172 virtual bool findSortedLocation(
175 DescriptivePhrase::Ptr& phr,
176 const DescriptivePhrase::Ptr& parent)
const;
177 virtual bool findSortedLocation(
180 DescriptivePhrase::Ptr& phr,
181 const DescriptivePhrase::Ptr& parent)
const;
182 virtual bool findSortedLocation(
185 DescriptivePhrase::Ptr& phr,
186 const DescriptivePhrase::Ptr& parent)
const;
194 void componentsOfResource(
195 DescriptivePhrase::Ptr src,
199 void itemsOfAttribute(
200 DescriptivePhrase::Ptr src,
204 void childrenOfModelEntity(
205 DescriptivePhrase::Ptr src,
214 void freeSubmodelsOfModel(
217 DescriptivePhrase::Ptr src,
221 void freeGroupsOfModel(
222 DescriptivePhrase::Ptr src,
226 void freeCellsOfModel(
227 DescriptivePhrase::Ptr src,
231 void freeAuxiliaryGeometriesOfModel(
232 DescriptivePhrase::Ptr src,
237 void instancesOfModelEntity(
238 DescriptivePhrase::Ptr src,
248 DescriptivePhrase::Ptr src,
251 void boundingShellsOfModelUse(
252 DescriptivePhrase::Ptr src,
255 void toplevelShellsOfModelUse(
256 DescriptivePhrase::Ptr src,
260 void usesOfModelCell(
261 DescriptivePhrase::Ptr src,
264 void inclusionsOfModelCell(
265 DescriptivePhrase::Ptr src,
268 void boundingCellsOfModelCell(
269 DescriptivePhrase::Ptr src,
273 void usesOfModelShell(
274 DescriptivePhrase::Ptr src,
278 void membersOfModelGroup(
279 DescriptivePhrase::Ptr src,
283 void childrenOfModelAuxiliaryGeometry(
284 DescriptivePhrase::Ptr src,
288 void prototypeOfModelInstance(
289 DescriptivePhrase::Ptr src,
294 void PreparePath(T& result,
const T& parentPath,
int childIndex);
297 int IndexFromTitle(
const std::string& title,
const T& phrases);
314 DescriptivePhrase::Ptr parent,
316 int mutability =
static_cast<int>(smtk::view::PhraseContent::ContentType::TITLE) |
317 static_cast<int>(smtk::view::PhraseContent::ContentType::COLOR),
318 std::function<
bool(
const DescriptivePhrase::Ptr&,
const DescriptivePhrase::Ptr&)> comparator =
327 void filterModelEntityPhraseCandidates(T& ents);
333 DescriptivePhrase::Ptr parent,
336 int mutability =
static_cast<int>(smtk::view::PhraseContent::ContentType::TITLE) |
337 static_cast<int>(smtk::view::PhraseContent::ContentType::COLOR),
338 std::function<
bool(
const DescriptivePhrase::Ptr&,
const DescriptivePhrase::Ptr&)> comparator =
349 void propertiesOfComponent(
354 void floatPropertiesOfComponent(
357 void stringPropertiesOfComponent(
360 void integerPropertiesOfComponent(
364 void modelsOfModelSession(
367 void meshesOfModelModel(DescriptivePhrase::Ptr src,
const Model& mod,
DescriptivePhrases& result);
370 void meshsetsOfCollectionByDim(
376 template <
typename T>
382 bool m_skipAttributes;
383 bool m_skipProperties;