Normand Briere
2019-11-17 cb37a129d1adb403019c96e798e86e2da9667f15
Merge.java
....@@ -126,7 +126,7 @@
126126
127127 bRep = null;
128128
129
- if (link2master)
129
+ if (Link2Support())
130130 renderme(); // null);
131131 }
132132
....@@ -134,8 +134,9 @@
134134 transient cVector maxima = new cVector();
135135
136136 // ObjectArrayList<Transform> initialmatrices;
137
+ transient boolean rendered = false;
137138
138
- void DrawNode(CameraPane display, Object3D /*Composite*/ root, boolean selected) // ??
139
+ void DrawNode(iCameraPane display, Object3D /*Composite*/ root, boolean selected) // ??
139140 {
140141 //if (support == null)
141142 // System.err.println("DrawNode Merge # " + ((Mocap)object).frame);
....@@ -143,7 +144,7 @@
143144 if (bRep == null && GetObject() != null)
144145 renderme(); // display); // only once
145146
146
- if (/*display.LIVE && live &&*/link2master) // && display.drawMode == display.SHADOW) // FUCK!!!
147
+ if (/*display.LIVE && live &&*/Link2Support()) // && display.drawMode == display.SHADOW) // SHADOW!!!
147148 {
148149 try
149150 {
....@@ -153,6 +154,8 @@
153154 {
154155 e.printStackTrace();
155156 }
157
+
158
+ rendered = true;
156159 }
157160
158161 super.DrawNode(display, root, selected);
....@@ -160,27 +163,27 @@
160163 // debug stuff
161164 if (false) // bRep.averagepoints != null)
162165 {
163
- javax.media.opengl.GL gl = display.GetGL();
164
-
165
- gl.glColor3f(1, 0, 0);
166
- //gl.glMaterialfv(gl.GL_FRONT, gl.GL_DIFFUSE, colorV, 0);
167
- //gl.glMaterialfv(gl.GL_BACK, gl.GL_DIFFUSE, colorV, 0);
168
-
169
- for (int i=0; i<NumGeometries(GetObject()); i++)
170
- {
171
- int i3 = i*3;
172
-
173
- float off = 0.005f;
174
-
175
- gl.glBegin(gl.GL_LINES);
176
- gl.glVertex3d(bRep.averagepoints[i3]-off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]);
177
- gl.glVertex3d(bRep.averagepoints[i3]+off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]);
178
- gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]-off, bRep.averagepoints[i3+2]);
179
- gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]+off, bRep.averagepoints[i3+2]);
180
- gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]-off);
181
- gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]+off);
182
- gl.glEnd();
183
- }
166
+// javax.media.opengl.GL gl = display.GetGL();
167
+//
168
+// gl.glColor3f(1, 0, 0);
169
+// //gl.glMaterialfv(gl.GL_FRONT, gl.GL_DIFFUSE, colorV, 0);
170
+// //gl.glMaterialfv(gl.GL_BACK, gl.GL_DIFFUSE, colorV, 0);
171
+//
172
+// for (int i=0; i<NumGeometries(GetObject()); i++)
173
+// {
174
+// int i3 = i*3;
175
+//
176
+// float off = 0.005f;
177
+//
178
+// gl.glBegin(gl.GL_LINES);
179
+// gl.glVertex3d(bRep.averagepoints[i3]-off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]);
180
+// gl.glVertex3d(bRep.averagepoints[i3]+off, bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]);
181
+// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]-off, bRep.averagepoints[i3+2]);
182
+// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1]+off, bRep.averagepoints[i3+2]);
183
+// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]-off);
184
+// gl.glVertex3d(bRep.averagepoints[i3], bRep.averagepoints[i3+1], bRep.averagepoints[i3+2]+off);
185
+// gl.glEnd();
186
+// }
184187 }
185188 }
186189
....@@ -192,7 +195,7 @@
192195 try
193196 {
194197 //font = FontRender.createFont("Dialog", 11, false, true);
195
- font = new FontRender.GLFont(gl, GrafreeD.class.getResourceAsStream("DejaVu_Sans_11.fnt"));
198
+ font = new FontRender.GLFont(gl, Grafreed.class.getResourceAsStream("DejaVu_Sans_11.fnt"));
196199 } catch (java.io.IOException e)
197200 {
198201 e.printStackTrace();
....@@ -260,7 +263,8 @@
260263 bRep.startvertices = new int[NumGeometries(GetObject()) + 1];
261264 bRep.averagepoints = new float[(bRep.startvertices.length-1) * 3];
262265 bRep.extremepoints = new float[(bRep.startvertices.length-1) * 3];
263
- bRep.supportsizes = new float[(bRep.startvertices.length-1)];
266
+ bRep.supportminsize = new float[(bRep.startvertices.length-1)];
267
+ bRep.supportmaxsize = new float[(bRep.startvertices.length-1)];
264268 buildrep = true;
265269
266270 // initialmatrices = new ObjectArrayList<Transform>();
....@@ -396,9 +400,9 @@
396400
397401 }
398402
399
- public void drawCube(CameraPane display, float extent)
403
+ public void drawCube(iCameraPane display, float extent)
400404 {
401
- GL gl = display.getGL();
405
+ GL gl = display.GetGL0();
402406
403407 extent = extent * 0.5f;
404408
....@@ -686,11 +690,12 @@
686690 }
687691 else
688692 {
689
- if (bRep.averagepoints == null || bRep.extremepoints == null || bRep.supportsizes == null)
693
+ if (bRep.averagepoints == null || bRep.extremepoints == null || bRep.supportminsize == null || bRep.supportmaxsize == null)
690694 {
691695 bRep.averagepoints = new float[(bRep.startvertices.length-1) * 3];
692696 bRep.extremepoints = new float[(bRep.startvertices.length-1) * 3];
693
- bRep.supportsizes = new float[(bRep.startvertices.length-1)];
697
+ bRep.supportminsize = new float[(bRep.startvertices.length-1)];
698
+ bRep.supportmaxsize = new float[(bRep.startvertices.length-1)];
694699 }
695700
696701 float averagex = 0;
....@@ -731,42 +736,47 @@
731736 v.norm.normalize();
732737 }
733738
734
- int index3 = currentobject-1;
735
- index3 *= 3;
736
-
737
- bRep.averagepoints[index3] = averagex/count;
738
- bRep.averagepoints[index3+1] = averagey/count;
739
- bRep.averagepoints[index3+2] = averagez/count;
740
-
741
- double mindist2 = 1E10f;
742
- double maxdist2 = -1E10f;
743
-
744
- for (int i=bRep.startvertices[currentobject-1]; i<bRep.startvertices[currentobject]; i++)
739
+ if (!rendered)
745740 {
746
- Vertex v = bRep.GetVertex(i);
747
-
748
- double x = v.x - bRep.averagepoints[index3];
749
- double y = v.y - bRep.averagepoints[index3+1];
750
- double z = v.z - bRep.averagepoints[index3+2];
751
-
752
- double dist2 = x*x + y*y + z*z;
753
-
754
- if (mindist2 > dist2)
755
- mindist2 = dist2;
756
- if (maxdist2 < dist2)
741
+ int index3 = currentobject-1;
742
+ index3 *= 3;
743
+
744
+ bRep.averagepoints[index3] = averagex/count;
745
+ bRep.averagepoints[index3+1] = averagey/count;
746
+ bRep.averagepoints[index3+2] = averagez/count;
747
+
748
+ double mindist2 = 1E10f;
749
+ double maxdist2 = -1E10f;
750
+
751
+ for (int i=bRep.startvertices[currentobject-1]; i<bRep.startvertices[currentobject]; i++)
757752 {
758
- maxdist2 = dist2;
759
- bRep.extremepoints[index3] = (float)v.x;
760
- bRep.extremepoints[index3+1] = (float)v.y;
761
- bRep.extremepoints[index3+2] = (float)v.z;
753
+ Vertex v = bRep.GetVertex(i);
754
+
755
+ double x = v.x - bRep.averagepoints[index3];
756
+ double y = v.y - bRep.averagepoints[index3+1];
757
+ double z = v.z - bRep.averagepoints[index3+2];
758
+
759
+ double dist2 = x*x + y*y + z*z;
760
+
761
+ if (mindist2 > dist2)
762
+ mindist2 = dist2;
763
+
764
+ if (maxdist2 < dist2)
765
+ {
766
+ maxdist2 = dist2;
767
+ bRep.extremepoints[index3] = (float)v.x;
768
+ bRep.extremepoints[index3+1] = (float)v.y;
769
+ bRep.extremepoints[index3+2] = (float)v.z;
770
+ }
762771 }
772
+
773
+ bRep.supportminsize[currentobject-1] = (float)Math.sqrt(mindist2);
774
+ bRep.supportmaxsize[currentobject-1] = (float)Math.sqrt(maxdist2);
775
+ // for (int i = 0; i < hull.numVertices(); i++)
776
+ // {
777
+ //
778
+ // }
763779 }
764
-
765
- bRep.supportsizes[currentobject-1] = (float)Math.sqrt(mindist2);
766
-// for (int i = 0; i < hull.numVertices(); i++)
767
-// {
768
-//
769
-// }
770780 }
771781
772782 // if (hull.numTriangles() > 0)