Normand Briere
2019-09-29 255bcc8ac2faaf412e78e231eaa8e4a560621668
Object3D.java
....@@ -100,7 +100,7 @@
100100 other.softtouched = softtouched;
101101
102102 other.random = random;
103
- other.link2master = link2master;
103
+ other.link2master = Link2Support();
104104 other.transformcount = transformcount;
105105 other.marked = marked;
106106 other.skip = skip;
....@@ -220,7 +220,7 @@
220220 return;
221221
222222 transientsupport = support;
223
- transientlink2master = link2master;
223
+ transientlink2master = Link2Support();
224224
225225 support = null;
226226 link2master = false;
....@@ -633,7 +633,10 @@
633633 transient boolean keepdontselect;
634634 boolean dontselect = false;
635635 boolean hide = false;
636
+
636637 boolean link2master = false; // performs reset support/master at each frame (cannot rename due to serialization)
638
+ boolean link2support = false; // (cannot rename due to serialization)
639
+
637640 boolean marked = false; // animation node
638641 boolean skip = false; // centroid issue
639642 boolean skipmocap = false; // mocap data
....@@ -6154,7 +6157,7 @@
61546157 boolean NeedSupport()
61556158 {
61566159 return
6157
- CameraPane.SUPPORT && (!CameraPane.movingcamera || (!Globals.FREEZEONMOVE && Globals.isLIVE())) && link2master && /*live &&*/ support != null
6160
+ CameraPane.SUPPORT && (!CameraPane.movingcamera || (!Globals.FREEZEONMOVE && Globals.isLIVE())) && Link2Support() && /*live &&*/ support != null
61586161 // PROBLEM with CROWD!!
61596162 && (Globals.DrawMode() == iCameraPane.SHADOW || !Globals.RENDERSHADOW || Globals.CROWD);
61606163 }
....@@ -6177,6 +6180,11 @@
61776180 return live && bRep != null;
61786181 }
61796182
6183
+ boolean Link2Support()
6184
+ {
6185
+ return link2master || link2support;
6186
+ }
6187
+
61806188 static cVector minima = new cVector();
61816189 static cVector maxima = new cVector();
61826190 static javax.vecmath.Point3d center = new javax.vecmath.Point3d();
....@@ -6190,7 +6198,7 @@
61906198 // System.err.println("Draw " + this + " Frame # " + ((Mocap)((Merge)support).object).frame);
61916199 }
61926200
6193
- if (live && link2master && support == null && !this.marked) // project on ground
6201
+ if (live && Link2Support() && support == null && !this.marked) // project on ground
61946202 {
61956203 getBounds(minima, maxima, true);
61966204 center.x = (minima.x + maxima.x) / 2;
....@@ -6265,7 +6273,7 @@
62656273 support = support;
62666274
62676275 boolean usecalllists = !IsDynamic() &&
6268
- IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !link2master); // !(this instanceof cSpring) && !(this instanceof BezierPatch);
6276
+ IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !Link2Support()); // !(this instanceof cSpring) && !(this instanceof BezierPatch);
62696277 //boolean usecalllists = false; //!IsLive(); // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch);
62706278
62716279 //usecalllists &= display.DrawMode() == display.DEFAULT; // Don't compute list in shadow pass.
....@@ -6373,7 +6381,7 @@
63736381 {
63746382 if (display.DrawMode() == iCameraPane.SHADOW)
63756383 {
6376
- if (!link2master // tricky to cull in shadow mode.
6384
+ if (!Link2Support() // tricky to cull in shadow mode.
63776385 && GetBRep().FrustumCull(this, null, display.LightCamera(), true))
63786386 {
63796387 //System.out.print("CULLED");
....@@ -6846,7 +6854,7 @@
68466854
68476855 //javax.media.opengl.GL gl = display.GetGL();
68486856
6849
- if (CameraPane.BOXMODE && !selected) // || CameraPane.movingcamera)
6857
+ if (CameraPane.BOXMODE && !Link2Support()) //selected) // || CameraPane.movingcamera)
68506858 {
68516859 int fc = bRep.FaceCount();
68526860 int vc = bRep.VertexCount();
....@@ -8917,7 +8925,7 @@
89178925
89188926 boolean touch = false;
89198927
8920
- if (bRep != null && link2master)
8928
+ if (bRep != null && Link2Support())
89218929 {
89228930 if (bbox == null)
89238931 {