.. | .. |
---|
36 | 36 | Object3D versionlist[]; |
---|
37 | 37 | int versionindex = -1; |
---|
38 | 38 | |
---|
| 39 | + java.util.Hashtable<java.util.UUID, Object3D> versiontable; // = new java.util.Hashtable<java.util.UUID, Object3D>(); |
---|
| 40 | + |
---|
39 | 41 | ScriptNode scriptnode; |
---|
40 | 42 | |
---|
41 | 43 | void InitOthers() |
---|
.. | .. |
---|
269 | 271 | // |
---|
270 | 272 | // return null; |
---|
271 | 273 | // } |
---|
| 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 | + } |
---|
272 | 318 | |
---|
273 | 319 | void RestoreBigData(java.util.Hashtable<java.util.UUID, Object3D> hashtable) |
---|
274 | 320 | { |
---|
.. | .. |
---|
3576 | 3622 | |
---|
3577 | 3623 | void ClearMaterials() |
---|
3578 | 3624 | { |
---|
| 3625 | + if (blockloop) |
---|
| 3626 | + return; |
---|
| 3627 | + |
---|
| 3628 | + blockloop = true; |
---|
| 3629 | + |
---|
3579 | 3630 | ClearMaterial(); |
---|
3580 | | - for (int i = 0; i < size(); i++) |
---|
| 3631 | + for (int i = 0; i < Size(); i++) |
---|
3581 | 3632 | { |
---|
3582 | | - Object3D child = (Object3D) reserve(i); |
---|
| 3633 | + Object3D child = (Object3D) get(i); |
---|
3583 | 3634 | if (child == null) |
---|
3584 | 3635 | continue; |
---|
3585 | 3636 | child.ClearMaterials(); |
---|
3586 | | - release(i); |
---|
3587 | 3637 | } |
---|
| 3638 | + |
---|
| 3639 | + blockloop = false; |
---|
| 3640 | + } |
---|
| 3641 | + |
---|
| 3642 | + void ClearVersionList() |
---|
| 3643 | + { |
---|
| 3644 | + this.versionlist = null; |
---|
| 3645 | + this.versionindex = -1; |
---|
| 3646 | + this.versiontable = null; |
---|
| 3647 | + } |
---|
| 3648 | + |
---|
| 3649 | + void ClearVersions() |
---|
| 3650 | + { |
---|
| 3651 | + if (blockloop) |
---|
| 3652 | + return; |
---|
| 3653 | + |
---|
| 3654 | + blockloop = true; |
---|
| 3655 | + |
---|
| 3656 | + ClearVersionList(); |
---|
| 3657 | + for (int i = 0; i < Size(); i++) |
---|
| 3658 | + { |
---|
| 3659 | + Object3D child = (Object3D) get(i); |
---|
| 3660 | + if (child == null) |
---|
| 3661 | + continue; |
---|
| 3662 | + child.ClearVersions(); |
---|
| 3663 | + } |
---|
| 3664 | + |
---|
| 3665 | + blockloop = false; |
---|
3588 | 3666 | } |
---|
3589 | 3667 | |
---|
3590 | 3668 | void FlipV(boolean flip) |
---|
.. | .. |
---|
7417 | 7495 | boundary.y = spot.y - 30; |
---|
7418 | 7496 | boundary.width = spot.width + 60; |
---|
7419 | 7497 | boundary.height = spot.height + 60; |
---|
7420 | | - clickInfo.g.setColor(Color.red); |
---|
| 7498 | + clickInfo.g.setColor(Color.white); |
---|
7421 | 7499 | int spotw = spot.x + spot.width; |
---|
7422 | 7500 | int spoth = spot.y + spot.height; |
---|
7423 | 7501 | clickInfo.g.fillRect(spot.x, spot.y, spot.width, spot.height); |
---|
.. | .. |
---|
7818 | 7896 | case 3: // '\001' |
---|
7819 | 7897 | if (modified || opposite) |
---|
7820 | 7898 | { |
---|
| 7899 | + if (modified && opposite) |
---|
| 7900 | + LA.matScale(toParent, totalScale, totalScale, totalScale); |
---|
| 7901 | + else |
---|
7821 | 7902 | //LA.matScale(toParent, 1, hScale, vScale); |
---|
7822 | | - LA.matScale(toParent, totalScale, 1, 1); |
---|
| 7903 | + LA.matScale(toParent, totalScale, 1, 1); |
---|
7823 | 7904 | } // vScale, 1); |
---|
7824 | 7905 | else |
---|
7825 | 7906 | { |
---|
7826 | 7907 | // EXCEPTION! |
---|
7827 | | - LA.matScale(toParent, totalScale, totalScale, totalScale); |
---|
| 7908 | + LA.matScale(toParent, 1, totalScale, totalScale); |
---|
7828 | 7909 | } // vScale, 1); |
---|
7829 | 7910 | break; |
---|
7830 | 7911 | |
---|
7831 | 7912 | case 2: // '\002' |
---|
7832 | 7913 | if (modified || opposite) |
---|
7833 | 7914 | { |
---|
7834 | | - //LA.matScale(toParent, hScale, 1, vScale); |
---|
7835 | | - LA.matScale(toParent, 1, totalScale, 1); |
---|
| 7915 | + if (modified && opposite) |
---|
| 7916 | + LA.matScale(toParent, totalScale, totalScale, totalScale); |
---|
| 7917 | + else |
---|
| 7918 | + //LA.matScale(toParent, hScale, 1, vScale); |
---|
| 7919 | + LA.matScale(toParent, 1, totalScale, 1); |
---|
7836 | 7920 | } else |
---|
7837 | 7921 | { |
---|
7838 | 7922 | LA.matScale(toParent, totalScale, 1, totalScale); |
---|
.. | .. |
---|
7842 | 7926 | case 1: // '\003' |
---|
7843 | 7927 | if (modified || opposite) |
---|
7844 | 7928 | { |
---|
7845 | | - //LA.matScale(toParent, hScale, vScale, 1); |
---|
7846 | | - LA.matScale(toParent, 1, 1, totalScale); |
---|
| 7929 | + if (modified && opposite) |
---|
| 7930 | + LA.matScale(toParent, totalScale, totalScale, totalScale); |
---|
| 7931 | + else |
---|
| 7932 | + //LA.matScale(toParent, hScale, vScale, 1); |
---|
| 7933 | + LA.matScale(toParent, 1, 1, totalScale); |
---|
7847 | 7934 | } else |
---|
7848 | 7935 | { |
---|
7849 | 7936 | LA.matScale(toParent, totalScale, totalScale, 1); |
---|