Robot driving school.
- Pickable objects (raytracing)
- Interactive transformation
- Hermite spline interpolation
Instructions
The robot drives along the light gray path. Click on the gray control handles along the path to edit the path shape. Once selected, the gray path control handle will become red and a 3d translation gizmo will appear. Drag the control handle along any of the colored translation axes to move in the direction of the highlighted axis. When finished, deselect the control handle by clicking in an area of empty space. The camera will remain paused as long as there is an active selection.
All code written by Brandon Reiss unless otherwise noted.
Hw05.zip — The full source archiveAxes.java — A 3d axes gizmo
BufferedApplet.java — Main applet class written by Ken Perlin
Dummy.java — An invisible scene object
Geometry.java — 3d mesh primitives
HermiteInterpolation.java — Cubic Hermite Spline interpolation
Hw05.java — Main Hw05 applet class
Interpolation.java — Function interpolation interface
LinearInterpolation.java — Linear interpolation
Matrix4x4.java — A 4x4 matrix library
MatrixStack.java — Matrix stack for rendering hierarchies
Mesh.java — A 3d mesh
MouseMaster.java — Mouse event registration manager
Pickable.java — Interface for pickable object
PickableSceneObject.java — A pickable scene object
Ray.java — A 3d ray
Renderer.java — Generic mesh renderer
Robot.java — A robot character
SceneGraph.java — A primitive scene graph
SceneObject.java — Transformable and renderable scene object
ScreenRayProjector.java — Project a 2d screen coordinate to a 3d ray
StaticInstanceMap.java — Instancing for 3d meshes
TransformGizmo.java — An interactive 3d translation gizmo
Util.java — Rendering utility functions
Vector2.java — A 2d vector libary
Vector3.java — A 2d vector libary
Vector4.java — A 4d vector library