[Bprocessor-commit] bprocessor/src/net/sourceforge/bprocessor/packages/physics PhysicsNet.java, 1.
Status: Pre-Alpha
Brought to you by:
henryml
From: Sebastian G. <sg...@us...> - 2011-05-24 05:53:54
|
Update of /cvsroot/bprocessor/bprocessor/src/net/sourceforge/bprocessor/packages/physics In directory vz-cvs-2.sog:/tmp/cvs-serv8044/src/net/sourceforge/bprocessor/packages/physics Modified Files: PhysicsNet.java PhysicsMeshExtrusionPackage.java Log Message: PhysicsMeshExtrude Update, new bNets fixed, parameters added Index: PhysicsMeshExtrusionPackage.java =================================================================== RCS file: /cvsroot/bprocessor/bprocessor/src/net/sourceforge/bprocessor/packages/physics/PhysicsMeshExtrusionPackage.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PhysicsMeshExtrusionPackage.java 23 May 2011 12:25:17 -0000 1.1 --- PhysicsMeshExtrusionPackage.java 24 May 2011 05:53:51 -0000 1.2 *************** *** 97,102 **** } //offset ! Space cNetUp = (Space) Space.createNet(net.getName()+" - Mesh Offset 1"); ! Space cNetDown = (Space) Space.createNet(net.getName()+" - Mesh Offset 2"); //loop through vertices //get surrounding surfaces of each vertex --- 97,103 ---- } //offset ! Space cNetShell = (Space) Space.createNet(net.getName()+" - Mesh Offset Shell"); ! Space cNetGrid = (Space) Space.createNet(net.getName()+" - Mesh Offset Grid"); ! //loop through vertices //get surrounding surfaces of each vertex *************** *** 184,188 **** //averageN = averageN.scale(1/nCount); averageN.normalize(); ! System.out.println("Normal: " + averageN.toString()); //intersect line plane for all surrounding surface planes and generate average intersection point for (PhysicsPlane p : sPlanesDown) { --- 185,189 ---- //averageN = averageN.scale(1/nCount); averageN.normalize(); ! //System.out.println("Normal: " + averageN.toString()); //intersect line plane for all surrounding surface planes and generate average intersection point for (PhysicsPlane p : sPlanesDown) { *************** *** 205,231 **** List<Edge> oEdgesDown = new ArrayList<Edge>(); List<Edge> oEdgesUp = new ArrayList<Edge>(); for (Edge e : sEdges) { Vertex eA = e.getFrom(); Vertex eB = e.getTo(); Vertex oADown = oVerticesDown.get(eA); Vertex oBDown = oVerticesDown.get(eB); Edge oEDown = new Edge(oADown,oBDown); oEdgesDown.add(oEDown); Vertex oAUp = oVerticesUp.get(eA); Vertex oBUp = oVerticesUp.get(eB); ! Edge oEUp = new Edge(oAUp,oBUp); ! oEdgesUp.add(oEUp); } ! Surface oS = new Surface(oEdgesDown); ! cNetDown.insertAll(oS); oS = new Surface(oEdgesUp); ! cNetUp.insertAll(oS); } ! union.add(cNetDown); ! union.add(cNetUp); } } public static class SkeletonTool extends AbstractTool { --- 206,303 ---- List<Edge> oEdgesDown = new ArrayList<Edge>(); List<Edge> oEdgesUp = new ArrayList<Edge>(); + List<Edge> fEdges = new ArrayList<Edge>();; + //offset surfaces up and down for (Edge e : sEdges) { + fEdges = new ArrayList<Edge>(); Vertex eA = e.getFrom(); Vertex eB = e.getTo(); + // Vertex oADown = oVerticesDown.get(eA); Vertex oBDown = oVerticesDown.get(eB); Edge oEDown = new Edge(oADown,oBDown); oEdgesDown.add(oEDown); + // Vertex oAUp = oVerticesUp.get(eA); Vertex oBUp = oVerticesUp.get(eB); ! Edge oEUp = new Edge(oBUp,oAUp); ! oEdgesUp.add(oEUp); } ! Surface oS; ! oS = new Surface(oEdgesDown); ! cNetShell.insertAll(oS); ! saveMeshFaceParameter(oS,"Face Type", "Side 1"); ! // oS = new Surface(oEdgesUp); ! cNetShell.insertAll(oS); ! saveMeshFaceParameter(oS,"Face Type", "Side 2"); } ! //Lateral and Internal Faces ! List<Edge> fEdges = new ArrayList<Edge>(); ! List<Edge> gEdges = new ArrayList<Edge>(); ! Surface oS; ! Surface gS; ! for (Edge e : nEdges) { ! fEdges = new ArrayList<Edge>(); ! gEdges = new ArrayList<Edge>(); ! Vertex eA = e.getFrom(); ! Vertex eB = e.getTo(); ! // ! Vertex oADown = oVerticesDown.get(eA); ! Vertex oBDown = oVerticesDown.get(eB); ! Edge oEDown = new Edge(oADown,oBDown); ! // ! Vertex oAUp = oVerticesUp.get(eA); ! Vertex oBUp = oVerticesUp.get(eB); ! Edge oEUp = new Edge(oBUp,oAUp); ! // ! Edge oES1 = new Edge(oADown, oAUp); ! Edge oES2 = new Edge(oBUp, oBDown); ! // ! fEdges.add(oEDown.copy()); ! fEdges.add(oES1.copy()); ! fEdges.add(oEUp.copy()); ! fEdges.add(oES2.copy()); ! // ! gEdges.add(oEDown.copy()); ! gEdges.add(oES1.copy()); ! gEdges.add(oEUp.copy()); ! gEdges.add(oES2.copy()); ! //check if lateral or internal ! Collection<Surface> eSurfaces = e.getSurfaces(); ! if (eSurfaces.size()==1) { ! oS = new Surface(fEdges); ! cNetShell.insertAll(oS); ! saveMeshFaceParameter(oS,"Face Type", "Lateral"); ! // ! gS = new Surface(gEdges); ! cNetGrid.insertAll(gS); ! saveMeshFaceParameter(gS,"Face Type", "Lateral"); ! } else { ! oS = new Surface(fEdges); ! cNetGrid.insertAll(oS); ! saveMeshFaceParameter(oS,"Face Type", "Internal"); ! } ! } ! union.add(cNetShell); ! union.add(cNetGrid); } + + void saveMeshFaceParameter (Surface s, String key, String value) { + ParameterBlock block = s.getParameters(); + if (block == null) { + block = new ParameterBlock(); + s.setParameters(block); + block.putString(key,value); + } + boolean successful = block.changeString(key, value); + if (successful == false) { + block.putString(key, value); + } + } + } + public static class SkeletonTool extends AbstractTool { Index: PhysicsNet.java =================================================================== RCS file: /cvsroot/bprocessor/bprocessor/src/net/sourceforge/bprocessor/packages/physics/PhysicsNet.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PhysicsNet.java 16 May 2011 06:11:05 -0000 1.1 --- PhysicsNet.java 24 May 2011 05:53:51 -0000 1.2 *************** *** 46,49 **** --- 46,52 ---- PhysicsParticle pA = particles.get(bE.getFrom()); PhysicsParticle pB = particles.get(bE.getTo()); + if ((pA == null) || (pB == null)) { + System.out.println("For this edge a vertex is missing"); + } else { PhysicsSpring pS = new PhysicsSpring(pA,pB,pA.pos.distance(pB.pos),spring_c); pS.restLengthFactor = restLengthFactor; *************** *** 53,56 **** --- 56,60 ---- counter++;; saveSpringParameter(bE,pS); + } } //create PhysicsSurfaces |