Skip to content

Commit 2ddc1ae

Browse files
committed
Reduce GroupHelperForCommand code
1 parent 239eff6 commit 2ddc1ae

19 files changed

+117
-207
lines changed

src/Core/Geom/CommandExtrusion.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ groups2DTo3D()
163163
for (uint i=0; i<grp.size(); i++){
164164
std::string nom = grp[i]->getName();
165165
if (nom != getContext().getGroupManager().getDefaultName(2)) {
166-
Group::Group3D* new_grp = m_group_helper.addToGroup(nom, vol);
166+
Group::Group3D* new_grp = m_group_helper.addToGroup<Group::Group3D>(nom, vol);
167167
new_grp->setLevel(grp[i]->getLevel());
168168
}
169169
}
@@ -180,7 +180,7 @@ groups2DTo3D()
180180
for (uint i=0; i<grp.size(); i++){
181181
std::string nom = grp[i]->getName();
182182
if (nom != getContext().getGroupManager().getDefaultName(1)) {
183-
Group::Group2D* new_grp = m_group_helper.addToGroup(nom, surf);
183+
Group::Group2D* new_grp = m_group_helper.addToGroup<Group::Group2D>(nom, surf);
184184
new_grp->setLevel(grp[i]->getLevel());
185185
}
186186
}
@@ -197,7 +197,7 @@ groups2DTo3D()
197197
for (uint i=0; i<grp.size(); i++){
198198
std::string nom = grp[i]->getName();
199199
if (nom != getContext().getGroupManager().getDefaultName(0)) {
200-
Group::Group1D* new_grp = m_group_helper.addToGroup(nom, curve);
200+
Group::Group1D* new_grp = m_group_helper.addToGroup<Group::Group1D>(nom, curve);
201201
new_grp->setLevel(grp[i]->getLevel());
202202
}
203203
}

src/Core/Group/GroupHelperForCommand.cpp

Lines changed: 32 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -13,144 +13,52 @@ GroupHelperForCommand(Internal::InfoCommand& info_command, GroupManager& group_m
1313
{
1414
}
1515
/*----------------------------------------------------------------------------*/
16-
Group3D* GroupHelperForCommand::
17-
addToGroup(const std::string group_name, Geom::Volume* v)
18-
{
19-
Group3D* grp = m_group_manager.getNewGroup<Group3D>(group_name, &m_info_command);
20-
addEntityToGroup(grp, v);
21-
return grp;
22-
}
23-
/*----------------------------------------------------------------------------*/
24-
Group2D* GroupHelperForCommand::
25-
addToGroup(const std::string group_name, Geom::Surface* s)
26-
{
27-
Group2D* grp = m_group_manager.getNewGroup<Group2D>(group_name, &m_info_command);
28-
addEntityToGroup(grp, s);
29-
return grp;
30-
}
31-
/*----------------------------------------------------------------------------*/
32-
Group1D* GroupHelperForCommand::
33-
addToGroup(const std::string group_name, Geom::Curve* c)
34-
{
35-
Group1D* grp = m_group_manager.getNewGroup<Group1D>(group_name, &m_info_command);
36-
addEntityToGroup(grp, c);
37-
return grp;
38-
}
39-
/*----------------------------------------------------------------------------*/
40-
Group0D* GroupHelperForCommand::
41-
addToGroup(const std::string group_name, Geom::Vertex* v)
42-
{
43-
Group0D* grp = m_group_manager.getNewGroup<Group0D>(group_name, &m_info_command);
44-
addEntityToGroup(grp, v);
45-
return grp;
46-
}
47-
/*----------------------------------------------------------------------------*/
4816
GroupEntity* GroupHelperForCommand::
49-
addToGroup(const std::string group_name, Geom::GeomEntity* e)
17+
addToGroup(const std::string& group_name, Geom::GeomEntity* e)
5018
{
5119
switch (e->getDim())
5220
{
53-
case 0: return addToGroup(group_name, dynamic_cast<Geom::Vertex*>(e));
54-
case 1: return addToGroup(group_name, dynamic_cast<Geom::Curve*>(e));
55-
case 2: return addToGroup(group_name, dynamic_cast<Geom::Surface*>(e));
56-
default: return addToGroup(group_name, dynamic_cast<Geom::Volume*>(e));
21+
case 0: return addToGroup<Group0D>(group_name, dynamic_cast<Geom::Vertex*>(e));
22+
case 1: return addToGroup<Group1D>(group_name, dynamic_cast<Geom::Curve*>(e));
23+
case 2: return addToGroup<Group2D>(group_name, dynamic_cast<Geom::Surface*>(e));
24+
default: return addToGroup<Group3D>(group_name, dynamic_cast<Geom::Volume*>(e));
5725
}
5826
}
5927
/*----------------------------------------------------------------------------*/
60-
Group3D* GroupHelperForCommand::
61-
addToGroup(const std::string group_name, Topo::Block* b)
62-
{
63-
Group3D* grp = m_group_manager.getNewGroup<Group3D>(group_name, &m_info_command);
64-
addEntityToGroup(grp, b);
65-
return grp;
66-
}
67-
/*----------------------------------------------------------------------------*/
68-
Group2D* GroupHelperForCommand::
69-
addToGroup(const std::string group_name, Topo::CoFace* f)
70-
{
71-
Group2D* grp = m_group_manager.getNewGroup<Group2D>(group_name, &m_info_command);
72-
addEntityToGroup(grp, f);
73-
return grp;
74-
}
75-
/*----------------------------------------------------------------------------*/
76-
Group1D* GroupHelperForCommand::
77-
addToGroup(const std::string group_name, Topo::CoEdge* e)
78-
{
79-
Group1D* grp = m_group_manager.getNewGroup<Group1D>(group_name, &m_info_command);
80-
addEntityToGroup(grp, e);
81-
return grp;
82-
}
83-
/*----------------------------------------------------------------------------*/
84-
Group0D* GroupHelperForCommand::
85-
addToGroup(const std::string group_name, Topo::Vertex* v)
86-
{
87-
Group0D* grp = m_group_manager.getNewGroup<Group0D>(group_name, &m_info_command);
88-
addEntityToGroup(grp, v);
89-
return grp;
90-
}
91-
/*----------------------------------------------------------------------------*/
92-
Group3D* GroupHelperForCommand::
93-
removeFromGroup(const std::string group_name, Geom::Volume* v)
94-
{
95-
Group3D* grp = m_group_manager.getGroup<Group3D>(group_name, &m_info_command);
96-
removeEntityFromGroup(grp, v);
97-
return grp;
98-
}
99-
/*----------------------------------------------------------------------------*/
100-
Group2D* GroupHelperForCommand::
101-
removeFromGroup(const std::string group_name, Geom::Surface* s)
102-
{
103-
Group2D* grp = m_group_manager.getGroup<Group2D>(group_name, &m_info_command);
104-
removeEntityFromGroup(grp, s);
105-
return grp;
106-
}
107-
/*----------------------------------------------------------------------------*/
108-
Group1D* GroupHelperForCommand::
109-
removeFromGroup(const std::string group_name, Geom::Curve* c)
110-
{
111-
Group1D* grp = m_group_manager.getGroup<Group1D>(group_name, &m_info_command);
112-
removeEntityFromGroup(grp, c);
113-
return grp;
114-
}
115-
/*----------------------------------------------------------------------------*/
116-
Group0D* GroupHelperForCommand::
117-
removeFromGroup(const std::string group_name, Geom::Vertex* v)
118-
{
119-
Group0D* grp = m_group_manager.getGroup<Group0D>(group_name, &m_info_command);
120-
removeEntityFromGroup(grp, v);
121-
return grp;
122-
}
123-
/*----------------------------------------------------------------------------*/
124-
Group3D* GroupHelperForCommand::
125-
removeFromGroup(const std::string group_name, Topo::Block* b)
126-
{
127-
Group3D* grp = m_group_manager.getGroup<Group3D>(group_name, &m_info_command);
128-
removeEntityFromGroup(grp, b);
129-
return grp;
130-
}
131-
/*----------------------------------------------------------------------------*/
132-
Group2D* GroupHelperForCommand::
133-
removeFromGroup(const std::string group_name, Topo::CoFace* f)
28+
GroupEntity* GroupHelperForCommand::
29+
removeFromGroup(const std::string& group_name, Geom::GeomEntity* e)
13430
{
135-
Group2D* grp = m_group_manager.getGroup<Group2D>(group_name, &m_info_command);
136-
removeEntityFromGroup(grp, f);
137-
return grp;
31+
switch (e->getDim())
32+
{
33+
case 0: return removeFromGroup<Group0D>(group_name, dynamic_cast<Geom::Vertex*>(e));
34+
case 1: return removeFromGroup<Group1D>(group_name, dynamic_cast<Geom::Curve*>(e));
35+
case 2: return removeFromGroup<Group2D>(group_name, dynamic_cast<Geom::Surface*>(e));
36+
default: return removeFromGroup<Group3D>(group_name, dynamic_cast<Geom::Volume*>(e));
37+
}
13838
}
13939
/*----------------------------------------------------------------------------*/
140-
Group1D* GroupHelperForCommand::
141-
removeFromGroup(const std::string group_name, Topo::CoEdge* e)
40+
GroupEntity* GroupHelperForCommand::
41+
addToGroup(const std::string& group_name, Topo::TopoEntity* e)
14242
{
143-
Group1D* grp = m_group_manager.getGroup<Group1D>(group_name, &m_info_command);
144-
removeEntityFromGroup(grp, e);
145-
return grp;
43+
switch (e->getDim())
44+
{
45+
case 0: return addToGroup<Group0D>(group_name, dynamic_cast<Topo::Vertex*>(e));
46+
case 1: return addToGroup<Group1D>(group_name, dynamic_cast<Topo::CoEdge*>(e));
47+
case 2: return addToGroup<Group2D>(group_name, dynamic_cast<Topo::CoFace*>(e));
48+
default: return addToGroup<Group3D>(group_name, dynamic_cast<Topo::Block*>(e));
49+
}
14650
}
14751
/*----------------------------------------------------------------------------*/
148-
Group0D* GroupHelperForCommand::
149-
removeFromGroup(const std::string group_name, Topo::Vertex* v)
52+
GroupEntity* GroupHelperForCommand::
53+
removeFromGroup(const std::string& group_name, Topo::TopoEntity* e)
15054
{
151-
Group0D* grp = m_group_manager.getGroup<Group0D>(group_name, &m_info_command);
152-
removeEntityFromGroup(grp, v);
153-
return grp;
55+
switch (e->getDim())
56+
{
57+
case 0: return removeFromGroup<Group0D>(group_name, dynamic_cast<Topo::Vertex*>(e));
58+
case 1: return removeFromGroup<Group1D>(group_name, dynamic_cast<Topo::CoEdge*>(e));
59+
case 2: return removeFromGroup<Group2D>(group_name, dynamic_cast<Topo::CoFace*>(e));
60+
default: return removeFromGroup<Group3D>(group_name, dynamic_cast<Topo::Block*>(e));
61+
}
15462
}
15563
/*----------------------------------------------------------------------------*/
15664
} // end namespace Group

0 commit comments

Comments
 (0)