Homework 7, due Monday, Nov 12 (before class time).

For next Monday, make a preliminary version of a user-modifiable object for a shared 3D world. You can assume a player like the one at:

http://cat.nyu.edu/~perlin/db/

When you surf to the main page in that directory, you're actually running WorldPlayer.java, which gets all the data about a world from the servlet, loads them up, and renders them.

When you click on the two links to load scene 1 and scene 2, respectively, you're really running an applet that saves different object parameters to the servlet. Notice what happens when you then go back to the main applet.

Look over the source code in that directory (it's all linked to from the main page). I create a single object type in file kensCube.java, which extends a generic Thing.java. Your job is to create something parallel to kensCube.java, which makes your own type of parameterizable object. You'll need to implement an initialize() method and an animate(time) method.

You'll also want to think about creating a user interaction to define parameters for your object. I've currently just implemented two applets to poke data up to the servlet: Write1ToWorld.java and Write2ToWorld.java, both of which extend WriteToWorld.java, (which does all the actual work of talking with the servlet - feel free to use it). To actually talk with the servlet, you'll want to run all this in your directory of the myclass account.

For convenience in defining behavior for Things, I added rotate, scale, translate, etc., methods into render/Geometry.java. You might want to grab that, and remake your render/ package,

For convenience in defining behavior for Things, I added rotate, scale, translate, etc., methods into render/Geometry.java. You might want to grab that, and remake your render/ package, or you can just grab the last 20 lines or so of render/Geometry.java, and incorporate them into your version.