private void computeCameraCoordinates(final Avatar avatar, final double zoom) {
+ // compute camera view coordinates as if camera is at (0,0,0) and look at (0,0,1)
final float viewAngle = (float) .6;
+ cameraCenter = new Point3D();
topLeft = new Point3D(0,0, SIZE).rotate(-viewAngle, -viewAngle);
topRight = new Point3D(0,0, SIZE).rotate(viewAngle, -viewAngle);
bottomLeft = new Point3D(0,0,SIZE).rotate(-viewAngle, viewAngle);
bottomLeft.rotate(-avatar.getAngleXZ(), -avatar.getAngleYZ());
bottomRight.rotate(-avatar.getAngleXZ(), -avatar.getAngleYZ());
- // compute camera coordinates as if camera is at avatar's location and look
- cameraCenter = new Point3D(avatar.getLocation()).scaleDown(zoom);
- topLeft.add(cameraCenter);
- topRight.add(cameraCenter);
- bottomLeft.add(cameraCenter);
- bottomRight.add(cameraCenter);
-
+ // place camera view at avatar location
+ avatar.getLocation().clone().scaleDown(zoom).addTo(cameraCenter, topLeft, topRight, bottomLeft, bottomRight);
}
}