SMTK
@SMTK_VERSION@
Simulation Modeling Tool Kit
|
10 #ifndef smtk_extension_qt_MembershipBadge_h
11 #define smtk_extension_qt_MembershipBadge_h
15 #include "smtk/extension/qt/Exports.h"
17 #include "smtk/view/Badge.h"
18 #include "smtk/view/BadgeSet.h"
19 #include "smtk/view/Configuration.h"
20 #include "smtk/view/DescriptivePhrase.h"
53 static std::array<std::string, 7> names{ {
"all",
55 "componentswithgeometry",
57 "objectswithgeometry",
59 "resourceswithgeometry" } };
60 return names[
static_cast<int>(mc)];
66 std::string criteriaName(mcn);
68 criteriaName.begin(), criteriaName.end(), criteriaName.begin(), [](
unsigned char c) {
69 return std::tolower(c);
71 if (criteriaName.substr(0, 20) ==
"membershipcriteria::")
73 criteriaName = criteriaName.substr(20);
75 if (criteriaName ==
"components")
79 else if (criteriaName ==
"componentswithgeometry")
83 else if (criteriaName ==
"objects")
87 else if (criteriaName ==
"objectswithgeometry")
91 else if (criteriaName ==
"resources")
95 else if (criteriaName ==
"resourceswithgeometry")
123 std::string icon(
const DescriptivePhrase* phrase,
const std::array<float, 4>&)
const override;
127 using MemberMap = std::map<
128 std::weak_ptr<smtk::resource::PersistentObject>,
130 std::owner_less<std::weak_ptr<smtk::resource::PersistentObject>>>;
141 void membershipChange(
int val);
152 std::string m_filter;
The main namespace for the Simulation Modeling Tool Kit (SMTK).
Definition: doc.h:33
std::string m_iconOn
SVG for icon showing membership.
Definition: MembershipBadge.h:148
A badge that lets the user choose from a set of objects.
Definition: MembershipBadge.h:105
A base class for descriptive-phrase badges.
Definition: Badge.h:78
A container for the badges that apply to a view.
Definition: BadgeSet.h:32
@ ResourcesWithGeometry
Like Resources, but restricted to resources with renderable geometry.
MembershipCriteria membershipCriteriaEnum(const std::string &mcn)
A type-conversion operation to cast strings to enumerants.
Definition: MembershipBadge.h:64
@ Components
All phrases with a related component.
#define smtkCreateMacro(...)
Add static create() methods to a class.
Definition: SharedFromThis.h:173
MemberMap & getMemberMap()
Provide external access to which items are selected.
Definition: MembershipBadge.h:133
std::string membershipCriteriaName(const MembershipCriteria &mc)
A type-conversion operation to cast enumerants to strings.
Definition: MembershipBadge.h:51
@ Resources
All phrases with a related resource but not a related component.
@ ObjectsWithGeometry
Like Objects, but restricted to objects with renderable geometry.
#define smtkSharedFromThisMacro(...)
A macro to help with derived classes whose bases enable shared_from_this().
Definition: SharedFromThis.h:250
MembershipCriteria
Rules for determining which phrases a membership badge applies to.
Definition: MembershipBadge.h:39
#define smtkTypeMacro(...)
Add typedefs to a class for identifcation.
Definition: SharedFromThis.h:128
@ All
All descriptive phrases should have a membership badge.
bool singleSelect() const
Returns true if this badge is set to only allow a single member at a time.
Definition: MembershipBadge.h:136
A base class for phrases describing an SMTK model.
Definition: DescriptivePhrase.h:76
std::string m_iconOff
SVG for icon showing non-membership.
Definition: MembershipBadge.h:149
#define smtkSuperclassMacro(...)
Add a typedef to the superclass of this class.
Definition: SharedFromThis.h:147
Configure one item in a view, which may contain children.
Definition: Configuration.h:32
MemberMap m_members
From available items, has this object been turned on?
Definition: MembershipBadge.h:144
A base class for actions taken on badges.
Definition: Badge.h:34
@ Objects
All descriptive phrases with a related persistent object should have a badge.
@ ComponentsWithGeometry
Like Components, but restricted to components with renderable geometry.