.. | .. |
---|
56 | 56 | static int CURRENTANTIALIAS = 0; // 1; |
---|
57 | 57 | /*static*/ boolean RENDERSHADOW = true; |
---|
58 | 58 | /*static*/ int RENDERPROGRAM = 2; // 0 == none, 1 == fast, 2 == normal |
---|
59 | | - static boolean ANIMATION = false; |
---|
60 | | - static String filename; |
---|
61 | 59 | |
---|
62 | 60 | boolean DISPLAYTEXT = false; |
---|
63 | 61 | //boolean REDUCETEXTURE = true; |
---|
.. | .. |
---|
92 | 90 | |
---|
93 | 91 | static int tickcount = 0; // slow pose issue |
---|
94 | 92 | |
---|
| 93 | +static boolean BUTTONLESSWHEEL = false; |
---|
| 94 | +static boolean ZOOMBOXMODE = false; |
---|
95 | 95 | static boolean BOXMODE = false; |
---|
96 | 96 | static boolean IMAGEFLIP = false; |
---|
97 | 97 | static boolean SMOOTHFOCUS = false; |
---|
.. | .. |
---|
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; |
---|
| 226 | + } |
---|
| 227 | + |
---|
| 228 | + public boolean IsZoomBoxMode() |
---|
| 229 | + { |
---|
| 230 | + return ZOOMBOXMODE; |
---|
197 | 231 | } |
---|
198 | 232 | |
---|
199 | 233 | public void ClearDepth() |
---|
.. | .. |
---|
1059 | 1093 | gl.glMatrixMode(gl.GL_MODELVIEW); |
---|
1060 | 1094 | } |
---|
1061 | 1095 | |
---|
| 1096 | + public void DrawBox(cVector min, cVector max) |
---|
| 1097 | + { |
---|
| 1098 | + javax.media.opengl.GL gl = GetGL(); |
---|
| 1099 | + gl.glBegin(gl.GL_LINES); |
---|
| 1100 | + |
---|
| 1101 | + gl.glVertex3d(min.x, min.y, min.z); |
---|
| 1102 | + gl.glVertex3d(min.x, min.y, max.z); |
---|
| 1103 | + gl.glVertex3d(min.x, min.y, min.z); |
---|
| 1104 | + gl.glVertex3d(min.x, max.y, min.z); |
---|
| 1105 | + gl.glVertex3d(min.x, min.y, min.z); |
---|
| 1106 | + gl.glVertex3d(max.x, min.y, min.z); |
---|
| 1107 | + |
---|
| 1108 | + gl.glVertex3d(max.x, max.y, max.z); |
---|
| 1109 | + gl.glVertex3d(min.x, max.y, max.z); |
---|
| 1110 | + gl.glVertex3d(max.x, max.y, max.z); |
---|
| 1111 | + gl.glVertex3d(max.x, min.y, max.z); |
---|
| 1112 | + gl.glVertex3d(max.x, max.y, max.z); |
---|
| 1113 | + gl.glVertex3d(max.x, max.y, min.z); |
---|
| 1114 | + |
---|
| 1115 | + gl.glEnd(); |
---|
| 1116 | + } |
---|
| 1117 | + |
---|
| 1118 | + public void DrawGeometry(BoundaryRep bRep, boolean flipV, boolean selectmode) |
---|
| 1119 | + { |
---|
| 1120 | + int[] strips = bRep.getRawIndices(); |
---|
| 1121 | + |
---|
| 1122 | + javax.media.opengl.GL gl = GetGL(); |
---|
| 1123 | + |
---|
| 1124 | + // TRIANGLE STRIP ARRAY |
---|
| 1125 | + if (bRep.trimmed) |
---|
| 1126 | + { |
---|
| 1127 | + float[] v = bRep.getRawVertices(); |
---|
| 1128 | + float[] n = bRep.getRawNormals(); |
---|
| 1129 | + float[] c = bRep.getRawColors(); |
---|
| 1130 | + float[] uv = bRep.getRawUVMap(); |
---|
| 1131 | + |
---|
| 1132 | + int count2 = 0; |
---|
| 1133 | + int count3 = 0; |
---|
| 1134 | + |
---|
| 1135 | + if (n.length > 0) |
---|
| 1136 | + { |
---|
| 1137 | + for (int i = 0; i < strips.length; i++) |
---|
| 1138 | + { |
---|
| 1139 | + gl.glBegin(gl.GL_TRIANGLE_STRIP); |
---|
| 1140 | + |
---|
| 1141 | + /* |
---|
| 1142 | + boolean locked = false; |
---|
| 1143 | + float eps = 0.1f; |
---|
| 1144 | + boolean wrap = CameraPane.UVWRAP; // true; // UV WRAP TEXTURE ISSUE: true = artifacts, false = nice |
---|
| 1145 | + |
---|
| 1146 | + int dot = 0; |
---|
| 1147 | + |
---|
| 1148 | + if ((dot&1) == 0) |
---|
| 1149 | + dot |= (Math.abs(qv.s - pv.s) < eps && Math.abs(qv.t - pv.t) < eps) ? 3 : 1; |
---|
| 1150 | + |
---|
| 1151 | + if (wrap || (dot&2) != 0) // Math.abs(qv.s - pv.s) < eps && Math.abs(qv.t - pv.t) < eps) |
---|
| 1152 | + gl.glTexCoord2f((float) qv.s, (float) qv.t); |
---|
| 1153 | + else |
---|
| 1154 | + { |
---|
| 1155 | + locked = true; |
---|
| 1156 | + gl.glTexCoord2f((float) pv.s, (float) pv.t); |
---|
| 1157 | + } |
---|
| 1158 | + //System.out.println("vertexq = " + qv.x + ", " + qv.y + ", " + qv.z); |
---|
| 1159 | + gl.glVertex3f((float) qv.x, (float) qv.y, (float) qv.z); |
---|
| 1160 | + if (hasnorm) |
---|
| 1161 | + { |
---|
| 1162 | + //System.out.println("normalr = " + rv.norm.x + ", " + rv.norm.y + ", " + rv.norm.z); |
---|
| 1163 | + gl.glNormal3f((float) rv.norm.x, (float) rv.norm.y, (float) rv.norm.z); |
---|
| 1164 | + } |
---|
| 1165 | + |
---|
| 1166 | + if ((dot&4) == 0) |
---|
| 1167 | + dot |= (Math.abs(rv.s - pv.s) < eps && Math.abs(rv.t - pv.t) < eps) ? 12 : 4; |
---|
| 1168 | + |
---|
| 1169 | + if (wrap || !locked && (dot&8) != 0) |
---|
| 1170 | + gl.glTexCoord2f((float) rv.s, (float) rv.t); |
---|
| 1171 | + else |
---|
| 1172 | + gl.glTexCoord2f((float) pv.s, (float) pv.t); |
---|
| 1173 | + |
---|
| 1174 | + f.dot = dot; |
---|
| 1175 | + */ |
---|
| 1176 | + |
---|
| 1177 | + if (!selectmode) |
---|
| 1178 | + { |
---|
| 1179 | + if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0) |
---|
| 1180 | + { |
---|
| 1181 | + gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]); |
---|
| 1182 | + } else |
---|
| 1183 | + { |
---|
| 1184 | + gl.glNormal3f(0, 0, 1); |
---|
| 1185 | + } |
---|
| 1186 | + |
---|
| 1187 | + if (c != null) |
---|
| 1188 | + //System.out.println("glcolor = " + c[count3] + ", " + c[count3+1] + ", " + c[count3+2]); |
---|
| 1189 | + { |
---|
| 1190 | + gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1); |
---|
| 1191 | + } |
---|
| 1192 | + } |
---|
| 1193 | + if (flipV) |
---|
| 1194 | + gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]); |
---|
| 1195 | + else |
---|
| 1196 | + gl.glTexCoord2f(uv[count2], uv[count2 + 1]); |
---|
| 1197 | + //System.out.println("vertex1 = " + v[count3] + ", " + v[count3+1] + ", " + v[count3+2]); |
---|
| 1198 | + gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]); |
---|
| 1199 | + |
---|
| 1200 | + count2 += 2; |
---|
| 1201 | + count3 += 3; |
---|
| 1202 | + if (!selectmode) |
---|
| 1203 | + { |
---|
| 1204 | + if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0) |
---|
| 1205 | + { |
---|
| 1206 | + gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]); |
---|
| 1207 | + } else |
---|
| 1208 | + { |
---|
| 1209 | + gl.glNormal3f(0, 0, 1); |
---|
| 1210 | + } |
---|
| 1211 | + if (c != null) |
---|
| 1212 | + { |
---|
| 1213 | + gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1); |
---|
| 1214 | + } |
---|
| 1215 | + } |
---|
| 1216 | + if (flipV) |
---|
| 1217 | + gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]); |
---|
| 1218 | + else |
---|
| 1219 | + gl.glTexCoord2f(uv[count2], uv[count2 + 1]); |
---|
| 1220 | + //System.out.println("vertex2 = " + v[count3] + ", " + v[count3+1] + ", " + v[count3+2]); |
---|
| 1221 | + gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]); |
---|
| 1222 | + |
---|
| 1223 | + count2 += 2; |
---|
| 1224 | + count3 += 3; |
---|
| 1225 | + for (int j = 0; j < strips[i] - 2; j++) |
---|
| 1226 | + { |
---|
| 1227 | + //gl.glTexCoord2d(...); |
---|
| 1228 | + if (!selectmode) |
---|
| 1229 | + { |
---|
| 1230 | + if (n[count3] != 0 || n[count3 + 1] != 0 || n[count3 + 2] != 0) |
---|
| 1231 | + { |
---|
| 1232 | + gl.glNormal3f(n[count3], n[count3 + 1], n[count3 + 2]); |
---|
| 1233 | + } else |
---|
| 1234 | + { |
---|
| 1235 | + gl.glNormal3f(0, 0, 1); |
---|
| 1236 | + } |
---|
| 1237 | + if (c != null) |
---|
| 1238 | + { |
---|
| 1239 | + gl.glColor4f(c[count3/3], c[count3/3 /* + 1*/], c[count3/3 /* + 2*/], 1); |
---|
| 1240 | + } |
---|
| 1241 | + } |
---|
| 1242 | + |
---|
| 1243 | + if (flipV) |
---|
| 1244 | + gl.glTexCoord2f(uv[count2], 1-uv[count2 + 1]); |
---|
| 1245 | + else |
---|
| 1246 | + gl.glTexCoord2f(uv[count2], uv[count2 + 1]); |
---|
| 1247 | + //System.out.println("coord3 = " + uv[count2] + ", " + uv[count2+1]); |
---|
| 1248 | + gl.glVertex3f(v[count3], v[count3 + 1], v[count3 + 2]); |
---|
| 1249 | + count2 += 2; |
---|
| 1250 | + count3 += 3; |
---|
| 1251 | + } |
---|
| 1252 | + |
---|
| 1253 | + gl.glEnd(); |
---|
| 1254 | + } |
---|
| 1255 | + } |
---|
| 1256 | + |
---|
| 1257 | + assert count3 == v.length; |
---|
| 1258 | + } |
---|
| 1259 | + else // !trimmed |
---|
| 1260 | + { |
---|
| 1261 | + int count = 0; |
---|
| 1262 | + for (int i = 0; i < strips.length; i++) |
---|
| 1263 | + { |
---|
| 1264 | + gl.glBegin(gl.GL_TRIANGLE_STRIP); |
---|
| 1265 | + |
---|
| 1266 | + Vertex p = bRep.GetVertex(bRep.indices[count++]); |
---|
| 1267 | + Vertex q = bRep.GetVertex(bRep.indices[count++]); |
---|
| 1268 | + |
---|
| 1269 | + drawVertex(gl, p, flipV, selectmode); |
---|
| 1270 | + drawVertex(gl, q, flipV, selectmode); |
---|
| 1271 | + |
---|
| 1272 | + for (int j = 0; j < strips[i] - 2; j++) |
---|
| 1273 | + { |
---|
| 1274 | + Vertex r = bRep.GetVertex(bRep.indices[count++]); |
---|
| 1275 | + |
---|
| 1276 | + // if (j%2 == 0) |
---|
| 1277 | + // drawFace(p, q, r, display, null); |
---|
| 1278 | + // else |
---|
| 1279 | + // drawFace(p, r, q, display, null); |
---|
| 1280 | + |
---|
| 1281 | + // p = q; |
---|
| 1282 | + // q = r; |
---|
| 1283 | + drawVertex(gl, r, flipV, selectmode); |
---|
| 1284 | + } |
---|
| 1285 | + |
---|
| 1286 | + gl.glEnd(); |
---|
| 1287 | + } |
---|
| 1288 | + } |
---|
| 1289 | + } |
---|
| 1290 | + |
---|
| 1291 | + static cSpring.Point3D temp = new cSpring.Point3D(); |
---|
| 1292 | + static cSpring.Point3D temp2 = new cSpring.Point3D(); |
---|
| 1293 | + static cSpring.Point3D temp3 = new cSpring.Point3D(); |
---|
| 1294 | + |
---|
| 1295 | + public void DrawDynamicMesh(cMesh mesh) |
---|
| 1296 | + { |
---|
| 1297 | + GL gl = GetGL(); // getGL(); |
---|
| 1298 | + |
---|
| 1299 | + cSpring.PhysicsController3D Phys = mesh.Phys; |
---|
| 1300 | + |
---|
| 1301 | + gl.glDisable(gl.GL_LIGHTING); |
---|
| 1302 | + |
---|
| 1303 | + gl.glLineWidth(1); |
---|
| 1304 | + gl.glColor3f(1,1,1); |
---|
| 1305 | + gl.glBegin(gl.GL_LINES); |
---|
| 1306 | + double scale = 0; |
---|
| 1307 | + int count = 0; |
---|
| 1308 | + for (int s=0; s<Phys.allSprings.size(); s++) |
---|
| 1309 | + { |
---|
| 1310 | + cSpring.Spring spring = Phys.allSprings.get(s); |
---|
| 1311 | + if(s == 0) |
---|
| 1312 | + { |
---|
| 1313 | + //System.out.println(" spring : " + spring.a.position + "; " + spring.b.position); |
---|
| 1314 | + } |
---|
| 1315 | + if (mesh.showsprings) |
---|
| 1316 | + { |
---|
| 1317 | + temp.set(spring.a.position); |
---|
| 1318 | + temp.add(spring.b.position); |
---|
| 1319 | + temp.mul(0.5); |
---|
| 1320 | + temp2.set(spring.a.position); |
---|
| 1321 | + temp2.sub(spring.b.position); |
---|
| 1322 | + temp2.mul(spring.restLength/2); |
---|
| 1323 | + temp.sub(temp2); |
---|
| 1324 | + gl.glVertex3f((float)temp.x, (float)temp.y, (float)temp.z); |
---|
| 1325 | + temp.add(temp2); |
---|
| 1326 | + temp.add(temp2); |
---|
| 1327 | + gl.glVertex3f((float)temp.x, (float)temp.y, (float)temp.z); |
---|
| 1328 | + } |
---|
| 1329 | + |
---|
| 1330 | + if (spring.isHandle) |
---|
| 1331 | + continue; |
---|
| 1332 | + |
---|
| 1333 | + //if (scale < spring.restLength) |
---|
| 1334 | + scale += spring.restLength; |
---|
| 1335 | + count++; |
---|
| 1336 | + } |
---|
| 1337 | + gl.glEnd(); |
---|
| 1338 | + |
---|
| 1339 | + if (count == 0) |
---|
| 1340 | + scale = 0.01; |
---|
| 1341 | + else |
---|
| 1342 | + scale /= count * 3; |
---|
| 1343 | + |
---|
| 1344 | + //scale = 0.25; |
---|
| 1345 | + |
---|
| 1346 | + if (mesh.ShowInfo()) |
---|
| 1347 | + { |
---|
| 1348 | + gl.glLineWidth(4); |
---|
| 1349 | + for (int s=0; s<Phys.allNodes.size(); s++) |
---|
| 1350 | + { |
---|
| 1351 | + cSpring.DynamicNode node = Phys.allNodes.get(s); |
---|
| 1352 | + if (node.mass == 0) |
---|
| 1353 | + continue; |
---|
| 1354 | + |
---|
| 1355 | + int i = node.springs==null?-1:node.springs.size(); |
---|
| 1356 | + gl.glColor3f((i>>2)&1,(i>>1)&1,i&1); |
---|
| 1357 | + //temp.set(node.springForce.x, node.springForce.y, node.springForce.z); |
---|
| 1358 | + //temp.normalize(); |
---|
| 1359 | + //gl.glColor3d((temp.x+1)/2, (temp.y+1)/2, (temp.z+1)/2); |
---|
| 1360 | + gl.glBegin(gl.GL_LINES); |
---|
| 1361 | + gl.glVertex3d(node.position.x, node.position.y, node.position.z); |
---|
| 1362 | + //gl.glVertex3d(node.position.x + node.normal.x*scale, node.position.y + node.normal.y*scale, node.position.z + node.normal.z*scale); |
---|
| 1363 | + gl.glVertex3d(node.position.x + mesh.bRep.GetVertex(s).norm.x*scale, |
---|
| 1364 | + node.position.y + mesh.bRep.GetVertex(s).norm.y*scale, |
---|
| 1365 | + node.position.z + mesh.bRep.GetVertex(s).norm.z*scale); |
---|
| 1366 | + gl.glEnd(); |
---|
| 1367 | + } |
---|
| 1368 | + |
---|
| 1369 | + gl.glLineWidth(8); |
---|
| 1370 | + for (int s=0; s<Phys.allNodes.size(); s++) |
---|
| 1371 | + { |
---|
| 1372 | + cSpring.DynamicNode node = Phys.allNodes.get(s); |
---|
| 1373 | + |
---|
| 1374 | + if (node.springs != null) |
---|
| 1375 | + { |
---|
| 1376 | + for (int i=0; i<node.springs.size(); i+=1) |
---|
| 1377 | + { |
---|
| 1378 | + cSpring.DynamicNode f = node.springs.get(i).GetOther(node); |
---|
| 1379 | + |
---|
| 1380 | + int c = i+1; |
---|
| 1381 | + // c = node.springs.get(i).nbcopies; |
---|
| 1382 | + |
---|
| 1383 | + gl.glColor3f((c>>2)&1,(c>>1)&1,c&1); |
---|
| 1384 | + gl.glBegin(gl.GL_LINES); |
---|
| 1385 | + gl.glVertex3d(node.position.x, node.position.y, node.position.z); |
---|
| 1386 | + 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); |
---|
| 1387 | + gl.glEnd(); |
---|
| 1388 | + } |
---|
| 1389 | + } |
---|
| 1390 | + } |
---|
| 1391 | + |
---|
| 1392 | + gl.glLineWidth(1); |
---|
| 1393 | + } |
---|
| 1394 | + |
---|
| 1395 | + gl.glEnable(gl.GL_LIGHTING); |
---|
| 1396 | + } |
---|
| 1397 | + |
---|
1062 | 1398 | /// INTERFACE |
---|
| 1399 | + |
---|
| 1400 | + public void StartTriangles() |
---|
| 1401 | + { |
---|
| 1402 | + javax.media.opengl.GL gl = GetGL(); |
---|
| 1403 | + gl.glBegin(gl.GL_TRIANGLES); |
---|
| 1404 | + } |
---|
| 1405 | + |
---|
| 1406 | + public void EndTriangles() |
---|
| 1407 | + { |
---|
| 1408 | + GetGL().glEnd(); |
---|
| 1409 | + } |
---|
| 1410 | + |
---|
| 1411 | + void drawVertex(javax.media.opengl.GL gl, Vertex pv, boolean flipV, boolean selectmode) |
---|
| 1412 | + { |
---|
| 1413 | + if (!selectmode) |
---|
| 1414 | + { |
---|
| 1415 | + gl.glNormal3f((float) pv.norm.x, (float) pv.norm.y, (float) pv.norm.z); |
---|
| 1416 | + gl.glColor4f(pv.AO, pv.AO, pv.AO, 1); |
---|
| 1417 | + |
---|
| 1418 | + if (flipV) |
---|
| 1419 | + gl.glTexCoord2f((float) pv.s, 1-(float) pv.t); |
---|
| 1420 | + else |
---|
| 1421 | + gl.glTexCoord2f((float) pv.s, (float) pv.t); |
---|
| 1422 | + } |
---|
| 1423 | + |
---|
| 1424 | + gl.glVertex3f((float) pv.x, (float) pv.y, (float) pv.z); |
---|
| 1425 | + } |
---|
1063 | 1426 | |
---|
1064 | 1427 | void SetColor(Object3D obj, Vertex p0) |
---|
1065 | 1428 | { |
---|
.. | .. |
---|
1254 | 1617 | //col.getColorComponents(ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB), CameraPane.modelParams0); |
---|
1255 | 1618 | if (!material.multiply) |
---|
1256 | 1619 | { |
---|
1257 | | - display.color = color; |
---|
| 1620 | + display.color = material.color; |
---|
1258 | 1621 | display.saturation = material.modulation; |
---|
1259 | 1622 | } |
---|
1260 | 1623 | else |
---|
1261 | 1624 | { |
---|
1262 | | - display.color *= color*2; |
---|
| 1625 | + display.color *= material.color*2; |
---|
1263 | 1626 | display.saturation *= material.modulation*2; |
---|
1264 | 1627 | } |
---|
1265 | 1628 | |
---|
.. | .. |
---|
1810 | 2173 | public void ToggleBoxMode() |
---|
1811 | 2174 | { |
---|
1812 | 2175 | BOXMODE ^= true; |
---|
| 2176 | + } |
---|
| 2177 | + |
---|
| 2178 | + public void ToggleZoomBoxMode() |
---|
| 2179 | + { |
---|
| 2180 | + ZOOMBOXMODE ^= true; |
---|
1813 | 2181 | } |
---|
1814 | 2182 | |
---|
1815 | 2183 | public void ToggleSmoothFocus() |
---|
.. | .. |
---|
3838 | 4206 | |
---|
3839 | 4207 | com.sun.opengl.util.texture.Texture CompressTexture2(String name) |
---|
3840 | 4208 | { |
---|
| 4209 | + new Exception().printStackTrace(); |
---|
3841 | 4210 | System.exit(0); |
---|
3842 | 4211 | com.sun.opengl.util.texture.Texture texture = null; |
---|
3843 | 4212 | |
---|
.. | .. |
---|
9024 | 9393 | //gl.glFlush(); |
---|
9025 | 9394 | gl.glAccum(gl.GL_ACCUM, 1.0f / ACSIZE); |
---|
9026 | 9395 | |
---|
9027 | | - if (ANIMATION && ABORTED) |
---|
| 9396 | + if (Globals.ANIMATION && ABORTED) |
---|
9028 | 9397 | { |
---|
9029 | 9398 | System.err.println(" ABORTED FRAME"); |
---|
9030 | 9399 | break; |
---|
.. | .. |
---|
9054 | 9423 | setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
---|
9055 | 9424 | |
---|
9056 | 9425 | // save image |
---|
9057 | | - if (ANIMATION && !ABORTED) |
---|
| 9426 | + if (Globals.ANIMATION && !ABORTED) |
---|
9058 | 9427 | { |
---|
9059 | 9428 | VPwidth = viewport[2]; |
---|
9060 | 9429 | VPheight = viewport[3]; |
---|
.. | .. |
---|
9165 | 9534 | |
---|
9166 | 9535 | // imagecount++; |
---|
9167 | 9536 | |
---|
9168 | | - String fullname = filename + (i%100000)/10000 + "" + (i%10000)/1000 + "" + (i%1000)/100 + "" + (i%100)/10 + "" + (i%10) + "." + ext; |
---|
| 9537 | + String fullname = Globals.filename + (i%100000)/10000 + "" + (i%10000)/1000 + "" + (i%1000)/100 + "" + (i%100)/10 + "" + (i%10) + "." + ext; |
---|
9169 | 9538 | |
---|
9170 | 9539 | if (!BOXMODE) |
---|
9171 | 9540 | { |
---|
.. | .. |
---|
10889 | 11258 | { |
---|
10890 | 11259 | renderpass++; |
---|
10891 | 11260 | // System.out.println("Draw object... "); |
---|
| 11261 | + STEP = 1; |
---|
10892 | 11262 | if (FAST) // in case there is no script |
---|
10893 | | - STEP = 16; |
---|
| 11263 | + STEP = 8; |
---|
| 11264 | + |
---|
| 11265 | + if (CURRENTANTIALIAS == 0 || ACSIZE == 1) |
---|
| 11266 | + { |
---|
| 11267 | + STEP *= 4; |
---|
| 11268 | + } |
---|
10894 | 11269 | |
---|
10895 | 11270 | //object.FullInvariants(); |
---|
10896 | 11271 | |
---|
.. | .. |
---|
12377 | 12752 | "MUL final.y, fragment.texcoord[0].x, c256;" + |
---|
12378 | 12753 | "FLR final.x, final.y;" + |
---|
12379 | 12754 | "SUB final.y, final.y, final.x;" + |
---|
12380 | | - "MUL final.x, final.x, c256i;" + |
---|
| 12755 | + //"MUL final.x, final.x, c256i;" + |
---|
12381 | 12756 | "MOV final.z, zero.x;" + |
---|
12382 | 12757 | "MOV final.a, one.w;":"" |
---|
12383 | 12758 | ) + |
---|
.. | .. |
---|
12385 | 12760 | "MUL final.y, fragment.texcoord[0].y, c256;" + |
---|
12386 | 12761 | "FLR final.x, final.y;" + |
---|
12387 | 12762 | "SUB final.y, final.y, final.x;" + |
---|
12388 | | - "MUL final.x, final.x, c256i;" + |
---|
| 12763 | + //"MUL final.x, final.x, c256i;" + |
---|
12389 | 12764 | "MOV final.z, zero.x;" + |
---|
12390 | 12765 | "MOV final.a, one.w;":"" |
---|
12391 | 12766 | ) + |
---|
.. | .. |
---|
13165 | 13540 | |
---|
13166 | 13541 | //System.err.println("Dtime = " + Dtime + "; units = " + e.getUnitsToScroll() + "; ratio (units/ms) = " + ratio); |
---|
13167 | 13542 | |
---|
| 13543 | + if (BUTTONLESSWHEEL) |
---|
13168 | 13544 | if (Math.abs(ratio) < 0.1 || Math.abs(Dtime) == 0) // < 30) |
---|
13169 | 13545 | { |
---|
13170 | 13546 | return; |
---|
.. | .. |
---|
13173 | 13549 | boolean capsLocked = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK); |
---|
13174 | 13550 | |
---|
13175 | 13551 | // TIMER |
---|
13176 | | - if (!wheeltimer.isRunning() && e.getModifiersEx() == 0 && !capsLocked) // VR |
---|
| 13552 | + if (ZOOMBOXMODE && !wheeltimer.isRunning() && e.getModifiersEx() == 0 && !capsLocked) // VR |
---|
13177 | 13553 | { |
---|
13178 | 13554 | keepboxmode = BOXMODE; |
---|
13179 | 13555 | keepsupport = SUPPORT; |
---|
.. | .. |
---|
13390 | 13766 | |
---|
13391 | 13767 | public void mouseDragged(MouseEvent e) |
---|
13392 | 13768 | { |
---|
| 13769 | + //System.out.println("mouseDragged: " + e); |
---|
13393 | 13770 | if (isRenderer) |
---|
13394 | 13771 | movingcamera = true; |
---|
13395 | 13772 | //if (drawing) |
---|
13396 | 13773 | //return; |
---|
13397 | | - //System.out.println("mouseDragged: " + e); |
---|
13398 | 13774 | if ((e.getModifiersEx() & CTRL) != 0 |
---|
13399 | 13775 | || (e.getModifiersEx() & COMMAND) != 0) // || IsFrozen()) |
---|
13400 | 13776 | { |
---|
.. | .. |
---|
13575 | 13951 | |
---|
13576 | 13952 | public void run() |
---|
13577 | 13953 | { |
---|
| 13954 | + new Exception().printStackTrace(); |
---|
13578 | 13955 | System.exit(0); |
---|
13579 | 13956 | for (;;) |
---|
13580 | 13957 | { |
---|
.. | .. |
---|
13929 | 14306 | public void mouseMoved(MouseEvent e) |
---|
13930 | 14307 | { |
---|
13931 | 14308 | //System.out.println("mouseMoved: " + e); |
---|
13932 | | - |
---|
13933 | 14309 | if (isRenderer) |
---|
13934 | 14310 | return; |
---|
13935 | 14311 | |
---|
.. | .. |
---|
14742 | 15118 | |
---|
14743 | 15119 | protected void processMouseMotionEvent(MouseEvent e) |
---|
14744 | 15120 | { |
---|
14745 | | - //System.out.println("processMouseMotionEvent: " + mouseMode); |
---|
14746 | | - if (e.getButton() == MouseEvent.NOBUTTON && (mouseMode & SELECT) == 0) |
---|
| 15121 | + //System.out.println("processMouseMotionEvent: " + mouseMode + " " + e.getModifiers() + " " + e.getModifiersEx() + " " + e.getButton()); |
---|
| 15122 | + //if (e.getButton() == MouseEvent.NOBUTTON && (mouseMode & SELECT) == 0) |
---|
| 15123 | + if ((e.getModifiers() & MouseEvent.BUTTON1_MASK) == 0 && (mouseMode & SELECT) == 0) |
---|
14747 | 15124 | { |
---|
14748 | 15125 | mouseMoved(e); |
---|
14749 | 15126 | } else |
---|
.. | .. |
---|
14773 | 15150 | |
---|
14774 | 15151 | void SelectParent() |
---|
14775 | 15152 | { |
---|
| 15153 | + new Exception().printStackTrace(); |
---|
14776 | 15154 | System.exit(0); |
---|
14777 | 15155 | Composite group = (Composite) object; |
---|
14778 | 15156 | java.util.Vector selectees = new java.util.Vector(group.selection); |
---|
.. | .. |
---|
14796 | 15174 | |
---|
14797 | 15175 | void SelectChildren() |
---|
14798 | 15176 | { |
---|
| 15177 | + new Exception().printStackTrace(); |
---|
14799 | 15178 | System.exit(0); |
---|
14800 | 15179 | /* |
---|
14801 | 15180 | Composite group = (Composite) object; |
---|
.. | .. |
---|
15909 | 16288 | { |
---|
15910 | 16289 | if (!selection) |
---|
15911 | 16290 | { |
---|
| 16291 | + new Exception().printStackTrace(); |
---|
15912 | 16292 | System.exit(0); |
---|
15913 | 16293 | return; |
---|
15914 | 16294 | } |
---|
.. | .. |
---|
16695 | 17075 | static IntBuffer textbuffer = null; // IntBuffer.allocate(TEXT_WIDTH*8*8 * TEXT_HEIGHT); |
---|
16696 | 17076 | // Depth buffer format |
---|
16697 | 17077 | //private int depth_format; |
---|
16698 | | - static public void NextIndex(Object3D o, GL gl) |
---|
| 17078 | + |
---|
| 17079 | + public void NextIndex() |
---|
16699 | 17080 | { |
---|
16700 | 17081 | indexcount+=16; |
---|
16701 | | - gl.glColor3d(((indexcount >>> 16) & 255) / 255.0, ((indexcount >>> 8) & 255) / 255.0, ((indexcount) & 255) / 255.0); |
---|
| 17082 | + GetGL().glColor3d(((indexcount >>> 16) & 255) / 255.0, ((indexcount >>> 8) & 255) / 255.0, ((indexcount) & 255) / 255.0); |
---|
16702 | 17083 | //objects[indexcount] = o; |
---|
16703 | 17084 | //System.out.println("indexcount = " + indexcount); |
---|
16704 | 17085 | } |
---|