|
From: <tre...@us...> - 2007-07-06 17:42:54
|
Revision: 217
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=217&view=rev
Author: trevorolio
Date: 2007-07-06 10:42:54 -0700 (Fri, 06 Jul 2007)
Log Message:
-----------
Added camera tilt control using page up and down.
Modified Paths:
--------------
spaces/trunk/src/com/ogoglio/client/SpaceClient.java
spaces/trunk/src/com/ogoglio/viewer/applet/MotionInputHandler.java
spaces/trunk/src/com/ogoglio/viewer/applet/ViewerApplet.java
spaces/trunk/src/com/ogoglio/viewer/j3d/J3DCamera.java
spaces/trunk/src/com/ogoglio/viewer/j3d/J3DRenderer.java
spaces/trunk/src/com/ogoglio/viewer/render/Camera.java
Modified: spaces/trunk/src/com/ogoglio/client/SpaceClient.java
===================================================================
--- spaces/trunk/src/com/ogoglio/client/SpaceClient.java 2007-07-06 13:50:18 UTC (rev 216)
+++ spaces/trunk/src/com/ogoglio/client/SpaceClient.java 2007-07-06 17:42:54 UTC (rev 217)
@@ -79,8 +79,11 @@
this.listener = listener;
AuthDocument authDoc = webClient.getAuthDocument(true);
-
+
accountDoc = webClient.getAccountDocument(authDoc.getUsername());
+ if(accountDoc == null) {
+ throw new IOException("Could not get account document for " + authDoc.getUsername());
+ }
SpaceDocument spaceDoc = webClient.getSpaceDocument(true);
space = new Space(this, spaceDoc.getSpaceID(), spaceDoc.getDisplayName(), spaceDoc.getOwnerUsername(), spaceDoc.getDisplaySea(), spaceDoc.getSeaLevel());
@@ -98,7 +101,7 @@
}
if (messenger.authStatus != messenger.SUCCESS_STATUS) {
- System.out.println("No auth, message " + messenger.errorMessage);
+ System.err.println("No auth, message " + messenger.errorMessage);
messenger.cleanup();
if(messenger.errorMessage == null) {
Modified: spaces/trunk/src/com/ogoglio/viewer/applet/MotionInputHandler.java
===================================================================
--- spaces/trunk/src/com/ogoglio/viewer/applet/MotionInputHandler.java 2007-07-06 13:50:18 UTC (rev 216)
+++ spaces/trunk/src/com/ogoglio/viewer/applet/MotionInputHandler.java 2007-07-06 17:42:54 UTC (rev 217)
@@ -50,9 +50,9 @@
public double maxRadiansPerSecond = Math.PI / 60;
private boolean strafeLeft = false;
-
+
private boolean strafeRight = false;
-
+
private boolean moveForward = false;
private boolean moveBackward = false;
@@ -61,10 +61,14 @@
private boolean turnRight = false;
+ private float cameraTilt = 0;
+
private boolean run = false;
private boolean dirty = false;
+ private boolean cameraDirty = false;
+
private Renderer renderer = null;
private UserInputListener userInputListener = null;
@@ -83,10 +87,20 @@
}
private synchronized void reevaluate() {
- if (!dirty || !renderer.isMovable()) {
+ if (!renderer.isMovable()) {
return;
}
+
+ if (cameraDirty) {
+ cameraDirty = false;
+ renderer.getCamera().setRotation(cameraTilt, 0, 0);
+ }
+
+ if (!dirty) {
+ return;
+ }
dirty = false;
+
Transform3D position = new Transform3D();
userGroup.getPosition(position);
@@ -119,7 +133,7 @@
Transform3D orientationTransform = new Transform3D(orientation, new Vector3f(), 1);
long distance = 10000; //TODO make this the distance to the edge of space
- if(strafeSpeed != 0) {
+ if (strafeSpeed != 0) {
float mps = Math.abs(strafeSpeed) * MAX_METERS_PER_SECOND;
duration = (long) ((distance / mps) * 1000);
looping = false;
@@ -127,14 +141,14 @@
positions = new Vector3f[2];
positions[0] = new Vector3f(0, 0, 0);
positions[1] = new Vector3f(0, 0, 1);
-
+
orientationTransform.transform(positions[1]);
Vector3f oriented = new Vector3f(positions[1]);
-
+
positions[1] = new Vector3f(distance * (strafeSpeed > 0 ? -1 : 1), 0, 0);
orientationTransform.transform(positions[1]);
- float heading = getHeading(oriented) + (float)Math.PI;
+ float heading = getHeading(oriented) + (float) Math.PI;
headings = new Vector3f[2];
headings[0] = new Vector3f(heading, 0, 0);
headings[1] = new Vector3f(heading, 0, 0);
@@ -230,16 +244,22 @@
dirty = true;
turnRight = true;
}
- } else if(e.getKeyCode() == KeyEvent.VK_A) {
- if(strafeLeft == false) {
+ } else if (e.getKeyCode() == KeyEvent.VK_A) {
+ if (strafeLeft == false) {
dirty = true;
strafeLeft = true;
}
- } else if(e.getKeyCode() == KeyEvent.VK_D) {
- if(strafeRight == false) {
+ } else if (e.getKeyCode() == KeyEvent.VK_D) {
+ if (strafeRight == false) {
dirty = true;
strafeRight = true;
}
+ } else if (e.getKeyCode() == KeyEvent.VK_PAGE_UP) {
+ cameraDirty = true;
+ cameraTilt += 0.1;
+ } else if (e.getKeyCode() == KeyEvent.VK_PAGE_DOWN) {
+ cameraDirty = true;
+ cameraTilt -= 0.1;
}
reevaluate();
}
@@ -247,12 +267,12 @@
// called from within PhysicsBehavior
public void keyReleased(KeyEvent e) {
System.out.println("Key up");
- if (e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_W) {
+ if (e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_W) {
if (moveForward == true) {
dirty = true;
moveForward = false;
}
- } else if (e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_S) {
+ } else if (e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_S) {
if (moveBackward == true) {
dirty = true;
moveBackward = false;
@@ -267,13 +287,13 @@
dirty = true;
turnRight = false;
}
- } else if(e.getKeyCode() == KeyEvent.VK_A) {
- if(strafeLeft == true) {
+ } else if (e.getKeyCode() == KeyEvent.VK_A) {
+ if (strafeLeft == true) {
dirty = true;
strafeLeft = false;
}
- } else if(e.getKeyCode() == KeyEvent.VK_D) {
- if(strafeRight == true) {
+ } else if (e.getKeyCode() == KeyEvent.VK_D) {
+ if (strafeRight == true) {
dirty = true;
strafeRight = false;
}
@@ -285,7 +305,7 @@
if (e.getKeyChar() == 'r') {
dirty = true;
run = !run;
- } else if(e.getKeyChar() == '\n') {
+ } else if (e.getKeyChar() == '\n') {
userInputListener.focusCommandField();
}
reevaluate();
@@ -296,11 +316,10 @@
if (clickTarget == null) {
return;
}
-
+
if (clickTarget.getRenderable() instanceof UserRenderable) {
userInputListener.mouseClickedUser(((UserRenderable) clickTarget.getRenderable()).getUser(), clickTarget.getIntersection());
} else if (clickTarget.getRenderable() instanceof ShapeRenderable) {
- J3DShapeRenderable rend = (J3DShapeRenderable)clickTarget.getRenderable();
ShapeRenderable shapeRenderable = (ShapeRenderable) clickTarget.getRenderable();
Renderable renderable = shapeRenderable.getRenderable();
if (renderable instanceof ThingRenderable) {
Modified: spaces/trunk/src/com/ogoglio/viewer/applet/ViewerApplet.java
===================================================================
--- spaces/trunk/src/com/ogoglio/viewer/applet/ViewerApplet.java 2007-07-06 13:50:18 UTC (rev 216)
+++ spaces/trunk/src/com/ogoglio/viewer/applet/ViewerApplet.java 2007-07-06 17:42:54 UTC (rev 217)
@@ -76,7 +76,6 @@
try {
serviceURI = new URI(getParameter("serviceURI"));
-
URI spaceURI = new URI(getParameter("spaceURI"));
spaceClient = new SpaceClient(spaceURI, serviceURI, authCookie, spaceClientListener);
if(x != 0 || y != 0 || z != 0 || rx != 0 || ry != 0 || rz != 0) {
Modified: spaces/trunk/src/com/ogoglio/viewer/j3d/J3DCamera.java
===================================================================
--- spaces/trunk/src/com/ogoglio/viewer/j3d/J3DCamera.java 2007-07-06 13:50:18 UTC (rev 216)
+++ spaces/trunk/src/com/ogoglio/viewer/j3d/J3DCamera.java 2007-07-06 17:42:54 UTC (rev 217)
@@ -94,7 +94,10 @@
}
public void setRotation(double xRot, double yRot, double zRot) {
+ Vector3d position = new Vector3d();
+ location.get(position);
location.setEuler(new Vector3d(xRot, yRot, zRot));
+ location.setTranslation(position);
rootTransformGroup.setTransform(location);
}
Modified: spaces/trunk/src/com/ogoglio/viewer/j3d/J3DRenderer.java
===================================================================
--- spaces/trunk/src/com/ogoglio/viewer/j3d/J3DRenderer.java 2007-07-06 13:50:18 UTC (rev 216)
+++ spaces/trunk/src/com/ogoglio/viewer/j3d/J3DRenderer.java 2007-07-06 17:42:54 UTC (rev 217)
@@ -650,11 +650,10 @@
renderable.setID(USER_ID_PREFIX + user.getUsername());
if (isLocalUser) {
- camera.setLocation(new Vector3f(0f, 2f, 2f));
+ camera.setLocation(new Vector3f(0f, 2f, 0f));
renderable.setCamera(camera);
motionHandler = new MotionInputHandler(this, renderable, userInputListener);
- //getCanvas().addKeyListener(motionHandler);
getCanvas().addMouseListener(motionHandler);
getCanvas().addMouseMotionListener(motionHandler);
} else if (!offScreen) {
Modified: spaces/trunk/src/com/ogoglio/viewer/render/Camera.java
===================================================================
--- spaces/trunk/src/com/ogoglio/viewer/render/Camera.java 2007-07-06 13:50:18 UTC (rev 216)
+++ spaces/trunk/src/com/ogoglio/viewer/render/Camera.java 2007-07-06 17:42:54 UTC (rev 217)
@@ -14,5 +14,5 @@
package com.ogoglio.viewer.render;
public interface Camera {
-
+ public void setRotation(double xRot, double yRot, double zRot);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|