aboutsummaryrefslogtreecommitdiffstats
path: root/src/classes/share
diff options
context:
space:
mode:
authorKevin Rushforth <[email protected]>2005-10-26 23:43:42 +0000
committerKevin Rushforth <[email protected]>2005-10-26 23:43:42 +0000
commitf2b8bc72cac9b037636cae419b57219da7f42886 (patch)
tree68676bcfd4a25d5c996d83c9897570c3c2d9b10f /src/classes/share
parent88dba20f8d32240c535341b4e16e9218a715acc7 (diff)
1. Added package description.
2. Added introductory material from former specification guide (since that is no longer being maintained). 3. Put copyright notice at bottom of all javadoc pages. git-svn-id: https://svn.java.net/svn/j3d-core~svn/trunk@450 ba19aa83-45c5-6ac9-afd3-db810772062c
Diffstat (limited to 'src/classes/share')
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/Behaviors.html11
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/Concepts.html11
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/DAG.gifbin0 -> 19099 bytes
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/HelloUniverse.html21
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/Immediate.html11
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/Rendering.html11
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/SceneGraphOverview.html230
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/SceneGraphSharing.html11
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/ViewBranch.gifbin0 -> 19210 bytes
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/ViewModel.html12
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/VirtualUniverse.html11
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/intro.gifbin0 -> 19452 bytes
-rw-r--r--src/classes/share/javax/media/j3d/doc-files/intro.html319
-rw-r--r--src/classes/share/javax/media/j3d/package.html34
14 files changed, 682 insertions, 0 deletions
diff --git a/src/classes/share/javax/media/j3d/doc-files/Behaviors.html b/src/classes/share/javax/media/j3d/doc-files/Behaviors.html
new file mode 100644
index 0000000..f6c4d00
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/Behaviors.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - Behaviors and Interpolators</title>
+</head>
+<body>
+<h2>Behaviors and Interpolators</h2>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/Concepts.html b/src/classes/share/javax/media/j3d/doc-files/Concepts.html
new file mode 100644
index 0000000..e445240
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/Concepts.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - Concepts</title>
+</head>
+<body>
+<h2>Java 3D Concepts</h2>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/DAG.gif b/src/classes/share/javax/media/j3d/doc-files/DAG.gif
new file mode 100644
index 0000000..8479136
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/DAG.gif
Binary files differ
diff --git a/src/classes/share/javax/media/j3d/doc-files/HelloUniverse.html b/src/classes/share/javax/media/j3d/doc-files/HelloUniverse.html
new file mode 100644
index 0000000..5e37bd6
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/HelloUniverse.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>HelloUniverse</title>
+</head>
+<body>
+<h2>HelloUniverse: A Sample Java
+3D Program</h2>
+<p>Here are code fragments from a simple program, <code>HelloUniverse.java</code>,
+that creates a cube and a RotationInterpolator behavior object that
+rotates the cube at a constant rate of pi/2 radians per second. The
+HelloUniverse class creates the branch graph
+that includes the cube and the RotationInterpolator behavior. It then
+adds this branch graph to the Locale object generated by the
+SimpleUniverse utility.
+</p>
+<pre><hr><br>public class HelloUniverse ... {<br> public BranchGroup createSceneGraph() {<br><i> // Create the root of the branch graph<br></i> BranchGroup objRoot = new BranchGroup();<br><br><i> // Create the TransformGroup node and initialize it to the<br> // identity. Enable the TRANSFORM_WRITE capability so that<br> // our behavior code can modify it at run time. Add it to<br> // the root of the subgraph.<br></i> TransformGroup objTrans = new TransformGroup();<br> objTrans.setCapability(<br> TransformGroup.ALLOW_TRANSFORM_WRITE);<br> objRoot.addChild(objTrans);<br><br><i> // Create a simple Shape3D node; add it to the scene graph.<br></i> objTrans.addChild(new ColorCube(0.4));<br><br><i> // Create a new Behavior object that will perform the<br> // desired operation on the specified transform and add<br> // it into the scene graph.<br></i> Transform3D yAxis = new Transform3D();<br> Alpha rotationAlpha = new Alpha(-1, 4000);<br> RotationInterpolator rotator = new RotationInterpolator(<br> rotationAlpha, objTrans, yAxis,<br> 0.0f, (float) Math.PI*2.0f);<br> BoundingSphere bounds =<br> new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);<br> rotator.setSchedulingBounds(bounds);<br> objRoot.addChild(rotator);<br><br><i> // Have Java 3D perform optimizations on this scene graph.</i><br> objRoot.compile();<br><br> return objRoot;<br> }<br><br> public HelloUniverse() {<br><i> &lt;set layout of container, construct canvas3d, add canvas3d&gt;<br><br> // Create the scene; attach it to the virtual universe<br></i> BranchGroup scene = createSceneGraph();<br> SimpleUniverse u = new SimpleUniverse(canvas3d);<br> u.getViewingPlatform().setNominalViewingTransform();<br> u.addBranchGraph(scene);<br> }<br>}</pre>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/Immediate.html b/src/classes/share/javax/media/j3d/doc-files/Immediate.html
new file mode 100644
index 0000000..ab85602
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/Immediate.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - Immediate-Mode Rendering</title>
+</head>
+<body>
+<h2>Immediate-Mode Rendering</h2>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/Rendering.html b/src/classes/share/javax/media/j3d/doc-files/Rendering.html
new file mode 100644
index 0000000..580931a
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/Rendering.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - Execution and Rendering Model</title>
+</head>
+<body>
+<h2>Execution and Rendering Model</h2>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/SceneGraphOverview.html b/src/classes/share/javax/media/j3d/doc-files/SceneGraphOverview.html
new file mode 100644
index 0000000..f10b9a1
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/SceneGraphOverview.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - Scene Graph Overview</title>
+</head>
+<body>
+<h2>Scene Graph Basics</h2>
+<p>A scene graph consists of Java 3D
+objects, called <em>nodes</em>,
+arranged in a tree structure. The user creates one or more scene
+subgraphs and attaches them to a virtual universe. The individual
+connections between Java 3D nodes always represent a directed
+relationship: parent to child. Java 3D restricts scene graphs in one
+major way: Scene graphs may not contain cycles. Thus, a Java 3D scene
+graph is a directed acyclic graph (DAG). See <a href="#Figure_1">Figure
+1</a>.
+</p>
+<p>Java 3D refines the <a href="../Node.html">Node</a> object class
+into two subclasses: <a href="../Group.html">Group</a>
+and
+<a href="../Leaf.html">Leaf</a> node objects. Group node objects group
+together one or more child
+nodes. A group node can point to zero or more children but can have
+only one parent. The SharedGroup node cannot have any parents (although
+it allows sharing portions of a scene graph, as described in "<a
+ href="SceneGraphSharing.html">Reusing Scene Graphs</a>").
+Leaf node objects contain the actual definitions of shapes (geometry),
+lights, fog, sounds, and so forth. A leaf node has no children and only
+one parent. The semantics of the various group and leaf nodes are
+described in subsequent chapters. </p>
+<h2>Scene Graph Structure</h2>
+<p>A scene graph organizes and controls the rendering
+of its constituent objects. The Java 3D renderer draws a scene graph in
+a consistent way that allows for concurrence. The Java 3D renderer can
+draw one object independently of other objects. Java 3D can allow such
+independence because its scene graphs have a particular form and cannot
+share state among branches of a tree.
+</p>
+<h3>Spatial Separation</h3>
+<p>The hierarchy of the scene graph encourages a natural spatial
+grouping
+on the geometric objects found at the leaves of the graph. Internal
+nodes act to group their children together. A group node also defines a
+spatial bound that contains all the geometry defined by its
+descendants. Spatial grouping allows for efficient implementation of
+operations such as proximity detection, collision detection, view
+frustum culling, and occlusion culling.
+</p>
+<p><a name="Figure_1"></a><img style="width: 500px; height: 341px;"
+ alt="Directed Acyclic Graph" title="Directed Acyclic Graph"
+ src="DAG.gif"></p>
+<p> </p>
+<ul>
+ <font size="-1"><b><i>Figure 1</i> &#8211; A Java
+3D Scene Graph Is a DAG
+(Directed Acyclic Graph)</b></font>
+</ul>
+<p> </p>
+<h3>State Inheritance</h3>
+<p>A leaf node's state is defined by the nodes in a direct path between
+the scene graph's root and the leaf. Because a leaf's graphics context
+relies only on a linear path between the root and that node, the Java
+3D renderer can decide to traverse the scene graph in whatever order it
+wishes. It can traverse the scene graph from left to right and top to
+bottom, in level order from right to left, or even in parallel. The
+only exceptions to this rule are spatially bounded attributes such as
+lights and fog.
+</p>
+<p>This characteristic is in marked contrast to many older scene
+graph-based APIs (including PHIGS and SGI's Inventor) where, if a node
+above or to the left of a node changes the graphics state, the change
+affects the graphics state of all nodes below it or to its right. </p>
+<p>The most common node object, along the path from the root to the
+leaf,
+that changes the graphics state is the TransformGroup object. The
+TransformGroup object can change the position, orientation, and scale
+of the objects below it. </p>
+<p>Most graphics state attributes are set by a Shape3D leaf node
+through
+its constituent Appearance object, thus allowing parallel rendering.
+The Shape3D node also has a constituent Geometry object that specifies
+its geometry-this permits different shape objects to share common
+geometry without sharing material attributes (or vice versa). </p>
+<p> </p>
+<h3>Rendering</h3>
+<p>The Java 3D renderer incorporates all graphics state changes made in
+a
+direct path from a scene graph root to a leaf object in the drawing of
+that leaf object. Java 3D provides this semantic for both retained and
+compiled-retained modes.
+</p>
+<p> </p>
+<h2>Scene Graph Objects</h2>
+<p>A Java 3D scene graph consists of a collection of Java 3D node
+objects
+connected in a tree structure. These node objects reference other scene
+graph objects called <em>node component objects</em>.
+All scene graph node and component objects are subclasses of a common
+<a href="../SceneGraphObject.html">SceneGraphObject</a> class. The
+SceneGraphObject class is an abstract class
+that defines methods that are common among nodes and component objects.
+</p>
+<p>Scene graph objects are constructed by creating a new instance of
+the
+desired class and are accessed and manipulated using the object's <code>set</code>
+and <code>get</code>
+methods. Once a scene graph object is created and connected to other
+scene graph objects to form a subgraph, the entire subgraph can be
+attached to a virtual universe---via a high-resolution <a
+ href="../Locale.html">Locale</a>
+object-making the object <em>live</em>. Prior to attaching a subgraph
+to a virtual
+universe, the entire subgraph can be <em>compiled</em> into an
+optimized, internal format (see the
+<code><a href="../BranchGroup.html#compile%28%29">BranchGroup.compile()</a></code>
+method). </p>
+<p>An important characteristic of all scene graph objects is that
+they can
+be accessed or modified only during the creation of a scene graph,
+except where explicitly allowed. Access to most <code>set</code> and <code>get</code>
+methods of objects that are part of a live or compiled scene graph is
+restricted. Such restrictions provide the scene graph compiler with
+usage information it can use in optimally compiling or rendering a
+scene graph. Each object has a set of capability bits that enable
+certain functionality when the object is live or compiled. By default,
+all capability bits are disabled (cleared). Only those <code>set</code>
+and <code>get</code>
+methods corresponding to capability bits that are explicitly enabled
+(set) prior to the object being compiled or made live are legal.<br>
+</p>
+<p> </p>
+<h2>Scene Graph Superstructure
+Objects</h2>
+Java 3D defines two scene graph superstructure objects,
+<a href="../VirtualUniverse.html">VirtualUniverse</a>
+and <a href="../Locale.html">Locale</a>, which are used to contain
+collections of subgraphs that
+comprise the scene graph. These objects are described in more detail in
+"<a href="VirtualUniverse.html">Scene Graph Superstructure</a>."
+<p> </p>
+<h3>VirtualUniverse Object</h3>
+A <a href="../VirtualUniverse.html">VirtualUniverse</a> object
+consists of a list of Locale objects that
+contain a collection of scene graph nodes that exist in the universe.
+Typically, an application will need only one VirtualUniverse, even for
+very large virtual databases. Operations on a VirtualUniverse include
+enumerating the Locale objects contained within the universe. See "<a
+ href="VirtualUniverse.html#VirtualUniverse">Scene Graph
+Superstructure: VirtualUniverse Object</a>," for more information.
+<p> </p>
+<h3>Locale Object</h3>
+The <a href="../Locale.html">Locale</a> object acts as a container for
+a collection of subgraphs of
+the scene graph that are rooted by a BranchGroup node. A Locale also
+defines a location within the virtual universe using high-resolution
+coordinates (HiResCoord) to specify its position. The HiResCoord serves
+as the origin for all scene graph objects contained within the Locale.
+<p>A Locale has no parent in the scene graph but is implicitly
+attached to
+a virtual universe when it is constructed. A Locale may reference an
+arbitrary number of BranchGroup nodes but has no explicit children. </p>
+<p>The coordinates of all scene graph objects are relative to the
+HiResCoord of the Locale in which they are contained. Operations on a
+Locale include setting or getting the HiResCoord of the Locale, adding
+a subgraph, and removing a subgraph (see "<a
+ href="VirtualUniverse.html#Locale">Scene Graph Superstructure: Locale
+Object</a>," for more information). </p>
+<p> </p>
+<h2>Scene Graph Viewing Objects</h2>
+Java 3D defines five scene graph viewing objects that are not part of
+the scene graph per se but serve to define the viewing parameters and
+to provide hooks into the physical world. These objects are <a
+ href="../Canvas3D.html">Canvas3D</a>,
+<a href="../Screen3D.html">Screen3D</a>, <a href="../View.html">View</a>,
+<a href="../PhysicalBody.html">PhysicalBody</a>, and <a
+ href="../PhysicalEnvironment.html">PhysicalEnvironment</a>. They are
+described in more detail in the "<a href="ViewModel.html">View Model</a>"
+document.<br>
+<p> </p>
+<h3>Canvas3D Object</h3>
+The <a href="../Canvas3D.html">Canvas3D</a> object encapsulates all of
+the parameters associated with
+the window being rendered into.
+When a Canvas3D object is attached to a View object, the Java 3D
+traverser renders the specified view onto the canvas. Multiple Canvas3D
+objects can point to the same View object.
+<p> </p>
+<h3>Screen3D Object</h3>
+The <a href="../Screen3D.html">Screen3D</a> object encapsulates all of
+the
+parameters associated with the physical screen containing the canvas,
+such as the width and height of the screen in pixels, the physical
+dimensions of the screen, and various physical calibration values.
+<p> </p>
+<h3>View Object</h3>
+The <a href="../View.html">View</a> object specifies information
+needed to render the scene graph.
+<a href="#Figure_2">Figure
+2</a> shows a View object attached to a simple scene graph for
+viewing the scene.
+<p>The View object is the central Java 3D object for coordinating all
+aspects of viewing.
+All viewing parameters in Java 3D are directly contained either within
+the View object or within objects pointed to by a View object. Java 3D
+supports multiple simultaneously active View objects, each of which can
+render to one or more canvases. </p>
+<p> </p>
+<h3>PhysicalBody Object</h3>
+The PhysicalBody object encapsulates all of the
+parameters associated with the physical body, such as head position,
+right and left eye position, and so forth.
+<p> </p>
+<h3>PhysicalEnvironment Object</h3>
+<p>The PhysicalEnvironment object encapsulates all of the parameters
+associated with the physical environment, such as calibration
+information for the tracker base for the head or hand tracker.<br>
+</p>
+<p><a name="Figure_2"></a><br>
+</p>
+<p><img style="width: 489px; height: 339px;" alt="Viewing a Scene Graph"
+ title="Viewing a Scene Graph" src="ViewBranch.gif">
+</p>
+<p> </p>
+<ul>
+ <font size="-1"><b><i>Figure 2</i> &#8211; Viewing a Scene Graph</b></font>
+</ul>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/SceneGraphSharing.html b/src/classes/share/javax/media/j3d/doc-files/SceneGraphSharing.html
new file mode 100644
index 0000000..ba707ef
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/SceneGraphSharing.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - Reusing Scene Graphs</title>
+</head>
+<body>
+<h2>Reusing Scene Graphs</h2>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/ViewBranch.gif b/src/classes/share/javax/media/j3d/doc-files/ViewBranch.gif
new file mode 100644
index 0000000..75cc40d
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/ViewBranch.gif
Binary files differ
diff --git a/src/classes/share/javax/media/j3d/doc-files/ViewModel.html b/src/classes/share/javax/media/j3d/doc-files/ViewModel.html
new file mode 100644
index 0000000..b13bd37
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/ViewModel.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - View Model</title>
+</head>
+<body>
+<h2>View Model
+</h2>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/VirtualUniverse.html b/src/classes/share/javax/media/j3d/doc-files/VirtualUniverse.html
new file mode 100644
index 0000000..c4afb99
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/VirtualUniverse.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Java 3D API - Scene Graph Superstructure</title>
+</head>
+<body>
+<h2>Scene Graph Superstructure</h2>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/doc-files/intro.gif b/src/classes/share/javax/media/j3d/doc-files/intro.gif
new file mode 100644
index 0000000..503f818
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/intro.gif
Binary files differ
diff --git a/src/classes/share/javax/media/j3d/doc-files/intro.html b/src/classes/share/javax/media/j3d/doc-files/intro.html
new file mode 100644
index 0000000..ee53c66
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/doc-files/intro.html
@@ -0,0 +1,319 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>The Java 3D API - Introduction</title>
+</head>
+<body>
+<h2>Introduction to the Java 3D API</h2>
+<p>The Java 3D API is an application
+programming interface used for writing three-dimensional graphics
+applications and applets. It gives developers high-level constructs for
+creating and manipulating 3D geometry and for constructing the
+structures used in rendering that geometry. Application developers can
+describe very large virtual worlds using these constructs, which
+provide Java 3D with enough information to render these worlds
+efficiently.
+</p>
+<p>Java 3D delivers Java's "write once, run anywhere"
+benefit to
+developers of 3D graphics applications. Java 3D is part of the
+JavaMedia suite of APIs, making it available on a wide range of
+platforms. It also integrates well with the Internet because
+applications and applets written using the Java 3D API have access to
+the entire set of Java classes.
+</p>
+<p>The Java 3D API draws its ideas from existing
+graphics APIs and from
+new technologies. Java 3D's low-level graphics constructs synthesize
+the best ideas found in low-level APIs such as Direct3D, OpenGL,
+QuickDraw3D, and XGL. Similarly, its higher-level constructs synthesize
+the best ideas found in several scene graph-based systems. Java 3D
+introduces some concepts not commonly considered part of the graphics
+environment, such as 3D spatial sound. Java 3D's sound capabilities
+help to provide a more immersive experience for the user.<br>
+</p>
+<p><i>NOTE: Prior to version 1.4, the
+Java&nbsp;3D API was formally specified by a
+separate Java&nbsp;3D API Specification Guide, published separately
+from the javadoc. As of version 1.4,
+the javadoc-generated API reference is definitive. Relevant portions of
+the guide have been included here and supersede any previously
+published
+information.</i>
+</p>
+<p>
+</p>
+<h2>Programming Paradigm</h2>
+Java 3D is an object-oriented API. Applications construct individual
+graphics elements as separate objects and connect them together into a
+treelike structure called a <em>scene graph</em>. The application
+manipulates these objects using their predefined accessor, mutator, and
+node-linking methods.
+<h3>The Scene Graph Programming
+Model</h3>
+Java 3D's scene graph-based programming model provides a simple and
+flexible mechanism for representing and rendering scenes. The scene
+graph contains a complete description of the entire scene, or virtual
+universe. This includes the geometric data, the attribute information,
+and the viewing information needed to render the scene from a
+particular point of view. The "<a href="SceneGraphOverview.html">Scene
+Graph Basics</a>" document provides more information on the Java 3D
+scene graph programming model.
+<p>The Java 3D API improves on previous graphics APIs
+by eliminating many
+of the bookkeeping and programming chores that those APIs impose. Java
+3D allows the programmer to think about geometric objects rather than
+about triangles-about the scene and its composition rather than about
+how to write the rendering code for efficiently displaying the scene.
+</p>
+<p>
+</p>
+<h3>Rendering Modes</h3>
+Java 3D includes three different rendering modes: immediate mode,
+retained mode, and compiled-retained mode (see "<a href="Rendering.html">Execution
+and Rendering Model</a>").
+Each successive rendering mode allows Java 3D more freedom in
+optimizing an application's execution. Most Java 3D applications will
+want to take advantage of the convenience and performance benefits that
+the retained and compiled-retained modes provide.
+<h4>Immediate Mode</h4>
+Immediate mode leaves little room for global
+optimization at the scene graph level. Even so, Java 3D has raised the
+level of abstraction and accelerates immediate mode rendering on a
+per-object basis. An application must provide a Java 3D draw method
+with a complete set of points, lines, or triangles, which are then
+rendered by the high-speed Java 3D renderer. Of course, the application
+can build these lists of points, lines, or triangles in any manner it
+chooses.
+<h4>Retained Mode</h4>
+Retained mode requires an application to construct a scene graph and
+specify which elements of that scene graph may change during rendering.
+The scene graph describes the objects in the virtual universe, the
+arrangement of those objects, and how the application animates those
+objects.
+<h4>Compiled-Retained Mode</h4>
+Compiled-retained mode, like retained mode, requires the application to
+construct a scene graph and specify which elements of the scene graph
+may change during rendering. Additionally, the application can compile
+some or all of the subgraphs that make up a complete scene graph. Java
+3D compiles these graphs into an internal format. The compiled
+representation of the scene graph may bear little resemblance to the
+original tree structure provided by the application, however, it is
+functionally equivalent. Compiled-retained mode provides the highest
+performance.
+<h3>Extensibility</h3>
+Most Java 3D classes expose only accessor and mutator methods. Those
+methods operate only on that object's internal state, making it
+meaningless for an application to override them. Therefore, Java 3D
+does not provide the capability to override the behavior of Java 3D
+attributes. To make Java 3D work correctly, applications must call "<code>super.setXxxxx</code>"
+for any attribute state set method that is overridden.
+<p>Applications can extend Java 3D's classes and add
+their own methods.
+However, they may not override Java 3D's scene graph traversal
+semantics because the nodes do not contain explicit traversal and draw
+methods. Java 3D's renderer retains those semantics internally.
+</p>
+<p>Java 3D <em>does</em> provide hooks for mixing
+Java 3D-controlled scene graph rendering and user-controlled rendering
+using Java 3D's immediate mode constructs (see "<a
+ href="Immediate.html#Mixed">Mixed-Mode Rendering</a>"). Alternatively,
+the application can
+stop Java 3D's renderer and do all its drawing in immediate mode (see "<a
+ href="Immediate.html#PureImmediate">Pure Immediate-Mode Rendering</a>").
+</p>
+<p>Behaviors require applications to extend the
+Behavior object and to
+override its methods with user-written Java code. These extended
+objects should contain references to those scene graph objects that
+they will manipulate at run time. The "<a href="Behaviors.html">Behaviors
+and Interpolators</a>" document describes Java 3D's behavior
+model.
+</p>
+<p>
+</p>
+<h2>High Performance</h2>
+Java 3D's programming model allows the Java 3D API to do the mundane
+tasks, such as scene graph traversal, managing attribute state changes,
+and so forth, thereby simplifying the application's job. Java 3D does
+this without sacrificing performance. At first glance, it might appear
+that this approach would create more work for the API; however, it
+actually has the opposite effect. Java 3D's higher level of abstraction
+changes not only the amount but, more important, also the kind of work
+the API must perform. Java 3D does not need to impose the same type of
+constraints as do APIs with a lower level of abstraction, thus allowing
+Java 3D to introduce optimizations not possible with these lower-level
+APIs.
+<p>Additionally, leaving the details of rendering to
+Java 3D allows it to
+tune the rendering to the underlying hardware. For example, relaxing
+the strict rendering order imposed by other APIs allows parallel
+traversal as well as parallel rendering. Knowing which portions of the
+scene graph cannot be modified at run time allows Java 3D to flatten
+the tree, pretransform geometry, or represent the geometry in a native
+hardware format without the need to keep the original data.
+</p>
+<p>
+</p>
+<h3>Layered Implementation</h3>
+Besides optimizations at the scene graph level, one of the more
+important factors that determines the performance of Java 3D is the
+time it takes to render the visible geometry. Java 3D implementations
+are layered to take advantage of the native, low-level API that is
+available on a given system. In particular, Java 3D implementations
+that use Direct3D and OpenGL are available. This means that Java 3D
+rendering will be accelerated across the same wide range of systems
+that are supported by these lower-level APIs.
+<h3>Target Hardware Platforms</h3>
+Java 3D is aimed at a wide range of 3D-capable hardware and software
+platforms, from low-cost PC game cards and software renderers at the
+low end, through midrange workstations, all the way up to very
+high-performance specialized 3D image generators.
+<p>Java 3D implementations are expected to provide
+useful rendering rates
+on most modern PCs, especially those with 3D graphics accelerator
+cards. On midrange workstations, Java 3D is expected to provide
+applications with nearly full-speed hardware performance.
+</p>
+<p>Finally, Java 3D is designed to scale as the
+underlying hardware
+platforms increase in speed over time. Tomorrow's 3D PC game
+accelerators will support more complex virtual worlds than high-priced
+workstations of a few years ago. Java 3D is prepared to meet this
+increase in hardware performance.
+</p>
+<p>
+</p>
+<h2>Structuring the Java 3D Program</h2>
+<p>This section illustrates how a developer might
+structure a Java 3D application. The simple application in this example
+creates a scene graph that draws an object in the middle of a window
+and rotates the object about its center point.
+</p>
+<h3>Java 3D Application Scene
+Graph</h3>
+<p>The scene graph for the sample application is shown below.
+</p>
+<p>The scene graph consists of superstructure
+components&#8212;a VirtualUniverse
+object and a Locale object&#8212;and a set of branch graphs. Each branch
+graph is a subgraph that is rooted by a BranchGroup node that is
+attached to the superstructure. For more information, see "<a
+ href="SceneGraphOverview.html">Scene Graph Basics</a>."
+</p>
+<p>
+<img style="width: 500px; height: 263px;" alt="Application scene graph"
+ title="Application scene graph" src="intro.gif"></p>
+<p>
+</p>
+<ul>
+ <font size="-1"><b><i>Figure 1 &#8211; </i>Application Scene Graph</b></font>
+</ul>
+<p>
+A VirtualUniverse object defines a named universe. Java 3D permits the
+creation of more than one universe, though the vast majority of
+applications will use just one. The VirtualUniverse object provides a
+grounding for scene graphs. All Java 3D scene graphs must connect to a
+VirtualUniverse object to be displayed. For more information, see "<a
+ href="VirtualUniverse.html">Scene Graph Superstructure</a>."
+</p>
+<p>Below the VirtualUniverse object is a Locale object.
+The Locale object
+defines the origin, in high-resolution coordinates, of its attached
+branch graphs. A virtual universe may contain as many Locales as
+needed. In this example, a single Locale object is defined with its
+origin at (0.0, 0.0, 0.0).
+</p>
+<p>The scene graph itself starts with the <a href="../BranchGroup.html">BranchGroup</a>
+nodes.
+A BranchGroup serves as the root of a
+subgraph, called a <em>branch graph</em>, of the scene graph. Only
+BranchGroup objects can attach to Locale objects.
+</p>
+<p>In this example there are two branch graphs and,
+thus, two BranchGroup
+nodes. Attached to the left BranchGroup are two subgraphs. One subgraph
+consists of a user-extended Behavior leaf node. The Behavior node
+contains Java code for manipulating the transformation matrix
+associated with the object's geometry.
+</p>
+<p>The other subgraph in this BranchGroup consists of a
+TransformGroup
+node that specifies the position (relative to the Locale), orientation,
+and scale of the geometric objects in the virtual universe. A single
+child, a Shape3D leaf node, refers to two component objects: a Geometry
+object and an Appearance object. The Geometry object describes the
+geometric shape of a 3D object (a cube in our simple example). The
+Appearance object describes the appearance of the geometry (color,
+texture, material reflection characteristics, and so forth).
+</p>
+<p>The right BranchGroup has a single subgraph that
+consists of a
+TransformGroup node and a ViewPlatform leaf node. The TransformGroup
+specifies the position (relative to the Locale), orientation, and scale
+of the ViewPlatform. This transformed ViewPlatform object defines the
+end user's view within the virtual universe.
+</p>
+<p>Finally, the ViewPlatform is referenced by a View
+object that specifies
+all of the parameters needed to render the scene from the point of view
+of the ViewPlatform. Also referenced by the View object are other
+objects that contain information, such as the drawing canvas into which
+Java 3D renders, the screen that contains the canvas, and information
+about the physical environment.
+</p>
+<p>
+</p>
+<h3>Recipe for a Java 3D Program</h3>
+<p>The following steps are taken by the example program to create the
+scene graph elements and link them together. Java 3D will then render
+the scene graph and display the graphics in a window on the screen:</p>
+<ul>
+1. Create a Canvas3D object and add it to the Applet panel.
+ <p>2. Create a BranchGroup as the root of the scene branch graph.</p>
+ <p>3. Construct a Shape3D node with a TransformGroup node above it.</p>
+ <p>4. Attach a RotationInterpolator behavior to the TransformGroup.</p>
+ <p>5. Call the simple universe utility function to do the following:</p>
+ <ul>
+a. Establish a virtual universe with a single high-resolution Locale
+(see "<a href="SceneGraphOverview.html">Scene Graph Basics</a>").
+ <p>b. Create the PhysicalBody, PhysicalEnvironment, View, and
+ViewPlat-form objects.</p>
+ <p>c. Create a BranchGroup as the root of the view platform branch
+graph.</p>
+ <p>d. Insert the view platform branch graph into the Locale.</p>
+ </ul>
+6. Insert the scene branch graph into the simple universe's Locale.
+</ul>
+<p>The Java 3D renderer then starts running in an infinite loop. The
+renderer conceptually performs the following operations:</p>
+<pre> while(true) {<br> Process input<br> If (request to exit) break<br> Perform Behaviors<br> Traverse the scene graph and render visible objects<br> }<br> Cleanup and exit<br></pre>
+<h3>HelloUniverse: A Sample Java
+3D Program</h3>
+<p><a href="HelloUniverse.html">Click here</a> to see code fragments
+from a simple program, <code>HelloUniverse.java</code>,
+that creates a cube and a RotationInterpolator behavior object that
+rotates the cube at a constant rate of pi/2 radians per second.<br>
+</p>
+<h2>Other Documents<br>
+</h2>
+<p>Here are other documents that provide explanatory material,
+previously included as part of
+the Java 3D API Specification Guide.<br>
+</p>
+<ul>
+ <li><a href="Concepts.html">Java 3D Concepts</a></li>
+ <li><a href="SceneGraphOverview.html">Scene Graph Basics</a></li>
+ <li><a href="VirtualUniverse.html">Scene Graph Superstructure</a></li>
+ <li><a href="SceneGraphSharing.html">Reusing Scene Graphs</a></li>
+ <li><a href="ViewModel.html">View Model</a></li>
+ <li><a href="Behaviors.html">Behaviors and Interpolators</a></li>
+ <li><a href="Rendering.html">Execution and Rendering Model</a></li>
+ <li><a href="Immediate.html">Immediate-Mode Rendering</a></li>
+</ul>
+<p><br>
+</p>
+</body>
+</html>
diff --git a/src/classes/share/javax/media/j3d/package.html b/src/classes/share/javax/media/j3d/package.html
new file mode 100644
index 0000000..b8a3e9a
--- /dev/null
+++ b/src/classes/share/javax/media/j3d/package.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>javax.media.j3d</title>
+</head>
+<body>
+<p>Provides the core set of classes for the
+Java&nbsp;3D<sup><font size="-2">TM</font></sup> API; <a
+ href="doc-files/intro.html">click here</a> for more information,
+including explanatory material that was formerly found in the guide.
+</p>
+<p>The Java 3D API is an application
+programming interface used for writing three-dimensional graphics
+applications and applets. It gives developers high-level constructs for
+creating and manipulating 3D geometry and for constructing the
+structures used in rendering that geometry. Application developers can
+describe very large virtual worlds using these constructs, which
+provide Java 3D with enough information to render these worlds
+efficiently.
+</p>
+<p><i>NOTE: Prior to version 1.4, the
+Java&nbsp;3D API was formally specified by a
+separate Java&nbsp;3D API Specification Guide, published separately
+from the javadoc. As of version 1.4,
+the javadoc-generated API reference is definitive. Relevant portions of
+the guide have been included <a href="doc-files/intro.html">here</a>
+and supersede any previously
+published
+information.</i>
+</p>
+</body>
+</html>