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.