.. | .. |
---|
29 | 29 | Object3D saveskeleton; |
---|
30 | 30 | // |
---|
31 | 31 | |
---|
32 | | - byte[] versions[] = new byte[100][]; |
---|
| 32 | + byte[] versions[]; |
---|
33 | 33 | int versionindex = -1; |
---|
34 | 34 | |
---|
35 | 35 | ScriptNode scriptnode; |
---|
.. | .. |
---|
219 | 219 | // o.bRep.support = null; |
---|
220 | 220 | // } |
---|
221 | 221 | o.selection = this.selection; |
---|
| 222 | + o.versions = this.versions; |
---|
| 223 | + o.versionindex = this.versionindex; |
---|
222 | 224 | |
---|
223 | 225 | if (this.support != null) |
---|
224 | 226 | { |
---|
.. | .. |
---|
274 | 276 | } |
---|
275 | 277 | |
---|
276 | 278 | this.selection = o.selection; |
---|
| 279 | + |
---|
| 280 | + this.versions = o.versions; |
---|
| 281 | + this.versionindex = o.versionindex; |
---|
277 | 282 | // July 2019 if (this.bRep != null) |
---|
278 | 283 | // this.bRep.support = o.transientrep; |
---|
279 | 284 | // this.support = o.support; |
---|
.. | .. |
---|
421 | 426 | } |
---|
422 | 427 | |
---|
423 | 428 | boolean live = false; |
---|
| 429 | + transient boolean keepdontselect; |
---|
424 | 430 | boolean dontselect = false; |
---|
425 | 431 | boolean hide = false; |
---|
426 | 432 | boolean link2master = false; // performs reset support/master at each frame |
---|
.. | .. |
---|
3112 | 3118 | { |
---|
3113 | 3119 | if (bRep != null) |
---|
3114 | 3120 | { |
---|
3115 | | - bRep.GenerateNormalsMINE(); |
---|
| 3121 | + bRep.MergeNormals(); //.GenerateNormalsMINE(); |
---|
3116 | 3122 | Touch(); |
---|
3117 | 3123 | } |
---|
3118 | 3124 | } |
---|
.. | .. |
---|
5415 | 5421 | blockloop = false; |
---|
5416 | 5422 | } |
---|
5417 | 5423 | |
---|
| 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 | + |
---|
5418 | 5469 | boolean IsSelected() |
---|
5419 | 5470 | { |
---|
5420 | 5471 | if (parent == null) |
---|