.. | .. |
---|
318 | 318 | resetTransformItem.addActionListener(this); |
---|
319 | 319 | resetCentroidItem = menu.add(new MenuItem("Reset Centroid")); |
---|
320 | 320 | resetCentroidItem.addActionListener(this); |
---|
321 | | - transformgeometryItem = menu.add(new MenuItem("Transform Geometry")); |
---|
322 | | - transformgeometryItem.addActionListener(this); |
---|
| 321 | + resetCentroidXZItem = menu.add(new MenuItem("Reset Centroid XY")); |
---|
| 322 | + resetCentroidXZItem.addActionListener(this); |
---|
| 323 | + transformGeometryItem = menu.add(new MenuItem("Transform Geometry")); |
---|
| 324 | + transformGeometryItem.addActionListener(this); |
---|
| 325 | + transformChildrenItem = menu.add(new MenuItem("Transform Children")); |
---|
| 326 | + transformChildrenItem.addActionListener(this); |
---|
323 | 327 | |
---|
324 | 328 | oe.menuBar.add(menu = new Menu("Geometry")); |
---|
325 | 329 | genUVItem = menu.add(new MenuItem("Generate UV")); |
---|
.. | .. |
---|
422 | 426 | sortbysizeItem.addActionListener(this); |
---|
423 | 427 | sortbynameItem = menu.add(new MenuItem("Sort by name")); |
---|
424 | 428 | sortbynameItem.addActionListener(this); |
---|
| 429 | + menu.add("-"); |
---|
| 430 | + shareGeometriesItem = menu.add(new MenuItem("Share Geometries")); |
---|
| 431 | + shareGeometriesItem.addActionListener(this); |
---|
| 432 | + mergeGeometriesItem = menu.add(new MenuItem("Merge Geometries")); |
---|
| 433 | + mergeGeometriesItem.addActionListener(this); |
---|
425 | 434 | if (Globals.ADVANCED) |
---|
426 | 435 | { |
---|
427 | | - menu.add("-"); |
---|
| 436 | + // Pretty much the same as duplicate and clone. |
---|
428 | 437 | extractGeometriesItem = menu.add(new MenuItem("Link Geometry")); |
---|
429 | 438 | extractGeometriesItem.addActionListener(this); |
---|
430 | 439 | cloneGeometriesItem = menu.add(new MenuItem("Clone Geometry")); |
---|
431 | 440 | cloneGeometriesItem.addActionListener(this); |
---|
432 | | - shareGeometriesItem = menu.add(new MenuItem("Share Geometry")); |
---|
433 | | - shareGeometriesItem.addActionListener(this); |
---|
434 | | - mergeGeometriesItem = menu.add(new MenuItem("Merge Geometry")); |
---|
435 | | - mergeGeometriesItem.addActionListener(this); |
---|
436 | 441 | } |
---|
437 | 442 | |
---|
438 | 443 | oe.menuBar.add(menu = new Menu("Insert")); |
---|
.. | .. |
---|
651 | 656 | zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel"); |
---|
652 | 657 | zoomBoxCB.addItemListener(this); |
---|
653 | 658 | |
---|
654 | | - if (Globals.ADVANCED) |
---|
| 659 | + if (true) // Globals.ADVANCED) |
---|
655 | 660 | { |
---|
656 | 661 | panel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT)); //, constraints); |
---|
657 | 662 | supportCB.setToolTipText("Enable rigging"); |
---|
.. | .. |
---|
2614 | 2619 | { |
---|
2615 | 2620 | SmoothMesh(); |
---|
2616 | 2621 | } else |
---|
2617 | | - if (source == transformgeometryItem) |
---|
| 2622 | + if (source == transformGeometryItem) |
---|
2618 | 2623 | { |
---|
2619 | 2624 | TransformGeometry(); |
---|
| 2625 | + } else |
---|
| 2626 | + if (source == transformChildrenItem) |
---|
| 2627 | + { |
---|
| 2628 | + TransformChildren(); |
---|
2620 | 2629 | } else |
---|
2621 | 2630 | if (source == resetTransformItem) |
---|
2622 | 2631 | { |
---|
.. | .. |
---|
2624 | 2633 | } else |
---|
2625 | 2634 | if (source == resetCentroidItem) |
---|
2626 | 2635 | { |
---|
2627 | | - ResetCentroid(); |
---|
| 2636 | + ResetCentroid(true); |
---|
| 2637 | + } else |
---|
| 2638 | + if (source == resetCentroidXZItem) |
---|
| 2639 | + { |
---|
| 2640 | + ResetCentroid(false); |
---|
2628 | 2641 | } else |
---|
2629 | 2642 | if (source == resetParentItem) |
---|
2630 | 2643 | { |
---|
.. | .. |
---|
3140 | 3153 | refreshContents(); |
---|
3141 | 3154 | } |
---|
3142 | 3155 | |
---|
| 3156 | + void TransformChildren() |
---|
| 3157 | + { |
---|
| 3158 | + Object3D obj; |
---|
| 3159 | + for (Enumeration e = group.selection.elements(); e.hasMoreElements();) |
---|
| 3160 | + { |
---|
| 3161 | + obj = (Object3D)e.nextElement(); |
---|
| 3162 | + obj.KeepTextureMatrices(); |
---|
| 3163 | + obj.TransformChildren(); |
---|
| 3164 | + obj.RestoreTextureMatrices(); |
---|
| 3165 | + |
---|
| 3166 | +// if (obj.parent == null) |
---|
| 3167 | +// { |
---|
| 3168 | +// System.out.println("NULL PARENT!"); |
---|
| 3169 | +// new Exception().printStackTrace(); |
---|
| 3170 | +// } |
---|
| 3171 | +// else |
---|
| 3172 | +// TouchTransform(obj); |
---|
| 3173 | +// //obj.parent.Touch(); |
---|
| 3174 | + } |
---|
| 3175 | + |
---|
| 3176 | + refreshContents(); |
---|
| 3177 | + } |
---|
3143 | 3178 | |
---|
3144 | 3179 | void ResetTransform() |
---|
3145 | 3180 | { |
---|
.. | .. |
---|
3252 | 3287 | refreshContents(); |
---|
3253 | 3288 | } |
---|
3254 | 3289 | |
---|
3255 | | - void ResetCentroid() |
---|
| 3290 | + void ResetCentroid(boolean full) |
---|
3256 | 3291 | { |
---|
3257 | 3292 | Object3D obj; |
---|
3258 | 3293 | for (Enumeration e = group.selection.elements(); e.hasMoreElements();) |
---|
.. | .. |
---|
3267 | 3302 | LA.matIdentity(Object3D.mat); |
---|
3268 | 3303 | obj.getBounds(minima, maxima, false); |
---|
3269 | 3304 | Object3D.mat[3][0] = -(minima.x + maxima.x)/2; |
---|
3270 | | - Object3D.mat[3][1] = -(minima.y + maxima.y)/2; |
---|
| 3305 | + if (full) |
---|
| 3306 | + Object3D.mat[3][1] = -(minima.y + maxima.y)/2; |
---|
3271 | 3307 | Object3D.mat[3][2] = -(minima.z + maxima.z)/2; |
---|
3272 | 3308 | obj.TransformMesh(Object3D.mat); |
---|
| 3309 | + |
---|
3273 | 3310 | Object3D.mat[3][0] = (minima.x + maxima.x)/2; |
---|
3274 | | - Object3D.mat[3][1] = (minima.y + maxima.y)/2; |
---|
| 3311 | + if (full) |
---|
| 3312 | + Object3D.mat[3][1] = (minima.y + maxima.y)/2; |
---|
3275 | 3313 | Object3D.mat[3][2] = (minima.z + maxima.z)/2; |
---|
| 3314 | + |
---|
3276 | 3315 | LA.matConcat(Object3D.mat, obj.toParent, obj.toParent); |
---|
3277 | 3316 | //Object3D.mat[3][0] = -Object3D.mat[3][0]; |
---|
3278 | 3317 | //Object3D.mat[3][1] = -Object3D.mat[3][1]; |
---|
.. | .. |
---|
5153 | 5192 | private MenuItem panoTexturesItem; |
---|
5154 | 5193 | |
---|
5155 | 5194 | private MenuItem resetCentroidItem; |
---|
5156 | | - private MenuItem transformgeometryItem; |
---|
| 5195 | + private MenuItem resetCentroidXZItem; |
---|
5157 | 5196 | private MenuItem resetTransformItem; |
---|
| 5197 | + private MenuItem transformGeometryItem; |
---|
| 5198 | + private MenuItem transformChildrenItem; |
---|
5158 | 5199 | private MenuItem hideItem; |
---|
5159 | 5200 | private MenuItem grabItem; |
---|
5160 | 5201 | private MenuItem backItem; |
---|