Normand Briere
2019-09-25 51e45bf615e1e2b4aca2edf9f7333b687c7d015e
CameraPane.java
....@@ -1,4 +1,5 @@
11
2
+import com.bulletphysics.dynamics.RigidBody;
23 import java.awt.*;
34 import java.awt.event.*;
45 import java.awt.image.*;
....@@ -1529,7 +1530,7 @@
15291530 }
15301531 }
15311532 float b = 0;
1532
- if (obj.support != null && obj.link2support)
1533
+ if (obj.support != null && obj.link2master)
15331534 {
15341535 b = 1;
15351536 }
....@@ -6961,30 +6962,30 @@
69616962 short residu = 0;
69626963
69636964 // wraparound workarounds
6964
- short fuck = (short) (buffer[i] & 0xFF);
6965
+ short ww = (short) (buffer[i] & 0xFF);
69656966 /*
6966
- residu += (fuck%2);
6967
- if(fuck/2 < 256-residu/2)
6967
+ residu += (ww%2);
6968
+ if(ww/2 < 256-residu/2)
69686969 {
6969
- fuck = (short)((fuck/2) + residu/2);
6970
+ ww = (short)((ww/2) + residu/2);
69706971 if(residu == 2)
69716972 residu = 0;
69726973 }
69736974 else
69746975 {
69756976 residu = 0;
6976
- fuck /= 2;
6977
+ ww /= 2;
69776978 }
69786979 */
6979
- if (i < imglength / 3 || rnd.nextFloat() < 0.5 || fuck >= 254)
6980
+ if (i < imglength / 3 || rnd.nextFloat() < 0.5 || ww >= 254)
69806981 {
6981
- fuck /= 2;
6982
+ ww /= 2;
69826983 } else
69836984 {
6984
- fuck = (short) ((fuck / 2) + fuck % 2);
6985
+ ww = (short) ((ww / 2) + ww % 2);
69856986 }
69866987
6987
- buffer[i] = (byte) fuck;
6988
+ buffer[i] = (byte) ww;
69886989 }
69896990 //System.out.print(bytes[i] + " ");
69906991 //if(buffer[i] >= 0 && buffer[i]<=eps-1) buffer[i] = eps;
....@@ -11865,7 +11866,10 @@
1186511866 }
1186611867
1186711868 if (Globals.isLIVE() && DrawMode() == DEFAULT || pingthread.live) // may 2013
11869
+ {
11870
+ renderCamera.computeTransform();
1186811871 repaint();
11872
+ }
1186911873
1187011874 displaydone = true;
1187111875 }
....@@ -14337,10 +14341,13 @@
1433714341 public void mouseClicked(MouseEvent e)
1433814342 {
1433914343 System.out.println("mouseClicked: " + e);
14344
+ System.exit(0);
1434014345 }
1434114346
1434214347 public void mousePressed(MouseEvent e)
1434314348 {
14349
+ RigidBody.justclicked = true;
14350
+ System.out.println("justclicked: " + e);
1434414351 //System.out.println("mousePressed: " + e);
1434514352 clickStart(e.getX(), e.getY(), e.getModifiers(), e.getModifiersEx());
1434614353 }
....@@ -14421,7 +14428,7 @@
1442114428 //}
1442214429
1442314430 SetMouseMode(e.getModifiers(), WHEEL | e.getModifiersEx());
14424
- drag(anchorX, anchorY + e.getUnitsToScroll()*8, 0, 0);
14431
+ drag(anchorX, anchorY + e.getUnitsToScroll()*8, e.getModifiers(), e.getModifiersEx());
1442514432 anchorX = ax;
1442614433 anchorY = ay;
1442714434 prevX = px;
....@@ -14664,10 +14671,25 @@
1466414671 // only one thread!? synchronized
1466514672 void StepToTarget(boolean jump)
1466614673 {
14674
+ RigidBody.pos.x = 0;
14675
+ RigidBody.pos.y = 0;
14676
+ RigidBody.pos.z = 0;
14677
+ if (RigidBody.justclicked)
14678
+ {
14679
+ RigidBody.pos.x = (float)manipCamera.lookAt.x;
14680
+ RigidBody.pos.y = (float)manipCamera.lookAt.y;
14681
+ RigidBody.pos.z = (float)manipCamera.lookAt.z;
14682
+ RigidBody.wind.set(RigidBody.pos);
14683
+ RigidBody.wind.x -= (float)manipCamera.location.x;
14684
+ RigidBody.wind.y -= (float)manipCamera.location.y;
14685
+ RigidBody.wind.z -= (float)manipCamera.location.z;
14686
+ RigidBody.wind.normalize();
14687
+ }
14688
+
1466714689 if (mute)
1466814690 return;
1466914691
14670
- if (capsLocked)
14692
+ if (capsLocked && manipCamera.viewCode == 0)
1467114693 {
1467214694 eye.x = manipCamera.location.x;
1467314695 eye.y = manipCamera.location.y + 0.25;
....@@ -14958,6 +14980,18 @@
1495814980 targetLookAt.set(manipCamera.lookAt);
1495914981 }
1496014982
14983
+ void ViewAngle(float dy)
14984
+ {
14985
+ double factor = Math.exp(-dy/300.0); // (1 + dy/100);
14986
+
14987
+ if (manipCamera.shaper_fovy * factor > 1 &&
14988
+ manipCamera.shaper_fovy * factor < 150)
14989
+ {
14990
+ manipCamera.shaper_fovy *= factor;
14991
+ //System.out.println("fovy = " + shaper_fovy);
14992
+ }
14993
+ }
14994
+
1496114995 void GoDown(int mod)
1496214996 {
1496314997 MODIFIERS |= COMMAND;
....@@ -14968,6 +15002,9 @@
1496815002 // if (isVR)
1496915003 // manipCamera.RotateInterest(0, speed);
1497015004 // else
15005
+ if (isVR)
15006
+ ViewAngle(-speed*delta);
15007
+ else
1497115008 manipCamera.Translate(0, -speed*delta, getWidth());
1497215009 }
1497315010 else
....@@ -14995,6 +15032,8 @@
1499515032
1499615033 void GoUp(int mod)
1499715034 {
15035
+ RigidBody.justclicked = true;
15036
+
1499815037 MODIFIERS |= COMMAND;
1499915038 /**/
1500015039 boolean isVR = (mouseMode&VR)!=0;
....@@ -15004,6 +15043,9 @@
1500415043 // if (isVR)
1500515044 // manipCamera.RotateInterest(0, -speed);
1500615045 // else
15046
+ if (isVR)
15047
+ ViewAngle(speed*delta);
15048
+ else
1500715049 manipCamera.Translate(0, speed*delta, getWidth());
1500815050 }
1500915051 else
....@@ -15034,13 +15076,13 @@
1503415076 MODIFIERS |= COMMAND;
1503515077 /**/
1503615078 if((mod&SHIFT) == SHIFT)
15037
- manipCamera.Translate(speed*delta, 0, getWidth());
15079
+ manipCamera.Translate(speed, 0, getWidth());
1503815080 else
1503915081 {
1504015082 if ((mouseMode&VR)!=0)
15041
- manipCamera.RotateInterest(-speed, 0);
15083
+ manipCamera.RotateInterest(-speed*manipCamera.shaper_fovy/90, 0);
1504215084 else
15043
- manipCamera.RotatePosition(speed, 0);
15085
+ manipCamera.RotatePosition(speed*manipCamera.shaper_fovy/90, 0);
1504415086 }
1504515087
1504615088 /**/
....@@ -15066,13 +15108,13 @@
1506615108 MODIFIERS |= COMMAND;
1506715109 /**/
1506815110 if((mod&SHIFT) == SHIFT)
15069
- manipCamera.Translate(-speed*delta, 0, getWidth());
15111
+ manipCamera.Translate(-speed, 0, getWidth());
1507015112 else
1507115113 {
1507215114 if ((mouseMode&VR)!=0)
15073
- manipCamera.RotateInterest(speed, 0);
15115
+ manipCamera.RotateInterest(speed*manipCamera.shaper_fovy/90, 0);
1507415116 else
15075
- manipCamera.RotatePosition(-speed, 0);
15117
+ manipCamera.RotatePosition(-speed*manipCamera.shaper_fovy/90, 0);
1507615118 }
1507715119
1507815120 /**/
....@@ -15219,6 +15261,11 @@
1521915261 if ((mouseMode & ZOOM) != 0)
1522015262 {
1522115263 //if ((mouseMode & BACKFORTH) != 0)
15264
+ if ((modifiersex & SHIFT) == SHIFT)
15265
+ {
15266
+ ViewAngle(dy);
15267
+ }
15268
+ else
1522215269 if ((mouseMode & VR) != 0)
1522315270 manipCamera.BackForth(dx, dy, getWidth());
1522415271 else
....@@ -16717,7 +16764,8 @@
1671716764
1671816765 public boolean mouseDrag(Event evt, int x, int y)
1671916766 {
16720
- //System.out.println("mouseDrag: " + evt);
16767
+ System.out.println("mouseDrag: " + evt);
16768
+ System.exit(0);
1672116769 /*
1672216770 drag = true;
1672316771 //System.out.println("Mouse DRAG");
....@@ -16836,6 +16884,7 @@
1683616884 public boolean mouseUp(Event evt, int x, int y)
1683716885 {
1683816886 System.out.println("mouseUp: " + evt);
16887
+ System.exit(0);
1683916888 /*
1684016889 locked = false;
1684116890 if (isRenderer)
....@@ -18210,7 +18259,7 @@
1821018259
1821118260 private boolean keepshadow;
1821218261
18213
- public boolean capsLocked = false; // VR
18262
+ static public boolean capsLocked = false; // VR
1821418263
1821518264 static public int indexcount = 0;
1821618265 /*static*/ cColor vertexOcclusion = new cColor();