ENH: edgeMesh: swap out code to use invertManyToMany

This commit is contained in:
laurence 2012-03-06 16:50:26 +00:00
parent 0a50fdabe0
commit 77918e9b9e

View File

@ -27,6 +27,7 @@ License
#include "mergePoints.H"
#include "addToRunTimeSelectionTable.H"
#include "addToMemberFunctionSelectionTable.H"
#include "ListOps.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -112,35 +113,7 @@ void Foam::edgeMesh::calcPointEdges() const
pointEdgesPtr_.reset(new labelListList(points_.size()));
labelListList& pointEdges = pointEdgesPtr_();
// Count
labelList nEdgesPerPoint(points_.size(), 0);
forAll(edges_, edgeI)
{
const edge& e = edges_[edgeI];
nEdgesPerPoint[e[0]]++;
nEdgesPerPoint[e[1]]++;
}
// Size
forAll(pointEdges, pointI)
{
pointEdges[pointI].setSize(nEdgesPerPoint[pointI]);
}
// Fill
nEdgesPerPoint = 0;
forAll(edges_, edgeI)
{
const edge& e = edges_[edgeI];
const label p0 = e[0];
const label p1 = e[1];
pointEdges[p0][nEdgesPerPoint[p0]++] = edgeI;
pointEdges[p1][nEdgesPerPoint[p1]++] = edgeI;
}
invertManyToMany(pointEdges.size(), edges_, pointEdges);
}