some more int->PointIndex

This commit is contained in:
Joachim Schoeberl 2025-01-01 13:53:01 +01:00
parent 3185256ad3
commit aca27f6421
3 changed files with 27 additions and 15 deletions

View File

@ -1714,12 +1714,12 @@ namespace netgen
if (oldseg.seginfo == 0) if (oldseg.seginfo == 0)
continue; continue;
int pi1 = oldseg[0]; PointIndex pi1 = oldseg[0];
int pi2 = oldseg[1]; PointIndex pi2 = oldseg[1];
int npi1 = geometry.identifications.Get(copyedgeidentification) PointIndex npi1 = geometry.identifications.Get(copyedgeidentification)
-> GetIdentifiedPoint (mesh, pi1); -> GetIdentifiedPoint (mesh, pi1);
int npi2 = geometry.identifications.Get(copyedgeidentification) PointIndex npi2 = geometry.identifications.Get(copyedgeidentification)
-> GetIdentifiedPoint (mesh, pi2); -> GetIdentifiedPoint (mesh, pi2);
//(*testout) << "copy edge, pts = " << npi1 << " - " << npi2 << endl; //(*testout) << "copy edge, pts = " << npi1 << " - " << npi2 << endl;

View File

@ -289,14 +289,14 @@ GetIdentifiedPoint (class Mesh & mesh, PointIndex pi)
// project to other surface // project to other surface
snew->Project (hp); snew->Project (hp);
int newpi = 0; PointIndex newpi(PointIndex::INVALID);
for (int i = 1; i <= mesh.GetNP(); i++) for (PointIndex pi : Range(mesh.Points()))
if (Dist2 (mesh.Point(i), hp) < 1e-12) if (Dist2 (mesh.Point(pi), hp) < 1e-12)
{ {
newpi = i; newpi = pi;
break; break;
} }
if (!newpi) if (!newpi.IsValid())
newpi = mesh.AddPoint (hp); newpi = mesh.AddPoint (hp);
if (snew == s2) if (snew == s2)
@ -322,6 +322,7 @@ void PeriodicIdentification :: IdentifyPoints (class Mesh & mesh)
mesh.GetBox(p1, p2); mesh.GetBox(p1, p2);
auto eps = 1e-6 * (p2-p1).Length(); auto eps = 1e-6 * (p2-p1).Length();
/*
for (int i = 1; i <= mesh.GetNP(); i++) for (int i = 1; i <= mesh.GetNP(); i++)
{ {
Point<3> p = mesh.Point(i); Point<3> p = mesh.Point(i);
@ -334,13 +335,24 @@ void PeriodicIdentification :: IdentifyPoints (class Mesh & mesh)
if (Dist2(mesh.Point(j), pp) < eps) if (Dist2(mesh.Point(j), pp) < eps)
{ {
mesh.GetIdentifications().Add (i, j, nr); mesh.GetIdentifications().Add (i, j, nr);
/*
(*testout) << "Identify points(periodic:), nr = " << nr << ": "
<< mesh.Point(i) << " - " << mesh.Point(j) << endl;
*/
} }
} }
} }
*/
for (auto pi : Range(mesh.Points()))
{
Point<3> p = mesh[pi];
if (s1->PointOnSurface (p))
{
Point<3> pp = p;
pp = trafo(pp);
s2->Project (pp);
for (PointIndex pj : Range(mesh.Points()))
if (Dist2(mesh[pj], pp) < eps)
mesh.GetIdentifications().Add (pi, pj, nr);
}
}
mesh.GetIdentifications().SetType(nr,Identifications::PERIODIC); mesh.GetIdentifications().SetType(nr,Identifications::PERIODIC);
} }

View File

@ -174,8 +174,8 @@ namespace netgen
int nnp = newel.GetNP(); int nnp = newel.GetNP();
for (int j = 0; j < nnp-onp; j++) for (int j = 0; j < nnp-onp; j++)
{ {
int pi1 = newel[betw[j][0]]; PointIndex pi1 = newel[betw[j][0]];
int pi2 = newel[betw[j][1]]; PointIndex pi2 = newel[betw[j][1]];
INDEX_2 i2 = INDEX_2::Sort (pi1, pi2); INDEX_2 i2 = INDEX_2::Sort (pi1, pi2);