Author: paperwing
Date: 2011-05-31 14:53:47 -0700 (Tue, 31 May 2011)
New Revision: 25608

Modified:
   csplugins/trunk/toronto/TestA3D/src/main/java/OrbitCamControl.java
Log:
more work on zoom and translate completed, looking to add more nodes

Modified: csplugins/trunk/toronto/TestA3D/src/main/java/OrbitCamControl.java
===================================================================
--- csplugins/trunk/toronto/TestA3D/src/main/java/OrbitCamControl.java  
2011-05-31 21:51:22 UTC (rev 25607)
+++ csplugins/trunk/toronto/TestA3D/src/main/java/OrbitCamControl.java  
2011-05-31 21:53:47 UTC (rev 25608)
@@ -7,6 +7,7 @@
 import com.ardor3d.input.logical.AnyKeyCondition;
 import com.ardor3d.input.logical.InputTrigger;
 import com.ardor3d.input.logical.KeyHeldCondition;
+import com.ardor3d.input.logical.KeyPressedCondition;
 import com.ardor3d.input.logical.LogicalLayer;
 import com.ardor3d.input.logical.MouseWheelMovedCondition;
 import com.ardor3d.input.logical.TriggerAction;
@@ -30,21 +31,23 @@
     private Vector3 upAxis = new Vector3();
     private Vector3 leftAxis = new Vector3();
     private Vector3 worldUpAxis = new Vector3();
+    private Vector3 defaultTarget = new Vector3();
     
-    private double zoomSpeed = 0.01;
-    private double horizontalRotateSpeed = 0.01;
-    private double verticalRotateSpeed = 0.01;
-    private double rollSpeed = 0.0001;
+    private double zoomSpeed = 0.003;
+    private double horizontalRotateSpeed = 0.008;
+    private double verticalRotateSpeed = 0.008;
+    private double rollSpeed = 0.001;
     
     private double distance = 10;
     private double minDistance = 2;
-    private double maxDistance = 25;
+    private double maxDistance = 100;
+    private double defaultDistance = 10;
     
     private double xMoveSpeed = 0.01;
     private double yMoveSpeed = 0.01;
     private double zMoveSpeed = 0.01;
     
-    private double translateSpeed = 0.01;
+    private double translateSpeed = 0.015;
     
     private InputTrigger mouseTrigger;
     
@@ -52,10 +55,12 @@
        this.target.set(target);
        this.camera = camera;
        this.worldUpAxis.set(worldUpAxis);
-       this.position.set(camera.getLocation());
+       position.set(camera.getLocation());
+       defaultTarget.set(target);
        
        // Calculate camera distance
        distance = position.distance(target);
+       defaultDistance = distance;
        
        upAxis.set(camera.getUp());
        leftAxis.set(camera.getLeft());
@@ -80,6 +85,14 @@
        // System.out.println("new target: " + this.target);
     }
     
+    private void resetTranslation() {
+       setTarget(defaultTarget);
+    }
+    
+    private void resetZoom() {
+       zoom(distance - defaultDistance);
+    }
+    
     private void translate(ReadOnlyVector3 translation) {
        setTarget(target.add(translation, null));
     }
@@ -96,6 +109,7 @@
        offset.normalizeLocal();
        offset.multiplyLocal(newDistance);
        
+       distance = newDistance;
        camera.setLocation(target.add(offset, position));
     }
     
@@ -285,6 +299,13 @@
                                translate(upAxis.multiply(-translateSpeed, 
null));
                        }
                }));
+        
+        layer.registerTrigger(new InputTrigger(new KeyPressedCondition(Key.C), 
new TriggerAction() {
+                       public void perform(final Canvas source, final 
TwoInputStates inputState, final double tpf) {
+                               resetTranslation();
+                               resetZoom();
+                       }
+               }));
        
     }
     

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to