private void processTets(
double xp, double yp, double zp,
TetMesh mesh, TetMesh.TetList tetList)
{
_faceList.clear();
int ntet = tetList.ntet();
TetMesh.Tet[] tets = tetList.tets();
for (int itet=0; itet<ntet; ++itet) {
TetMesh.Tet tet = tets[itet];
TetMesh.Tet ta = tet.tetA();
TetMesh.Tet tb = tet.tetB();
TetMesh.Tet tc = tet.tetC();
TetMesh.Tet td = tet.tetD();
TetMesh.Node na = tet.nodeA();
TetMesh.Node nb = tet.nodeB();
TetMesh.Node nc = tet.nodeC();
TetMesh.Node nd = tet.nodeD();
tet.centerSphere(_xyz);
double xt = _xyz[0]-xp, yt = _xyz[1]-yp, zt = _xyz[2]-zp;
processTetNabor(xp,yp,zp,xt,yt,zt,mesh,ta,nb,nc,nd);
processTetNabor(xp,yp,zp,xt,yt,zt,mesh,tb,nc,na,nd);
processTetNabor(xp,yp,zp,xt,yt,zt,mesh,tc,nd,na,nb);
processTetNabor(xp,yp,zp,xt,yt,zt,mesh,td,na,nc,nb);
}
}
private void processTetNabor(