------------------------------------------------------------------------
$RCSfile: api-changes-1_4.txt,v $
$Revision: 1.2 $
$Date: 2005/10/17 22:54:39 $
------------------------------------------------------------------------
This document conatains proposed API changes to the Java 3D 1.4 API
that deviate from the 1.3 API.

This file must be updated to record the addition or deprecation of any
public or protected class, interface, field, constructor, or method to
the Java 3D API.

The one exception to this rule is that you don't need to update this
file when adding a non-final (i.e., virtual) method to a class if that
method--with exactly the same signature--already exists in a
superclass.  For example, adding a "toString" method to a j3d object
doesn't require an entry in this file.  Likewise, adding duplicateNode
or cloneNode methods to Node subclasses doesn't require an entry in
this file.

No incompatible changes to the Java 3D 1.3 API are allowed.


I. New/deprecated fields, constructors, methods

    Canvas3D
    --------
    New methods:
	public boolean isShadingLanguageSupported(int shadingLanguage)


    SceneGraphObject
    ----------------
    New methods:
	public void setName(String name)
	public String getName()


    GeometryArray
    -------------
    New fields:
	public static final int ALLOW_VERTEX_ATTR_READ
	public static final int ALLOW_VERTEX_ATTR_WRITE
	public static final int VERTEX_ATTRIBUTES

    New constructors:
	public GeometryArray(int vertexCount,
			     int vertexFormat,
			     int texCoordSetCount,
			     int[] texCoordSetMap,
			     int vertexAttrCount,
			     int[] vertexAttrSizes)

    New methods:
	public int getVertexAttrCount()
	public void getVertexAttrSizes(int[] vertexAttrSizes)
	public void setVertexAttr(int vertexAttrNum, int index,
				  float[] vertexAttr)
	public void setVertexAttr(int vertexAttrNum, int index,
				  Point2f vertexAttr)
	public void setVertexAttr(int vertexAttrNum, int index,
				  Point3f vertexAttr)
	public void setVertexAttr(int vertexAttrNum, int index,
				  Point4f vertexAttr)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   float[] vertexAttrs)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   Point2f[] vertexAttrs)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   Point3f[] vertexAttrs)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   Point4f[] vertexAttrs)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   float[] vertexAttrs,
				   int start, int length)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   Point2f[] vertexAttrs,
				   int start, int length)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   Point3f[] vertexAttrs,
				   int start, int length)
	public void setVertexAttrs(int vertexAttrNum, int index,
				   Point4f[] vertexAttrs,
				   int start, int length)
	public void getVertexAttr(int vertexAttrNum, int index,
				  float[] vertexAttr)
	public void getVertexAttr(int vertexAttrNum, int index,
				  Point2f vertexAttr)
	public void getVertexAttr(int vertexAttrNum, int index,
				  Point3f vertexAttr)
	public void getVertexAttr(int vertexAttrNum, int index,
				  Point4f vertexAttr)
	public void getVertexAttrs(int vertexAttrNum, int index,
				   float[] vertexAttrs)
	public void getVertexAttrs(int vertexAttrNum, int index,
				   Point2f[] vertexAttrs)
	public void getVertexAttrs(int vertexAttrNum, int index,
				   Point3f[] vertexAttrs)
	public void getVertexAttrs(int vertexAttrNum, int index,
				   Point4f[] vertexAttrs)
	public void setInitialVertexAttrIndex(int vertexAttrNum,
					      int initialVertexAttrIndex)
	public int getInitialVertexAttrIndex(int vertexAttrNum)
	public void setVertexAttrRefBuffer(int vertexAttrNum, J3DBuffer vertexAttrs)
	public J3DBuffer getVertexAttrRefBuffer(int vertexAttrNum)
	public void setVertexAttrRefFloat(int vertexAttrNum, float[] vertexAttrs)
	public float[] getVertexAttrRefFloat(int vertexAttrNum)


    PointArray
    ----------
    New constructors:
	public PointArray(int vertexCount,
			  int vertexFormat,
			  int texCoordSetCount,
			  int[] texCoordSetMap,
			  int vertexAttrCount,
			  int[] vertexAttrSizes)


    LineArray
    ---------
    New constructors:
	public LineArray(int vertexCount,
			 int vertexFormat,
			 int texCoordSetCount,
			 int[] texCoordSetMap,
			 int vertexAttrCount,
			 int[] vertexAttrSizes)


    TriangleArray
    -------------
    New constructors:
	public TriangleArray(int vertexCount,
			     int vertexFormat,
			     int texCoordSetCount,
			     int[] texCoordSetMap,
			     int vertexAttrCount,
			     int[] vertexAttrSizes)


    QuadArray
    ---------
    New constructors:
	public QuadArray(int vertexCount,
			 int vertexFormat,
			 int texCoordSetCount,
			 int[] texCoordSetMap,
			 int vertexAttrCount,
			 int[] vertexAttrSizes)


    GeometryStripArray
    ------------------
    New constructors:
	public GeometryStripArray(int vertexCount,
				  int vertexFormat,
				  int texCoordSetCount,
				  int[] texCoordSetMap,
				  int vertexAttrCount,
				  int[] vertexAttrSizes,
				  int[] stripVertexCounts)


    LineStripArray
    --------------
    New constructors:
	public LineStripArray(int vertexCount,
			      int vertexFormat,
			      int texCoordSetCount,
			      int[] texCoordSetMap,
			      int vertexAttrCount,
			      int[] vertexAttrSizes,
			      int[] stripVertexCounts)


    TriangleStripArray
    ------------------
    New constructors:
	public TriangleStripArray(int vertexCount,
				  int vertexFormat,
				  int texCoordSetCount,
				  int[] texCoordSetMap,
				  int vertexAttrCount,
				  int[] vertexAttrSizes,
				  int[] stripVertexCounts)


    TriangleFanArray
    ----------------
    New constructors:
	public TriangleFanArray(int vertexCount,
				int vertexFormat,
				int texCoordSetCount,
				int[] texCoordSetMap,
				int vertexAttrCount,
				int[] vertexAttrSizes,
				int[] stripVertexCounts)


    IndexedGeometryArray
    --------------------
    New constructors:
	public IndexedGeometryArray(int vertexCount,
				    int vertexFormat,
				    int texCoordSetCount,
				    int[] texCoordSetMap,
				    int vertexAttrCount,
				    int[] vertexAttrSizes,
				    int indexCount)

    New fields:
	public static final int ALLOW_VERTEX_ATTR_INDEX_READ
	public static final int ALLOW_VERTEX_ATTR_INDEX_WRITE

    New methods:
	public void setInitialVertexAttrIndex(int vertexAttrNum,
					      int initialVertexAttrIndex)
	public void setVertexAttrIndex(int vertexAttrNum,
				       int index,
				       int vertexAttrIndex)
	public void setVertexAttrIndices(int vertexAttrNum,
					 int index,
					 int[] vertexAttrIndices)
	public int getVertexAttrIndex(int vertexAttrNum, int index)
	public void getVertexAttrIndices(int vertexAttrNum,
					 int index,
					 int[] vertexAttrIndices)


    IndexedPointArray
    ----------------
    New constructors:
	public IndexedPointArray(int vertexCount,
				 int vertexFormat,
				 int texCoordSetCount,
				 int[] texCoordSetMap,
				 int vertexAttrCount,
				 int[] vertexAttrSizes,
				 int indexCount)


    IndexedLineArray
    ----------------
    New constructors:
	public IndexedLineArray(int vertexCount,
				int vertexFormat,
				int texCoordSetCount,
				int[] texCoordSetMap,
				int vertexAttrCount,
				int[] vertexAttrSizes,
				int indexCount)


    IndexedTriangleArray
    ----------------
    New constructors:
	public IndexedTriangleArray(int vertexCount,
				    int vertexFormat,
				    int texCoordSetCount,
				    int[] texCoordSetMap,
				    int vertexAttrCount,
				    int[] vertexAttrSizes,
				    int indexCount)


    IndexedQuadArray
    ----------------
    New constructors:
	public IndexedQuadArray(int vertexCount,
				int vertexFormat,
				int texCoordSetCount,
				int[] texCoordSetMap,
				int vertexAttrCount,
				int[] vertexAttrSizes,
				int indexCount)


    IndexedGeometryStripArray
    -------------------------
    New constructors:
	public IndexedGeometryStripArray(int vertexCount,
					 int vertexFormat,
					 int texCoordSetCount,
					 int[] texCoordSetMap,
					 int vertexAttrCount,
					 int[] vertexAttrSizes,
					 int indexCount
					 int[] stripIndexCounts)


    IndexedLineStripArray
    -------------------------
    New constructors:
	public IndexedLineStripArray(int vertexCount,
				     int vertexFormat,
				     int texCoordSetCount,
				     int[] texCoordSetMap,
				     int vertexAttrCount,
				     int[] vertexAttrSizes,
				     int indexCount
				     int[] stripIndexCounts)


    IndexedTriangleStripArray
    -------------------------
    New constructors:
	public IndexedTriangleStripArray(int vertexCount,
					 int vertexFormat,
					 int texCoordSetCount,
					 int[] texCoordSetMap,
					 int vertexAttrCount,
					 int[] vertexAttrSizes,
					 int indexCount
					 int[] stripIndexCounts)


    IndexedTriangleFanArray
    -------------------------
    New constructors:
	public IndexedTriangleFanArray(int vertexCount,
				       int vertexFormat,
				       int texCoordSetCount,
				       int[] texCoordSetMap,
				       int vertexAttrCount,
				       int[] vertexAttrSizes,
				       int indexCount
				       int[] stripIndexCounts)


    Node
    ----
    New fields:
	public static final int ALLOW_PARENT_READ
	public static final int ALLOW_LOCALE_READ

    New methods:
	public Locale getLocale()


    VirtualUniverse
    ---------------
    New methods:
	public void addGraphStructureChangeListener(GraphStructureChangeListener listener)
	public void removeGraphStructureChangeListener(GraphStructureChangeListener listener)
	public void addShaderErrorListener(ShaderErrorListener listener)
	public void removeShaderErrorListener(ShaderErrorListener listener)


    Locale
    ------
    New methods:
	public PickInfo[] pickAll( int mode, int flags, PickShape pickShape )
	public PickInfo[] pickAllSorted( int mode, int flags, PickShape pickShape )
	public PickInfo pickClosest( int mode, int flags, PickShape pickShape )
	public PickInfo pickAny( int mode, int flags, PickShape pickShape )


    BranchGroup
    -----------
    New methods:
	public PickInfo[] pickAll( int mode, int flags, PickShape pickShape )
	public PickInfo[] pickAllSorted( int mode, int flags, PickShape pickShape )
	public PickInfo pickClosest( int mode, int flags, PickShape pickShape )
	public PickInfo pickAny( int mode, int flags, PickShape pickShape )


    Sensor
    ------
    Deprecated fields:
	public static final int PREDICT_NONE
	public static final int PREDICT_NEXT_FRAME_TIME
	public static final int NO_PREDICTOR
	public static final int HEAD_PREDICTOR
	public static final int HAND_PREDICTOR

    Deprecated methods:
	public void setPredictor(int predictor)
	public int getPredictor()
	public void setPredictionPolicy(int policy)
	public int getPredictionPolicy()
	public void getRead(Transform3D read, long deltaT)


    RenderingAttributes
    -------------------
    New fields:
	public static final int ALLOW_DEPTH_TEST_FUNCTION_READ
	public static final int ALLOW_DEPTH_TEST_FUNCTION_WRITE
	public static final int ALLOW_STENCIL_ATTRIBUTES_READ
	public static final int ALLOW_STENCIL_ATTRIBUTES_WRITE
        public static final int ROP_CLEAR
        public static final int ROP_AND
        public static final int ROP_AND_REVERSE
        public static final int ROP_AND_INVERTED
        public static final int ROP_NOOP
        public static final int ROP_OR
        public static final int ROP_NOR
        public static final int ROP_EQUIV
        public static final int ROP_INVERT
        public static final int ROP_OR_REVERSE
        public static final int ROP_COPY_INVERTED
        public static final int ROP_OR_INVERTED
        public static final int ROP_NAND
        public static final int ROP_SET
	public static final int STENCIL_KEEP
	public static final int STENCIL_ZERO
	public static final int STENCIL_REPLACE
	public static final int STENCIL_INCR
	public static final int STENCIL_DECR
	public static final int STENCIL_INVERT


    New methods:
	public void setDepthTestFunction(int function)
	public int getDepthTestFunction()
	public void setStencilEnable(boolean enable)
	public boolean getStencilEnable()
	public void setStencilOp(int failOp, int zFailOp, int zPassOp)
	public void setStencilOp(int[] stencilOps)
	public void getStencilOp(int[] stencilOps)
	public void setStencilFunction(int function, int refValue, int compareMask)
	public void setStencilFunction(int[] params)
	public void getStencilFunction(int[] params)
	public void setStencilWriteMask(int mask)
	public int getStencilWriteMask()


    Font3D
    ------
    New methods:
	public GeometryArray getGlyphGeometry(char c)


    GraphicsConfigTemplate3D
    ------------------------
    New methods:
	public void setStencilSize(int value)
	public int getStencilSize()


    TransparencyAttributes
    ----------------------
    New fields:
	public static final int BLEND_DST_COLOR
	public static final int BLEND_ONE_MINUS_DST_COLOR
	public static final int BLEND_SRC_COLOR
	public static final int BLEND_ONE_MINUS_SRC_COLOR


II. Reparented classes

    NONE


III. New classes and interfaces (in javax.media.j3d)

    ShaderAppearance
    ----------------
	public class ShaderAppearance extends Appearance

    ShaderAttributeSet
    ------------------
	public class ShaderAttributeSet extends NodeComponent

    ShaderAttribute
    ---------------
	public abstract class ShaderAttribute extends NodeComponent

    ShaderAttributeBinding
    ----------------------
	public class ShaderAttributeBinding extends ShaderAttribute

    ShaderAttributeObject
    ---------------------
	public abstract class ShaderAttributeObject extends ShaderAttribute

    ShaderAttributeValue
    --------------------
	public class ShaderAttributeValue extends ShaderAttributeObject

    ShaderAttributeArray
    --------------------
	public class ShaderAttributeArray extends ShaderAttributeObject

    Shader
    ------
	public abstract class Shader extends NodeComponent

    SourceCodeShader
    ----------------
	public class SourceCodeShader extends Shader

    ShaderProgram
    -------------
	public abstract class ShaderProgram extends NodeComponent

    CgShaderProgram
    ---------------
	public class CgShaderProgram extends ShaderProgram

    GLSLShaderProgram
    -----------------
	public class GLSLShaderProgram extends ShaderProgram

    ShaderError
    -----------
	public class ShaderError extends Object

    ShaderErrorListener
    -------------------
	public interface ShaderErrorListener

    GraphStructureChangeListener
    ----------------------------
	public interface GraphStructureChangeListener

    PickInfo
    --------
	public class PickInfo extends Object

    PickInfo.IntersectionInfo
    -------------------------
	public class PickInfo.IntersectionInfo extends Object


IV. Deprecated classes and interfaces (in javax.media.j3d)

    CompressedGeometry
    CompressedGeometryHeader
    PickPoint
    Morph
