Normand Briere
2019-05-13 f924d3e00db476c06f55f3d5aaef307e17575340
GroupEditor.java
....@@ -318,8 +318,12 @@
318318 resetTransformItem.addActionListener(this);
319319 resetCentroidItem = menu.add(new MenuItem("Reset Centroid"));
320320 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);
323327
324328 oe.menuBar.add(menu = new Menu("Geometry"));
325329 genUVItem = menu.add(new MenuItem("Generate UV"));
....@@ -422,17 +426,18 @@
422426 sortbysizeItem.addActionListener(this);
423427 sortbynameItem = menu.add(new MenuItem("Sort by name"));
424428 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);
425434 if (Globals.ADVANCED)
426435 {
427
- menu.add("-");
436
+ // Pretty much the same as duplicate and clone.
428437 extractGeometriesItem = menu.add(new MenuItem("Link Geometry"));
429438 extractGeometriesItem.addActionListener(this);
430439 cloneGeometriesItem = menu.add(new MenuItem("Clone Geometry"));
431440 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);
436441 }
437442
438443 oe.menuBar.add(menu = new Menu("Insert"));
....@@ -651,7 +656,7 @@
651656 zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel");
652657 zoomBoxCB.addItemListener(this);
653658
654
- if (Globals.ADVANCED)
659
+ if (true) // Globals.ADVANCED)
655660 {
656661 panel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT)); //, constraints);
657662 supportCB.setToolTipText("Enable rigging");
....@@ -2614,9 +2619,13 @@
26142619 {
26152620 SmoothMesh();
26162621 } else
2617
- if (source == transformgeometryItem)
2622
+ if (source == transformGeometryItem)
26182623 {
26192624 TransformGeometry();
2625
+ } else
2626
+ if (source == transformChildrenItem)
2627
+ {
2628
+ TransformChildren();
26202629 } else
26212630 if (source == resetTransformItem)
26222631 {
....@@ -2624,7 +2633,11 @@
26242633 } else
26252634 if (source == resetCentroidItem)
26262635 {
2627
- ResetCentroid();
2636
+ ResetCentroid(true);
2637
+ } else
2638
+ if (source == resetCentroidXZItem)
2639
+ {
2640
+ ResetCentroid(false);
26282641 } else
26292642 if (source == resetParentItem)
26302643 {
....@@ -3140,6 +3153,28 @@
31403153 refreshContents();
31413154 }
31423155
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
+ }
31433178
31443179 void ResetTransform()
31453180 {
....@@ -3252,7 +3287,7 @@
32523287 refreshContents();
32533288 }
32543289
3255
- void ResetCentroid()
3290
+ void ResetCentroid(boolean full)
32563291 {
32573292 Object3D obj;
32583293 for (Enumeration e = group.selection.elements(); e.hasMoreElements();)
....@@ -3267,12 +3302,16 @@
32673302 LA.matIdentity(Object3D.mat);
32683303 obj.getBounds(minima, maxima, false);
32693304 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;
32713307 Object3D.mat[3][2] = -(minima.z + maxima.z)/2;
32723308 obj.TransformMesh(Object3D.mat);
3309
+
32733310 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;
32753313 Object3D.mat[3][2] = (minima.z + maxima.z)/2;
3314
+
32763315 LA.matConcat(Object3D.mat, obj.toParent, obj.toParent);
32773316 //Object3D.mat[3][0] = -Object3D.mat[3][0];
32783317 //Object3D.mat[3][1] = -Object3D.mat[3][1];
....@@ -5153,8 +5192,10 @@
51535192 private MenuItem panoTexturesItem;
51545193
51555194 private MenuItem resetCentroidItem;
5156
- private MenuItem transformgeometryItem;
5195
+ private MenuItem resetCentroidXZItem;
51575196 private MenuItem resetTransformItem;
5197
+ private MenuItem transformGeometryItem;
5198
+ private MenuItem transformChildrenItem;
51585199 private MenuItem hideItem;
51595200 private MenuItem grabItem;
51605201 private MenuItem backItem;