OpenLexocad  28.0
PropertyNameTool.h
Go to the documentation of this file.
1 #pragma once
2 #include <string>
3 #include <map>
4 
9 
16 
17 
18 namespace Base
19 {
21 {
23  P_MODIFY_PLACEMENT = 1 << 0, // 1
24  P_MODIFY_LINK = 1 << 1, // 2
25  P_MODIFY_VISIBLITY = 1 << 3, // 8
26  P_MODIFY_SHAPE = 1 << 4, // 16
27  P_MODIFY_APPEARANCE = 1 << 5, // 32
28 
29 };
30 
31 // Property name
32 enum PName
33 {
34  m_No_Name = 0,
52 
53  // Inverse > 10000
54  m_Inverse = 10000,
80  // User > 20000
81  m_User = 20000
82 };
83 
87 
88 class LX_BASE_EXPORT PropertyNameTool
89 {
90 public:
92  static std::string getPNameAsString(const Base::PName n);
94  static Base::PName getPNameFromString(const std::string& n);
96  static void init();
98  static void addUserProperty(unsigned int index, const std::string& name);
100  static unsigned int userNameCnt;
101 
102 private:
103  static std::map<unsigned, std::string> pnameMap;
104  static std::map<std::string, unsigned> pstringMap;
105 };
106 } // namespace Base
107 
108 
109 #define ADD_PNAME(_pname_) \
110  { \
111  pnameMap[Base::_pname_] = #_pname_; \
112  pstringMap[#_pname_] = Base::_pname_; \
113  }
Base::m_ObjectPlacement
@ m_ObjectPlacement
Definition: PropertyNameTool.h:40
Base::P_MODIFY_LINK
@ P_MODIFY_LINK
Definition: PropertyNameTool.h:24
Base::m_Name
@ m_Name
Definition: PropertyNameTool.h:37
Base::m_StyledByItem_inverse
@ m_StyledByItem_inverse
Definition: PropertyNameTool.h:55
Base::m_Axis
@ m_Axis
Definition: PropertyNameTool.h:49
Base::m_OwnerHistory
@ m_OwnerHistory
Definition: PropertyNameTool.h:36
Base::P_MODIFY_APPEARANCE
@ P_MODIFY_APPEARANCE
Definition: PropertyNameTool.h:27
Base::m_Inverse
@ m_Inverse
Definition: PropertyNameTool.h:54
Base::m_IsDeclaredBy_inverse
@ m_IsDeclaredBy_inverse
Definition: PropertyNameTool.h:63
Base::m_Position
@ m_Position
Definition: PropertyNameTool.h:43
Base::PropertyNameTool
Definition: PropertyNameTool.h:89
Base::m_Declares_inverse
@ m_Declares_inverse
Definition: PropertyNameTool.h:64
Base::m_ZLength
@ m_ZLength
Definition: PropertyNameTool.h:47
Base::m_HasAssociations_inverse
@ m_HasAssociations_inverse
Definition: PropertyNameTool.h:62
Base::m_IsTypedBy_inverse
@ m_IsTypedBy_inverse
Definition: PropertyNameTool.h:65
Base::m_ReferencedBy_inverse
@ m_ReferencedBy_inverse
Definition: PropertyNameTool.h:67
Base::m_ProvidesBoundaries_inverse
@ m_ProvidesBoundaries_inverse
Definition: PropertyNameTool.h:76
Base::m_ConnectedTo_inverse
@ m_ConnectedTo_inverse
Definition: PropertyNameTool.h:69
Base::m_ReferencedInStructures_inverse
@ m_ReferencedInStructures_inverse
Definition: PropertyNameTool.h:73
Base::m_YLength
@ m_YLength
Definition: PropertyNameTool.h:46
Base::m_Location
@ m_Location
Definition: PropertyNameTool.h:48
Base::P_MODIFY_VISIBLITY
@ P_MODIFY_VISIBLITY
Definition: PropertyNameTool.h:25
Base::m_IsNestedBy_inverse
@ m_IsNestedBy_inverse
Definition: PropertyNameTool.h:58
Base::m_Representation
@ m_Representation
Definition: PropertyNameTool.h:41
Base::m_HasAssignments_inverse
@ m_HasAssignments_inverse
Definition: PropertyNameTool.h:56
Base::P_MODIFY_DATA
@ P_MODIFY_DATA
Definition: PropertyNameTool.h:22
Base::m_IsDefinedBy_inverse
@ m_IsDefinedBy_inverse
Definition: PropertyNameTool.h:66
Base::P_MODIFY_SHAPE
@ P_MODIFY_SHAPE
Definition: PropertyNameTool.h:26
Base::m_Coordinates
@ m_Coordinates
Definition: PropertyNameTool.h:51
Base::m_HasOpenings_inverse
@ m_HasOpenings_inverse
Definition: PropertyNameTool.h:74
Base::m_No_Name
@ m_No_Name
Definition: PropertyNameTool.h:34
Base::m_HasCoverings_inverse
@ m_HasCoverings_inverse
Definition: PropertyNameTool.h:78
Base::m_User
@ m_User
Definition: PropertyNameTool.h:81
Base::m_Decomposes_inverse
@ m_Decomposes_inverse
Definition: PropertyNameTool.h:61
Base::PropertyKind
PropertyKind
Definition: PropertyNameTool.h:21
Base::m_Tag
@ m_Tag
Definition: PropertyNameTool.h:44
Base::PropertyNameTool::getPNameAsString
static std::string getPNameAsString(const Base::PName n)
Returns the string representation of the property name index.
Base::m_FillsVoids_inverse
@ m_FillsVoids_inverse
Definition: PropertyNameTool.h:68
Base::PropertyNameTool::init
static void init()
ADD ALL NEW PROPERTY NAMES HERE...
Base::m_Radius
@ m_Radius
Definition: PropertyNameTool.h:42
Base::P_MODIFY_PLACEMENT
@ P_MODIFY_PLACEMENT
Definition: PropertyNameTool.h:23
Base::m_GlobalId
@ m_GlobalId
Definition: PropertyNameTool.h:35
Base::m_ObjectType
@ m_ObjectType
Definition: PropertyNameTool.h:39
Base::m_RefDirection
@ m_RefDirection
Definition: PropertyNameTool.h:50
Base::PropertyNameTool::getPNameFromString
static Base::PName getPNameFromString(const std::string &n)
Returns the index for the property name string.
Base::PName
PName
Definition: PropertyNameTool.h:33
Base::PropertyNameTool::addUserProperty
static void addUserProperty(unsigned int index, const std::string &name)
Adds a user defined property name by index and name. Index must be greater PName::USER (10000)
Base::m_Nests_inverse
@ m_Nests_inverse
Definition: PropertyNameTool.h:57
Base::m_IsDecomposedBy_inverse
@ m_IsDecomposedBy_inverse
Definition: PropertyNameTool.h:60
Base::m_IsConnectionRealization_inverse
@ m_IsConnectionRealization_inverse
Definition: PropertyNameTool.h:75
Base::m_IsInterferedByElements_inverse
@ m_IsInterferedByElements_inverse
Definition: PropertyNameTool.h:70
Base::m_InterferesElements_inverse
@ m_InterferesElements_inverse
Definition: PropertyNameTool.h:71
Base::m_HasProjections_inverse
@ m_HasProjections_inverse
Definition: PropertyNameTool.h:72
Base::m_Description
@ m_Description
Definition: PropertyNameTool.h:38
Base::m_ContainedInStructure_inverse
@ m_ContainedInStructure_inverse
Definition: PropertyNameTool.h:79
Base::PropertyNameTool::userNameCnt
static unsigned int userNameCnt
User name count.
Definition: PropertyNameTool.h:100
Base::m_XLength
@ m_XLength
Definition: PropertyNameTool.h:45
Base
Definition: AbstractXMLReader.h:5
Base::m_HasContext_inverse
@ m_HasContext_inverse
Definition: PropertyNameTool.h:59
Base::m_ConnectedFrom_inverse
@ m_ConnectedFrom_inverse
Definition: PropertyNameTool.h:77