1 #ifndef __OTULINE_GROUP__
2 #define __OTULINE_GROUP__
5 //------------------------------------------------------------------------------------------------------------
7 //------------------------------------------------------------------------------------------------------------
13 //------------------------------------------------------------------------------------------------------------
14 // Constructors & Destructors
15 //------------------------------------------------------------------------------------------------------------
19 * Constructs an outline group with the given name
20 * @param theName Is the name for the group
21 * @param theGroupType Is the type for the group corresponding to one of the constants of this class
23 OutlineGroup(std::string theName, int theGroupType);
26 * Destroyes the outline and its dependencies
30 //------------------------------------------------------------------------------------------------------------
32 //------------------------------------------------------------------------------------------------------------
35 * Indicates if a given name of an outline is member of the group or not
36 * @param aKeyName Is the name of an outline to search for
38 bool isMemberOfGroup(std::string aKeyName);
41 * Removes an outline with the given name from the group
42 * @param theNameToRemove Is the name to remove from member name list
43 * @param allOcurrencies Indicates to errase all ocurrences
45 void removeOutline(std::string theNameToRemove, bool allOcurrencies = true);
48 * Adds an outline with the given name to the group members list
49 * @param theNameNw Is the name to add to the group
51 void addOutline(std::string theNameNw);
54 * Gets the name of the group
55 * @return name Is the name of the group
57 std::string getName();
60 * Sets the name of the group as the given one
61 * @param name Is the new name of the group
63 void setName(std::string theNwName);
66 * Gets the state of visiblility (true:visible) or not of the group
67 * @return visibleGroup Is the corresponding state
69 bool getIfVisibleGroup();
72 * Sets state of visible (true) or not of the with the given one
73 * @param theNwVisiblity Is the corresponding state
75 void setIfVisibleGroup(bool theNwVisiblity);
78 * Gets the state of static (true:static) or not of the group
79 * @return staticGroup Is the corresponding state
81 bool getIfStaticGroup();
84 * Sets state of static (true) or not of the with the given one
85 * @param theNwStatic Is the corresponding state
87 void setIfStaticGroup(bool theNwStatic);
90 * Gets the state of selection (true:selected) or not of the group
91 * @return selecetedGroup Is the corresponding state
93 bool getIfSelectedGroup();
96 * Sets state of visible (true) or not of the with the given one
97 * @param theNwSelected Is the corresponding state
99 void setIfSelectedGroup(bool theNwSelected);
102 * Gets the state of edition (true:editing) or not of the group
103 * @return editingGroup Is the corresponding state
105 bool getIfEditingGroup();
108 * Sets state of editing (true) or not of the with the given one
109 * @param theNwEditing Is the corresponding state
111 void setIfEditingGroup(bool theNwEditing);
114 * Gets the total count of outlines in the group
115 * @return totalCount Is the corresponding number of elements
120 * Sets the group type
121 * @param theType Is the corresponding new type to assign
123 void setGroupType(int theType);
126 * Gets the group type
127 * @return type Is the corresponding number of elements
129 int getOutlinesCount();
132 * Sets the total count of outlines in the group
133 * @param theNwVisiblity Is the corresponding state
135 void setIfEditingGroup(int theTotal);
138 * Adds an outline to the group as propagation type
139 * @param theOutlineKeyName Is the name used as identifier of the outline
141 void addOutline_PropagationType(std::string theOutlineKeyName);
144 * Adds an outline to the group as plane section type
145 * @param theOutlineKeyName Is the name used as identifier of the outline
147 void addOutline_PlaneSectionType(std::string theOutlineKeyName);
150 * Adds an outline to the group as overlaped type
151 * @param theOutlineKeyName Is the name used as identifier of the outline
153 void addOutline_OverlapedType(std::string theOutlineKeyName);
156 * Adds an outline to the group as strip type
157 * @param theOutlineKeyName Is the name used as identifier of the outline
159 void addOutline_StripType(std::string theOutlineKeyName);
162 * Adds an outline to the group as manual type
163 * @param theOutlineKeyName Is the name used as identifier of the outline
165 void addOutline_ManualType(std::string theOutlineKeyName);
169 * Gets the outlines of the group
170 * @return Returns the names of the outlines that belong to the group
172 std::vector< std::string > getGroupOutlinesNames ( );
174 //------------------------------------------------------------------------------------------------------------
176 //------------------------------------------------------------------------------------------------------------
180 bool acceptsRepetedOutlines;
183 * Represents the name of the group
188 * Represents the state of visible for the outlines in the group
193 * Represents the state of selection for the outlines in the group
198 * Represents the state of edition for the outlines in the group
203 * Represents the state of static for the outlines in the group
208 * Represents the type of the group
213 * Represents the total elements count of the group
218 * Represents the outlines of the group
220 std::vector< std::string > outlines_keyNames;
222 //------------------------------------------------------------------------------------------------------------
224 //------------------------------------------------------------------------------------------------------------