if (pl.isOutside() && _nnode<=4) { if (_nnode==4) createFirstTet();
float zg = z[ig]; TetMesh.PointLocation pl = _mesh.locatePoint(xg,yg,zg); if (pl.isOutside()) { TetMesh.Node n = new TetMesh.Node(xg,yg,zg); n.index = -1-ig; // ghost nodes have negative indices
private void addGhostNodes(float[] x, float[] y, float[] z) { int ng = x.length; for (int ig=0; ig<ng; ++ig) { float xg = x[ig]; float yg = y[ig]; float zg = z[ig]; TetMesh.PointLocation pl = _mesh.locatePoint(xg,yg,zg); if (pl.isOutside()) { TetMesh.Node n = new TetMesh.Node(xg,yg,zg); n.data = new NodeData(); n.index = -1-ig; // ghost nodes have negative indices _mesh.addNode(n); } } }
private boolean getNaturalNabors(float x, float y, float z) { _mesh.clearNodeMarks(); _mesh.clearTetMarks(); _nodeList.clear(); _tetList.clear(); TetMesh.PointLocation pl = _mesh.locatePoint(x,y,z); if (pl.isOutside()) return false; addTet(x,y,z,pl.tet()); return true; } private void addTet(double xp, double yp, double zp, TetMesh.Tet tet) {