Normand Briere
2019-07-21 76522bc3ee92bd50dbd946d7f865666be4ad7bac
Object3D.java
....@@ -29,7 +29,7 @@
2929 Object3D saveskeleton;
3030 //
3131
32
- byte[] versions[] = new byte[100][];
32
+ byte[] versions[];
3333 int versionindex = -1;
3434
3535 ScriptNode scriptnode;
....@@ -219,6 +219,8 @@
219219 // o.bRep.support = null;
220220 // }
221221 o.selection = this.selection;
222
+ o.versions = this.versions;
223
+ o.versionindex = this.versionindex;
222224
223225 if (this.support != null)
224226 {
....@@ -274,6 +276,9 @@
274276 }
275277
276278 this.selection = o.selection;
279
+
280
+ this.versions = o.versions;
281
+ this.versionindex = o.versionindex;
277282 // July 2019 if (this.bRep != null)
278283 // this.bRep.support = o.transientrep;
279284 // this.support = o.support;
....@@ -421,6 +426,7 @@
421426 }
422427
423428 boolean live = false;
429
+ transient boolean keepdontselect;
424430 boolean dontselect = false;
425431 boolean hide = false;
426432 boolean link2master = false; // performs reset support/master at each frame
....@@ -3112,7 +3118,7 @@
31123118 {
31133119 if (bRep != null)
31143120 {
3115
- bRep.GenerateNormalsMINE();
3121
+ bRep.MergeNormals(); //.GenerateNormalsMINE();
31163122 Touch();
31173123 }
31183124 }
....@@ -5415,6 +5421,51 @@
54155421 blockloop = false;
54165422 }
54175423
5424
+ void ResetSelectable()
5425
+ {
5426
+ if (blockloop)
5427
+ return;
5428
+
5429
+ blockloop = true;
5430
+
5431
+ keepdontselect = dontselect;
5432
+ dontselect = true;
5433
+
5434
+ Object3D child;
5435
+ int nb = Size();
5436
+ for (int i = 0; i < nb; i++)
5437
+ {
5438
+ child = (Object3D) get(i);
5439
+ if (child == null)
5440
+ continue;
5441
+ child.ResetSelectable();
5442
+ }
5443
+
5444
+ blockloop = false;
5445
+ }
5446
+
5447
+ void RestoreSelectable()
5448
+ {
5449
+ if (blockloop)
5450
+ return;
5451
+
5452
+ blockloop = true;
5453
+
5454
+ dontselect = keepdontselect;
5455
+
5456
+ Object3D child;
5457
+ int nb = Size();
5458
+ for (int i = 0; i < nb; i++)
5459
+ {
5460
+ child = (Object3D) get(i);
5461
+ if (child == null)
5462
+ continue;
5463
+ child.RestoreSelectable();
5464
+ }
5465
+
5466
+ blockloop = false;
5467
+ }
5468
+
54185469 boolean IsSelected()
54195470 {
54205471 if (parent == null)