.. | .. |
---|
219 | 219 | resetsupportItem.addActionListener(this); |
---|
220 | 220 | linkverticesItem = menu.add(new MenuItem("Link to Support")); |
---|
221 | 221 | linkverticesItem.addActionListener(this); |
---|
| 222 | + relinkverticesItem = menu.add(new MenuItem("Re-link to Support")); |
---|
| 223 | + relinkverticesItem.addActionListener(this); |
---|
222 | 224 | setMasterItem = menu.add(new MenuItem("Set Master Mesh")); |
---|
223 | 225 | setMasterItem.addActionListener(this); |
---|
224 | 226 | |
---|
.. | .. |
---|
231 | 233 | frontItem.addActionListener(this); |
---|
232 | 234 | compositeItem = menu.add(new MenuItem("Composite")); |
---|
233 | 235 | compositeItem.addActionListener(this); |
---|
| 236 | + hideItem = menu.add(new MenuItem("Hide")); |
---|
| 237 | + hideItem.addActionListener(this); |
---|
| 238 | + ungroupItem = menu.add(new MenuItem("Ungroup")); |
---|
| 239 | + ungroupItem.addActionListener(this); |
---|
234 | 240 | menu.add("-"); |
---|
235 | 241 | randomItem = menu.add(new MenuItem("Random")); |
---|
236 | 242 | randomItem.addActionListener(this); |
---|
.. | .. |
---|
252 | 258 | oe.menuBar.add(menu = new Menu("Object")); |
---|
253 | 259 | textureItem = menu.add(new MenuItem("Texture")); |
---|
254 | 260 | textureItem.addActionListener(this); |
---|
| 261 | + billboardItem = menu.add(new MenuItem("Billboard")); |
---|
| 262 | + billboardItem.addActionListener(this); |
---|
255 | 263 | csgItem = menu.add(new MenuItem("CSG")); |
---|
256 | 264 | csgItem.addActionListener(this); |
---|
257 | 265 | shadowXItem = menu.add(new MenuItem("Shadow X")); |
---|
.. | .. |
---|
269 | 277 | pointflowItem = menu.add(new MenuItem("Point Flow")); |
---|
270 | 278 | pointflowItem.addActionListener(this); |
---|
271 | 279 | menu.add("-"); |
---|
272 | | - transformgeometryItem = menu.add(new MenuItem("Transform Geometry")); |
---|
273 | | - transformgeometryItem.addActionListener(this); |
---|
274 | 280 | resetTransformItem = menu.add(new MenuItem("Reset Transform")); |
---|
275 | 281 | resetTransformItem.addActionListener(this); |
---|
276 | 282 | resetCentroidItem = menu.add(new MenuItem("Reset Centroid")); |
---|
277 | 283 | resetCentroidItem.addActionListener(this); |
---|
278 | | - ungroupItem = menu.add(new MenuItem("Ungroup")); |
---|
279 | | - ungroupItem.addActionListener(this); |
---|
| 284 | + transformgeometryItem = menu.add(new MenuItem("Transform Geometry")); |
---|
| 285 | + transformgeometryItem.addActionListener(this); |
---|
280 | 286 | |
---|
281 | 287 | oe.menuBar.add(menu = new Menu("Geometry")); |
---|
282 | 288 | genUVItem = menu.add(new MenuItem("Generate UV")); |
---|
.. | .. |
---|
287 | 293 | genNormalsCADItem.addActionListener(this); |
---|
288 | 294 | genNormalsMESHItem = menu.add(new MenuItem("Mesh Normals")); |
---|
289 | 295 | genNormalsMESHItem.addActionListener(this); |
---|
| 296 | + genNormalsMINEItem = menu.add(new MenuItem("My Normals")); |
---|
| 297 | + genNormalsMINEItem.addActionListener(this); |
---|
290 | 298 | stripifyItem = menu.add(new MenuItem("Stripify")); |
---|
291 | 299 | stripifyItem.addActionListener(this); |
---|
292 | 300 | unstripifyItem = menu.add(new MenuItem("Unstripify")); |
---|
.. | .. |
---|
512 | 520 | |
---|
513 | 521 | oe.toolbarPanel.add(flashSelectionButton = new cButton(" ? ")); //, oe.aConstraints); |
---|
514 | 522 | flashSelectionButton.addActionListener(this); |
---|
| 523 | + |
---|
| 524 | + oe.toolbarPanel.add(new cButton(" ", false)); |
---|
| 525 | + |
---|
515 | 526 | oe.aConstraints.gridx += 1; |
---|
516 | 527 | oe.aConstraints.weighty = 0; |
---|
517 | 528 | oe.aConstraints.gridwidth = 1; |
---|
.. | .. |
---|
638 | 649 | |
---|
639 | 650 | void EditObject(Object3D obj) |
---|
640 | 651 | { |
---|
641 | | - cRadio dummyButton = new cRadio(obj.name); |
---|
642 | | - dummyButton.SetObject(obj); |
---|
643 | | - dummyButton.layout = sevenButton; |
---|
644 | | - dummyButton.SetCamera(cameraView.renderCamera, false); |
---|
645 | | - dummyButton.addActionListener(this); |
---|
646 | | - radioPanel.add(dummyButton); |
---|
647 | | - buttonGroup.add(dummyButton); |
---|
648 | | - dummyButton.doClick(); |
---|
| 652 | + cRadio radioButton = new cRadio(obj.name); |
---|
| 653 | + radioButton.SetObject(obj); |
---|
| 654 | + radioButton.layout = sevenButton; |
---|
| 655 | + radioButton.SetCamera(cameraView.renderCamera, false); |
---|
| 656 | + radioButton.addActionListener(this); |
---|
| 657 | + radioPanel.add(radioButton); |
---|
| 658 | + buttonGroup.add(radioButton); |
---|
| 659 | + radioButton.doClick(); |
---|
649 | 660 | } |
---|
650 | 661 | void SetupViews(ObjEditor oe) |
---|
651 | 662 | { |
---|
.. | .. |
---|
707 | 718 | dropAttributes |= Object3D.TEXTURE; |
---|
708 | 719 | else |
---|
709 | 720 | dropAttributes &= ~Object3D.TEXTURE; |
---|
710 | | - } |
---|
711 | | - else if(e.getSource() == liveCB) |
---|
| 721 | + } else if(e.getSource() == liveCB) |
---|
712 | 722 | { |
---|
713 | 723 | cameraView.ToggleLive(); |
---|
714 | 724 | } |
---|
.. | .. |
---|
1035 | 1045 | torusItem.addActionListener(this); |
---|
1036 | 1046 | superItem = menu.add(new MenuItem("Superellipsoid")); |
---|
1037 | 1047 | superItem.addActionListener(this); |
---|
| 1048 | + kleinItem = menu.add(new MenuItem("Klein Bottle")); |
---|
| 1049 | + kleinItem.addActionListener(this); |
---|
1038 | 1050 | particleItem = menu.add(new MenuItem("Particle system")); |
---|
1039 | 1051 | particleItem.addActionListener(this); |
---|
1040 | 1052 | ragdollItem = menu.add(new MenuItem("Rag Walk")); |
---|
.. | .. |
---|
1108 | 1120 | resetParentItem.addActionListener(this); |
---|
1109 | 1121 | repairParentItem = menu.add(new MenuItem("Repair Parent")); |
---|
1110 | 1122 | repairParentItem.addActionListener(this); |
---|
| 1123 | + repairShadowItem = menu.add(new MenuItem("Repair Shadow")); |
---|
| 1124 | + repairShadowItem.addActionListener(this); |
---|
1111 | 1125 | menu.add(invariantsItem = new MenuItem("Invariants")); |
---|
1112 | 1126 | invariantsItem.addActionListener(this); |
---|
1113 | 1127 | menu.add(recompileItem = new MenuItem("Recompile")); |
---|
.. | .. |
---|
1595 | 1609 | { |
---|
1596 | 1610 | makeSomething(new Superellipsoid()); |
---|
1597 | 1611 | } else |
---|
| 1612 | + if (event.getSource() == kleinItem) |
---|
| 1613 | + { |
---|
| 1614 | + makeSomething(new Klein()); |
---|
| 1615 | + } else |
---|
1598 | 1616 | if (event.getSource() == blobItem) |
---|
1599 | 1617 | { |
---|
1600 | 1618 | Blob blob = new Blob(); |
---|
.. | .. |
---|
1780 | 1798 | if (event.getSource() == invariantsItem) |
---|
1781 | 1799 | { |
---|
1782 | 1800 | System.out.println("Invariants:"); |
---|
1783 | | - GrafreeD.theApplet3D.universe.invariants(); |
---|
| 1801 | + GrafreeD.grafreeD.universe.invariants(); |
---|
1784 | 1802 | } else |
---|
1785 | 1803 | if (event.getSource() == memoryItem) |
---|
1786 | 1804 | { |
---|
.. | .. |
---|
2003 | 2021 | if (group.selection.size() == 1) |
---|
2004 | 2022 | one = true; |
---|
2005 | 2023 | |
---|
| 2024 | + Object3D merge = null; |
---|
| 2025 | + |
---|
2006 | 2026 | Object3D content = new cGroup(); |
---|
2007 | 2027 | |
---|
2008 | 2028 | for (int i=0; i<group.selection.size(); i++) |
---|
2009 | 2029 | { |
---|
2010 | | - Object3D sel = new Merge(group.selection.get(i)); |
---|
| 2030 | + merge = new Merge(group.selection.get(i)); |
---|
2011 | 2031 | |
---|
2012 | 2032 | if (one) |
---|
2013 | | - makeSomething(sel, false); |
---|
| 2033 | + makeSomething(merge, false); |
---|
2014 | 2034 | else |
---|
2015 | | - content.addChild(sel); |
---|
| 2035 | + content.addChild(merge); |
---|
2016 | 2036 | } |
---|
2017 | 2037 | |
---|
2018 | 2038 | if (!one) |
---|
2019 | | - makeSomething(content, false); |
---|
2020 | | - |
---|
2021 | | - ResetModel(); |
---|
2022 | | - refreshContents(); |
---|
| 2039 | + makeSomething(content, true); |
---|
| 2040 | + else |
---|
| 2041 | + { |
---|
| 2042 | + ResetModel(); |
---|
| 2043 | + Select(merge.GetTreePath(), true, false); // unselect... false); |
---|
| 2044 | + refreshContents(); |
---|
| 2045 | + } |
---|
2023 | 2046 | } else |
---|
2024 | 2047 | if (event.getSource() == mergeGeometriesItem) |
---|
2025 | 2048 | { |
---|
.. | .. |
---|
2096 | 2119 | |
---|
2097 | 2120 | refreshContents(); |
---|
2098 | 2121 | } else |
---|
| 2122 | + if (event.getSource() == relinkverticesItem) |
---|
| 2123 | + { |
---|
| 2124 | + boolean random = CameraPane.RANDOM; |
---|
| 2125 | + CameraPane.RANDOM = false; // parse all random nodes |
---|
| 2126 | + group.selection.RelinkToSupport(); |
---|
| 2127 | + CameraPane.RANDOM = random; |
---|
| 2128 | + |
---|
| 2129 | + refreshContents(); |
---|
| 2130 | + } else |
---|
2099 | 2131 | if (event.getSource() == resetreferencesItem) |
---|
2100 | 2132 | { |
---|
2101 | 2133 | for (int i=0; i<group.selection.size(); i++) |
---|
.. | .. |
---|
2164 | 2196 | if (event.getSource() == grabItem) |
---|
2165 | 2197 | { |
---|
2166 | 2198 | group(new cGroup(), true); |
---|
| 2199 | + } else |
---|
| 2200 | + if (event.getSource() == hideItem) |
---|
| 2201 | + { |
---|
| 2202 | + group(new HiddenObject()); |
---|
2167 | 2203 | } else |
---|
2168 | 2204 | if (event.getSource() == frontItem) |
---|
2169 | 2205 | { |
---|
.. | .. |
---|
2287 | 2323 | { |
---|
2288 | 2324 | group(new TextureNode()); |
---|
2289 | 2325 | } else |
---|
| 2326 | + if (event.getSource() == billboardItem) |
---|
| 2327 | + { |
---|
| 2328 | + group(new BillboardNode()); |
---|
| 2329 | + } else |
---|
2290 | 2330 | if (event.getSource() == shadowXItem) |
---|
2291 | 2331 | { |
---|
2292 | 2332 | CastShadow(0); |
---|
.. | .. |
---|
2301 | 2341 | } else |
---|
2302 | 2342 | if (event.getSource() == ungroupItem) |
---|
2303 | 2343 | { |
---|
2304 | | - ungroup(); |
---|
| 2344 | + //ungroup(); |
---|
| 2345 | + for (int i=0; i<group.selection.size(); i++) |
---|
| 2346 | + { |
---|
| 2347 | + Ungroup(group.selection.get(i)); |
---|
| 2348 | + } |
---|
| 2349 | + |
---|
| 2350 | + ClearSelection(false); |
---|
| 2351 | + |
---|
| 2352 | + refreshContents(); |
---|
2305 | 2353 | } else |
---|
2306 | 2354 | if (event.getSource() == genUVItem) |
---|
2307 | 2355 | { |
---|
.. | .. |
---|
2318 | 2366 | if (event.getSource() == genNormalsORGANItem) |
---|
2319 | 2367 | { |
---|
2320 | 2368 | GenNormals(false); |
---|
| 2369 | + } else |
---|
| 2370 | + if (event.getSource() == genNormalsMINEItem) |
---|
| 2371 | + { |
---|
| 2372 | + GenNormalsMINE(); |
---|
2321 | 2373 | } else |
---|
2322 | 2374 | if (event.getSource() == stripifyItem) |
---|
2323 | 2375 | { |
---|
.. | .. |
---|
2495 | 2547 | |
---|
2496 | 2548 | refreshContents(); |
---|
2497 | 2549 | } else |
---|
| 2550 | + if (event.getSource() == repairShadowItem) |
---|
| 2551 | + { |
---|
| 2552 | + for (Enumeration e = group.selection.elements(); e.hasMoreElements();) |
---|
| 2553 | + { |
---|
| 2554 | + Object3D obj = (Object3D)e.nextElement(); |
---|
| 2555 | + obj.RepairShadow(); |
---|
| 2556 | +// for (int i=0; i<obj.size(); i++) |
---|
| 2557 | +// { |
---|
| 2558 | +// obj.get(i).parent = obj; |
---|
| 2559 | +// } |
---|
| 2560 | + } |
---|
| 2561 | + |
---|
| 2562 | + refreshContents(); |
---|
| 2563 | + } else |
---|
2498 | 2564 | if (event.getSource() == sortbysizeItem) |
---|
2499 | 2565 | { |
---|
2500 | 2566 | for (Enumeration e = group.selection.elements(); e.hasMoreElements();) |
---|
.. | .. |
---|
2590 | 2656 | // bug |
---|
2591 | 2657 | //gridPanel.setDividerLocation(1.0); |
---|
2592 | 2658 | //bigPanel.setDividerLocation(0.0); |
---|
2593 | | - bigThree.remove(jtp); |
---|
2594 | | - bigThree.remove(cameraPanel); |
---|
| 2659 | + bigThree.remove(scenePanel); |
---|
| 2660 | + bigThree.remove(centralPanel); |
---|
2595 | 2661 | bigThree.remove(XYZPanel); |
---|
2596 | 2662 | aWindowConstraints.gridx = 0; |
---|
2597 | 2663 | aWindowConstraints.gridy = 0; |
---|
.. | .. |
---|
2606 | 2672 | // aConstraints.gridheight = 3; |
---|
2607 | 2673 | aWindowConstraints.gridx = 1; |
---|
2608 | 2674 | aWindowConstraints.fill = GridBagConstraints.BOTH; |
---|
2609 | | - bigThree.add(cameraPanel, aWindowConstraints); |
---|
| 2675 | + bigThree.add(centralPanel, aWindowConstraints); |
---|
2610 | 2676 | aWindowConstraints.weightx = 0; |
---|
2611 | 2677 | aWindowConstraints.gridx = 4; |
---|
2612 | 2678 | aWindowConstraints.gridwidth = 1; |
---|
.. | .. |
---|
2618 | 2684 | if (event.getSource() == threeButton) |
---|
2619 | 2685 | { |
---|
2620 | 2686 | radio.layout = threeButton; |
---|
2621 | | - bigThree.remove(jtp); |
---|
2622 | | - bigThree.remove(cameraPanel); |
---|
| 2687 | + bigThree.remove(scenePanel); |
---|
| 2688 | + bigThree.remove(centralPanel); |
---|
2623 | 2689 | bigThree.remove(XYZPanel); |
---|
2624 | 2690 | aWindowConstraints.gridx = 0; |
---|
2625 | 2691 | aWindowConstraints.gridy = 0; |
---|
.. | .. |
---|
2634 | 2700 | // aConstraints.gridheight = 3; |
---|
2635 | 2701 | aWindowConstraints.gridx = 1; |
---|
2636 | 2702 | aWindowConstraints.fill = GridBagConstraints.BOTH; |
---|
2637 | | - bigThree.add(cameraPanel, aWindowConstraints); |
---|
| 2703 | + bigThree.add(centralPanel, aWindowConstraints); |
---|
2638 | 2704 | aWindowConstraints.weightx = 0; |
---|
2639 | 2705 | aWindowConstraints.gridx = 4; |
---|
2640 | 2706 | aWindowConstraints.gridwidth = 1; |
---|
.. | .. |
---|
2646 | 2712 | if (event.getSource() == fourButton) |
---|
2647 | 2713 | { |
---|
2648 | 2714 | radio.layout = fourButton; |
---|
2649 | | - bigThree.remove(jtp); |
---|
2650 | | - bigThree.remove(cameraPanel); |
---|
| 2715 | + bigThree.remove(scenePanel); |
---|
| 2716 | + bigThree.remove(centralPanel); |
---|
2651 | 2717 | bigThree.remove(XYZPanel); |
---|
2652 | 2718 | aWindowConstraints.gridx = 0; |
---|
2653 | 2719 | aWindowConstraints.gridy = 0; |
---|
.. | .. |
---|
2656 | 2722 | aWindowConstraints.fill = GridBagConstraints.BOTH; |
---|
2657 | 2723 | aWindowConstraints.weightx = 1; |
---|
2658 | 2724 | aWindowConstraints.weighty = 1; |
---|
2659 | | - bigThree.add(jtp, aWindowConstraints); |
---|
| 2725 | + bigThree.add(scenePanel, aWindowConstraints); |
---|
2660 | 2726 | aWindowConstraints.weightx = 1; |
---|
2661 | 2727 | aWindowConstraints.gridwidth = 3; |
---|
2662 | 2728 | // aConstraints.gridheight = 3; |
---|
.. | .. |
---|
2674 | 2740 | if (event.getSource() == sixButton) |
---|
2675 | 2741 | { |
---|
2676 | 2742 | radio.layout = sixButton; |
---|
2677 | | - bigThree.remove(jtp); |
---|
2678 | | - bigThree.remove(cameraPanel); |
---|
| 2743 | + bigThree.remove(scenePanel); |
---|
| 2744 | + bigThree.remove(centralPanel); |
---|
2679 | 2745 | bigThree.remove(XYZPanel); |
---|
2680 | 2746 | aWindowConstraints.gridx = 0; |
---|
2681 | 2747 | aWindowConstraints.gridy = 0; |
---|
.. | .. |
---|
2684 | 2750 | aWindowConstraints.fill = GridBagConstraints.VERTICAL; |
---|
2685 | 2751 | aWindowConstraints.weightx = 0; |
---|
2686 | 2752 | aWindowConstraints.weighty = 1; |
---|
2687 | | - bigThree.add(jtp, aWindowConstraints); |
---|
| 2753 | + bigThree.add(scenePanel, aWindowConstraints); |
---|
2688 | 2754 | aWindowConstraints.weightx = 1; |
---|
2689 | 2755 | aWindowConstraints.gridwidth = 3; |
---|
2690 | 2756 | // aWindowConstraints.gridheight = 3; |
---|
2691 | 2757 | aWindowConstraints.gridx = 1; |
---|
2692 | 2758 | aWindowConstraints.fill = GridBagConstraints.BOTH; |
---|
2693 | | - bigThree.add(cameraPanel, aWindowConstraints); |
---|
| 2759 | + bigThree.add(centralPanel, aWindowConstraints); |
---|
2694 | 2760 | aWindowConstraints.weightx = 0; |
---|
2695 | 2761 | aWindowConstraints.gridx = 4; |
---|
2696 | 2762 | aWindowConstraints.gridwidth = 1; |
---|
.. | .. |
---|
2702 | 2768 | if (event.getSource() == sevenButton) |
---|
2703 | 2769 | { |
---|
2704 | 2770 | radio.layout = sevenButton; |
---|
2705 | | - bigThree.remove(jtp); |
---|
2706 | | - bigThree.remove(cameraPanel); |
---|
| 2771 | + bigThree.remove(scenePanel); |
---|
| 2772 | + bigThree.remove(centralPanel); |
---|
2707 | 2773 | bigThree.remove(XYZPanel); |
---|
2708 | 2774 | aWindowConstraints.gridx = 0; |
---|
2709 | 2775 | aWindowConstraints.gridy = 0; |
---|
.. | .. |
---|
2712 | 2778 | aWindowConstraints.fill = GridBagConstraints.VERTICAL; |
---|
2713 | 2779 | aWindowConstraints.weightx = 0; |
---|
2714 | 2780 | aWindowConstraints.weighty = 1; |
---|
2715 | | - bigThree.add(jtp, aWindowConstraints); |
---|
| 2781 | + bigThree.add(scenePanel, aWindowConstraints); |
---|
2716 | 2782 | aWindowConstraints.weightx = 1; |
---|
2717 | 2783 | aWindowConstraints.gridwidth = 3; |
---|
2718 | 2784 | // aWindowConstraints.gridheight = 3; |
---|
2719 | 2785 | aWindowConstraints.gridx = 1; |
---|
2720 | 2786 | aWindowConstraints.fill = GridBagConstraints.BOTH; |
---|
2721 | | - bigThree.add(cameraPanel, aWindowConstraints); |
---|
| 2787 | + bigThree.add(centralPanel, aWindowConstraints); |
---|
2722 | 2788 | aWindowConstraints.weightx = 0; |
---|
2723 | 2789 | aWindowConstraints.gridx = 4; |
---|
2724 | 2790 | aWindowConstraints.gridwidth = 1; |
---|
.. | .. |
---|
3179 | 3245 | refreshContents(); |
---|
3180 | 3246 | } |
---|
3181 | 3247 | |
---|
| 3248 | + void GenNormalsMINE() |
---|
| 3249 | + { |
---|
| 3250 | + group.selection.GenNormalsMINE(); |
---|
| 3251 | + |
---|
| 3252 | + refreshContents(); |
---|
| 3253 | + } |
---|
| 3254 | + |
---|
3182 | 3255 | void Stripify() |
---|
3183 | 3256 | { |
---|
3184 | 3257 | group.StripifyS(); |
---|
.. | .. |
---|
3447 | 3520 | |
---|
3448 | 3521 | void Align() |
---|
3449 | 3522 | { |
---|
| 3523 | + if (group.selection.size() == 0) |
---|
| 3524 | + return; |
---|
| 3525 | + |
---|
| 3526 | + cVector bbmin = new cVector(); |
---|
| 3527 | + cVector bbmax = new cVector(); |
---|
| 3528 | + |
---|
| 3529 | + group.selection.get(0).getBounds(bbmin, bbmax, true); |
---|
| 3530 | + |
---|
| 3531 | + double dx = bbmax.x - bbmin.x; |
---|
| 3532 | + double dy = bbmax.y - bbmin.y; |
---|
| 3533 | + double dz = bbmax.z - bbmin.z; |
---|
| 3534 | + |
---|
| 3535 | + double scale = Math.sqrt(dx*dx + dy*dy + dz*dz); |
---|
| 3536 | + |
---|
3450 | 3537 | for (int i=0; i<group.selection.size(); i++) |
---|
3451 | 3538 | { |
---|
3452 | 3539 | Object3D obj = group.selection.get(i); |
---|
3453 | 3540 | |
---|
3454 | | - LA.matTranslate(obj.toParent, i/2f, 0, 0); |
---|
3455 | | - LA.matTranslateInv(obj.fromParent, -i/2f, 0, 0); |
---|
| 3541 | + LA.matTranslate(obj.toParent, i * scale, 0, 0); |
---|
| 3542 | + LA.matTranslateInv(obj.fromParent, -i * scale, 0, 0); |
---|
3456 | 3543 | } |
---|
3457 | 3544 | |
---|
3458 | 3545 | refreshContents(); |
---|
.. | .. |
---|
4474 | 4561 | makeSomething(csg); |
---|
4475 | 4562 | } |
---|
4476 | 4563 | |
---|
| 4564 | + void Ungroup(Object3D g) |
---|
| 4565 | + { |
---|
| 4566 | + if (g instanceof HiddenObject) |
---|
| 4567 | + { |
---|
| 4568 | + HiddenObject h = (HiddenObject) g; |
---|
| 4569 | + |
---|
| 4570 | + for (int i=0; i<h.ActualSize(); i++) |
---|
| 4571 | + { |
---|
| 4572 | + objEditor.makeSomething(h.get(i), false); |
---|
| 4573 | + } |
---|
| 4574 | + } |
---|
| 4575 | + else |
---|
| 4576 | + { |
---|
| 4577 | + for (int i=0; i<g.Size(); i++) |
---|
| 4578 | + { |
---|
| 4579 | + objEditor.makeSomething(g.get(i), false); |
---|
| 4580 | + } |
---|
| 4581 | + } |
---|
| 4582 | + } |
---|
| 4583 | + |
---|
4477 | 4584 | void ungroup() |
---|
4478 | 4585 | { |
---|
4479 | 4586 | /* |
---|
.. | .. |
---|
4833 | 4940 | private MenuItem resetsupportItem; |
---|
4834 | 4941 | private MenuItem resetreferencesItem; |
---|
4835 | 4942 | private MenuItem linkverticesItem; |
---|
| 4943 | + private MenuItem relinkverticesItem; |
---|
4836 | 4944 | private MenuItem setMasterItem; |
---|
4837 | 4945 | private MenuItem resetMeshItem; |
---|
4838 | 4946 | private MenuItem stepAllItem; |
---|
.. | .. |
---|
4854 | 4962 | private MenuItem genNormalsMESHItem; |
---|
4855 | 4963 | private MenuItem genNormalsCADItem; |
---|
4856 | 4964 | private MenuItem genNormalsORGANItem; |
---|
| 4965 | + private MenuItem genNormalsMINEItem; |
---|
4857 | 4966 | private MenuItem stripifyItem; |
---|
4858 | 4967 | private MenuItem unstripifyItem; |
---|
4859 | 4968 | private MenuItem trimItem; |
---|
.. | .. |
---|
4895 | 5004 | private MenuItem resetCentroidItem; |
---|
4896 | 5005 | private MenuItem transformgeometryItem; |
---|
4897 | 5006 | private MenuItem resetTransformItem; |
---|
| 5007 | + private MenuItem hideItem; |
---|
4898 | 5008 | private MenuItem grabItem; |
---|
4899 | 5009 | private MenuItem backItem; |
---|
4900 | 5010 | private MenuItem frontItem; |
---|
.. | .. |
---|
4915 | 5025 | |
---|
4916 | 5026 | private MenuItem resetParentItem; |
---|
4917 | 5027 | private MenuItem repairParentItem; |
---|
| 5028 | + private MenuItem repairShadowItem; |
---|
4918 | 5029 | private MenuItem sortbysizeItem; |
---|
4919 | 5030 | private MenuItem sortbynameItem; |
---|
4920 | 5031 | |
---|
.. | .. |
---|
4935 | 5046 | private MenuItem coneItem; |
---|
4936 | 5047 | private MenuItem torusItem; |
---|
4937 | 5048 | private MenuItem superItem; |
---|
| 5049 | + private MenuItem kleinItem; |
---|
4938 | 5050 | private MenuItem blobItem; |
---|
4939 | 5051 | private MenuItem latheItem; |
---|
4940 | 5052 | private MenuItem bezierItem; |
---|
.. | .. |
---|
4947 | 5059 | private MenuItem csgItem; |
---|
4948 | 5060 | private MenuItem templateItem; |
---|
4949 | 5061 | private MenuItem textureItem; |
---|
| 5062 | + private MenuItem billboardItem; |
---|
4950 | 5063 | private MenuItem shadowXItem; |
---|
4951 | 5064 | private MenuItem shadowYItem; |
---|
4952 | 5065 | private MenuItem shadowZItem; |
---|