| .. | .. | 
|---|
| 4428 | 4428 |          } | 
|---|
| 4429 | 4429 |      } | 
|---|
| 4430 | 4430 |       | 
|---|
| 4431 |  | -    void CullVertex(javax.media.opengl.GL gl, boolean shadow)  | 
|---|
 | 4431 | +    void CullVertex(javax.media.opengl.GL glNOTUSED, boolean shadowNOTUSED)  | 
|---|
| 4432 | 4432 |      { | 
|---|
| 4433 | 4433 |          CameraPane.glu.gluProject(vect5.x,vect5.y,vect5.z, | 
|---|
| 4434 | 4434 |                  CameraPane.tempmat,0, CameraPane.tempmat2,0, | 
|---|
 
| .. | .. | 
|---|
| 191 | 191 |       | 
|---|
| 192 | 192 |      /// INTERFACE | 
|---|
| 193 | 193 |       | 
|---|
 | 194 | +    public javax.media.opengl.GL GetGL0()  | 
|---|
 | 195 | +    {  | 
|---|
 | 196 | +            return null;  | 
|---|
 | 197 | +    }  | 
|---|
 | 198 | +      | 
|---|
 | 199 | +    public int GenList()  | 
|---|
 | 200 | +    {  | 
|---|
 | 201 | +            javax.media.opengl.GL gl = GetGL();  | 
|---|
 | 202 | +        return gl.glGenLists(1);  | 
|---|
 | 203 | +    }  | 
|---|
 | 204 | +      | 
|---|
 | 205 | +    public void NewList(int id)  | 
|---|
 | 206 | +    {  | 
|---|
 | 207 | +            javax.media.opengl.GL gl = GetGL();  | 
|---|
 | 208 | +        gl.glNewList(id, gl.GL_COMPILE); //_AND_EXECUTE);  | 
|---|
 | 209 | +    }  | 
|---|
 | 210 | +      | 
|---|
 | 211 | +    public void CallList(int id)  | 
|---|
 | 212 | +    {  | 
|---|
 | 213 | +        javax.media.opengl.GL gl = GetGL();  | 
|---|
 | 214 | +        gl.glCallList(id);  | 
|---|
 | 215 | +    }  | 
|---|
 | 216 | +      | 
|---|
 | 217 | +    public void EndList()  | 
|---|
 | 218 | +    {  | 
|---|
 | 219 | +            javax.media.opengl.GL gl = GetGL();  | 
|---|
 | 220 | +        gl.glEndList();  | 
|---|
 | 221 | +    }  | 
|---|
 | 222 | +      | 
|---|
| 194 | 223 |      public boolean IsBoxMode() | 
|---|
| 195 | 224 |      { | 
|---|
| 196 | 225 |              return BOXMODE; | 
|---|
| .. | .. | 
|---|
| 1059 | 1088 |          gl.glMatrixMode(gl.GL_MODELVIEW); | 
|---|
| 1060 | 1089 |      } | 
|---|
| 1061 | 1090 |       | 
|---|
 | 1091 | +        public void DrawBox(cVector min, cVector max)  | 
|---|
 | 1092 | +        {  | 
|---|
 | 1093 | +            javax.media.opengl.GL gl = GetGL();  | 
|---|
 | 1094 | +                gl.glBegin(gl.GL_LINES);  | 
|---|
 | 1095 | +                  | 
|---|
 | 1096 | +                gl.glVertex3d(min.x, min.y, min.z);  | 
|---|
 | 1097 | +                gl.glVertex3d(min.x, min.y, max.z);  | 
|---|
 | 1098 | +                gl.glVertex3d(min.x, min.y, min.z);  | 
|---|
 | 1099 | +                gl.glVertex3d(min.x, max.y, min.z);  | 
|---|
 | 1100 | +                gl.glVertex3d(min.x, min.y, min.z);  | 
|---|
 | 1101 | +                gl.glVertex3d(max.x, min.y, min.z);  | 
|---|
 | 1102 | +                  | 
|---|
 | 1103 | +                gl.glVertex3d(max.x, max.y, max.z);  | 
|---|
 | 1104 | +                gl.glVertex3d(min.x, max.y, max.z);  | 
|---|
 | 1105 | +                gl.glVertex3d(max.x, max.y, max.z);  | 
|---|
 | 1106 | +                gl.glVertex3d(max.x, min.y, max.z);  | 
|---|
 | 1107 | +                gl.glVertex3d(max.x, max.y, max.z);  | 
|---|
 | 1108 | +                gl.glVertex3d(max.x, max.y, min.z);  | 
|---|
 | 1109 | +                  | 
|---|
 | 1110 | +                gl.glEnd();  | 
|---|
 | 1111 | +        }  | 
|---|
 | 1112 | +  | 
|---|
 | 1113 | +        public void DrawGeometry(BoundaryRep bRep, boolean flipV, boolean selectmode)  | 
|---|
 | 1114 | +        {  | 
|---|
 | 1115 | +            int[] strips = bRep.getRawIndices();  | 
|---|
 | 1116 | +              | 
|---|
 | 1117 | +            javax.media.opengl.GL gl = GetGL();  | 
|---|
 | 1118 | +          | 
|---|
 | 1119 | +                // TRIANGLE STRIP ARRAY  | 
|---|
 | 1120 | +                if (bRep.trimmed)  | 
|---|
 | 1121 | +                {  | 
|---|
 | 1122 | +                    float[] v = bRep.getRawVertices();  | 
|---|
 | 1123 | +                    float[] n = bRep.getRawNormals();  | 
|---|
 | 1124 | +                    float[] c = bRep.getRawColors();  | 
|---|
 | 1125 | +                    float[] uv = bRep.getRawUVMap();  | 
|---|
 | 1126 | +  | 
|---|
 | 1127 | +                    int count2 = 0;  | 
|---|
 | 1128 | +                    int count3 = 0;  | 
|---|
 | 1129 | +  | 
|---|
 | 1130 | +                    if (n.length > 0)  | 
|---|
 | 1131 | +                    {  | 
|---|
 | 1132 | +                        for (int i = 0; i < strips.length; i++)  | 
|---|
 | 1133 | +                        {  | 
|---|
 | 1134 | +                            gl.glBegin(gl.GL_TRIANGLE_STRIP);  | 
|---|
 | 1135 | +  | 
|---|
 | 1136 | +                            /*  | 
|---|
 | 1137 | +                    boolean locked = false;  | 
|---|
 | 1138 | +                    float eps = 0.1f;  | 
|---|
 | 1139 | +                    boolean wrap = CameraPane.UVWRAP; // true; // UV WRAP TEXTURE ISSUE: true = artifacts, false = nice  | 
|---|
 | 1140 | +  | 
|---|
 | 1141 | +                    int dot = 0;  | 
|---|
 | 1142 | +  | 
|---|
 | 1143 | +                    if ((dot&1) == 0)  | 
|---|
 | 1144 | +                        dot |= (Math.abs(qv.s - pv.s) < eps && Math.abs(qv.t - pv.t) < eps) ? 3 : 1;  | 
|---|
 | 1145 | +  | 
|---|
 | 1146 | +                    if (wrap || (dot&2) != 0) // Math.abs(qv.s - pv.s) < eps && Math.abs(qv.t - pv.t) < eps)  | 
|---|
 | 1147 | +                        gl.glTexCoord2f((float) qv.s, (float) qv.t);  | 
|---|
 | 1148 | +                    else  | 
|---|
 | 1149 | +                    {  | 
|---|
 | 1150 | +                        locked = true;  | 
|---|
 | 1151 | +                        gl.glTexCoord2f((float) pv.s, (float) pv.t);  | 
|---|
 | 1152 | +                    }  | 
|---|
 | 1153 | +                    //System.out.println("vertexq = " + qv.x + ", " + qv.y + ", " + qv.z);  | 
|---|
 | 1154 | +                    gl.glVertex3f((float) qv.x, (float) qv.y, (float) qv.z);  | 
|---|
 | 1155 | +                    if (hasnorm)  | 
|---|
 | 1156 | +                    {  | 
|---|
 | 1157 | +                        //System.out.println("normalr = " + rv.norm.x + ", " + rv.norm.y + ", " + rv.norm.z);  | 
|---|
 | 1158 | +                        gl.glNormal3f((float) rv.norm.x, (float) rv.norm.y, (float) rv.norm.z);  | 
|---|
 | 1159 | +                    }  | 
|---|
 | 1160 | +  | 
|---|
 | 1161 | +                    if ((dot&4) == 0)  | 
|---|
 | 1162 | +                        dot |= (Math.abs(rv.s - pv.s) < eps && Math.abs(rv.t - pv.t) < eps) ? 12 : 4;  | 
|---|
 | 1163 | +  | 
|---|
 | 1164 | +                    if (wrap || !locked && (dot&8) != 0)  | 
|---|
 | 1165 | +                        gl.glTexCoord2f((float) rv.s, (float) rv.t);  | 
|---|
 | 1166 | +                    else  | 
|---|
 | 1167 | +                        gl.glTexCoord2f((float) pv.s, (float) pv.t);  | 
|---|
 | 1168 | +  | 
|---|
 | 1169 | +                    f.dot = dot;  | 
|---|
 | 1170 | +                    */  | 
|---|
 | 1171 | +  | 
|---|
 | 1172 | +                            if (!selectmode)  | 
|---|
 | 1173 | +                            {  | 
|---|
 | 1174 | +                                if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0)  | 
|---|
 | 1175 | +                                {  | 
|---|
 | 1176 | +                                    gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]);  | 
|---|
 | 1177 | +                                } else  | 
|---|
 | 1178 | +                                {  | 
|---|
 | 1179 | +                                    gl.glNormal3f(0, 0, 1);  | 
|---|
 | 1180 | +                                }  | 
|---|
 | 1181 | +  | 
|---|
 | 1182 | +                                if (c != null)  | 
|---|
 | 1183 | +                                //System.out.println("glcolor = " + c[count3] + ", " + c[count3+1] + ", " + c[count3+2]);  | 
|---|
 | 1184 | +                                {  | 
|---|
 | 1185 | +                                    gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1);  | 
|---|
 | 1186 | +                                }  | 
|---|
 | 1187 | +                            }  | 
|---|
 | 1188 | +                            if (flipV)  | 
|---|
 | 1189 | +                                gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]);  | 
|---|
 | 1190 | +                            else  | 
|---|
 | 1191 | +                                gl.glTexCoord2f(uv[count2], uv[count2 + 1]);  | 
|---|
 | 1192 | +                            //System.out.println("vertex1 = " + v[count3] + ", " + v[count3+1] + ", " + v[count3+2]);  | 
|---|
 | 1193 | +                            gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]);  | 
|---|
 | 1194 | +  | 
|---|
 | 1195 | +                            count2 += 2;  | 
|---|
 | 1196 | +                            count3 += 3;  | 
|---|
 | 1197 | +                            if (!selectmode)  | 
|---|
 | 1198 | +                            {  | 
|---|
 | 1199 | +                                if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0)  | 
|---|
 | 1200 | +                                {  | 
|---|
 | 1201 | +                                    gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]);  | 
|---|
 | 1202 | +                                } else  | 
|---|
 | 1203 | +                                {  | 
|---|
 | 1204 | +                                    gl.glNormal3f(0, 0, 1);  | 
|---|
 | 1205 | +                                }  | 
|---|
 | 1206 | +                                if (c != null)  | 
|---|
 | 1207 | +                                {  | 
|---|
 | 1208 | +                                    gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1);  | 
|---|
 | 1209 | +                                }  | 
|---|
 | 1210 | +                            }  | 
|---|
 | 1211 | +                            if (flipV)  | 
|---|
 | 1212 | +                                gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]);  | 
|---|
 | 1213 | +                            else  | 
|---|
 | 1214 | +                                gl.glTexCoord2f(uv[count2], uv[count2 + 1]);  | 
|---|
 | 1215 | +                            //System.out.println("vertex2 = " + v[count3] + ", " + v[count3+1] + ", " + v[count3+2]);  | 
|---|
 | 1216 | +                            gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]);  | 
|---|
 | 1217 | +  | 
|---|
 | 1218 | +                            count2 += 2;  | 
|---|
 | 1219 | +                            count3 += 3;  | 
|---|
 | 1220 | +                            for (int j = 0; j < strips[i] - 2; j++)  | 
|---|
 | 1221 | +                            {  | 
|---|
 | 1222 | +                                //gl.glTexCoord2d(...);  | 
|---|
 | 1223 | +                                if (!selectmode)  | 
|---|
 | 1224 | +                                {  | 
|---|
 | 1225 | +                                    if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0)  | 
|---|
 | 1226 | +                                    {  | 
|---|
 | 1227 | +                                        gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]);  | 
|---|
 | 1228 | +                                    } else  | 
|---|
 | 1229 | +                                    {  | 
|---|
 | 1230 | +                                        gl.glNormal3f(0, 0, 1);  | 
|---|
 | 1231 | +                                    }  | 
|---|
 | 1232 | +                                    if (c != null)  | 
|---|
 | 1233 | +                                    {  | 
|---|
 | 1234 | +                                        gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1);  | 
|---|
 | 1235 | +                                    }  | 
|---|
 | 1236 | +                                }  | 
|---|
 | 1237 | +  | 
|---|
 | 1238 | +                                if (flipV)  | 
|---|
 | 1239 | +                                    gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]);  | 
|---|
 | 1240 | +                                else  | 
|---|
 | 1241 | +                                    gl.glTexCoord2f(uv[count2], uv[count2 + 1]);  | 
|---|
 | 1242 | +                                //System.out.println("coord3 = " + uv[count2] + ", " + uv[count2+1]);  | 
|---|
 | 1243 | +                                gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]);  | 
|---|
 | 1244 | +                                count2 += 2;  | 
|---|
 | 1245 | +                                count3 += 3;  | 
|---|
 | 1246 | +                            }  | 
|---|
 | 1247 | +  | 
|---|
 | 1248 | +                            gl.glEnd();  | 
|---|
 | 1249 | +                        }  | 
|---|
 | 1250 | +                    }  | 
|---|
 | 1251 | +  | 
|---|
 | 1252 | +                    assert count3 == v.length;  | 
|---|
 | 1253 | +                }  | 
|---|
 | 1254 | +                else // !trimmed  | 
|---|
 | 1255 | +                {  | 
|---|
 | 1256 | +                    int count = 0;  | 
|---|
 | 1257 | +                    for (int i = 0; i < strips.length; i++)  | 
|---|
 | 1258 | +                    {  | 
|---|
 | 1259 | +                        gl.glBegin(gl.GL_TRIANGLE_STRIP);  | 
|---|
 | 1260 | +                          | 
|---|
 | 1261 | +                        Vertex p = bRep.GetVertex(bRep.indices[count++]);  | 
|---|
 | 1262 | +                        Vertex q = bRep.GetVertex(bRep.indices[count++]);  | 
|---|
 | 1263 | +                          | 
|---|
 | 1264 | +                        drawVertex(gl, p, flipV, selectmode);  | 
|---|
 | 1265 | +                        drawVertex(gl, q, flipV, selectmode);  | 
|---|
 | 1266 | +                          | 
|---|
 | 1267 | +                        for (int j = 0; j < strips[i] - 2; j++)  | 
|---|
 | 1268 | +                        {  | 
|---|
 | 1269 | +                            Vertex r = bRep.GetVertex(bRep.indices[count++]);  | 
|---|
 | 1270 | +  | 
|---|
 | 1271 | +    //                        if (j%2 == 0)  | 
|---|
 | 1272 | +    //                            drawFace(p, q, r, display, null);  | 
|---|
 | 1273 | +    //                        else  | 
|---|
 | 1274 | +    //                            drawFace(p, r, q, display, null);  | 
|---|
 | 1275 | +                              | 
|---|
 | 1276 | +    //                        p = q;  | 
|---|
 | 1277 | +    //                        q = r;  | 
|---|
 | 1278 | +                            drawVertex(gl, r, flipV, selectmode);  | 
|---|
 | 1279 | +                        }  | 
|---|
 | 1280 | +  | 
|---|
 | 1281 | +                        gl.glEnd();  | 
|---|
 | 1282 | +                    }  | 
|---|
 | 1283 | +                }  | 
|---|
 | 1284 | +        }  | 
|---|
 | 1285 | +  | 
|---|
 | 1286 | +    static cSpring.Point3D temp = new cSpring.Point3D();  | 
|---|
 | 1287 | +    static cSpring.Point3D temp2 = new cSpring.Point3D();  | 
|---|
 | 1288 | +    static cSpring.Point3D temp3 = new cSpring.Point3D();  | 
|---|
 | 1289 | +      | 
|---|
 | 1290 | +        public void DrawDynamicMesh(cMesh mesh)  | 
|---|
 | 1291 | +        {  | 
|---|
 | 1292 | +                GL gl = GetGL(); // getGL();  | 
|---|
 | 1293 | +  | 
|---|
 | 1294 | +                cSpring.PhysicsController3D Phys = mesh.Phys;  | 
|---|
 | 1295 | +                  | 
|---|
 | 1296 | +                gl.glDisable(gl.GL_LIGHTING);  | 
|---|
 | 1297 | +                  | 
|---|
 | 1298 | +                gl.glLineWidth(1);  | 
|---|
 | 1299 | +                gl.glColor3f(1,1,1);  | 
|---|
 | 1300 | +                gl.glBegin(gl.GL_LINES);  | 
|---|
 | 1301 | +                double scale = 0;  | 
|---|
 | 1302 | +                int count = 0;  | 
|---|
 | 1303 | +                for (int s=0; s<Phys.allSprings.size(); s++)  | 
|---|
 | 1304 | +                {  | 
|---|
 | 1305 | +                    cSpring.Spring spring = Phys.allSprings.get(s);  | 
|---|
 | 1306 | +                        if(s == 0)  | 
|---|
 | 1307 | +                        {  | 
|---|
 | 1308 | +                            //System.out.println(" spring : " + spring.a.position + "; " + spring.b.position);  | 
|---|
 | 1309 | +                        }  | 
|---|
 | 1310 | +                if (mesh.showsprings)  | 
|---|
 | 1311 | +                {  | 
|---|
 | 1312 | +                    temp.set(spring.a.position);  | 
|---|
 | 1313 | +                    temp.add(spring.b.position);  | 
|---|
 | 1314 | +                    temp.mul(0.5);  | 
|---|
 | 1315 | +                    temp2.set(spring.a.position);  | 
|---|
 | 1316 | +                    temp2.sub(spring.b.position);  | 
|---|
 | 1317 | +                    temp2.mul(spring.restLength/2);  | 
|---|
 | 1318 | +                    temp.sub(temp2);  | 
|---|
 | 1319 | +                    gl.glVertex3f((float)temp.x, (float)temp.y, (float)temp.z);  | 
|---|
 | 1320 | +                    temp.add(temp2);  | 
|---|
 | 1321 | +                    temp.add(temp2);  | 
|---|
 | 1322 | +                    gl.glVertex3f((float)temp.x, (float)temp.y, (float)temp.z);  | 
|---|
 | 1323 | +                }  | 
|---|
 | 1324 | +  | 
|---|
 | 1325 | +                    if (spring.isHandle)  | 
|---|
 | 1326 | +                        continue;  | 
|---|
 | 1327 | +                      | 
|---|
 | 1328 | +                    //if (scale < spring.restLength)  | 
|---|
 | 1329 | +                        scale += spring.restLength;  | 
|---|
 | 1330 | +                        count++;  | 
|---|
 | 1331 | +                }  | 
|---|
 | 1332 | +                gl.glEnd();  | 
|---|
 | 1333 | +  | 
|---|
 | 1334 | +                if (count == 0)  | 
|---|
 | 1335 | +                    scale = 0.01;  | 
|---|
 | 1336 | +                else  | 
|---|
 | 1337 | +                    scale /= count * 3;  | 
|---|
 | 1338 | +                  | 
|---|
 | 1339 | +                //scale = 0.25;  | 
|---|
 | 1340 | +                  | 
|---|
 | 1341 | +                if (mesh.ShowInfo())  | 
|---|
 | 1342 | +                {  | 
|---|
 | 1343 | +                    gl.glLineWidth(4);  | 
|---|
 | 1344 | +                    for (int s=0; s<Phys.allNodes.size(); s++)  | 
|---|
 | 1345 | +                    {  | 
|---|
 | 1346 | +                        cSpring.DynamicNode node = Phys.allNodes.get(s);  | 
|---|
 | 1347 | +                        if (node.mass == 0)  | 
|---|
 | 1348 | +                            continue;  | 
|---|
 | 1349 | +                          | 
|---|
 | 1350 | +                        int i = node.springs==null?-1:node.springs.size();  | 
|---|
 | 1351 | +                        gl.glColor3f((i>>2)&1,(i>>1)&1,i&1);  | 
|---|
 | 1352 | +                        //temp.set(node.springForce.x, node.springForce.y, node.springForce.z);  | 
|---|
 | 1353 | +                        //temp.normalize();  | 
|---|
 | 1354 | +                        //gl.glColor3d((temp.x+1)/2, (temp.y+1)/2, (temp.z+1)/2);  | 
|---|
 | 1355 | +                        gl.glBegin(gl.GL_LINES);  | 
|---|
 | 1356 | +                        gl.glVertex3d(node.position.x, node.position.y, node.position.z);  | 
|---|
 | 1357 | +                        //gl.glVertex3d(node.position.x + node.normal.x*scale, node.position.y + node.normal.y*scale, node.position.z + node.normal.z*scale);  | 
|---|
 | 1358 | +                        gl.glVertex3d(node.position.x + mesh.bRep.GetVertex(s).norm.x*scale,  | 
|---|
 | 1359 | +                                node.position.y + mesh.bRep.GetVertex(s).norm.y*scale,  | 
|---|
 | 1360 | +                                node.position.z + mesh.bRep.GetVertex(s).norm.z*scale);  | 
|---|
 | 1361 | +                        gl.glEnd();  | 
|---|
 | 1362 | +                    }  | 
|---|
 | 1363 | +  | 
|---|
 | 1364 | +                    gl.glLineWidth(8);  | 
|---|
 | 1365 | +                    for (int s=0; s<Phys.allNodes.size(); s++)  | 
|---|
 | 1366 | +                    {  | 
|---|
 | 1367 | +                        cSpring.DynamicNode node = Phys.allNodes.get(s);  | 
|---|
 | 1368 | +  | 
|---|
 | 1369 | +                        if (node.springs != null)  | 
|---|
 | 1370 | +                        {  | 
|---|
 | 1371 | +                            for (int i=0; i<node.springs.size(); i+=1)  | 
|---|
 | 1372 | +                            {  | 
|---|
 | 1373 | +                                cSpring.DynamicNode f = node.springs.get(i).GetOther(node);  | 
|---|
 | 1374 | +                                  | 
|---|
 | 1375 | +                                int c = i+1;  | 
|---|
 | 1376 | +                           //     c = node.springs.get(i).nbcopies;  | 
|---|
 | 1377 | +  | 
|---|
 | 1378 | +                                gl.glColor3f((c>>2)&1,(c>>1)&1,c&1);  | 
|---|
 | 1379 | +                                gl.glBegin(gl.GL_LINES);  | 
|---|
 | 1380 | +                                    gl.glVertex3d(node.position.x, node.position.y, node.position.z);  | 
|---|
 | 1381 | +                                    gl.glVertex3d(f.position.x/3+node.position.x*2/3, f.position.y/3+node.position.y*2/3, f.position.z/3+node.position.z*2/3);  | 
|---|
 | 1382 | +                                gl.glEnd();  | 
|---|
 | 1383 | +                            }  | 
|---|
 | 1384 | +                        }  | 
|---|
 | 1385 | +                    }  | 
|---|
 | 1386 | +  | 
|---|
 | 1387 | +                    gl.glLineWidth(1);  | 
|---|
 | 1388 | +                }  | 
|---|
 | 1389 | +                  | 
|---|
 | 1390 | +                gl.glEnable(gl.GL_LIGHTING);  | 
|---|
 | 1391 | +        }  | 
|---|
 | 1392 | +      | 
|---|
| 1062 | 1393 |      /// INTERFACE | 
|---|
 | 1394 | +      | 
|---|
 | 1395 | +    public void StartTriangles()  | 
|---|
 | 1396 | +    {  | 
|---|
 | 1397 | +         javax.media.opengl.GL gl = GetGL();  | 
|---|
 | 1398 | +         gl.glBegin(gl.GL_TRIANGLES);  | 
|---|
 | 1399 | +    }  | 
|---|
 | 1400 | +      | 
|---|
 | 1401 | +    public void EndTriangles()  | 
|---|
 | 1402 | +    {  | 
|---|
 | 1403 | +         GetGL().glEnd();  | 
|---|
 | 1404 | +    }  | 
|---|
 | 1405 | +      | 
|---|
 | 1406 | +    void drawVertex(javax.media.opengl.GL gl, Vertex pv, boolean flipV, boolean selectmode)  | 
|---|
 | 1407 | +    {  | 
|---|
 | 1408 | +        if (!selectmode)  | 
|---|
 | 1409 | +        {  | 
|---|
 | 1410 | +            gl.glNormal3f((float) pv.norm.x, (float) pv.norm.y, (float) pv.norm.z);  | 
|---|
 | 1411 | +            gl.glColor4f(pv.AO, pv.AO, pv.AO, 1);  | 
|---|
 | 1412 | +              | 
|---|
 | 1413 | +            if (flipV)  | 
|---|
 | 1414 | +                gl.glTexCoord2f((float) pv.s, 1-(float) pv.t);  | 
|---|
 | 1415 | +            else  | 
|---|
 | 1416 | +                gl.glTexCoord2f((float) pv.s, (float) pv.t);  | 
|---|
 | 1417 | +        }  | 
|---|
 | 1418 | +  | 
|---|
 | 1419 | +        gl.glVertex3f((float) pv.x, (float) pv.y, (float) pv.z);  | 
|---|
 | 1420 | +    }  | 
|---|
| 1063 | 1421 |       | 
|---|
| 1064 | 1422 |      void SetColor(Object3D obj, Vertex p0) | 
|---|
| 1065 | 1423 |      { | 
|---|
| .. | .. | 
|---|
| 16695 | 17053 |      static IntBuffer textbuffer = null; // IntBuffer.allocate(TEXT_WIDTH*8*8 * TEXT_HEIGHT); | 
|---|
| 16696 | 17054 |      // Depth buffer format | 
|---|
| 16697 | 17055 |      //private int depth_format; | 
|---|
| 16698 |  | -    static public void NextIndex(Object3D o, GL gl)  | 
|---|
 | 17056 | +      | 
|---|
 | 17057 | +    public void NextIndex()  | 
|---|
| 16699 | 17058 |      { | 
|---|
| 16700 | 17059 |          indexcount+=16; | 
|---|
| 16701 |  | -        gl.glColor3d(((indexcount >>> 16) & 255) / 255.0, ((indexcount >>> 8) & 255) / 255.0, ((indexcount) & 255) / 255.0);  | 
|---|
 | 17060 | +        GetGL().glColor3d(((indexcount >>> 16) & 255) / 255.0, ((indexcount >>> 8) & 255) / 255.0, ((indexcount) & 255) / 255.0);  | 
|---|
| 16702 | 17061 |      //objects[indexcount] = o; | 
|---|
| 16703 | 17062 |      //System.out.println("indexcount = " + indexcount); | 
|---|
| 16704 | 17063 |      } | 
|---|
 
| .. | .. | 
|---|
| 142 | 142 |   | 
|---|
| 143 | 143 |  		//System.out.println("shape="+shape+" type="+BroadphaseNativeTypes.forValue(shape.getShapeType())); | 
|---|
| 144 | 144 |   | 
|---|
| 145 |  | -        GL gl = display.GetGL();  | 
|---|
 | 145 | +        GL gl = display.GetGL0();  | 
|---|
| 146 | 146 |           | 
|---|
| 147 | 147 |  		gl.glPushMatrix(); | 
|---|
| 148 | 148 |  		trans.getOpenGLMatrix(glMat); | 
|---|
| .. | .. | 
|---|
| 552 | 552 |   | 
|---|
| 553 | 553 |      static public void drawSphere(iCameraPane display, float radius, int slices, int stacks) | 
|---|
| 554 | 554 |      { | 
|---|
| 555 |  | -        GL gl = display.GetGL();  | 
|---|
 | 555 | +        GL gl = display.GetGL0();  | 
|---|
| 556 | 556 |           | 
|---|
| 557 | 557 |          sphereKey.radius = radius; | 
|---|
| 558 | 558 |          Integer glList = sphereDisplayLists.get(sphereKey); | 
|---|
| .. | .. | 
|---|
| 624 | 624 |   | 
|---|
| 625 | 625 |      static public void drawCylinder(iCameraPane display, float radius, float halfHeight, int upAxis) | 
|---|
| 626 | 626 |      { | 
|---|
| 627 |  | -        GL gl = display.GetGL();  | 
|---|
 | 627 | +        GL gl = display.GetGL0();  | 
|---|
| 628 | 628 |           | 
|---|
| 629 | 629 |          gl.glPushMatrix(); | 
|---|
| 630 | 630 |          switch (upAxis) | 
|---|
 
| .. | .. | 
|---|
| 330 | 330 |              e.printStackTrace(); | 
|---|
| 331 | 331 |          } | 
|---|
| 332 | 332 |               | 
|---|
| 333 |  | -            display.GetGL().glPushMatrix();  | 
|---|
 | 333 | +            //display.GetGL().glPushMatrix();  | 
|---|
 | 334 | +            display.PushMatrix(LA.Identity, 1);  | 
|---|
| 334 | 335 |              Vector3f v = ragdolls.get(0).bodies[0].worldTransform.origin; | 
|---|
| 335 | 336 |       //       display.GetGL().glTranslatef(-v.x,0,-v.z); | 
|---|
| 336 | 337 |           | 
|---|
| 337 | 338 |          super.DrawNode(display, root, selected); | 
|---|
| 338 |  | -            display.GetGL().glPopMatrix();  | 
|---|
 | 339 | +            //display.GetGL().glPopMatrix();  | 
|---|
 | 340 | +            display.PopMatrix(LA.Identity);  | 
|---|
| 339 | 341 |           | 
|---|
| 340 | 342 |  //        assert(bRep != null); | 
|---|
| 341 | 343 |           | 
|---|
| .. | .. | 
|---|
| 453 | 455 |       | 
|---|
| 454 | 456 |      public void renderme(iCameraPane display) | 
|---|
| 455 | 457 |      { | 
|---|
| 456 |  | -        GL gl = display!=null?display.GetGL():null;  | 
|---|
 | 458 | +        GL gl = display!=null?display.GetGL0():null;  | 
|---|
| 457 | 459 |   | 
|---|
| 458 | 460 |          // gl0 = gl; | 
|---|
| 459 | 461 |          if (GetDynamicsWorld() != null) | 
|---|
| .. | .. | 
|---|
| 798 | 800 |   | 
|---|
| 799 | 801 |      public void drawCube(iCameraPane display, float extent) | 
|---|
| 800 | 802 |      { | 
|---|
| 801 |  | -        GL gl = display.GetGL();  | 
|---|
 | 803 | +        GL gl = display.GetGL0();  | 
|---|
| 802 | 804 |   | 
|---|
| 803 | 805 |          extent = extent * 0.5f; | 
|---|
| 804 | 806 |   | 
|---|
| .. | .. | 
|---|
| 1524 | 1526 |   | 
|---|
| 1525 | 1527 |      public void drawSphere(iCameraPane display, float radius, int slices, int stacks) | 
|---|
| 1526 | 1528 |      { | 
|---|
| 1527 |  | -        GL gl = display.GetGL();  | 
|---|
 | 1529 | +        GL gl = display.GetGL0();  | 
|---|
| 1528 | 1530 |   | 
|---|
| 1529 | 1531 |          sphereKey.radius = radius; | 
|---|
| 1530 | 1532 |          Integer glList = sphereDisplayLists.get(sphereKey); | 
|---|
| .. | .. | 
|---|
| 1596 | 1598 |   | 
|---|
| 1597 | 1599 |      public void drawCylinder(iCameraPane display, float radius, float halfHeight, int upAxis) | 
|---|
| 1598 | 1600 |      { | 
|---|
| 1599 |  | -        GL gl = display.GetGL();  | 
|---|
 | 1601 | +        GL gl = display.GetGL0();  | 
|---|
| 1600 | 1602 |   | 
|---|
| 1601 | 1603 |          gl.glPushMatrix(); | 
|---|
| 1602 | 1604 |          switch (upAxis) | 
|---|
 
| .. | .. | 
|---|
| 623 | 623 |      private static int indxr[] = new int[4]; | 
|---|
| 624 | 624 |      private static int indxc[] = new int[4]; | 
|---|
| 625 | 625 |       | 
|---|
 | 626 | +    static double[][] Identity = new double[4][4];  | 
|---|
| 626 | 627 |       | 
|---|
| 627 | 628 |      static int SIZE = 0; // 65536*64; | 
|---|
| 628 | 629 |       | 
|---|
| .. | .. | 
|---|
| 638 | 639 |              costable[i] = Math.cos(PI2 * i/SIZE); | 
|---|
| 639 | 640 |              sintable[i] = Math.sin(PI2 * i*i/SIZE/SIZE); | 
|---|
| 640 | 641 |          } | 
|---|
 | 642 | +          | 
|---|
 | 643 | +        LA.matIdentity(Identity);  | 
|---|
| 641 | 644 |      } | 
|---|
| 642 | 645 |       | 
|---|
| 643 | 646 |      static double cos(double x0) | 
|---|
 
| .. | .. | 
|---|
| 160 | 160 |          // debug stuff | 
|---|
| 161 | 161 |          if (false) // bRep.averagepoints != null) | 
|---|
| 162 | 162 |          { | 
|---|
| 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 |  | -            }  | 
|---|
 | 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 | +//            }  | 
|---|
| 184 | 184 |          } | 
|---|
| 185 | 185 |      } | 
|---|
| 186 | 186 |   | 
|---|
| .. | .. | 
|---|
| 398 | 398 |       | 
|---|
| 399 | 399 |      public void drawCube(iCameraPane display, float extent) | 
|---|
| 400 | 400 |      { | 
|---|
| 401 |  | -        GL gl = display.GetGL();  | 
|---|
 | 401 | +        GL gl = display.GetGL0();  | 
|---|
| 402 | 402 |   | 
|---|
| 403 | 403 |          extent = extent * 0.5f; | 
|---|
| 404 | 404 |   | 
|---|
 
| .. | .. | 
|---|
| 5 | 5 |  import java.util.Vector; | 
|---|
| 6 | 6 |   | 
|---|
| 7 | 7 |  import javax.media.j3d.Transform3D; | 
|---|
 | 8 | +import javax.media.opengl.GL;  | 
|---|
| 8 | 9 |  import javax.vecmath.Vector3d; | 
|---|
| 9 | 10 |   | 
|---|
| 10 | 11 |  import javax.imageio.ImageIO; | 
|---|
| .. | .. | 
|---|
| 5371 | 5372 |              return; | 
|---|
| 5372 | 5373 |          } | 
|---|
| 5373 | 5374 |           | 
|---|
| 5374 |  | -        javax.media.opengl.GL gl = display.GetGL();  | 
|---|
 | 5375 | +        //javax.media.opengl.GL gl = display.GetGL();  | 
|---|
| 5375 | 5376 |   | 
|---|
| 5376 | 5377 |          /* | 
|---|
| 5377 | 5378 |          if (touched) | 
|---|
| .. | .. | 
|---|
| 5423 | 5424 |              //if (displaylist == -1 && usecalllists) | 
|---|
| 5424 | 5425 |              if ((bRep != null && bRep.displaylist <= 0) && usecalllists) // june 2013 | 
|---|
| 5425 | 5426 |              { | 
|---|
| 5426 |  | -                bRep.displaylist = gl.glGenLists(1);  | 
|---|
 | 5427 | +                bRep.displaylist = display.GenList();  | 
|---|
| 5427 | 5428 |                  assert(bRep.displaylist != 0); | 
|---|
| 5428 | 5429 |  //        System.err.println("glGenLists: " + bRep.displaylist + " for " + this); | 
|---|
| 5429 | 5430 |                  //System.out.println("\tgen list " + list); | 
|---|
| .. | .. | 
|---|
| 5435 | 5436 |              if (usecalllists) | 
|---|
| 5436 | 5437 |              { | 
|---|
| 5437 | 5438 |  //            System.err.println("new list " + bRep.displaylist + " for " + this); | 
|---|
| 5438 |  | -                gl.glNewList(bRep.displaylist, gl.GL_COMPILE); //_AND_EXECUTE);  | 
|---|
 | 5439 | +                display.NewList(bRep.displaylist);  | 
|---|
| 5439 | 5440 |              } | 
|---|
 | 5441 | +              | 
|---|
| 5440 | 5442 |              CallList(display, root, selected, blocked); | 
|---|
 | 5443 | +              | 
|---|
| 5441 | 5444 |            //  compiled = true; | 
|---|
| 5442 | 5445 |              if (usecalllists) | 
|---|
| 5443 | 5446 |              { | 
|---|
| 5444 | 5447 |  //            System.err.println("end list " + bRep.displaylist + " for " + this); | 
|---|
| 5445 |  | -                gl.glEndList();  | 
|---|
 | 5448 | +                display.EndList();  | 
|---|
| 5446 | 5449 |              } | 
|---|
| 5447 | 5450 |              //gl.glDrawBuffer(gl.GL_BACK); | 
|---|
| 5448 | 5451 |              // XXX touched = false; | 
|---|
| .. | .. | 
|---|
| 5490 | 5493 |              if (display.DrawMode() == iCameraPane.SHADOW) | 
|---|
| 5491 | 5494 |              { | 
|---|
| 5492 | 5495 |                  if (!link2master // tricky to cull in shadow mode. | 
|---|
| 5493 |  | -                         && GetBRep().FrustumCull(this, gl, display.LightCamera(), true))  | 
|---|
 | 5496 | +                         && GetBRep().FrustumCull(this, null, display.LightCamera(), true))  | 
|---|
| 5494 | 5497 |                  { | 
|---|
| 5495 | 5498 |                      //System.out.print("CULLED"); | 
|---|
| 5496 | 5499 |                      culled = true; | 
|---|
| .. | .. | 
|---|
| 5498 | 5501 |              } | 
|---|
| 5499 | 5502 |              else | 
|---|
| 5500 | 5503 |                  //GetBRep().getBounds(v0, v1, this); | 
|---|
| 5501 |  | -                if (GetBRep().FrustumCull(this, gl, display.RenderCamera(), false))  | 
|---|
 | 5504 | +                if (GetBRep().FrustumCull(this, null, display.RenderCamera(), false))  | 
|---|
| 5502 | 5505 |                      culled = true; | 
|---|
| 5503 | 5506 |               | 
|---|
| 5504 | 5507 |  //            LA.xformPos(v0, display.renderCamera.toScreen, v0); | 
|---|
| .. | .. | 
|---|
| 5538 | 5541 |          { | 
|---|
| 5539 | 5542 |              if (GetBRep() != null) | 
|---|
| 5540 | 5543 |              { | 
|---|
| 5541 |  | -                CameraPane.NextIndex(this, gl);  | 
|---|
 | 5544 | +                display.NextIndex();  | 
|---|
| 5542 | 5545 |                  // vertex color conflict : gl.glCallList(list); | 
|---|
| 5543 | 5546 |                  DrawNode(display, root, selected); | 
|---|
| 5544 | 5547 |                  if (this instanceof BezierPatch) | 
|---|
| .. | .. | 
|---|
| 5595 | 5598 |                           | 
|---|
| 5596 | 5599 |  //        System.err.println("glCallList: " + bRep.displaylist + " for " + this); | 
|---|
| 5597 | 5600 |                          assert(bRep.displaylist != 0); | 
|---|
| 5598 |  | -                        gl.glCallList(bRep.displaylist);  | 
|---|
 | 5601 | +                        display.CallList(bRep.displaylist);  | 
|---|
| 5599 | 5602 |  // june 2013            drawSelf(display, root, selected); | 
|---|
| 5600 | 5603 |                      } | 
|---|
| 5601 | 5604 |                  } | 
|---|
| .. | .. | 
|---|
| 5897 | 5900 |           | 
|---|
| 5898 | 5901 |  //        bRep.lock = true; | 
|---|
| 5899 | 5902 |   | 
|---|
| 5900 |  | -        javax.media.opengl.GL gl = display.GetGL();  | 
|---|
 | 5903 | +        //javax.media.opengl.GL gl = display.GetGL();  | 
|---|
| 5901 | 5904 |   | 
|---|
| 5902 | 5905 |          if (CameraPane.BOXMODE && !selected) // || CameraPane.movingcamera) | 
|---|
| 5903 | 5906 |          { | 
|---|
| .. | .. | 
|---|
| 5914 | 5917 |   | 
|---|
| 5915 | 5918 |                  bRep.getMinMax(min, max, 100); | 
|---|
| 5916 | 5919 |                   | 
|---|
| 5917 |  | -                gl.glBegin(gl.GL_LINES);  | 
|---|
| 5918 |  | -                  | 
|---|
| 5919 |  | -                gl.glVertex3d(min.x, min.y, min.z);  | 
|---|
| 5920 |  | -                gl.glVertex3d(min.x, min.y, max.z);  | 
|---|
| 5921 |  | -                gl.glVertex3d(min.x, min.y, min.z);  | 
|---|
| 5922 |  | -                gl.glVertex3d(min.x, max.y, min.z);  | 
|---|
| 5923 |  | -                gl.glVertex3d(min.x, min.y, min.z);  | 
|---|
| 5924 |  | -                gl.glVertex3d(max.x, min.y, min.z);  | 
|---|
| 5925 |  | -                  | 
|---|
| 5926 |  | -                gl.glVertex3d(max.x, max.y, max.z);  | 
|---|
| 5927 |  | -                gl.glVertex3d(min.x, max.y, max.z);  | 
|---|
| 5928 |  | -                gl.glVertex3d(max.x, max.y, max.z);  | 
|---|
| 5929 |  | -                gl.glVertex3d(max.x, min.y, max.z);  | 
|---|
| 5930 |  | -                gl.glVertex3d(max.x, max.y, max.z);  | 
|---|
| 5931 |  | -                gl.glVertex3d(max.x, max.y, min.z);  | 
|---|
| 5932 |  | -                  | 
|---|
| 5933 |  | -                gl.glEnd();  | 
|---|
 | 5920 | +                display.DrawBox(min, max);  | 
|---|
| 5934 | 5921 |                   | 
|---|
| 5935 | 5922 |                  return; | 
|---|
| 5936 | 5923 |              } | 
|---|
| .. | .. | 
|---|
| 5984 | 5971 |                  new Exception().printStackTrace(); | 
|---|
| 5985 | 5972 |                  return; | 
|---|
| 5986 | 5973 |              } | 
|---|
| 5987 |  | -  | 
|---|
| 5988 |  | -            // TRIANGLE STRIP ARRAY  | 
|---|
| 5989 |  | -            if (bRep.trimmed)  | 
|---|
| 5990 |  | -            {  | 
|---|
| 5991 |  | -                float[] v = bRep.getRawVertices();  | 
|---|
| 5992 |  | -                float[] n = bRep.getRawNormals();  | 
|---|
| 5993 |  | -                float[] c = bRep.getRawColors();  | 
|---|
| 5994 |  | -                float[] uv = bRep.getRawUVMap();  | 
|---|
| 5995 |  | -  | 
|---|
| 5996 |  | -                int count2 = 0;  | 
|---|
| 5997 |  | -                int count3 = 0;  | 
|---|
| 5998 |  | -  | 
|---|
| 5999 |  | -                if (n.length > 0)  | 
|---|
| 6000 |  | -                {  | 
|---|
| 6001 |  | -                    for (int i = 0; i < strips.length; i++)  | 
|---|
| 6002 |  | -                    {  | 
|---|
| 6003 |  | -                        gl.glBegin(gl.GL_TRIANGLE_STRIP);  | 
|---|
| 6004 |  | -  | 
|---|
| 6005 |  | -                        /*  | 
|---|
| 6006 |  | -                boolean locked = false;  | 
|---|
| 6007 |  | -                float eps = 0.1f;  | 
|---|
| 6008 |  | -                boolean wrap = CameraPane.UVWRAP; // true; // UV WRAP TEXTURE ISSUE: true = artifacts, false = nice  | 
|---|
| 6009 |  | -  | 
|---|
| 6010 |  | -                int dot = 0;  | 
|---|
| 6011 |  | -  | 
|---|
| 6012 |  | -                if ((dot&1) == 0)  | 
|---|
| 6013 |  | -                    dot |= (Math.abs(qv.s - pv.s) < eps && Math.abs(qv.t - pv.t) < eps) ? 3 : 1;  | 
|---|
| 6014 |  | -  | 
|---|
| 6015 |  | -                if (wrap || (dot&2) != 0) // Math.abs(qv.s - pv.s) < eps && Math.abs(qv.t - pv.t) < eps)  | 
|---|
| 6016 |  | -                    gl.glTexCoord2f((float) qv.s, (float) qv.t);  | 
|---|
| 6017 |  | -                else  | 
|---|
| 6018 |  | -                {  | 
|---|
| 6019 |  | -                    locked = true;  | 
|---|
| 6020 |  | -                    gl.glTexCoord2f((float) pv.s, (float) pv.t);  | 
|---|
| 6021 |  | -                }  | 
|---|
| 6022 |  | -                //System.out.println("vertexq = " + qv.x + ", " + qv.y + ", " + qv.z);  | 
|---|
| 6023 |  | -                gl.glVertex3f((float) qv.x, (float) qv.y, (float) qv.z);  | 
|---|
| 6024 |  | -                if (hasnorm)  | 
|---|
| 6025 |  | -                {  | 
|---|
| 6026 |  | -                    //System.out.println("normalr = " + rv.norm.x + ", " + rv.norm.y + ", " + rv.norm.z);  | 
|---|
| 6027 |  | -                    gl.glNormal3f((float) rv.norm.x, (float) rv.norm.y, (float) rv.norm.z);  | 
|---|
| 6028 |  | -                }  | 
|---|
| 6029 |  | -  | 
|---|
| 6030 |  | -                if ((dot&4) == 0)  | 
|---|
| 6031 |  | -                    dot |= (Math.abs(rv.s - pv.s) < eps && Math.abs(rv.t - pv.t) < eps) ? 12 : 4;  | 
|---|
| 6032 |  | -  | 
|---|
| 6033 |  | -                if (wrap || !locked && (dot&8) != 0)  | 
|---|
| 6034 |  | -                    gl.glTexCoord2f((float) rv.s, (float) rv.t);  | 
|---|
| 6035 |  | -                else  | 
|---|
| 6036 |  | -                    gl.glTexCoord2f((float) pv.s, (float) pv.t);  | 
|---|
| 6037 |  | -  | 
|---|
| 6038 |  | -                f.dot = dot;  | 
|---|
| 6039 |  | -                */  | 
|---|
| 6040 |  | -  | 
|---|
| 6041 |  | -                        if (!selectmode)  | 
|---|
| 6042 |  | -                        {  | 
|---|
| 6043 |  | -                            if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0)  | 
|---|
| 6044 |  | -                            {  | 
|---|
| 6045 |  | -                                gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]);  | 
|---|
| 6046 |  | -                            } else  | 
|---|
| 6047 |  | -                            {  | 
|---|
| 6048 |  | -                                gl.glNormal3f(0, 0, 1);  | 
|---|
| 6049 |  | -                            }  | 
|---|
| 6050 |  | -  | 
|---|
| 6051 |  | -                            if (c != null)  | 
|---|
| 6052 |  | -                            //System.out.println("glcolor = " + c[count3] + ", " + c[count3+1] + ", " + c[count3+2]);  | 
|---|
| 6053 |  | -                            {  | 
|---|
| 6054 |  | -                                gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1);  | 
|---|
| 6055 |  | -                            }  | 
|---|
| 6056 |  | -                        }  | 
|---|
| 6057 |  | -                        if (flipV)  | 
|---|
| 6058 |  | -                            gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]);  | 
|---|
| 6059 |  | -                        else  | 
|---|
| 6060 |  | -                            gl.glTexCoord2f(uv[count2], uv[count2 + 1]);  | 
|---|
| 6061 |  | -                        //System.out.println("vertex1 = " + v[count3] + ", " + v[count3+1] + ", " + v[count3+2]);  | 
|---|
| 6062 |  | -                        gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]);  | 
|---|
| 6063 |  | -  | 
|---|
| 6064 |  | -                        count2 += 2;  | 
|---|
| 6065 |  | -                        count3 += 3;  | 
|---|
| 6066 |  | -                        if (!selectmode)  | 
|---|
| 6067 |  | -                        {  | 
|---|
| 6068 |  | -                            if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0)  | 
|---|
| 6069 |  | -                            {  | 
|---|
| 6070 |  | -                                gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]);  | 
|---|
| 6071 |  | -                            } else  | 
|---|
| 6072 |  | -                            {  | 
|---|
| 6073 |  | -                                gl.glNormal3f(0, 0, 1);  | 
|---|
| 6074 |  | -                            }  | 
|---|
| 6075 |  | -                            if (c != null)  | 
|---|
| 6076 |  | -                            {  | 
|---|
| 6077 |  | -                                gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1);  | 
|---|
| 6078 |  | -                            }  | 
|---|
| 6079 |  | -                        }  | 
|---|
| 6080 |  | -                        if (flipV)  | 
|---|
| 6081 |  | -                            gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]);  | 
|---|
| 6082 |  | -                        else  | 
|---|
| 6083 |  | -                            gl.glTexCoord2f(uv[count2], uv[count2 + 1]);  | 
|---|
| 6084 |  | -                        //System.out.println("vertex2 = " + v[count3] + ", " + v[count3+1] + ", " + v[count3+2]);  | 
|---|
| 6085 |  | -                        gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]);  | 
|---|
| 6086 |  | -  | 
|---|
| 6087 |  | -                        count2 += 2;  | 
|---|
| 6088 |  | -                        count3 += 3;  | 
|---|
| 6089 |  | -                        for (int j = 0; j < strips[i] - 2; j++)  | 
|---|
| 6090 |  | -                        {  | 
|---|
| 6091 |  | -                            //gl.glTexCoord2d(...);  | 
|---|
| 6092 |  | -                            if (!selectmode)  | 
|---|
| 6093 |  | -                            {  | 
|---|
| 6094 |  | -                                if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0)  | 
|---|
| 6095 |  | -                                {  | 
|---|
| 6096 |  | -                                    gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]);  | 
|---|
| 6097 |  | -                                } else  | 
|---|
| 6098 |  | -                                {  | 
|---|
| 6099 |  | -                                    gl.glNormal3f(0, 0, 1);  | 
|---|
| 6100 |  | -                                }  | 
|---|
| 6101 |  | -                                if (c != null)  | 
|---|
| 6102 |  | -                                {  | 
|---|
| 6103 |  | -                                    gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1);  | 
|---|
| 6104 |  | -                                }  | 
|---|
| 6105 |  | -                            }  | 
|---|
| 6106 |  | -  | 
|---|
| 6107 |  | -                            if (flipV)  | 
|---|
| 6108 |  | -                                gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]);  | 
|---|
| 6109 |  | -                            else  | 
|---|
| 6110 |  | -                                gl.glTexCoord2f(uv[count2], uv[count2 + 1]);  | 
|---|
| 6111 |  | -                            //System.out.println("coord3 = " + uv[count2] + ", " + uv[count2+1]);  | 
|---|
| 6112 |  | -                            gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]);  | 
|---|
| 6113 |  | -                            count2 += 2;  | 
|---|
| 6114 |  | -                            count3 += 3;  | 
|---|
| 6115 |  | -                        }  | 
|---|
| 6116 |  | -  | 
|---|
| 6117 |  | -                        gl.glEnd();  | 
|---|
| 6118 |  | -                    }  | 
|---|
| 6119 |  | -                }  | 
|---|
| 6120 |  | -  | 
|---|
| 6121 |  | -                assert count3 == v.length;  | 
|---|
| 6122 |  | -            }  | 
|---|
| 6123 |  | -            else // !trimmed  | 
|---|
| 6124 |  | -            {  | 
|---|
| 6125 |  | -                int count = 0;  | 
|---|
| 6126 |  | -                for (int i = 0; i < strips.length; i++)  | 
|---|
| 6127 |  | -                {  | 
|---|
| 6128 |  | -                    gl.glBegin(gl.GL_TRIANGLE_STRIP);  | 
|---|
| 6129 |  | -                      | 
|---|
| 6130 |  | -                    Vertex p = bRep.GetVertex(bRep.indices[count++]);  | 
|---|
| 6131 |  | -                    Vertex q = bRep.GetVertex(bRep.indices[count++]);  | 
|---|
| 6132 |  | -                      | 
|---|
| 6133 |  | -                    drawVertex(gl, p, selectmode);  | 
|---|
| 6134 |  | -                    drawVertex(gl, q, selectmode);  | 
|---|
| 6135 |  | -                      | 
|---|
| 6136 |  | -                    for (int j = 0; j < strips[i] - 2; j++)  | 
|---|
| 6137 |  | -                    {  | 
|---|
| 6138 |  | -                        Vertex r = bRep.GetVertex(bRep.indices[count++]);  | 
|---|
| 6139 |  | -  | 
|---|
| 6140 |  | -//                        if (j%2 == 0)  | 
|---|
| 6141 |  | -//                            drawFace(p, q, r, display, null);  | 
|---|
| 6142 |  | -//                        else  | 
|---|
| 6143 |  | -//                            drawFace(p, r, q, display, null);  | 
|---|
| 6144 |  | -                          | 
|---|
| 6145 |  | -//                        p = q;  | 
|---|
| 6146 |  | -//                        q = r;  | 
|---|
| 6147 |  | -                        drawVertex(gl, r, selectmode);  | 
|---|
| 6148 |  | -                    }  | 
|---|
| 6149 |  | -  | 
|---|
| 6150 |  | -                    gl.glEnd();  | 
|---|
| 6151 |  | -                }  | 
|---|
| 6152 |  | -            }  | 
|---|
 | 5974 | +              | 
|---|
 | 5975 | +            display.DrawGeometry(bRep, flipV, selectmode);  | 
|---|
| 6153 | 5976 |          } else // catch (Error e) | 
|---|
| 6154 | 5977 |          { | 
|---|
| 6155 | 5978 |              // TRIANGLE ARRAY | 
|---|
| 6156 | 5979 |              if (IsOpaque()) // Static()) | 
|---|
| 6157 | 5980 |              { | 
|---|
| 6158 |  | -                gl.glBegin(gl.GL_TRIANGLES);  | 
|---|
 | 5981 | +                    display.StartTriangles();  | 
|---|
| 6159 | 5982 |                  int facecount = bRep.FaceCount(); | 
|---|
| 6160 | 5983 |                  for (int i = 0; i < facecount; i++) | 
|---|
| 6161 | 5984 |                  { | 
|---|
| .. | .. | 
|---|
| 6220 | 6043 |   | 
|---|
| 6221 | 6044 |                      display.DrawFace(this, p, q, r, face); | 
|---|
| 6222 | 6045 |                  } | 
|---|
| 6223 |  | -                gl.glEnd();  | 
|---|
 | 6046 | +                    display.EndTriangles();  | 
|---|
| 6224 | 6047 |              } | 
|---|
| 6225 | 6048 |              else | 
|---|
| 6226 | 6049 |              { | 
|---|
| .. | .. | 
|---|
| 6249 | 6072 |                  //System.out.println("SORT"); | 
|---|
| 6250 | 6073 |                   | 
|---|
| 6251 | 6074 |                  java.util.Arrays.sort(facescompare); | 
|---|
| 6252 |  | -                  | 
|---|
| 6253 |  | -                gl.glBegin(gl.GL_TRIANGLES);  | 
|---|
 | 6075 | +  | 
|---|
 | 6076 | +                display.StartTriangles();  | 
|---|
| 6254 | 6077 |                  for (int i = 0; i < facecount; i++) | 
|---|
| 6255 | 6078 |                  { | 
|---|
| 6256 | 6079 |                      Face face = bRep.GetFace(facescompare[i].index); | 
|---|
| .. | .. | 
|---|
| 6264 | 6087 |   | 
|---|
| 6265 | 6088 |                      display.DrawFace(this, p, q, r, face); | 
|---|
| 6266 | 6089 |                  } | 
|---|
| 6267 |  | -                gl.glEnd();  | 
|---|
 | 6090 | +                display.EndTriangles();  | 
|---|
| 6268 | 6091 |              } | 
|---|
| 6269 | 6092 |               | 
|---|
| 6270 | 6093 |              if (false) // live && support != null && support.bRep != null) // debug weights | 
|---|
| 6271 | 6094 |              { | 
|---|
 | 6095 | +                    /*  | 
|---|
| 6272 | 6096 |                  gl.glDisable(gl.GL_LIGHTING); | 
|---|
| 6273 | 6097 |                  float[] colorV = new float[3]; | 
|---|
| 6274 | 6098 |                   | 
|---|
| .. | .. | 
|---|
| 6347 | 6171 |  //                        gl.glEnd(); | 
|---|
| 6348 | 6172 |                      } | 
|---|
| 6349 | 6173 |                  } | 
|---|
 | 6174 | +                     */  | 
|---|
| 6350 | 6175 |              } | 
|---|
| 6351 | 6176 |          } | 
|---|
| 6352 | 6177 |   | 
|---|
| .. | .. | 
|---|
| 6405 | 6230 |      void Print(Vertex v) | 
|---|
| 6406 | 6231 |      { | 
|---|
| 6407 | 6232 |          //System.err.println("(" + v.x + ", " + v.y + ", " + v.z + ")"); | 
|---|
| 6408 |  | -    }  | 
|---|
| 6409 |  | -      | 
|---|
| 6410 |  | -    void drawVertex(javax.media.opengl.GL gl, Vertex pv, boolean selectmode)  | 
|---|
| 6411 |  | -    {  | 
|---|
| 6412 |  | -        if (!selectmode)  | 
|---|
| 6413 |  | -        {  | 
|---|
| 6414 |  | -            gl.glNormal3f((float) pv.norm.x, (float) pv.norm.y, (float) pv.norm.z);  | 
|---|
| 6415 |  | -            gl.glColor4f(pv.AO, pv.AO, pv.AO, 1);  | 
|---|
| 6416 |  | -              | 
|---|
| 6417 |  | -            if (flipV)  | 
|---|
| 6418 |  | -                gl.glTexCoord2f((float) pv.s, 1-(float) pv.t);  | 
|---|
| 6419 |  | -            else  | 
|---|
| 6420 |  | -                gl.glTexCoord2f((float) pv.s, (float) pv.t);  | 
|---|
| 6421 |  | -        }  | 
|---|
| 6422 |  | -  | 
|---|
| 6423 |  | -        gl.glVertex3f((float) pv.x, (float) pv.y, (float) pv.z);  | 
|---|
| 6424 | 6233 |      } | 
|---|
| 6425 | 6234 |       | 
|---|
| 6426 | 6235 |      void drawSelf(ClickInfo info, int level, boolean select) | 
|---|
 
| .. | .. | 
|---|
| 529 | 529 |  	public void renderme0(iCameraPane display) | 
|---|
| 530 | 530 |          { | 
|---|
| 531 | 531 |  		//updateCamera(); | 
|---|
| 532 |  | -        GL gl = display.GetGL();  | 
|---|
 | 532 | +        GL gl = display.GetGL0();  | 
|---|
| 533 | 533 |   | 
|---|
| 534 | 534 |  		if (dynamicsWorld != null) { | 
|---|
| 535 | 535 |  			int numObjects = dynamicsWorld.getNumCollisionObjects(); | 
|---|
 
| .. | .. | 
|---|
| 49 | 49 |          { | 
|---|
| 50 | 50 |              cStatic.point7.set(stack.peek()); | 
|---|
| 51 | 51 |              /**/ | 
|---|
| 52 |  | -            javax.media.opengl.GL gl = display.GetGL();  | 
|---|
 | 52 | +            //javax.media.opengl.GL gl = display.GetGL();  | 
|---|
| 53 | 53 |  		 | 
|---|
| 54 | 54 |              //gl.glBegin(gl.GL_LINES); | 
|---|
| 55 | 55 |              //gl.glVertex3d(stack.peek().x, stack.peek().y, stack.peek().z); | 
|---|
 
| .. | .. | 
|---|
| 1 | 1 |  import java.util.Hashtable; | 
|---|
| 2 | 2 |   | 
|---|
| 3 |  | -import javax.media.opengl.GL;  | 
|---|
 | 3 | +//import javax.media.opengl.GL;  | 
|---|
| 4 | 4 |   | 
|---|
| 5 | 5 |  public class cMesh extends cSpring | 
|---|
| 6 | 6 |  { | 
|---|
| .. | .. | 
|---|
| 78 | 78 |               | 
|---|
| 79 | 79 |              live = true; | 
|---|
| 80 | 80 |      } | 
|---|
| 81 |  | -      | 
|---|
 | 81 | +  | 
|---|
| 82 | 82 |      Object3D deepCopy() | 
|---|
| 83 | 83 |      { | 
|---|
| 84 | 84 |          /* | 
|---|
| .. | .. | 
|---|
| 545 | 545 |           | 
|---|
| 546 | 546 |          if(/*showsprings &&*/ Phys != null) | 
|---|
| 547 | 547 |          { | 
|---|
| 548 |  | -            GL gl = display.GetGL(); // getGL();  | 
|---|
| 549 |  | -  | 
|---|
| 550 |  | -            gl.glDisable(gl.GL_LIGHTING);  | 
|---|
| 551 |  | -              | 
|---|
| 552 |  | -            gl.glLineWidth(1);  | 
|---|
| 553 |  | -            gl.glColor3f(1,1,1);  | 
|---|
| 554 |  | -            gl.glBegin(gl.GL_LINES);  | 
|---|
| 555 |  | -            double scale = 0;  | 
|---|
| 556 |  | -            int count = 0;  | 
|---|
| 557 |  | -            for (int s=0; s<Phys.allSprings.size(); s++)  | 
|---|
| 558 |  | -            {  | 
|---|
| 559 |  | -                Spring spring = Phys.allSprings.get(s);  | 
|---|
| 560 |  | -                    if(s == 0)  | 
|---|
| 561 |  | -                    {  | 
|---|
| 562 |  | -                        //System.out.println(" spring : " + spring.a.position + "; " + spring.b.position);  | 
|---|
| 563 |  | -                    }  | 
|---|
| 564 |  | -            if (showsprings)  | 
|---|
| 565 |  | -            {  | 
|---|
| 566 |  | -                temp.set(spring.a.position);  | 
|---|
| 567 |  | -                temp.add(spring.b.position);  | 
|---|
| 568 |  | -                temp.mul(0.5);  | 
|---|
| 569 |  | -                temp2.set(spring.a.position);  | 
|---|
| 570 |  | -                temp2.sub(spring.b.position);  | 
|---|
| 571 |  | -                temp2.mul(spring.restLength/2);  | 
|---|
| 572 |  | -                temp.sub(temp2);  | 
|---|
| 573 |  | -                gl.glVertex3f((float)temp.x, (float)temp.y, (float)temp.z);  | 
|---|
| 574 |  | -                temp.add(temp2);  | 
|---|
| 575 |  | -                temp.add(temp2);  | 
|---|
| 576 |  | -                gl.glVertex3f((float)temp.x, (float)temp.y, (float)temp.z);  | 
|---|
| 577 |  | -            }  | 
|---|
| 578 |  | -  | 
|---|
| 579 |  | -                if (spring.isHandle)  | 
|---|
| 580 |  | -                    continue;  | 
|---|
| 581 |  | -                  | 
|---|
| 582 |  | -                //if (scale < spring.restLength)  | 
|---|
| 583 |  | -                    scale += spring.restLength;  | 
|---|
| 584 |  | -                    count++;  | 
|---|
| 585 |  | -            }  | 
|---|
| 586 |  | -            gl.glEnd();  | 
|---|
| 587 |  | -  | 
|---|
| 588 |  | -            if (count == 0)  | 
|---|
| 589 |  | -                scale = 0.01;  | 
|---|
| 590 |  | -            else  | 
|---|
| 591 |  | -                scale /= count * 3;  | 
|---|
| 592 |  | -              | 
|---|
| 593 |  | -            //scale = 0.25;  | 
|---|
| 594 |  | -              | 
|---|
| 595 |  | -            if (ShowInfo())  | 
|---|
| 596 |  | -            {  | 
|---|
| 597 |  | -                gl.glLineWidth(4);  | 
|---|
| 598 |  | -                for (int s=0; s<Phys.allNodes.size(); s++)  | 
|---|
| 599 |  | -                {  | 
|---|
| 600 |  | -                    DynamicNode node = Phys.allNodes.get(s);  | 
|---|
| 601 |  | -                    if (node.mass == 0)  | 
|---|
| 602 |  | -                        continue;  | 
|---|
| 603 |  | -                      | 
|---|
| 604 |  | -                    int i = node.springs==null?-1:node.springs.size();  | 
|---|
| 605 |  | -                    gl.glColor3f((i>>2)&1,(i>>1)&1,i&1);  | 
|---|
| 606 |  | -                    //temp.set(node.springForce.x, node.springForce.y, node.springForce.z);  | 
|---|
| 607 |  | -                    //temp.normalize();  | 
|---|
| 608 |  | -                    //gl.glColor3d((temp.x+1)/2, (temp.y+1)/2, (temp.z+1)/2);  | 
|---|
| 609 |  | -                    gl.glBegin(gl.GL_LINES);  | 
|---|
| 610 |  | -                    gl.glVertex3d(node.position.x, node.position.y, node.position.z);  | 
|---|
| 611 |  | -                    //gl.glVertex3d(node.position.x + node.normal.x*scale, node.position.y + node.normal.y*scale, node.position.z + node.normal.z*scale);  | 
|---|
| 612 |  | -                    gl.glVertex3d(node.position.x + bRep.GetVertex(s).norm.x*scale,  | 
|---|
| 613 |  | -                            node.position.y + bRep.GetVertex(s).norm.y*scale,  | 
|---|
| 614 |  | -                            node.position.z + bRep.GetVertex(s).norm.z*scale);  | 
|---|
| 615 |  | -                    gl.glEnd();  | 
|---|
| 616 |  | -                }  | 
|---|
| 617 |  | -  | 
|---|
| 618 |  | -                gl.glLineWidth(8);  | 
|---|
| 619 |  | -                for (int s=0; s<Phys.allNodes.size(); s++)  | 
|---|
| 620 |  | -                {  | 
|---|
| 621 |  | -                    DynamicNode node = Phys.allNodes.get(s);  | 
|---|
| 622 |  | -  | 
|---|
| 623 |  | -                    if (node.springs != null)  | 
|---|
| 624 |  | -                    {  | 
|---|
| 625 |  | -                        for (int i=0; i<node.springs.size(); i+=1)  | 
|---|
| 626 |  | -                        {  | 
|---|
| 627 |  | -                            DynamicNode f = node.springs.get(i).GetOther(node);  | 
|---|
| 628 |  | -                              | 
|---|
| 629 |  | -                            int c = i+1;  | 
|---|
| 630 |  | -                       //     c = node.springs.get(i).nbcopies;  | 
|---|
| 631 |  | -  | 
|---|
| 632 |  | -                            gl.glColor3f((c>>2)&1,(c>>1)&1,c&1);  | 
|---|
| 633 |  | -                            gl.glBegin(gl.GL_LINES);  | 
|---|
| 634 |  | -                                gl.glVertex3d(node.position.x, node.position.y, node.position.z);  | 
|---|
| 635 |  | -                                gl.glVertex3d(f.position.x/3+node.position.x*2/3, f.position.y/3+node.position.y*2/3, f.position.z/3+node.position.z*2/3);  | 
|---|
| 636 |  | -                            gl.glEnd();  | 
|---|
| 637 |  | -                        }  | 
|---|
| 638 |  | -                    }  | 
|---|
| 639 |  | -                }  | 
|---|
| 640 |  | -  | 
|---|
| 641 |  | -                gl.glLineWidth(1);  | 
|---|
| 642 |  | -            }  | 
|---|
| 643 |  | -              | 
|---|
| 644 |  | -            gl.glEnable(gl.GL_LIGHTING);  | 
|---|
 | 548 | +            display.DrawDynamicMesh(this);  | 
|---|
| 645 | 549 |          } | 
|---|
| 646 | 550 |           | 
|---|
| 647 | 551 |          if (live && Globals.isLIVE() && display.DrawMode() == CameraPane.DEFAULT) | 
|---|
 
| .. | .. | 
|---|
| 565 | 565 |  //        } | 
|---|
| 566 | 566 |           | 
|---|
| 567 | 567 |          //new Exception().printStackTrace(); | 
|---|
| 568 |  | -        GL gl = display.GetGL(); // getGL();  | 
|---|
 | 568 | +        GL gl = display.GetGL0(); // getGL();  | 
|---|
| 569 | 569 |   | 
|---|
| 570 | 570 |          //gl.glDisable(GL.GL_LIGHTING); | 
|---|
| 571 | 571 |   | 
|---|
 
| .. | .. | 
|---|
| 24 | 24 |       | 
|---|
| 25 | 25 |      boolean IsFrozen(); | 
|---|
| 26 | 26 |   | 
|---|
| 27 |  | -    javax.media.opengl.GL GetGL();  | 
|---|
 | 27 | +    javax.media.opengl.GL GetGL0();  | 
|---|
| 28 | 28 |       | 
|---|
| 29 | 29 |      // Currently in Globals | 
|---|
| 30 | 30 |      int DrawMode(); | 
|---|
| .. | .. | 
|---|
| 60 | 60 |       | 
|---|
| 61 | 61 |      void DrawFace(Object3D obj, Vertex pv, Vertex qv, Vertex rv, Face face); | 
|---|
| 62 | 62 |       | 
|---|
 | 63 | +    void DrawBox(cVector min, cVector max);  | 
|---|
 | 64 | +          | 
|---|
 | 65 | +    void DrawGeometry(BoundaryRep bRep, boolean flipV, boolean selectmode);  | 
|---|
 | 66 | +      | 
|---|
 | 67 | +    void DrawDynamicMesh(cMesh c);  | 
|---|
 | 68 | +      | 
|---|
 | 69 | +    void StartTriangles();  | 
|---|
 | 70 | +    void EndTriangles();  | 
|---|
 | 71 | +      | 
|---|
 | 72 | +    int  GenList();  | 
|---|
 | 73 | +    void NewList(int id);  | 
|---|
 | 74 | +    void CallList(int id);  | 
|---|
 | 75 | +    void EndList();  | 
|---|
 | 76 | +      | 
|---|
 | 77 | +    void NextIndex();  | 
|---|
 | 78 | +              | 
|---|
| 63 | 79 |      void DrawParticles(TriMesh geo, Object3D shape, boolean selected, boolean rotate); | 
|---|
| 64 | 80 |       | 
|---|
| 65 | 81 |      void PrepOcclusion(BoundaryRep br, double[][] transform); | 
|---|