.. | .. |
---|
19 | 19 | import //weka.core. |
---|
20 | 20 | matrix.Matrix; |
---|
21 | 21 | |
---|
| 22 | +import grafeme.ui.*; |
---|
| 23 | + |
---|
22 | 24 | class ObjEditor /*extends JFrame*/ implements iCallBack, ObjectUI, |
---|
23 | 25 | ActionListener, ChangeListener, |
---|
24 | 26 | InputMethodListener, |
---|
.. | .. |
---|
28 | 30 | iSendInfo |
---|
29 | 31 | //KeyListener |
---|
30 | 32 | { |
---|
| 33 | + boolean timeline; |
---|
| 34 | + boolean wasFullScreen; |
---|
31 | 35 | |
---|
| 36 | + GroupEditor callee; |
---|
| 37 | + JFrame frame; |
---|
| 38 | + |
---|
32 | 39 | // SCRIPT |
---|
33 | 40 | |
---|
34 | 41 | transient JFrame textpanel = null; |
---|
.. | .. |
---|
119 | 126 | void keyPressed(int key, int modifiers) |
---|
120 | 127 | { |
---|
121 | 128 | System.out.println("KEY PRESSED"); |
---|
122 | | - CameraPane.theRenderer.keyPressed(key, modifiers); |
---|
| 129 | + Globals.theRenderer.keyPressed(key, modifiers); |
---|
123 | 130 | } |
---|
124 | 131 | */ |
---|
125 | 132 | |
---|
126 | 133 | static GridBagConstraints aConstraints; |
---|
127 | 134 | static GridBagConstraints aWindowConstraints; |
---|
128 | | - GroupEditor callee; |
---|
129 | | - JFrame frame; |
---|
| 135 | + |
---|
130 | 136 | static int GRIDWIDTH = 100; // 4; |
---|
131 | 137 | |
---|
132 | 138 | public void closeUI() |
---|
.. | .. |
---|
158 | 164 | objEditor.ctrlPanel.remove(slowerButton); |
---|
159 | 165 | objEditor.ctrlPanel.remove(fasterButton); |
---|
160 | 166 | objEditor.ctrlPanel.remove(remarkButton); |
---|
| 167 | + |
---|
| 168 | + Remove(normalpushField); |
---|
161 | 169 | } |
---|
162 | 170 | |
---|
163 | 171 | public ObjEditor GetEditor() |
---|
164 | 172 | { |
---|
165 | 173 | return objEditor; //.GetEditor(); |
---|
166 | 174 | } |
---|
| 175 | + |
---|
| 176 | + // Sometimes myself, sometimes my callee's. |
---|
167 | 177 | ObjEditor objEditor; |
---|
168 | 178 | |
---|
169 | 179 | /* |
---|
.. | .. |
---|
238 | 248 | //if (!isDisplayable()) |
---|
239 | 249 | //setUndecorated(true); |
---|
240 | 250 | |
---|
241 | | - System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow()); |
---|
| 251 | + //System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow()); |
---|
242 | 252 | client = inClient; |
---|
243 | 253 | copy = localCopy; |
---|
244 | 254 | copy.editWindow = this; |
---|
.. | .. |
---|
292 | 302 | //normalLensItem.addActionListener(this); |
---|
293 | 303 | cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera")); |
---|
294 | 304 | revertCameraItem.addActionListener(this); |
---|
295 | | - cameraMenu.add(toggleFullItem = new CheckboxMenuItem("Full Screen")); |
---|
296 | | - toggleFullItem.addItemListener(this); |
---|
297 | | - toggleFullItem.setState(CameraPane.FULLSCREEN); |
---|
| 305 | + cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline")); |
---|
| 306 | + toggleTimelineItem.addItemListener(this); |
---|
| 307 | + cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen")); |
---|
| 308 | + toggleFullScreenItem.addItemListener(this); |
---|
| 309 | + toggleFullScreenItem.setState(CameraPane.FULLSCREEN); |
---|
298 | 310 | cameraMenu.add("-"); |
---|
299 | 311 | cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture")); |
---|
300 | 312 | toggleTextureItem.addItemListener(this); |
---|
301 | 313 | toggleTextureItem.setState(CameraPane.textureon); |
---|
302 | 314 | cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live")); |
---|
303 | 315 | toggleLiveItem.addItemListener(this); |
---|
304 | | - toggleLiveItem.setState(CameraPane.isLIVE()); |
---|
| 316 | + toggleLiveItem.setState(Globals.isLIVE()); |
---|
305 | 317 | cameraMenu.add(stepItem = new MenuItem("Step")); |
---|
306 | 318 | stepItem.addActionListener(this); |
---|
307 | 319 | // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List")); |
---|
.. | .. |
---|
522 | 534 | maxima.y = sel.toParent[3][1]; |
---|
523 | 535 | maxima.z = sel.toParent[3][2]; |
---|
524 | 536 | si.SendInfo(" Orig: " + maxima, "regular"); |
---|
525 | | - maxima.x = sel.globalTransform[3][0]; |
---|
526 | | - maxima.y = sel.globalTransform[3][1]; |
---|
527 | | - maxima.z = sel.globalTransform[3][2]; |
---|
528 | | - if (full) |
---|
529 | | - si.SendInfo(" Global Orig: " + maxima, "regular"); |
---|
530 | 537 | maxima.x = sel.toParent[0][0]; |
---|
531 | 538 | maxima.y = sel.toParent[1][1]; |
---|
532 | 539 | maxima.z = sel.toParent[2][2]; |
---|
533 | 540 | si.SendInfo(" Scale: " + maxima, "regular"); |
---|
534 | | - maxima.x = sel.globalTransform[0][0]; |
---|
535 | | - maxima.y = sel.globalTransform[1][1]; |
---|
536 | | - maxima.z = sel.globalTransform[2][2]; |
---|
| 541 | + maxima.x = sel.globalTransform[3][0]; |
---|
| 542 | + maxima.y = sel.globalTransform[3][1]; |
---|
| 543 | + maxima.z = sel.globalTransform[3][2]; |
---|
| 544 | + if (full) |
---|
| 545 | + si.SendInfo(" Global Orig: " + maxima, "regular"); |
---|
| 546 | + maxima.x = sel.globalTransform[0][0]; |
---|
| 547 | + maxima.y = sel.globalTransform[1][1]; |
---|
| 548 | + maxima.z = sel.globalTransform[2][2]; |
---|
537 | 549 | if (full) |
---|
538 | 550 | si.SendInfo(" Global Scale: " + maxima, "regular"); |
---|
539 | 551 | } |
---|
.. | .. |
---|
593 | 605 | System.err.println("Couldn't insert initial text into text pane."); |
---|
594 | 606 | } |
---|
595 | 607 | } |
---|
| 608 | + |
---|
| 609 | + void ToggleFullScreen() |
---|
| 610 | + { |
---|
| 611 | + if (CameraPane.FULLSCREEN) |
---|
| 612 | + { |
---|
| 613 | + frame.getContentPane().remove(/*"Center",*/bigThree); |
---|
| 614 | + framePanel.add(bigThree); |
---|
| 615 | + frame.getContentPane().add(/*"Center",*/framePanel); |
---|
| 616 | + } else |
---|
| 617 | + { |
---|
| 618 | + frame.getContentPane().remove(/*"Center",*/framePanel); |
---|
| 619 | + framePanel.remove(bigThree); |
---|
| 620 | + frame.getContentPane().add(/*"Center",*/bigThree); |
---|
| 621 | + } |
---|
| 622 | + cameraView.ToggleFullScreen(); |
---|
| 623 | + } |
---|
596 | 624 | |
---|
597 | 625 | private JTextArea createTextPane() |
---|
598 | 626 | { |
---|
.. | .. |
---|
692 | 720 | protected static ImageIcon createImageIcon(String path, |
---|
693 | 721 | String description) |
---|
694 | 722 | { |
---|
695 | | - java.net.URL imgURL = GraphreeD.class.getResource(path); |
---|
| 723 | + java.net.URL imgURL = GrafreeD.class.getResource(path); |
---|
696 | 724 | if (imgURL != null) |
---|
697 | 725 | { |
---|
698 | 726 | return new ImageIcon(imgURL, description); |
---|
.. | .. |
---|
794 | 822 | |
---|
795 | 823 | aConstraints.fill = GridBagConstraints.VERTICAL; |
---|
796 | 824 | jlabel.setHorizontalAlignment(SwingConstants.TRAILING); |
---|
797 | | - aConstraints.gridwidth = 2; |
---|
| 825 | + aConstraints.gridwidth = 1; |
---|
798 | 826 | ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1); |
---|
799 | 827 | aConstraints.gridx += 1; |
---|
800 | 828 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
.. | .. |
---|
963 | 991 | |
---|
964 | 992 | Return(); |
---|
965 | 993 | |
---|
| 994 | + normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1); |
---|
| 995 | + Return(); |
---|
| 996 | + |
---|
966 | 997 | // oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2); |
---|
967 | 998 | // ObjEditor.aConstraints.gridx += 1; |
---|
968 | 999 | |
---|
.. | .. |
---|
1107 | 1138 | //frontScroll.setLabel("------------------------------ XZ (front) ---------------------------------------------------"); |
---|
1108 | 1139 | //sideScroll.setLabel("------------------------------- YZ (side) ---------------------------------------------------"); |
---|
1109 | 1140 | |
---|
1110 | | -// GridBagConstraints gbc = (GridBagConstraints) GraphreeD.clone(aConstraints); |
---|
| 1141 | +// GridBagConstraints gbc = (GridBagConstraints) GrafreeD.clone(aConstraints); |
---|
1111 | 1142 | Camera cam = GetCamera(copy, 0); |
---|
1112 | 1143 | |
---|
1113 | 1144 | Composite cams = null; |
---|
.. | .. |
---|
1158 | 1189 | //JPanel worldPanel = |
---|
1159 | 1190 | // new gov.nasa.worldwind.examples.ApplicationTemplate.AppPanel(null, true); |
---|
1160 | 1191 | //worldPanel.setName("World"); |
---|
1161 | | - /*JPanel*/ cameraPanel = |
---|
1162 | | - new JPanel(new BorderLayout()); |
---|
1163 | | - cameraPanel.add(cameraView); |
---|
| 1192 | + centralPanel = new JPanel(new BorderLayout()); |
---|
| 1193 | + timelinePanel = new JPanel(new BorderLayout()); |
---|
| 1194 | + timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel); |
---|
1164 | 1195 | |
---|
| 1196 | + cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel); |
---|
| 1197 | + cameraPanel.setContinuousLayout(true); |
---|
| 1198 | + cameraPanel.setOneTouchExpandable(true); |
---|
| 1199 | +// cameraPanel.setDividerLocation(0.9); |
---|
| 1200 | +// cameraPanel.setDividerSize(9); |
---|
| 1201 | + cameraPanel.setResizeWeight(1.0); |
---|
| 1202 | + |
---|
| 1203 | + centralPanel.add(cameraView); |
---|
| 1204 | + //frame.setJMenuBar(timelineMenubar); |
---|
| 1205 | + //centralPanel.add(timelinePanel); |
---|
| 1206 | + |
---|
1165 | 1207 | //topView.camera = ; |
---|
1166 | 1208 | //frontView.camera = new Camera(2); |
---|
1167 | 1209 | //sideView.camera = new Camera(3); |
---|
.. | .. |
---|
1177 | 1219 | //frontView.object = copy; |
---|
1178 | 1220 | //sideView.object = copy; |
---|
1179 | 1221 | |
---|
1180 | | - XYZPanel = new JPanel(); |
---|
1181 | | - XYZPanel.setLayout(new GridLayout(3, 1, 5, 5)); |
---|
| 1222 | + XYZPanel = new cGridBag().setVertical(true); |
---|
| 1223 | + //XYZPanel.setLayout(new GridLayout(3, 1, 5, 5)); |
---|
1182 | 1224 | |
---|
1183 | | - XYZPanel.add(/*BorderLayout.SOUTH,*/sideView); // Scroll); |
---|
1184 | | - XYZPanel.add(/*BorderLayout.CENTER,*/frontView); // Scroll); |
---|
1185 | | - XYZPanel.add(/*BorderLayout.NORTH,*/topView); // Scroll); |
---|
| 1225 | + XYZPanel.addComponent(/*BorderLayout.SOUTH,*/sideView); // Scroll); |
---|
| 1226 | + XYZPanel.addComponent(/*BorderLayout.CENTER,*/frontView); // Scroll); |
---|
| 1227 | + XYZPanel.addComponent(/*BorderLayout.NORTH,*/topView); // Scroll); |
---|
1186 | 1228 | |
---|
1187 | 1229 | /* |
---|
1188 | 1230 | gridPanel = new JPanel(); //new BorderLayout()); |
---|
.. | .. |
---|
1191 | 1233 | gridPanel.add(cameraView); |
---|
1192 | 1234 | gridPanel.add(XYZPanel); |
---|
1193 | 1235 | */ |
---|
1194 | | - gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, cameraPanel, XYZPanel); //new BorderLayout()); |
---|
| 1236 | + gridPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centralPanel, XYZPanel); //new BorderLayout()); |
---|
1195 | 1237 | gridPanel.setContinuousLayout(true); |
---|
1196 | 1238 | gridPanel.setOneTouchExpandable(true); |
---|
1197 | 1239 | gridPanel.setDividerLocation(1.0); |
---|
.. | .. |
---|
1244 | 1286 | scrollpane.setWheelScrollingEnabled(true); |
---|
1245 | 1287 | scrollpane.addMouseWheelListener(this); // Default not fast enough |
---|
1246 | 1288 | |
---|
1247 | | - /*JTabbedPane*/ jtp = new JTabbedPane(); |
---|
1248 | | - jtp.add(scrollpane); |
---|
| 1289 | + /*JTabbedPane*/ scenePanel = new JTabbedPane(); |
---|
| 1290 | + scenePanel.add(scrollpane); |
---|
1249 | 1291 | |
---|
1250 | | - jtp.add(FSPane = new cFileSystemPane(this)); |
---|
| 1292 | + scenePanel.add(FSPane = new cFileSystemPane(this)); |
---|
1251 | 1293 | |
---|
1252 | 1294 | optionsPanel = new JPanel(new GridBagLayout()); |
---|
1253 | 1295 | |
---|
1254 | 1296 | optionsPanel.setName("Options"); |
---|
1255 | | - jtp.add(optionsPanel); |
---|
| 1297 | + |
---|
| 1298 | + AddOptions(optionsPanel, aConstraints); |
---|
| 1299 | + |
---|
| 1300 | + scenePanel.add(optionsPanel); |
---|
1256 | 1301 | |
---|
1257 | 1302 | |
---|
1258 | 1303 | /* |
---|
.. | .. |
---|
1275 | 1320 | jtp.add(tree); |
---|
1276 | 1321 | */ |
---|
1277 | 1322 | |
---|
1278 | | - bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jtp, gridPanel); |
---|
| 1323 | + bigPanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scenePanel, gridPanel); |
---|
1279 | 1324 | bigPanel.setContinuousLayout(true); |
---|
1280 | 1325 | bigPanel.setOneTouchExpandable(true); |
---|
1281 | 1326 | bigPanel.setDividerLocation(0.8); |
---|
.. | .. |
---|
1287 | 1332 | //bigPanel.setSize(new Dimension(10,10)); |
---|
1288 | 1333 | //bigPanel.add(ctrlPanel); |
---|
1289 | 1334 | //bigPanel.add(gridPanel); |
---|
| 1335 | + /** |
---|
1290 | 1336 | bigThree = new JPanel(); |
---|
1291 | 1337 | //big.setLayout(new FlowLayout(FlowLayout.LEFT)); |
---|
1292 | 1338 | bigThree.setLayout(new GridBagLayout()); //1,3,5,5)); |
---|
.. | .. |
---|
1297 | 1343 | aWindowConstraints.fill = GridBagConstraints.VERTICAL; |
---|
1298 | 1344 | aWindowConstraints.weightx = 0; |
---|
1299 | 1345 | aWindowConstraints.weighty = 1; |
---|
1300 | | - bigThree.add(jtp, aWindowConstraints); |
---|
| 1346 | + bigThree.add(scenePanel, aWindowConstraints); |
---|
1301 | 1347 | aWindowConstraints.weightx = 1; |
---|
1302 | 1348 | aWindowConstraints.gridwidth = 3; |
---|
1303 | 1349 | // aConstraints.gridheight = 3; |
---|
1304 | 1350 | aWindowConstraints.gridx = 1; |
---|
1305 | 1351 | aWindowConstraints.fill = GridBagConstraints.BOTH; |
---|
1306 | | - bigThree.add(cameraPanel, aWindowConstraints); |
---|
| 1352 | + bigThree.add(centralPanel, aWindowConstraints); |
---|
1307 | 1353 | aWindowConstraints.weightx = 0; |
---|
1308 | 1354 | aWindowConstraints.gridx = 4; |
---|
1309 | 1355 | aWindowConstraints.gridwidth = 1; |
---|
1310 | 1356 | // aConstraints.gridheight = 3; |
---|
1311 | 1357 | aWindowConstraints.fill = GridBagConstraints.VERTICAL; |
---|
1312 | 1358 | bigThree.add(XYZPanel, aWindowConstraints); |
---|
| 1359 | + /**/ |
---|
1313 | 1360 | |
---|
| 1361 | + bigThree = new cGridBag(); |
---|
| 1362 | + bigThree.addComponent(scenePanel); |
---|
| 1363 | + bigThree.addComponent(centralPanel); |
---|
| 1364 | + bigThree.addComponent(XYZPanel); |
---|
| 1365 | + |
---|
1314 | 1366 | // // SIDE EFFECT!!! |
---|
1315 | 1367 | // aConstraints.gridx = 0; |
---|
1316 | 1368 | // aConstraints.gridy = 0; |
---|
.. | .. |
---|
1331 | 1383 | //worldPane.add(bigPanel); |
---|
1332 | 1384 | //worldPane.add(worldPanel); |
---|
1333 | 1385 | /**/ |
---|
1334 | | - frame.getContentPane().add(/*"Center",*/framePanel); |
---|
| 1386 | + //frame.getContentPane().add(/*"Center",*/framePanel); |
---|
| 1387 | + frame.add(/*"Center",*/framePanel); |
---|
1335 | 1388 | //frame.getContentPane().add(/*"Center",*/ worldPane); |
---|
1336 | 1389 | |
---|
1337 | | -// aConstraints = gbc; // (GridBagConstraints) GraphreeD.clone(gbc); |
---|
| 1390 | +// aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc); |
---|
1338 | 1391 | |
---|
1339 | | - frame.setSize(800, 600); |
---|
| 1392 | + frame.setSize(1024, 768); |
---|
1340 | 1393 | frame.show(); |
---|
1341 | 1394 | |
---|
1342 | 1395 | gridPanel.setDividerLocation(1.0); |
---|
.. | .. |
---|
1352 | 1405 | }); |
---|
1353 | 1406 | } |
---|
1354 | 1407 | |
---|
| 1408 | + void AddOptions(JPanel panel, GridBagConstraints constraints) |
---|
| 1409 | + { |
---|
| 1410 | + } |
---|
| 1411 | + |
---|
1355 | 1412 | JTree GetTree() |
---|
1356 | 1413 | { |
---|
1357 | 1414 | return objEditor.jTree; |
---|
.. | .. |
---|
1422 | 1479 | aConstraints.gridx += 1; |
---|
1423 | 1480 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1424 | 1481 | //aConstraints.weightx = 0; |
---|
1425 | | - ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1482 | + ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1426 | 1483 | aConstraints.gridx = 0; |
---|
1427 | 1484 | aConstraints.gridy += 1; |
---|
1428 | 1485 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1432 | 1489 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
1433 | 1490 | aConstraints.gridx += 1; |
---|
1434 | 1491 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1435 | | - ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1492 | + ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1436 | 1493 | aConstraints.gridx = 0; |
---|
1437 | 1494 | aConstraints.gridy += 1; |
---|
1438 | 1495 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1442 | 1499 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
1443 | 1500 | aConstraints.gridx += 1; |
---|
1444 | 1501 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1445 | | - ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1502 | + ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1446 | 1503 | aConstraints.gridx = 0; |
---|
1447 | 1504 | aConstraints.gridy += 1; |
---|
1448 | 1505 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1452 | 1509 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
1453 | 1510 | aConstraints.gridx += 1; |
---|
1454 | 1511 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1455 | | - ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1512 | + ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1456 | 1513 | aConstraints.gridx = 0; |
---|
1457 | 1514 | aConstraints.gridy += 1; |
---|
1458 | 1515 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1462 | 1519 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
1463 | 1520 | aConstraints.gridx += 1; |
---|
1464 | 1521 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1465 | | - ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1522 | + ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1466 | 1523 | aConstraints.gridx = 0; |
---|
1467 | 1524 | aConstraints.gridy += 1; |
---|
1468 | 1525 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1531 | 1588 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
1532 | 1589 | aConstraints.gridx += 1; |
---|
1533 | 1590 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1534 | | - ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1591 | + ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1535 | 1592 | aConstraints.gridx = 0; |
---|
1536 | 1593 | aConstraints.gridy += 1; |
---|
1537 | 1594 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1600 | 1657 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
1601 | 1658 | aConstraints.gridx += 1; |
---|
1602 | 1659 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1603 | | - ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1660 | + ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1604 | 1661 | aConstraints.gridx = 0; |
---|
1605 | 1662 | aConstraints.gridy += 1; |
---|
1606 | 1663 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1671 | 1728 | aConstraints.fill = GridBagConstraints.HORIZONTAL; |
---|
1672 | 1729 | aConstraints.gridx += 1; |
---|
1673 | 1730 | aConstraints.gridwidth = ObjEditor.GRIDWIDTH; |
---|
1674 | | - ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints); |
---|
| 1731 | + ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints); |
---|
1675 | 1732 | aConstraints.gridx = 0; |
---|
1676 | 1733 | aConstraints.gridy += 1; |
---|
1677 | 1734 | aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
1859 | 1916 | } |
---|
1860 | 1917 | |
---|
1861 | 1918 | // Images/textures |
---|
1862 | | - if (textures |
---|
1863 | | - && (filename.toLowerCase().endsWith(".jpg") |
---|
1864 | | - || filename.toLowerCase().endsWith(".jpeg") |
---|
1865 | | - || filename.toLowerCase().endsWith(".gif") |
---|
1866 | | - || filename.toLowerCase().endsWith(".png") |
---|
1867 | | - || filename.toLowerCase().endsWith(".tre") |
---|
1868 | | - || filename.toLowerCase().endsWith(".bmp") |
---|
1869 | | - || filename.toLowerCase().endsWith(".tga") |
---|
1870 | | - || filename.toLowerCase().endsWith(".sgi") |
---|
1871 | | - || filename.toLowerCase().endsWith(".tif") |
---|
1872 | | - || filename.toLowerCase().endsWith(".tiff"))) |
---|
| 1919 | + if (filename.toLowerCase().endsWith(".jpg") |
---|
| 1920 | + || filename.toLowerCase().endsWith(".jpeg") |
---|
| 1921 | + || filename.toLowerCase().endsWith(".gif") |
---|
| 1922 | + || filename.toLowerCase().endsWith(".png") |
---|
| 1923 | + || filename.toLowerCase().endsWith(".tre") |
---|
| 1924 | + || filename.toLowerCase().endsWith(".bmp") |
---|
| 1925 | + || filename.toLowerCase().endsWith(".tga") |
---|
| 1926 | + || filename.toLowerCase().endsWith(".sgi") |
---|
| 1927 | + || filename.toLowerCase().endsWith(".tif") |
---|
| 1928 | + || filename.toLowerCase().endsWith(".tiff")) |
---|
1873 | 1929 | { |
---|
1874 | | - DropTexture(filename); |
---|
| 1930 | + if (textures) |
---|
| 1931 | + DropTexture(filename); |
---|
| 1932 | + else |
---|
| 1933 | + CreateBillboard(filename); |
---|
1875 | 1934 | continue; |
---|
1876 | 1935 | } |
---|
1877 | 1936 | |
---|
.. | .. |
---|
1880 | 1939 | } |
---|
1881 | 1940 | |
---|
1882 | 1941 | ResetModel(); |
---|
| 1942 | + } |
---|
| 1943 | + |
---|
| 1944 | + void CreateBillboard(String filename) |
---|
| 1945 | + { |
---|
| 1946 | + Object3D source = null; |
---|
| 1947 | + Object3D group = copy; |
---|
| 1948 | + |
---|
| 1949 | + if (group.selection.size() > 0) |
---|
| 1950 | + { |
---|
| 1951 | + source = group.selection.get(0); |
---|
| 1952 | + } |
---|
| 1953 | + |
---|
| 1954 | + Grid grid = new Grid(1,1); |
---|
| 1955 | + grid.material = null; |
---|
| 1956 | + |
---|
| 1957 | + grid.toParent = LA.newMatrix(); |
---|
| 1958 | + grid.fromParent = LA.newMatrix(); |
---|
| 1959 | + LA.matYRotate(grid.toParent, Math.PI/2); |
---|
| 1960 | + LA.matXRotate(grid.toParent, -Math.PI/2); |
---|
| 1961 | + LA.matXRotate(grid.fromParent, Math.PI/2); |
---|
| 1962 | + LA.matYRotate(grid.fromParent, -Math.PI/2); |
---|
| 1963 | + |
---|
| 1964 | + BillboardNode bb = new BillboardNode(); |
---|
| 1965 | + bb.addChild(grid); |
---|
| 1966 | + |
---|
| 1967 | + Object3D newgroup = new Object3D(); |
---|
| 1968 | + newgroup.CreateMaterial(); |
---|
| 1969 | + |
---|
| 1970 | + File file = new File(filename); |
---|
| 1971 | + newgroup.name = file.getName(); |
---|
| 1972 | + newgroup.addChild(bb); |
---|
| 1973 | + |
---|
| 1974 | + Object3D main = newgroup; |
---|
| 1975 | + |
---|
| 1976 | + main.SetPigmentTexture(filename); |
---|
| 1977 | + |
---|
| 1978 | + if (source != null) |
---|
| 1979 | + { |
---|
| 1980 | + main.material = new cMaterial(source.material); |
---|
| 1981 | + if (main.projectedVertices.length < source.projectedVertices.length) |
---|
| 1982 | + { |
---|
| 1983 | + main.projectedVertices = new Object3D.cVector2[source.projectedVertices.length]; |
---|
| 1984 | + } |
---|
| 1985 | + |
---|
| 1986 | + for (int i=0; i<source.projectedVertices.length; i++) |
---|
| 1987 | + { |
---|
| 1988 | + main.projectedVertices[i].x = source.projectedVertices[i].x; |
---|
| 1989 | + main.projectedVertices[i].y = source.projectedVertices[i].y; |
---|
| 1990 | + } |
---|
| 1991 | + |
---|
| 1992 | + main.texres = source.texres; |
---|
| 1993 | + } |
---|
| 1994 | + |
---|
| 1995 | + makeSomething(newgroup, false); |
---|
1883 | 1996 | } |
---|
1884 | 1997 | |
---|
1885 | 1998 | Point location; |
---|
.. | .. |
---|
2138 | 2251 | { |
---|
2139 | 2252 | Mocap sel = (Mocap) copy.selection.get(0); |
---|
2140 | 2253 | |
---|
| 2254 | + sel.SetCurrentBones(sel.frame); |
---|
| 2255 | + |
---|
2141 | 2256 | sel.fullname = fullname; |
---|
2142 | 2257 | |
---|
2143 | 2258 | if (changename) |
---|
.. | .. |
---|
2151 | 2266 | sel.smoothed = false; |
---|
2152 | 2267 | |
---|
2153 | 2268 | // if (!changename) |
---|
2154 | | - sel.SetPositionDelta(false, true, true, true/*?*/); // false |
---|
| 2269 | + //sel.SetPositionDelta(false, true, true, true/*?*/); // false |
---|
| 2270 | + sel.SetGlobalTransform(); |
---|
| 2271 | + sel.LoadData(); |
---|
| 2272 | + sel.Rewind(); |
---|
| 2273 | + sel.Fade(); |
---|
2155 | 2274 | // sel.setPose(0); |
---|
2156 | 2275 | refreshContents(); |
---|
2157 | 2276 | } else |
---|
2158 | 2277 | { |
---|
2159 | 2278 | mocap.Reset(); |
---|
2160 | 2279 | // new skeleton |
---|
2161 | | - makeSomething(mocap, false); // true); |
---|
| 2280 | + makeSomething(mocap, true); // true); |
---|
2162 | 2281 | } |
---|
2163 | 2282 | } catch (Exception e) |
---|
2164 | 2283 | { |
---|
.. | .. |
---|
2185 | 2304 | { |
---|
2186 | 2305 | Mocap sel = (Mocap) select; |
---|
2187 | 2306 | |
---|
| 2307 | + sel.SetCurrentBones(sel.frame); |
---|
| 2308 | + |
---|
2188 | 2309 | File file = new File(fullname); |
---|
2189 | 2310 | |
---|
2190 | 2311 | // Mocap mocap = new Mocap("Mocap" + file.getName()); |
---|
.. | .. |
---|
2251 | 2372 | |
---|
2252 | 2373 | if (!changename) |
---|
2253 | 2374 | { |
---|
2254 | | - sel.SetPositionDelta(false, true, true, true/*?*/); |
---|
| 2375 | + //sel.SetPositionDelta(false, true, true, true/*?*/); |
---|
| 2376 | + sel.SetGlobalTransform(); |
---|
| 2377 | + sel.LoadData(); |
---|
| 2378 | + sel.Rewind(); |
---|
| 2379 | + sel.Fade(); |
---|
2255 | 2380 | } |
---|
2256 | 2381 | |
---|
2257 | 2382 | // sel.setPose(0); |
---|
.. | .. |
---|
2345 | 2470 | |
---|
2346 | 2471 | void ImportJME(com.jmex.model.converters.FormatConverter converter, String ext, String dialogName) |
---|
2347 | 2472 | { |
---|
2348 | | - if (GraphreeD.standAlone) |
---|
| 2473 | + if (GrafreeD.standAlone) |
---|
2349 | 2474 | { |
---|
2350 | 2475 | /**/ |
---|
2351 | 2476 | FileDialog browser = new FileDialog(frame, dialogName, FileDialog.LOAD); |
---|
.. | .. |
---|
2890 | 3015 | // june 2013 copy.HardTouch(); |
---|
2891 | 3016 | cameraView.repaint(); |
---|
2892 | 3017 | return; |
---|
2893 | | - } else if (event.getSource() == toggleFullItem) |
---|
| 3018 | + } else if (event.getSource() == toggleTimelineItem) |
---|
2894 | 3019 | { |
---|
2895 | | - if (CameraPane.FULLSCREEN) |
---|
| 3020 | + timeline ^= true; |
---|
| 3021 | + |
---|
| 3022 | + if (timeline) |
---|
2896 | 3023 | { |
---|
2897 | | - frame.getContentPane().remove(/*"Center",*/bigThree); |
---|
2898 | | - framePanel.add(bigThree); |
---|
2899 | | - frame.getContentPane().add(/*"Center",*/framePanel); |
---|
2900 | | - } else |
---|
2901 | | - { |
---|
2902 | | - frame.getContentPane().remove(/*"Center",*/framePanel); |
---|
2903 | | - frame.getContentPane().add(/*"Center",*/bigThree); |
---|
| 3024 | + centralPanel.remove(cameraView); |
---|
| 3025 | + cameraPanel.add(cameraView); |
---|
| 3026 | + centralPanel.add(cameraPanel); |
---|
| 3027 | + frame.setJMenuBar(timelineMenubar); |
---|
| 3028 | + wasFullScreen = CameraPane.FULLSCREEN; |
---|
| 3029 | + if (!CameraPane.FULLSCREEN) |
---|
| 3030 | + ToggleFullScreen(); |
---|
| 3031 | + toggleFullScreenItem.setEnabled(false); |
---|
2904 | 3032 | } |
---|
| 3033 | + else |
---|
| 3034 | + { |
---|
| 3035 | + centralPanel.remove(cameraPanel); |
---|
| 3036 | + centralPanel.add(cameraView); |
---|
| 3037 | + frame.setJMenuBar(null); |
---|
| 3038 | + if (!wasFullScreen) |
---|
| 3039 | + ToggleFullScreen(); |
---|
| 3040 | + toggleFullScreenItem.setEnabled(true); |
---|
| 3041 | + } |
---|
| 3042 | + |
---|
2905 | 3043 | frame.validate(); |
---|
2906 | | - cameraView.ToggleFullScreen(); |
---|
| 3044 | + return; |
---|
| 3045 | + } else if (event.getSource() == toggleFullScreenItem) |
---|
| 3046 | + { |
---|
| 3047 | + ToggleFullScreen(); |
---|
| 3048 | + frame.validate(); |
---|
2907 | 3049 | |
---|
2908 | 3050 | return; |
---|
2909 | 3051 | } else if (event.getSource() == toggleRandomItem) |
---|
.. | .. |
---|
3013 | 3155 | objEditor.refreshContents(); |
---|
3014 | 3156 | } else if (event.getSource() == stepItem) |
---|
3015 | 3157 | { |
---|
3016 | | - cameraView.ONESTEP = true; |
---|
| 3158 | + //cameraView.ONESTEP = true; |
---|
| 3159 | + Globals.ONESTEP = true; |
---|
3017 | 3160 | cameraView.repaint(); |
---|
3018 | 3161 | return; |
---|
3019 | 3162 | } else if (event.getSource() == stepButton) |
---|
.. | .. |
---|
3152 | 3295 | cameraView.RevertCamera(); |
---|
3153 | 3296 | cameraView.repaint(); |
---|
3154 | 3297 | return; |
---|
3155 | | - } else if (event.getSource() == textureButton) |
---|
3156 | | - { |
---|
3157 | | - return; // true; |
---|
| 3298 | +// } else if (event.getSource() == textureButton) |
---|
| 3299 | +// { |
---|
| 3300 | +// return; // true; |
---|
3158 | 3301 | } else // combos... |
---|
3159 | 3302 | if (event.getSource() == texresMenu) |
---|
3160 | 3303 | { |
---|
.. | .. |
---|
3170 | 3313 | |
---|
3171 | 3314 | void ToggleAnimation() |
---|
3172 | 3315 | { |
---|
3173 | | - if (!CameraPane.ANIMATION) |
---|
| 3316 | + if (!Globals.ANIMATION) |
---|
3174 | 3317 | { |
---|
3175 | 3318 | FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE); |
---|
3176 | 3319 | browser.show(); |
---|
3177 | 3320 | String filename = browser.getFile(); |
---|
3178 | 3321 | if (filename != null && filename.length() > 0) |
---|
3179 | 3322 | { |
---|
3180 | | - CameraPane.filename = browser.getDirectory() + filename; |
---|
| 3323 | + Globals.filename = browser.getDirectory() + filename; |
---|
3181 | 3324 | //CameraPane.framecount = 0; |
---|
3182 | | - CameraPane.imagecount = 0; |
---|
| 3325 | + Globals.imagecount = 0; |
---|
3183 | 3326 | |
---|
3184 | | - CameraPane.ANIMATION ^= true; |
---|
| 3327 | + Globals.ANIMATION ^= true; |
---|
3185 | 3328 | |
---|
3186 | | - GraphreeD.wav.cursor = 0; |
---|
3187 | | - GraphreeD.wav.loop = 0; |
---|
| 3329 | + GrafreeD.wav.cursor = 0; |
---|
| 3330 | + GrafreeD.wav.loop = 0; |
---|
3188 | 3331 | } |
---|
3189 | 3332 | } else |
---|
3190 | 3333 | { |
---|
3191 | | - CameraPane.ANIMATION ^= true; |
---|
| 3334 | + Globals.ANIMATION ^= true; |
---|
3192 | 3335 | } |
---|
3193 | 3336 | } |
---|
3194 | 3337 | |
---|
.. | .. |
---|
3441 | 3584 | //System.out.println("PARENT = " + parent); |
---|
3442 | 3585 | //if (parent != null) |
---|
3443 | 3586 | // parent.applySelf(); |
---|
3444 | | - refreshContents(); |
---|
| 3587 | + if (e.getSource() == normalpushField) |
---|
| 3588 | + { |
---|
| 3589 | + objEditor.refreshContents(); |
---|
| 3590 | + //Refresh(); |
---|
| 3591 | + } |
---|
| 3592 | + else |
---|
| 3593 | + refreshContents(); |
---|
3445 | 3594 | // ??? client.refreshEditWindow(); |
---|
3446 | 3595 | } |
---|
3447 | 3596 | //else |
---|
.. | .. |
---|
3453 | 3602 | //group.name = nameField.getText(); |
---|
3454 | 3603 | //objEditor.applySelf(); |
---|
3455 | 3604 | |
---|
3456 | | - assert (objEditor == this); |
---|
| 3605 | + // OCT2018: assert (objEditor == this); |
---|
3457 | 3606 | if (copy.selection == null || copy.selection.size() == 0) |
---|
3458 | 3607 | //super.applySelf() |
---|
3459 | 3608 | ; else |
---|
.. | .. |
---|
3477 | 3626 | objEditor.copy = keep; |
---|
3478 | 3627 | } |
---|
3479 | 3628 | } |
---|
| 3629 | + |
---|
| 3630 | + if (normalpushField != null) |
---|
| 3631 | + copy.NORMALPUSH = (float)normalpushField.getFloat()/1000; |
---|
3480 | 3632 | } |
---|
3481 | 3633 | |
---|
3482 | 3634 | void SnapObject() |
---|
3483 | 3635 | { |
---|
3484 | | - Object3D obj = (Object3D)copy.selection.elementAt(0); |
---|
3485 | | - SnapObject(obj); |
---|
| 3636 | + if (copy.selection.size() > 0) |
---|
| 3637 | + { |
---|
| 3638 | + Object3D obj = (Object3D)copy.selection.elementAt(0); |
---|
| 3639 | + SnapObject(obj); |
---|
| 3640 | + } |
---|
3486 | 3641 | } |
---|
3487 | 3642 | |
---|
3488 | 3643 | void SnapObject(Object3D obj) |
---|
.. | .. |
---|
3596 | 3751 | |
---|
3597 | 3752 | if (obj.parent != null) |
---|
3598 | 3753 | { |
---|
3599 | | - obj.parent.TransformToWorld(interest); |
---|
| 3754 | +// obj.parent.TransformToWorld(interest); |
---|
3600 | 3755 | } |
---|
3601 | 3756 | |
---|
3602 | 3757 | if (!CameraPane.TRACK) |
---|
.. | .. |
---|
4085 | 4240 | |
---|
4086 | 4241 | void load() // throws ClassNotFoundException |
---|
4087 | 4242 | { |
---|
4088 | | - if (GraphreeD.standAlone) |
---|
| 4243 | + if (GrafreeD.standAlone) |
---|
4089 | 4244 | { |
---|
4090 | 4245 | FileDialog browser = new FileDialog(frame, "Load", FileDialog.LOAD); |
---|
4091 | 4246 | browser.show(); |
---|
.. | .. |
---|
4190 | 4345 | |
---|
4191 | 4346 | void saveAs() |
---|
4192 | 4347 | { |
---|
4193 | | - if (GraphreeD.standAlone) |
---|
| 4348 | + if (GrafreeD.standAlone) |
---|
4194 | 4349 | { |
---|
4195 | 4350 | FileDialog browser = new FileDialog(frame, "Save As", FileDialog.SAVE); |
---|
4196 | 4351 | browser.setVisible(true); |
---|
.. | .. |
---|
4213 | 4368 | |
---|
4214 | 4369 | Object3D object = copy.selection.get(0); |
---|
4215 | 4370 | |
---|
| 4371 | + FileObject fileobj = null; |
---|
| 4372 | + |
---|
| 4373 | + if (object instanceof FileObject) |
---|
| 4374 | + fileobj = (FileObject)object; |
---|
| 4375 | + |
---|
4216 | 4376 | if (object.fileparent != null) |
---|
4217 | 4377 | { |
---|
4218 | | - FileObject fileobj = (FileObject) object.fileparent; |
---|
| 4378 | + assert(fileobj == null); |
---|
4219 | 4379 | |
---|
| 4380 | + fileobj = (FileObject) object.fileparent; |
---|
| 4381 | + } |
---|
| 4382 | + |
---|
| 4383 | + if (fileobj != null) |
---|
| 4384 | + { |
---|
4220 | 4385 | System.out.println("WriteObject " + object + " : " + fileobj.name); |
---|
4221 | 4386 | WriteObject(object, fileobj.name); |
---|
4222 | 4387 | } |
---|
.. | .. |
---|
4259 | 4424 | } |
---|
4260 | 4425 | } |
---|
4261 | 4426 | else |
---|
4262 | | - //if (GraphreeD.standAlone) |
---|
| 4427 | + //if (GrafreeD.standAlone) |
---|
4263 | 4428 | { |
---|
4264 | 4429 | FileDialog browser = new FileDialog(frame, "Export", FileDialog.SAVE); |
---|
4265 | 4430 | browser.setVisible(true); |
---|
.. | .. |
---|
4291 | 4456 | Object3D objectparent = obj.parent; |
---|
4292 | 4457 | obj.parent = null; |
---|
4293 | 4458 | |
---|
4294 | | - Object3D object = (Object3D) GraphreeD.clone(obj); |
---|
| 4459 | + Object3D object = (Object3D) GrafreeD.clone(obj); |
---|
4295 | 4460 | |
---|
4296 | 4461 | obj.parent = objectparent; |
---|
4297 | 4462 | |
---|
.. | .. |
---|
4325 | 4490 | buffer.append("background { color rgb <0.8,0.8,0.8> }\n\n"); |
---|
4326 | 4491 | cameraView.renderCamera.generatePOV(buffer, bnds.width, bnds.height); |
---|
4327 | 4492 | copy.generatePOV(buffer); |
---|
4328 | | - if (GraphreeD.standAlone) |
---|
| 4493 | + if (GrafreeD.standAlone) |
---|
4329 | 4494 | { |
---|
4330 | 4495 | FileDialog browser = new FileDialog(frame, "Export POV", 1); |
---|
4331 | 4496 | browser.show(); |
---|
.. | .. |
---|
4366 | 4531 | MenuItem revertCameraItem; |
---|
4367 | 4532 | CheckboxMenuItem toggleLiveItem; |
---|
4368 | 4533 | MenuItem stepItem; |
---|
4369 | | - CheckboxMenuItem toggleFullItem; |
---|
| 4534 | + CheckboxMenuItem toggleFullScreenItem; |
---|
| 4535 | + CheckboxMenuItem toggleTimelineItem; |
---|
4370 | 4536 | CheckboxMenuItem toggleRenderItem; |
---|
4371 | 4537 | CheckboxMenuItem toggleDebugItem; |
---|
4372 | 4538 | CheckboxMenuItem toggleFrustumItem; |
---|
.. | .. |
---|
4389 | 4555 | JScrollPane infoPanel; |
---|
4390 | 4556 | JPanel optionsPanel; |
---|
4391 | 4557 | JTabbedPane objectPanel; |
---|
4392 | | - JPanel XYZPanel; |
---|
| 4558 | + cGridBag XYZPanel; |
---|
4393 | 4559 | JSplitPane gridPanel; |
---|
4394 | 4560 | JSplitPane bigPanel; |
---|
4395 | | - JPanel bigThree; |
---|
4396 | | - JTabbedPane jtp; |
---|
4397 | | - JPanel cameraPanel; |
---|
| 4561 | + cGridBag bigThree; |
---|
| 4562 | + JTabbedPane scenePanel; |
---|
| 4563 | + JPanel centralPanel; |
---|
| 4564 | + JSplitPane cameraPanel; |
---|
| 4565 | + JPanel timelinePanel; |
---|
| 4566 | + JMenuBar timelineMenubar; |
---|
4398 | 4567 | JSplitPane framePanel; |
---|
4399 | 4568 | JTextArea/*Field*/ nameField; |
---|
4400 | | - cButton textureButton; |
---|
| 4569 | + //cButton textureButton; |
---|
4401 | 4570 | cButton okButton; |
---|
4402 | 4571 | cButton applyButton; |
---|
4403 | 4572 | cButton cancelButton; |
---|
.. | .. |
---|
4505 | 4674 | NumberSlider opacityPowerField; |
---|
4506 | 4675 | JTree jTree; |
---|
4507 | 4676 | //ObjectUI parent; |
---|
| 4677 | + |
---|
| 4678 | + NumberSlider normalpushField; |
---|
4508 | 4679 | } |
---|