.. | .. |
---|
41 | 41 | |
---|
42 | 42 | java.util.Hashtable<java.util.UUID, Object3D> versiontable; // = new java.util.Hashtable<java.util.UUID, Object3D>(); |
---|
43 | 43 | |
---|
| 44 | + int tabIndex; |
---|
| 45 | + |
---|
44 | 46 | ScriptNode scriptnode; |
---|
45 | 47 | |
---|
46 | 48 | void deepCopyNode(Object3D other) |
---|
.. | .. |
---|
100 | 102 | other.softtouched = softtouched; |
---|
101 | 103 | |
---|
102 | 104 | other.random = random; |
---|
103 | | - other.link2master = link2master; |
---|
| 105 | + other.link2master = Link2Support(); |
---|
104 | 106 | other.transformcount = transformcount; |
---|
105 | 107 | other.marked = marked; |
---|
106 | 108 | other.skip = skip; |
---|
.. | .. |
---|
220 | 222 | return; |
---|
221 | 223 | |
---|
222 | 224 | transientsupport = support; |
---|
223 | | - transientlink2master = link2master; |
---|
| 225 | + transientlink2master = Link2Support(); |
---|
224 | 226 | |
---|
225 | 227 | support = null; |
---|
226 | 228 | link2master = false; |
---|
.. | .. |
---|
633 | 635 | transient boolean keepdontselect; |
---|
634 | 636 | boolean dontselect = false; |
---|
635 | 637 | boolean hide = false; |
---|
| 638 | + |
---|
636 | 639 | boolean link2master = false; // performs reset support/master at each frame (cannot rename due to serialization) |
---|
| 640 | + boolean link2support = false; // (cannot rename due to serialization) |
---|
| 641 | + |
---|
637 | 642 | boolean marked = false; // animation node |
---|
638 | 643 | boolean skip = false; // centroid issue |
---|
639 | 644 | boolean skipmocap = false; // mocap data |
---|
.. | .. |
---|
6154 | 6159 | boolean NeedSupport() |
---|
6155 | 6160 | { |
---|
6156 | 6161 | return |
---|
6157 | | - CameraPane.SUPPORT && (!CameraPane.movingcamera || (!Globals.FREEZEONMOVE && Globals.isLIVE())) && link2master && /*live &&*/ support != null |
---|
| 6162 | + CameraPane.SUPPORT && (!CameraPane.movingcamera || (!Globals.FREEZEONMOVE && Globals.isLIVE())) && Link2Support() && /*live &&*/ support != null |
---|
6158 | 6163 | // PROBLEM with CROWD!! |
---|
6159 | 6164 | && (Globals.DrawMode() == iCameraPane.SHADOW || !Globals.RENDERSHADOW || Globals.CROWD); |
---|
6160 | 6165 | } |
---|
.. | .. |
---|
6177 | 6182 | return live && bRep != null; |
---|
6178 | 6183 | } |
---|
6179 | 6184 | |
---|
| 6185 | + boolean Link2Support() |
---|
| 6186 | + { |
---|
| 6187 | + return link2master || link2support; |
---|
| 6188 | + } |
---|
| 6189 | + |
---|
6180 | 6190 | static cVector minima = new cVector(); |
---|
6181 | 6191 | static cVector maxima = new cVector(); |
---|
6182 | 6192 | static javax.vecmath.Point3d center = new javax.vecmath.Point3d(); |
---|
.. | .. |
---|
6190 | 6200 | // System.err.println("Draw " + this + " Frame # " + ((Mocap)((Merge)support).object).frame); |
---|
6191 | 6201 | } |
---|
6192 | 6202 | |
---|
6193 | | - if (live && link2master && support == null && !this.marked) // project on ground |
---|
| 6203 | + if (false) // live && Link2Support() && support == null && !this.marked) // project on ground |
---|
6194 | 6204 | { |
---|
6195 | 6205 | getBounds(minima, maxima, true); |
---|
6196 | 6206 | center.x = (minima.x + maxima.x) / 2; |
---|
.. | .. |
---|
6265 | 6275 | support = support; |
---|
6266 | 6276 | |
---|
6267 | 6277 | boolean usecalllists = !IsDynamic() && |
---|
6268 | | - IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !link2master); // !(this instanceof cSpring) && !(this instanceof BezierPatch); |
---|
| 6278 | + IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !Link2Support()); // !(this instanceof cSpring) && !(this instanceof BezierPatch); |
---|
6269 | 6279 | //boolean usecalllists = false; //!IsLive(); // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch); |
---|
6270 | 6280 | |
---|
6271 | 6281 | //usecalllists &= display.DrawMode() == display.DEFAULT; // Don't compute list in shadow pass. |
---|
.. | .. |
---|
6373 | 6383 | { |
---|
6374 | 6384 | if (display.DrawMode() == iCameraPane.SHADOW) |
---|
6375 | 6385 | { |
---|
6376 | | - if (!link2master // tricky to cull in shadow mode. |
---|
| 6386 | + if (!Link2Support() // tricky to cull in shadow mode. |
---|
6377 | 6387 | && GetBRep().FrustumCull(this, null, display.LightCamera(), true)) |
---|
6378 | 6388 | { |
---|
6379 | 6389 | //System.out.print("CULLED"); |
---|
.. | .. |
---|
6846 | 6856 | |
---|
6847 | 6857 | //javax.media.opengl.GL gl = display.GetGL(); |
---|
6848 | 6858 | |
---|
6849 | | - if (CameraPane.BOXMODE && !selected) // || CameraPane.movingcamera) |
---|
| 6859 | + if (CameraPane.BOXMODE && !Link2Support()) //selected) // || CameraPane.movingcamera) |
---|
6850 | 6860 | { |
---|
6851 | 6861 | int fc = bRep.FaceCount(); |
---|
6852 | 6862 | int vc = bRep.VertexCount(); |
---|
.. | .. |
---|
8917 | 8927 | |
---|
8918 | 8928 | boolean touch = false; |
---|
8919 | 8929 | |
---|
8920 | | - if (bRep != null && link2master) |
---|
| 8930 | + if (bRep != null && Link2Support()) |
---|
8921 | 8931 | { |
---|
8922 | 8932 | if (bbox == null) |
---|
8923 | 8933 | { |
---|