void Foam::edgeMesh::calcPointEdges() const { if (pointEdgesPtr_.valid()) { FatalErrorIn("edgeMesh::calcPointEdges() const") << "pointEdges already calculated." << abort(FatalError); } 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]); }
void Foam::edgeMesh::calcPointEdges() const { if (pointEdgesPtr_.valid()) { FatalErrorInFunction << "pointEdges already calculated." << abort(FatalError); } pointEdgesPtr_.reset(new labelListList(points_.size())); labelListList& pointEdges = pointEdgesPtr_(); invertManyToMany(pointEdges.size(), edges_, pointEdges); }