Normand Briere
2019-08-18 66aca73cce89e4b4d7521862760edf4b0888bc38
Object3D.java
....@@ -36,6 +36,8 @@
3636 Object3D versionlist[];
3737 int versionindex = -1;
3838
39
+ java.util.Hashtable<java.util.UUID, Object3D> versiontable; // = new java.util.Hashtable<java.util.UUID, Object3D>();
40
+
3941 ScriptNode scriptnode;
4042
4143 void InitOthers()
....@@ -269,6 +271,50 @@
269271 //
270272 // return null;
271273 // }
274
+
275
+ transient boolean tag;
276
+
277
+ void TagObjects(Object3D o, boolean tag)
278
+ {
279
+ if (blockloop)
280
+ return;
281
+
282
+ o.tag = tag;
283
+
284
+ if (o == this)
285
+ return;
286
+
287
+ blockloop = true;
288
+
289
+ for (int i=0; i<Size(); i++)
290
+ {
291
+ get(i).TagObjects(o, tag);
292
+ }
293
+
294
+ blockloop = false;
295
+ }
296
+
297
+ boolean HasTags()
298
+ {
299
+ if (blockloop)
300
+ return false;
301
+
302
+ blockloop = true;
303
+
304
+ boolean hasTags = false;
305
+
306
+ for (int i=0; i<Size(); i++)
307
+ {
308
+ hasTags |= get(i).tag || get(i).HasTags();
309
+
310
+ if (hasTags)
311
+ break;
312
+ }
313
+
314
+ blockloop = false;
315
+
316
+ return hasTags;
317
+ }
272318
273319 void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable)
274320 {
....@@ -7417,7 +7463,7 @@
74177463 boundary.y = spot.y - 30;
74187464 boundary.width = spot.width + 60;
74197465 boundary.height = spot.height + 60;
7420
- clickInfo.g.setColor(Color.red);
7466
+ clickInfo.g.setColor(Color.white);
74217467 int spotw = spot.x + spot.width;
74227468 int spoth = spot.y + spot.height;
74237469 clickInfo.g.fillRect(spot.x, spot.y, spot.width, spot.height);
....@@ -7818,21 +7864,27 @@
78187864 case 3: // '\001'
78197865 if (modified || opposite)
78207866 {
7867
+ if (modified && opposite)
7868
+ LA.matScale(toParent, totalScale, totalScale, totalScale);
7869
+ else
78217870 //LA.matScale(toParent, 1, hScale, vScale);
7822
- LA.matScale(toParent, totalScale, 1, 1);
7871
+ LA.matScale(toParent, totalScale, 1, 1);
78237872 } // vScale, 1);
78247873 else
78257874 {
78267875 // EXCEPTION!
7827
- LA.matScale(toParent, totalScale, totalScale, totalScale);
7876
+ LA.matScale(toParent, 1, totalScale, totalScale);
78287877 } // vScale, 1);
78297878 break;
78307879
78317880 case 2: // '\002'
78327881 if (modified || opposite)
78337882 {
7834
- //LA.matScale(toParent, hScale, 1, vScale);
7835
- LA.matScale(toParent, 1, totalScale, 1);
7883
+ if (modified && opposite)
7884
+ LA.matScale(toParent, totalScale, totalScale, totalScale);
7885
+ else
7886
+ //LA.matScale(toParent, hScale, 1, vScale);
7887
+ LA.matScale(toParent, 1, totalScale, 1);
78367888 } else
78377889 {
78387890 LA.matScale(toParent, totalScale, 1, totalScale);
....@@ -7842,8 +7894,11 @@
78427894 case 1: // '\003'
78437895 if (modified || opposite)
78447896 {
7845
- //LA.matScale(toParent, hScale, vScale, 1);
7846
- LA.matScale(toParent, 1, 1, totalScale);
7897
+ if (modified && opposite)
7898
+ LA.matScale(toParent, totalScale, totalScale, totalScale);
7899
+ else
7900
+ //LA.matScale(toParent, hScale, vScale, 1);
7901
+ LA.matScale(toParent, 1, 1, totalScale);
78477902 } else
78487903 {
78497904 LA.matScale(toParent, totalScale, totalScale, 1);