Skip to content

Commit 2e368c2

Browse files
committed
Remove home made container from topo entities
1 parent 5425a79 commit 2e368c2

File tree

77 files changed

+5212
-6959
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+5212
-6959
lines changed

src/Core/Geom/ExportVTKImplementation.cpp

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,28 +60,16 @@ void ExportVTKImplementation::perform(Internal::InfoCommand* icmd)
6060
std::vector<Topo::Block*> topo_blocs;
6161
m_context.getTopoManager().getBlocks(topo_blocs);
6262

63-
std::vector<Topo::CoFace*> topo_cofaces;
64-
std::vector<Topo::CoEdge*> topo_coedges;
65-
std::vector<Topo::Vertex*> topo_vertices;
66-
topo_blocs[0]->getCoFaces(topo_cofaces);
67-
topo_blocs[0]->getCoEdges(topo_coedges);
68-
topo_blocs[0]->getVertices(topo_vertices);
69-
//
70-
// std::vector<Mesh::Surface*> surfaces;
71-
// std::vector<Mesh::Cloud*> clouds;
72-
// m_context.getMeshManager().getSurfaces(surfaces);
73-
// m_context.getMeshManager().getClouds(clouds);
74-
7563
gmds::Mesh& mesh = m_context.getMeshManager().getMesh()->getGMDSMesh();
7664
{
7765
// surfaces
78-
for(unsigned int iCoFace=0; iCoFace<topo_cofaces.size(); iCoFace++) {
66+
for(Topo::CoFace* coface : topo_blocs[0]->getCoFaces()) {
7967

80-
Geom::Surface* surf_tmp = dynamic_cast<Geom::Surface*> (topo_cofaces[iCoFace]->getGeomAssociation());
68+
Geom::Surface* surf_tmp = dynamic_cast<Geom::Surface*> (coface->getGeomAssociation());
8169
CHECK_NULL_PTR_ERROR(surf_tmp);
8270
auto surf = mesh.newGroup<gmds::Face>(surf_tmp->getName());
8371

84-
std::vector<gmds::TCellID>& elems = topo_cofaces[iCoFace]->faces();
72+
std::vector<gmds::TCellID>& elems = coface->faces();
8573
std::vector<gmds::Face> face_elems;
8674
face_elems.resize(elems.size());
8775
for(unsigned int iGMDSFace=0; iGMDSFace<elems.size(); iGMDSFace++) {
@@ -93,13 +81,13 @@ void ExportVTKImplementation::perform(Internal::InfoCommand* icmd)
9381
}
9482

9583
// curves
96-
for(unsigned int iCoEdge=0; iCoEdge<topo_coedges.size(); iCoEdge++) {
84+
for(Topo::CoEdge* coedge : topo_blocs[0]->getCoEdges()) {
9785

98-
Geom::Curve* curv_tmp = dynamic_cast<Geom::Curve*> (topo_coedges[iCoEdge]->getGeomAssociation());
86+
Geom::Curve* curv_tmp = dynamic_cast<Geom::Curve*> (coedge->getGeomAssociation());
9987
CHECK_NULL_PTR_ERROR(curv_tmp);
10088
auto cl = mesh.newGroup<gmds::Node>(curv_tmp->getName());
10189

102-
std::vector<gmds::TCellID>& elems = topo_coedges[iCoEdge]->nodes();
90+
std::vector<gmds::TCellID>& elems = coedge->nodes();
10391

10492
std::vector<gmds::Node> node_elems;
10593
node_elems.resize(elems.size());
@@ -112,13 +100,12 @@ void ExportVTKImplementation::perform(Internal::InfoCommand* icmd)
112100
}
113101

114102
// vertices
115-
for(unsigned int iVertex=0; iVertex<topo_vertices.size(); iVertex++) {
103+
for(Topo::Vertex* vertex : topo_blocs[0]->getVertices()) {
116104

117-
Geom::Vertex* vert_tmp = dynamic_cast<Geom::Vertex*> (topo_vertices[iVertex]->getGeomAssociation());
105+
Geom::Vertex* vert_tmp = dynamic_cast<Geom::Vertex*> (vertex->getGeomAssociation());
118106
CHECK_NULL_PTR_ERROR(vert_tmp);
119107
auto cl = mesh.newGroup<gmds::Node>(vert_tmp->getName());
120-
gmds::Node elem = mesh.get<gmds::Node>(topo_vertices[iVertex]->getNode());
121-
108+
gmds::Node elem = mesh.get<gmds::Node>(vertex->getNode());
122109
cl->add(elem);
123110
}
124111
}

src/Core/Internal/EntitiesHelper.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,9 +428,7 @@ Geom::Surface* EntitiesHelper::getCommonSurface(Topo::CoFace* coface)
428428
#endif
429429
Geom::Surface* surface = 0;
430430

431-
std::vector<Topo::CoEdge* > coedges;
432-
coface->getCoEdges(coedges, true);
433-
431+
std::vector<Topo::CoEdge* > coedges = coface->getCoEdges();
434432
if (!coedges.empty()){
435433
// recherche d'une surface commune à tous les groupes de surfaces
436434
// associés aux différentes arêtes

src/Core/Internal/ServiceGeomToTopo.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ bool ServiceGeomToTopo::convertBlockStructured(const int ni, const int nj, const
6363

6464
// cas où le nombre de bras est donné par l'utilisateur
6565
if (ni>0 && nj>0 && nk>0){
66-
std::vector<Topo::CoEdge*> coedges;
67-
bloc->getCoEdges(coedges);
66+
std::vector<Topo::CoEdge*> coedges = bloc->getCoEdges();
6867
if (coedges.size() != 12){
6968
throw TkUtil::Exception(TkUtil::UTF8String ("Erreur interne, on impose une discrétisation à un bloc qui n'a pas que 12 arêtes", TkUtil::Charset::UTF_8));
7069
}
@@ -372,14 +371,11 @@ std::vector<Topo::Edge*> ServiceGeomToTopo::getEdges(std::vector<Topo::CoEdge*>&
372371
// accumulation des coedges pour une edge
373372
do {
374373
// std::cout<<"vtx_i = "<<vtx_i->getName()<<std::endl;
375-
std::vector<Topo::CoEdge*> coedges_loc;
376-
vtx_i->getCoEdges(coedges_loc);
377-
// std::cout<<"coedges_loc.size() = "<<coedges_loc.size()<<std::endl;
378374
// recherche d'une arête non marquée
379375
Topo::CoEdge* coedge = 0;
380-
for (uint i=0; i<coedges_loc.size(); i++)
381-
if (filtre_coedges[coedges_loc[i]] == 1)
382-
coedge = coedges_loc[i];
376+
for (Topo::CoEdge* ce_loc : vtx_i->getCoEdges())
377+
if (filtre_coedges[ce_loc] == 1)
378+
coedge = ce_loc;
383379
if (coedge == 0)
384380
throw TkUtil::Exception(TkUtil::UTF8String ("Erreur interne, plus d'arête lors du parcours de proche en proche", TkUtil::Charset::UTF_8));
385381
filtre_coedges[coedge] = 2;

src/Core/Mesh/CommandCreateMesh.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,15 +1064,13 @@ meshAndModify(std::list<Topo::CoFace*>& list_cofaces)
10641064
#ifdef _DEBUG2
10651065
std::cout<<" on doit mailler "<<coface->getName()<<std::endl;
10661066
#endif
1067-
std::vector<Topo::Vertex*> vertices;
1068-
coface->getVertices(vertices);
1067+
const std::vector<Topo::Vertex*>& vertices = coface->getVertices();
10691068
for (uint i=0; i<vertices.size(); i++){
10701069
if (!vertices[i]->isMeshed())
10711070
mesh (vertices[i]);
10721071
}
10731072

1074-
std::vector<Topo::CoEdge*> aretes;
1075-
coface->getCoEdges(aretes);
1073+
std::vector<Topo::CoEdge*> aretes = coface->getCoEdges();
10761074
for (uint i=0; i<aretes.size(); i++){
10771075
if (!aretes[i]->isPreMeshed() && !aretes[i]->isMeshed())
10781076
preMesh (aretes[i]);

src/Core/Mesh/CommandCreateSubVolumeBetweenSheets.cpp

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -112,21 +112,12 @@ internalRedo()
112112
void CommandCreateSubVolumeBetweenSheets::
113113
selectCoFaces(std::map<Topo::CoFace*, uint>& filtre_coface)
114114
{
115-
for (uint j=0; j<m_blocks.size(); j++){
116-
Topo::Block* blk = m_blocks[j];
117-
115+
for (Topo::Block* blk : m_blocks) {
118116
if (blk->isStructured() && blk->isMeshed()){
119-
120-
std::vector<Topo::CoFace* > cofaces;
121-
122-
blk->getCoFaces(cofaces);
123-
124-
for (std::vector<Topo::CoFace* >::iterator iter1 = cofaces.begin();
125-
iter1 != cofaces.end(); ++iter1){
126-
filtre_coface[*iter1] = 1;
117+
for (Topo::CoFace* coface : blk->getCoFaces()) {
118+
filtre_coface[coface] = 1;
127119
//std::cout<<"filtre_coface à 1 pour "<<(*iter1)->getName()<<std::endl;
128120
}
129-
130121
} // end if (blk->isStructured() && blk->isMeshed())
131122
else if (!blk->isStructured()){
132123
TkUtil::UTF8String message (TkUtil::Charset::UTF_8);
@@ -140,7 +131,7 @@ selectCoFaces(std::map<Topo::CoFace*, uint>& filtre_coface)
140131
<<" n'est pas maillé";
141132
throw TkUtil::Exception(message);
142133
}
143-
} // end for j
134+
} // end for blk
144135
}
145136
/*----------------------------------------------------------------------------*/
146137
void CommandCreateSubVolumeBetweenSheets::
@@ -167,8 +158,7 @@ computePosCoEdge(std::map<Topo::CoFace*, uint>& filtre_coface,
167158
#ifdef _DEBUG_SHEETS
168159
std::cout<<"### coedge : "<<coedge_dep->getName()<<", pos1 : "<<pos1<<", pos2 : "<<pos2<<std::endl;
169160
#endif
170-
std::vector<Topo::CoFace* > cofaces;
171-
coedge_dep->getCoFaces(cofaces);
161+
std::vector<Topo::CoFace* > cofaces = coedge_dep->getCoFaces();
172162

173163
for (std::vector<Topo::CoFace* >::iterator iter1 = cofaces.begin();
174164
iter1 != cofaces.end(); ++iter1){
@@ -184,19 +174,20 @@ computePosCoEdge(std::map<Topo::CoFace*, uint>& filtre_coface,
184174
// recherche du côté dans lequel est cette arête, et le nombre de bras de maillage jusqu'à la coupe
185175
Topo::Edge* edge_dep = coface->getEdgeContaining(coedge_dep);
186176
//std::cout<<"edge_dep : "<<*edge_dep;
187-
uint ind_edge_dep = coface->getIndex(edge_dep);
177+
uint ind_edge_dep = Utils::getIndexOf(edge_dep, coface->getEdges());
188178

189179
// direction de la face qui est coupée
190180
Topo::CoFace::eDirOnCoFace dirCoFaceSplit = (ind_edge_dep%2?Topo::CoFace::i_dir:Topo::CoFace::j_dir);
191181

192182
Topo::Vertex* vertex1;
193183
Topo::Vertex* vertex2;
184+
const std::vector<Topo::Vertex* >& cf_vertices = coface->getVertices();
194185
if (dirCoFaceSplit == Topo::CoFace::i_dir){
195-
vertex1 = coface->getVertex(1);
196-
vertex2 = coface->getVertex(0);
186+
vertex1 = cf_vertices[1];
187+
vertex2 = cf_vertices[0];
197188
} else {
198-
vertex1 = coface->getVertex(1);
199-
vertex2 = coface->getVertex(2);
189+
vertex1 = cf_vertices[1];
190+
vertex2 = cf_vertices[2];
200191
}
201192

202193
if (ind_edge_dep>1){
@@ -233,14 +224,15 @@ computePosCoEdge(std::map<Topo::CoFace*, uint>& filtre_coface,
233224

234225
Topo::Edge* edge_ar = 0;
235226
// si on est sur le côté face à la dégénérescence, on met à 0 l'arête d'arrivée
236-
if (coface->getNbEdges() == 4){
227+
const std::vector<Topo::Edge* > & cf_edges = coface->getEdges();
228+
if (cf_edges.size() == 4){
237229
uint ind_edge_ar = (ind_edge_dep+2)%4;
238-
edge_ar = coface->getEdge(ind_edge_ar);
230+
edge_ar = cf_edges[ind_edge_ar];
239231
} else {
240232
if (ind_edge_dep == 0)
241-
edge_ar = coface->getEdge(2);
233+
edge_ar = cf_edges[2];
242234
else if (ind_edge_dep == 2)
243-
edge_ar = coface->getEdge(0);
235+
edge_ar = cf_edges[0];
244236
else
245237
edge_ar = 0;
246238
}
@@ -339,9 +331,10 @@ computePosBlock(std::map<Topo::CoEdge*, uint> &filtre1_coedge,
339331
std::cout<<"getCoEdgesBetweenVertices entre "<<bloc->getVertex(0)->getName()
340332
<<" et "<<bloc->getVertex(ind_vtx)->getName()<<" d'indice "<<ind_vtx<<std::endl;
341333
#endif
342-
Topo::TopoHelper::getCoEdgesBetweenVertices(bloc->getVertex(0), bloc->getVertex(ind_vtx), iCoedges[i], coedges_between);
334+
std::vector<Topo::Vertex*> vertices = bloc->getVertices();
335+
Topo::Vertex* vtx = vertices[0];
336+
Topo::TopoHelper::getCoEdgesBetweenVertices(vtx, vertices[ind_vtx], iCoedges[i], coedges_between);
343337

344-
Topo::Vertex* vtx = bloc->getVertex(0);
345338
for (std::vector<Topo::CoEdge* >::iterator iter3 = coedges_between.begin();
346339
iter3 != coedges_between.end(); ++iter3){
347340
Topo::CoEdge* coedge = *iter3;
@@ -353,7 +346,7 @@ computePosBlock(std::map<Topo::CoEdge*, uint> &filtre1_coedge,
353346
dir = (Topo::Block::eDirOnBlock)i;
354347
uint ratio = ratios[coedge];
355348
uint dec = ratio-1;
356-
if (vtx == coedge->getVertex(0)){
349+
if (vtx == coedge->getVertices()[0]){
357350
pos1_blk += (filtre1_coedge[coedge]+dec)/ratio;
358351
pos2_blk += (filtre2_coedge[coedge]+dec)/ratio;
359352
}

src/Core/Mesh/CommandMeshExplorer.cpp

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,7 @@ selectCoFaceAndBlocks(std::map<Topo::CoFace*, uint>& filtre_coface,
164164
#ifdef _DEBUG_EXPLORER
165165
std::cout<<" bloc pris en compte : "<<blk->getName()<<std::endl;
166166
#endif
167-
168-
std::vector<Topo::CoFace* > cofaces;
169-
170-
blk->getCoFaces(cofaces);
171-
172-
for (Topo::CoFace* coface : cofaces){
167+
for (Topo::CoFace* coface : blk->getCoFaces()){
173168
filtre_coface[coface] = 1;
174169
//std::cout<<"filtre_coface à 1 pour "<<(coface)->getName()<<std::endl;
175170
}
@@ -185,12 +180,7 @@ selectCoFaceAndBlocks(std::map<Topo::CoFace*, uint>& filtre_coface,
185180
#ifdef _DEBUG_EXPLORER
186181
std::cout<<" bloc pris en compte : "<<blk->getName()<<std::endl;
187182
#endif
188-
189-
std::vector<Topo::CoFace* > cofaces;
190-
191-
blk->getCoFaces(cofaces);
192-
193-
for (Topo::CoFace* coface : cofaces){
183+
for (Topo::CoFace* coface : blk->getCoFaces()){
194184
filtre_coface[coface] = 1;
195185
//std::cout<<"filtre_coface à 1 pour "<<coface->getName()<<std::endl;
196186
}
@@ -227,8 +217,7 @@ computePosCoEdge(std::map<Topo::CoFace*, uint>& filtre_coface,
227217
#ifdef _DEBUG_EXPLORER
228218
std::cout<<"### coedge : "<<coedge_dep->getName()<<", pos : "<<pos<<std::endl;
229219
#endif
230-
std::vector<Topo::CoFace* > cofaces;
231-
coedge_dep->getCoFaces(cofaces);
220+
std::vector<Topo::CoFace* > cofaces = coedge_dep->getCoFaces();
232221

233222
for (std::vector<Topo::CoFace* >::iterator iter1 = cofaces.begin();
234223
iter1 != cofaces.end(); ++iter1){
@@ -244,20 +233,21 @@ computePosCoEdge(std::map<Topo::CoFace*, uint>& filtre_coface,
244233
// recherche du côté dans lequel est cette arête, et le nombre de bras de maillage jusqu'à la coupe
245234
Topo::Edge* edge_dep = coface->getEdgeContaining(coedge_dep);
246235
//std::cout<<"edge_dep : "<<*edge_dep;
247-
uint ind_edge_dep = coface->getIndex(edge_dep);
236+
uint ind_edge_dep = Utils::getIndexOf(edge_dep, coface->getEdges());
248237

249238

250239
// direction de la face qui est coupée
251240
Topo::CoFace::eDirOnCoFace dirCoFaceSplit = (ind_edge_dep%2?Topo::CoFace::i_dir:Topo::CoFace::j_dir);
252241

253242
Topo::Vertex* vertex1;
254243
Topo::Vertex* vertex2;
244+
const std::vector<Topo::Vertex* >& cf_vertices = coface->getVertices();
255245
if (dirCoFaceSplit == Topo::CoFace::i_dir){
256-
vertex1 = coface->getVertex(1);
257-
vertex2 = coface->getVertex(0);
246+
vertex1 = cf_vertices[1];
247+
vertex2 = cf_vertices[0];
258248
} else {
259-
vertex1 = coface->getVertex(1);
260-
vertex2 = coface->getVertex(2);
249+
vertex1 = cf_vertices[1];
250+
vertex2 = cf_vertices[2];
261251
}
262252

263253
if (ind_edge_dep>1){
@@ -289,14 +279,15 @@ computePosCoEdge(std::map<Topo::CoFace*, uint>& filtre_coface,
289279

290280
Topo::Edge* edge_ar = 0;
291281
// si on est sur le côté face à la dégénérescence, on met à 0 l'arête d'arrivée
292-
if (coface->getNbEdges() == 4){
282+
const std::vector<Topo::Edge* > & cf_edges = coface->getEdges();
283+
if (cf_edges.size() == 4){
293284
uint ind_edge_ar = (ind_edge_dep+2)%4;
294-
edge_ar = coface->getEdge(ind_edge_ar);
285+
edge_ar = cf_edges[ind_edge_ar];
295286
} else {
296287
if (ind_edge_dep == 0)
297-
edge_ar = coface->getEdge(2);
288+
edge_ar = cf_edges[2];
298289
else if (ind_edge_dep == 2)
299-
edge_ar = coface->getEdge(0);
290+
edge_ar = cf_edges[0];
300291
else
301292
edge_ar = 0;
302293
}
@@ -378,9 +369,10 @@ computePosBlock(std::map<Topo::Block*, uint>& filtre_block,
378369
std::cout<<"getCoEdgesBetweenVertices entre "<<bloc->getVertex(0)->getName()
379370
<<" et "<<bloc->getVertex(ind_vtx)->getName()<<" d'indice "<<ind_vtx<<std::endl;
380371
#endif
381-
Topo::TopoHelper::getCoEdgesBetweenVertices(bloc->getVertex(0), bloc->getVertex(ind_vtx), iCoedges[i], coedges_between);
372+
std::vector<Topo::Vertex*> vertices = bloc->getVertices();
373+
Topo::Vertex* vtx = vertices[0];;
374+
Topo::TopoHelper::getCoEdgesBetweenVertices(vtx, vertices[ind_vtx], iCoedges[i], coedges_between);
382375

383-
Topo::Vertex* vtx = bloc->getVertex(0);
384376
for (std::vector<Topo::CoEdge* >::iterator iter3 = coedges_between.begin();
385377
iter3 != coedges_between.end(); ++iter3){
386378
Topo::CoEdge* coedge = *iter3;
@@ -391,7 +383,7 @@ computePosBlock(std::map<Topo::Block*, uint>& filtre_block,
391383
dir = (Topo::Block::eDirOnBlock)i;
392384
uint ratio = ratios[coedge];
393385
uint dec = ratio-1;
394-
if (vtx == coedge->getVertex(0))
386+
if (vtx == coedge->getVertices()[0])
395387
pos_blk += (filtre_coedge[coedge]+dec)/ratio;
396388
else
397389
pos_blk += (coedge->getNbMeshingEdges() - filtre_coedge[coedge] + 1 + dec)/ratio;

src/Core/Mesh/CommandNewBlocksMesh.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,10 @@ internalExecute()
8787
setStepProgression (1.);
8888
setStep (++step, "Recensement des faces", 0.);
8989
std::list<Topo::CoFace*> list_cofaces;
90-
std::vector<Topo::CoFace* > cofaces;
9190
for (uint i=0; i<m_blocks.size(); i++){
92-
m_blocks[i]->getCoFaces(cofaces);
93-
94-
for (uint j=0; j<cofaces.size(); j++)
95-
if (!cofaces[j]->isMeshed())
96-
list_cofaces.push_back(cofaces[j]);
91+
for (Topo::CoFace* coface : m_blocks[i]->getCoFaces())
92+
if (!coface->isMeshed())
93+
list_cofaces.push_back(coface);
9794
}
9895
list_cofaces.sort(Utils::Entity::compareEntity);
9996
list_cofaces.unique();
@@ -107,10 +104,7 @@ internalExecute()
107104
{
108105
std::set<Topo::CoEdge *> set_coedges;
109106
for (auto b: m_blocks) {
110-
std::vector<Topo::CoEdge *> coedges;
111-
b->getCoEdges(coedges);
112-
113-
for (auto ce: coedges) {
107+
for (auto ce: b->getCoEdges()) {
114108
set_coedges.insert(ce);
115109
}
116110
}

src/Core/Mesh/CommandNewFacesMesh.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,11 @@ internalExecute()
9595
// applied to adjacent surfaces
9696
{
9797
std::set<Topo::CoEdge *> set_coedges;
98-
for (auto cf: list_cofaces) {
99-
std::vector<Topo::CoEdge *> coedges;
100-
cf->getCoEdges(coedges);
101-
102-
for (auto ce: coedges) {
98+
for (Topo::CoFace* cf : list_cofaces)
99+
for (Topo::CoEdge* ce : cf->getCoEdges())
103100
set_coedges.insert(ce);
104-
}
105-
}
106-
for (auto ce: set_coedges) {
101+
102+
for (Topo::CoEdge* ce: set_coedges) {
107103
ce->clearPoints();
108104
ce->getMeshingData()->setPreMeshed(false);
109105
}

0 commit comments

Comments
 (0)