65 |
keptCells.insert(__originalMesh.cellNumber(cell)); |
keptCells.insert(__originalMesh.cellNumber(cell)); |
66 |
for (size_t i = 0; i < CellType::NumberOfVertices; ++i) { |
for (size_t i = 0; i < CellType::NumberOfVertices; ++i) { |
67 |
if (verticesTranslation.find(&cell(i)) == verticesTranslation.end()) { |
if (verticesTranslation.find(&cell(i)) == verticesTranslation.end()) { |
68 |
verticesTranslation[&cell(i)] = verticesTranslation.size(); |
const size_t vertexNumber = verticesTranslation.size(); |
69 |
|
verticesTranslation[&cell(i)] = vertexNumber; |
70 |
} |
} |
71 |
} |
} |
72 |
} |
} |
76 |
= new VerticesSet(verticesTranslation.size()); |
= new VerticesSet(verticesTranslation.size()); |
77 |
VerticesSet& vertices = *pVertices; |
VerticesSet& vertices = *pVertices; |
78 |
|
|
79 |
|
size_t l = 0; |
80 |
|
size_t number = verticesTranslation.size(); |
81 |
for(typename Translation::const_iterator i = verticesTranslation.begin(); |
for(typename Translation::const_iterator i = verticesTranslation.begin(); |
82 |
i != verticesTranslation.end(); ++i) { |
i != verticesTranslation.end(); ++i) { |
83 |
vertices[i->second] = *(i->first); |
vertices[i->second] = *(i->first); |
85 |
|
|
86 |
ReferenceCounting<Vector<CellType> > pCellList |
ReferenceCounting<Vector<CellType> > pCellList |
87 |
= new Vector<CellType>(keptCells.size()); |
= new Vector<CellType>(keptCells.size()); |
88 |
|
|
89 |
Vector<CellType>& cellList = *pCellList; |
Vector<CellType>& cellList = *pCellList; |
90 |
|
|
91 |
size_t n=0; |
size_t n=0; |
94 |
const CellType& cell = __originalMesh.cell(*i); |
const CellType& cell = __originalMesh.cell(*i); |
95 |
cellList[n] = CellDuplicator<CellType>(cell, verticesTranslation, vertices); |
cellList[n] = CellDuplicator<CellType>(cell, verticesTranslation, vertices); |
96 |
} |
} |
|
|
|
97 |
return new MeshType(pVertices, pCellList); |
return new MeshType(pVertices, pCellList); |
98 |
} |
} |
99 |
|
|