validate(); } catch (IllegalStateException ise) { throw new IOException(ise.getMessage());
/** * Validates the internal consistency of the mesh. * @exception RuntimeException if the mesh is invalid. */ public synchronized void validate() { // Check nodes. int nnode = 0; NodeIterator ni = getNodes(); while (ni.hasNext()) { ++nnode; Node node = ni.next(); validate(node); } Check.state(nnode==_nnode,"nnode==_nnode"); // Check tets. int ntet = 0; TetIterator ti = getTets(); while (ti.hasNext()) { ++ntet; Tet tet = ti.next(); validate(tet); } Check.state(ntet==_ntet,"ntet==_ntet"); }
public void testLine() { TetMesh tm = new TetMesh(); int n = 100; for (int i=0; i<n; ++i) { float x = (float)i; float y = 3.14f; float z = 4.13f; TetMesh.Node node = new TetMesh.Node(x,y,z); tm.addNode(node); } tm.validate(); for (int i=0; i<n; ++i) { float x = (float)i; float y = 3.14f; float z = 4.13f; TetMesh.Node node = tm.findNodeNearest(x,y,z); tm.removeNode(node); } tm.validate(); }
public void testAddFindRemove() { java.util.Random random = new java.util.Random(); TetMesh tm = new TetMesh(); //int nadd = 0; //int nremove = 0; for (int niter=0; niter<1000; ++niter) { float x = random.nextFloat(); float y = random.nextFloat(); float z = random.nextFloat(); if (tm.countNodes()<10 || random.nextFloat()>0.5f) { TetMesh.Node node = new TetMesh.Node(x,y,z); boolean ok = tm.addNode(node); assertTrue(ok); tm.validate(); //++nadd; } else if (tm.countNodes()>0) { TetMesh.Node node = tm.findNodeNearest(x,y,z); assertTrue(node!=null); TetMesh.Node nodeSlow = tm.findNodeNearestSlow(x,y,z); assertTrue(node==nodeSlow); tm.removeNode(node); tm.validate(); //++nremove; } } //System.out.println("Nodes added/removed = "+nadd+"/"+nremove); }
"Added "+nnode+" nodes to make "+tm.countTets() + " tets in "+sw.time()+" seconds."); tm.validate();
public void testSimple() { TetMesh tm = new TetMesh(); TetMesh.Node n0 = new TetMesh.Node(1.0f,0.0f,0.0f); TetMesh.Node n1 = new TetMesh.Node(0.0f,1.0f,0.0f); TetMesh.Node n2 = new TetMesh.Node(0.0f,0.0f,1.0f); TetMesh.Node n3 = new TetMesh.Node(0.0f,0.0f,0.0f); TetMesh.Node n4 = new TetMesh.Node(0.9f,0.9f,0.9f); tm.addNode(n0); tm.addNode(n1); tm.addNode(n2); tm.addNode(n3); tm.addNode(n4); tm.removeNode(n4); tm.validate(); }
public void testCube() { TetMesh tm = new TetMesh(); TetMesh.Node n0 = new TetMesh.Node(0.0f,0.0f,0.0f); TetMesh.Node n1 = new TetMesh.Node(1.0f,0.0f,0.0f); TetMesh.Node n2 = new TetMesh.Node(0.0f,1.0f,0.0f); TetMesh.Node n3 = new TetMesh.Node(0.0f,0.0f,1.0f); TetMesh.Node n4 = new TetMesh.Node(1.0f,1.0f,0.0f); TetMesh.Node n5 = new TetMesh.Node(1.0f,0.0f,1.0f); TetMesh.Node n6 = new TetMesh.Node(0.0f,1.0f,1.0f); TetMesh.Node n7 = new TetMesh.Node(1.0f,1.0f,1.0f); tm.addNode(n0); tm.addNode(n1); tm.addNode(n2); tm.addNode(n3); tm.addNode(n4); tm.addNode(n5); tm.addNode(n6); tm.addNode(n7); tm.removeNode(n7); tm.removeNode(n6); tm.removeNode(n5); tm.removeNode(n4); tm.removeNode(n3); tm.removeNode(n2); tm.removeNode(n1); tm.removeNode(n0); tm.validate(); }