@@ -112,21 +112,12 @@ internalRedo()
112112void CommandCreateSubVolumeBetweenSheets::
113113selectCoFaces (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/* ----------------------------------------------------------------------------*/
146137void 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 }
0 commit comments