From cb37a129d1adb403019c96e798e86e2da9667f15 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Sun, 17 Nov 2019 17:56:04 -0500 Subject: [PATCH] Maze --- Merge.java | 134 ++++++++++++++++++++++++-------------------- 1 files changed, 72 insertions(+), 62 deletions(-) diff --git a/Merge.java b/Merge.java index 1c276fb..4629155 100644 --- a/Merge.java +++ b/Merge.java @@ -126,7 +126,7 @@ bRep = null; - if (link2master) + if (Link2Support()) renderme(); // null); } @@ -134,8 +134,9 @@ transient cVector maxima = new cVector(); // ObjectArrayList<Transform> initialmatrices; + transient boolean rendered = false; - void DrawNode(CameraPane display, Object3D /*Composite*/ root, boolean selected) // ?? + void DrawNode(iCameraPane display, Object3D /*Composite*/ root, boolean selected) // ?? { //if (support == null) // System.err.println("DrawNode Merge # " + ((Mocap)object).frame); @@ -143,7 +144,7 @@ if (bRep == null && GetObject() != null) renderme(); // display); // only once - if (/*display.LIVE && live &&*/link2master) // && display.drawMode == display.SHADOW) // FUCK!!! + if (/*display.LIVE && live &&*/Link2Support()) // && display.drawMode == display.SHADOW) // SHADOW!!! { try { @@ -153,6 +154,8 @@ { e.printStackTrace(); } + + rendered = true; } super.DrawNode(display, root, selected); @@ -160,27 +163,27 @@ // debug stuff if (false) // bRep.averagepoints != null) { - javax.media.opengl.GL gl = display.GetGL(); - - gl.glColor3f(1, 0, 0); - //gl.glMaterialfv(gl.GL_FRONT, gl.GL_DIFFUSE, colorV, 0); - //gl.glMaterialfv(gl.GL_BACK, gl.GL_DIFFUSE, colorV, 0); - - for (int i=0; i<NumGeometries(GetObject()); i++) - { - int i3 = i*3; - - float off = 0.005f; - - gl.glBegin(gl.GL_LINES); - gl.glVertex3d(bRep.averagepoints[i3]-off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]); - gl.glVertex3d(bRep.averagepoints[i3]+off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]); - gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]-off, bRep.averagepoints[i3+2]); - gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]+off, bRep.averagepoints[i3+2]); - gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]-off); - gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]+off); - gl.glEnd(); - } +// javax.media.opengl.GL gl = display.GetGL(); +// +// gl.glColor3f(1, 0, 0); +// //gl.glMaterialfv(gl.GL_FRONT, gl.GL_DIFFUSE, colorV, 0); +// //gl.glMaterialfv(gl.GL_BACK, gl.GL_DIFFUSE, colorV, 0); +// +// for (int i=0; i<NumGeometries(GetObject()); i++) +// { +// int i3 = i*3; +// +// float off = 0.005f; +// +// gl.glBegin(gl.GL_LINES); +// gl.glVertex3d(bRep.averagepoints[i3]-off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]); +// gl.glVertex3d(bRep.averagepoints[i3]+off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]); +// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]-off, bRep.averagepoints[i3+2]); +// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]+off, bRep.averagepoints[i3+2]); +// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]-off); +// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]+off); +// gl.glEnd(); +// } } } @@ -192,7 +195,7 @@ try { //font = FontRender.createFont("Dialog", 11, false, true); - font = new FontRender.GLFont(gl, GrafreeD.class.getResourceAsStream("DejaVu_Sans_11.fnt")); + font = new FontRender.GLFont(gl, Grafreed.class.getResourceAsStream("DejaVu_Sans_11.fnt")); } catch (java.io.IOException e) { e.printStackTrace(); @@ -260,7 +263,8 @@ bRep.startvertices = new int[NumGeometries(GetObject()) + 1]; bRep.averagepoints = new float[(bRep.startvertices.length-1) * 3]; bRep.extremepoints = new float[(bRep.startvertices.length-1) * 3]; - bRep.supportsizes = new float[(bRep.startvertices.length-1)]; + bRep.supportminsize = new float[(bRep.startvertices.length-1)]; + bRep.supportmaxsize = new float[(bRep.startvertices.length-1)]; buildrep = true; // initialmatrices = new ObjectArrayList<Transform>(); @@ -396,9 +400,9 @@ } - public void drawCube(CameraPane display, float extent) + public void drawCube(iCameraPane display, float extent) { - GL gl = display.getGL(); + GL gl = display.GetGL0(); extent = extent * 0.5f; @@ -686,11 +690,12 @@ } else { - if (bRep.averagepoints == null || bRep.extremepoints == null || bRep.supportsizes == null) + if (bRep.averagepoints == null || bRep.extremepoints == null || bRep.supportminsize == null || bRep.supportmaxsize == null) { bRep.averagepoints = new float[(bRep.startvertices.length-1) * 3]; bRep.extremepoints = new float[(bRep.startvertices.length-1) * 3]; - bRep.supportsizes = new float[(bRep.startvertices.length-1)]; + bRep.supportminsize = new float[(bRep.startvertices.length-1)]; + bRep.supportmaxsize = new float[(bRep.startvertices.length-1)]; } float averagex = 0; @@ -731,42 +736,47 @@ v.norm.normalize(); } - int index3 = currentobject-1; - index3 *= 3; - - bRep.averagepoints[index3] = averagex/count; - bRep.averagepoints[index3+1] = averagey/count; - bRep.averagepoints[index3+2] = averagez/count; - - double mindist2 = 1E10f; - double maxdist2 = -1E10f; - - for (int i=bRep.startvertices[currentobject-1]; i<bRep.startvertices[currentobject]; i++) + if (!rendered) { - Vertex v = bRep.GetVertex(i); - - double x = v.x - bRep.averagepoints[index3]; - double y = v.y - bRep.averagepoints[index3+1]; - double z = v.z - bRep.averagepoints[index3+2]; - - double dist2 = x*x + y*y + z*z; - - if (mindist2 > dist2) - mindist2 = dist2; - if (maxdist2 < dist2) + int index3 = currentobject-1; + index3 *= 3; + + bRep.averagepoints[index3] = averagex/count; + bRep.averagepoints[index3+1] = averagey/count; + bRep.averagepoints[index3+2] = averagez/count; + + double mindist2 = 1E10f; + double maxdist2 = -1E10f; + + for (int i=bRep.startvertices[currentobject-1]; i<bRep.startvertices[currentobject]; i++) { - maxdist2 = dist2; - bRep.extremepoints[index3] = (float)v.x; - bRep.extremepoints[index3+1] = (float)v.y; - bRep.extremepoints[index3+2] = (float)v.z; + Vertex v = bRep.GetVertex(i); + + double x = v.x - bRep.averagepoints[index3]; + double y = v.y - bRep.averagepoints[index3+1]; + double z = v.z - bRep.averagepoints[index3+2]; + + double dist2 = x*x + y*y + z*z; + + if (mindist2 > dist2) + mindist2 = dist2; + + if (maxdist2 < dist2) + { + maxdist2 = dist2; + bRep.extremepoints[index3] = (float)v.x; + bRep.extremepoints[index3+1] = (float)v.y; + bRep.extremepoints[index3+2] = (float)v.z; + } } + + bRep.supportminsize[currentobject-1] = (float)Math.sqrt(mindist2); + bRep.supportmaxsize[currentobject-1] = (float)Math.sqrt(maxdist2); + // for (int i = 0; i < hull.numVertices(); i++) + // { + // + // } } - - bRep.supportsizes[currentobject-1] = (float)Math.sqrt(mindist2); -// for (int i = 0; i < hull.numVertices(); i++) -// { -// -// } } // if (hull.numTriangles() > 0) -- Gitblit v1.6.2