javax.media.j3d
Class GeometryArray

java.lang.Object
  |
  +--javax.media.j3d.SceneGraphObject
        |
        +--javax.media.j3d.NodeComponent
              |
              +--javax.media.j3d.Geometry
                    |
                    +--javax.media.j3d.GeometryArray
Direct Known Subclasses:
GeometryStripArray, IndexedGeometryArray, LineArray, PointArray, QuadArray, TriangleArray

public abstract class GeometryArray
extends Geometry

The GeometryArray object contains separate arrays of positional coordinates, colors, normals, and texture coordinates that describe point, line, or polygon geometry. This class is extended to create the various primitive types (e.g., lines, triangle strips, etc.).

All colors used in the geometry array object must be in the range [0.0,1.0]. Values outside this range will cause undefined results. All normals used in the geometry array object must be unit length vectors. That is their geometric length must be 1.0. Normals that are not unit length vectors will cause undefined results.

Note that the term coordinate, as used in the method names and method descriptions, actually refers to a set of x, y, and z coordinates representing the position of a single vertex. The term coordinates (plural) is used to indicate sets of x, y, and z coordinates for multiple vertices. This is somewhat at odds with the mathematical definition of a coordinate, but is used as a convenient shorthand. Similarly, the term texture coordinate is used to indicate a set of texture coordinates for a single vertex, while the term texture coordinates (plural) is used to indicate sets of texture coordinates for multiple vertices.


Field Summary
static int ALLOW_COLOR_READ
          Specifies that this GeometryArray allows reading the array of colors.
static int ALLOW_COLOR_WRITE
          Specifies that this GeometryArray allows writing the array of colors.
static int ALLOW_COORDINATE_READ
          Specifies that this GeometryArray allows reading the array of coordinates.
static int ALLOW_COORDINATE_WRITE
          Specifies that this GeometryArray allows writing the array of coordinates.
static int ALLOW_COUNT_READ
          Specifies that this GeometryArray allows reading the count information for this object.
static int ALLOW_FORMAT_READ
          Specifies that this GeometryArray allows reading the vertex format information for this object.
static int ALLOW_NORMAL_READ
          Specifies that this GeometryArray allows reading the array of normals.
static int ALLOW_NORMAL_WRITE
          Specifies that this GeometryArray allows writing the array of normals.
static int ALLOW_TEXCOORD_READ
          Specifies that this GeometryArray allows reading the array of texture coordinates.
static int ALLOW_TEXCOORD_WRITE
          Specifies that this GeometryArray allows writing the array of texture coordinates.
static int COLOR_3
          Specifies that this GeometryArray contains an array of colors without alpha.
static int COLOR_4
          Specifies that this GeometryArray contains an array of colors with alpha.
static int COORDINATES
          Specifies that this GeometryArray contains an array of coordinates.
static int NORMALS
          Specifies that this GeometryArray contains an array of normals.
static int TEXTURE_COORDINATE_2
          Specifies that this GeometryArray contains an array of texture coordinates.
static int TEXTURE_COORDINATE_3
          Specifies that this GeometryArray contains an array of texture coordinates.
 
Fields inherited from class javax.media.j3d.Geometry
ALLOW_INTERSECT
 
Constructor Summary
GeometryArray(int vertexCount, int vertexFormat)
          Constructs an empty GeometryArray object with the specified number of vertices and vertex format.
 
Method Summary
 void getColor(int index, byte[] color)
          Gets the color associated with the vertex at the specified index for this object.
 void getColor(int index, Color3b color)
          Gets the color associated with the vertex at the specified index for this object.
 void getColor(int index, Color3f color)
          Gets the color associated with the vertex at the specified index for this object.
 void getColor(int index, Color4b color)
          Gets the color associated with the vertex at the specified index for this object.
 void getColor(int index, Color4f color)
          Gets the color associated with the vertex at the specified index for this object.
 void getColor(int index, float[] color)
          Gets the color associated with the vertex at the specified index for this object.
 void getColors(int index, byte[] colors)
          Gets the colors associated with the vertices starting at the specified index for this object.
 void getColors(int index, Color3b[] colors)
          Gets the colors associated with the vertices starting at the specified index for this object.
 void getColors(int index, Color3f[] colors)
          Gets the colors associated with the vertices starting at the specified index for this object.
 void getColors(int index, Color4b[] colors)
          Gets the colors associated with the vertices starting at the specified index for this object.
 void getColors(int index, Color4f[] colors)
          Gets the colors associated with the vertices starting at the specified index for this object.
 void getColors(int index, float[] colors)
          Gets the colors associated with the vertices starting at the specified index for this object.
 void getCoordinate(int index, double[] coordinate)
          Gets the coordinate associated with the vertex at the specified index for this object.
 void getCoordinate(int index, float[] coordinate)
          Gets the coordinate associated with the vertex at the specified index for this object using data in texCoords
 void getCoordinate(int index, Point3d coordinate)
          Gets the coordinate associated with the vertex at the specified index for this object.
 void getCoordinate(int index, Point3f coordinate)
          Gets the coordinate associated with the vertex at the specified index for this object.
 void getCoordinates(int index, double[] coordinates)
          Gets the coordinates associated with the vertices starting at the specified index for this object.
 void getCoordinates(int index, float[] coordinates)
          Gets the coordinates associated with the vertices starting at the specified index for this object.
 void getCoordinates(int index, Point3d[] coordinates)
          Gets the coordinates associated with the vertices starting at the specified index for this object.
 void getCoordinates(int index, Point3f[] coordinates)
          Gets the coordinates associated with the vertices starting at the specified index for this object.
 void getNormal(int index, float[] normal)
          Gets the normal associated with the vertex at the specified index for this object.
 void getNormal(int index, Vector3f normal)
          Gets the normal associated with the vertex at the specified index for this object.
 void getNormals(int index, float[] normals)
          Gets the normals associated with the vertices starting at the specified index for this object.
 void getNormals(int index, Vector3f[] normals)
          Gets the normals associated with the vertices starting at the specified index for this object.
 void getTextureCoordinate(int index, float[] texCoord)
          Gets the texture coordinate associated with the vertex at the specified index for this object.
 void getTextureCoordinate(int index, Point2f texCoord)
          Gets the texture coordinate associated with the vertex at the specified index for this object.
 void getTextureCoordinate(int index, Point3f texCoord)
          Gets the texture coordinate associated with the vertex at the specified index for this object.
 void getTextureCoordinates(int index, float[] texCoords)
          Gets the texture coordinates associated with the vertices starting at the specified index for this object.
 void getTextureCoordinates(int index, Point2f[] texCoords)
          Gets the texture coordinates associated with the vertices starting at the specified index for this object.
 void getTextureCoordinates(int index, Point3f[] texCoords)
          Gets the texture coordinates associated with the vertices starting at the specified index for this object.
 int getVertexCount()
          Retrieves the number of vertices in this GeometryArray
 int getVertexFormat()
          Retrieves the vertexFormat of this GeometryArray
 void setColor(int index, byte[] color)
          Sets the color associated with the vertex at the specified index for this object.
 void setColor(int index, Color3b color)
          Sets the color associated with the vertex at the specified index for this object.
 void setColor(int index, Color3f color)
          Sets the color associated with the vertex at the specified index for this object.
 void setColor(int index, Color4b color)
          Sets the color associated with the vertex at the specified index for this object.
 void setColor(int index, Color4f color)
          Sets the color associated with the vertex at the specified index for this object.
 void setColor(int index, float[] color)
          Sets the color associated with the vertex at the specified index for this object.
 void setColors(int index, byte[] colors)
          Sets the colors associated with the vertices starting at the specified index for this object.
 void setColors(int index, byte[] colors, int start, int length)
          Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
 void setColors(int index, Color3b[] colors)
          Sets the colors associated with the vertices starting at the specified index for this object.
 void setColors(int index, Color3b[] colors, int start, int length)
          Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
 void setColors(int index, Color3f[] colors)
          Sets the colors associated with the vertices starting at the specified index for this object.
 void setColors(int index, Color3f[] colors, int start, int length)
          Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
 void setColors(int index, Color4b[] colors)
          Sets the colors associated with the vertices starting at the specified index for this object.
 void setColors(int index, Color4b[] colors, int start, int length)
          Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
 void setColors(int index, Color4f[] colors)
          Sets the colors associated with the vertices starting at the specified index for this object.
 void setColors(int index, Color4f[] colors, int start, int length)
          Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
 void setColors(int index, float[] colors)
          Sets the colors associated with the vertices starting at the specified index for this object.
 void setColors(int index, float[] colors, int start, int length)
          Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
 void setCoordinate(int index, double[] coordinate)
          Sets the coordinate associated with the vertex at the specified index.
 void setCoordinate(int index, float[] coordinate)
          Sets the coordinate associated with the vertex at the specified index for this object.
 void setCoordinate(int index, Point3d coordinate)
          Sets the coordinate associated with the vertex at the specified index for this object.
 void setCoordinate(int index, Point3f coordinate)
          Sets the coordinate associated with the vertex at the specified index for this object.
 void setCoordinates(int index, double[] coordinates)
          Sets the coordinates associated with the vertices starting at the specified index for this object.
 void setCoordinates(int index, double[] coordinates, int start, int length)
          Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
 void setCoordinates(int index, float[] coordinates)
          Sets the coordinates associated with the vertices starting at the specified index for this object.
 void setCoordinates(int index, float[] coordinates, int start, int length)
          Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
 void setCoordinates(int index, Point3d[] coordinates)
          Sets the coordinates associated with the vertices starting at the specified index for this object.
 void setCoordinates(int index, Point3d[] coordinates, int start, int length)
          Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
 void setCoordinates(int index, Point3f[] coordinates)
          Sets the coordinates associated with the vertices starting at the specified index for this object.
 void setCoordinates(int index, Point3f[] coordinates, int start, int length)
          Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
 void setNormal(int index, float[] normal)
          Sets the normal associated with the vertex at the specified index for this object.
 void setNormal(int index, Vector3f normal)
          Sets the normal associated with the vertex at the specified index for this object.
 void setNormals(int index, float[] normals)
          Sets the normals associated with the vertices starting at the specified index for this object.
 void setNormals(int index, float[] normals, int start, int length)
          Sets the normals associated with the vertices starting at the specified index for this object using data in normals starting at index start and ending at index start+length.
 void setNormals(int index, Vector3f[] normals)
          Sets the normals associated with the vertices starting at the specified index for this object.
 void setNormals(int index, Vector3f[] normals, int start, int length)
          Sets the normals associated with the vertices starting at the specified index for this object using data in normals starting at index start and ending at index start+length.
 void setTextureCoordinate(int index, float[] texCoord)
          Sets the texture coordinate associated with the vertex at the specified index for this object.
 void setTextureCoordinate(int index, Point2f texCoord)
          Sets the texture coordinate associated with the vertex at the specified index for this object.
 void setTextureCoordinate(int index, Point3f texCoord)
          Sets the texture coordinate associated with the vertex at the specified index for this object.
 void setTextureCoordinates(int index, float[] texCoords)
          Sets the texture coordinates associated with the vertices starting at the specified index for this object.
 void setTextureCoordinates(int index, float[] texCoords, int start, int length)
          Sets the texture coordinates associated with the vertices starting at the specified index for this object using data in texCoords starting at index start and ending at index start+length.
 void setTextureCoordinates(int index, Point2f[] texCoords)
          Sets the texture coordinates associated with the vertices starting at the specified index for this object.
 void setTextureCoordinates(int index, Point2f[] texCoords, int start, int length)
          Sets the texture coordinates associated with the vertices starting at the specified index for this object using data in texCoords starting at index start and ending at index start+length.
 void setTextureCoordinates(int index, Point3f[] texCoords)
          Sets the texture coordinates associated with the vertices starting at the specified index for this object.
 void setTextureCoordinates(int index, Point3f[] texCoords, int start, int length)
          Sets the texture coordinates associated with the vertices starting at the specified index for this object.
 
Methods inherited from class javax.media.j3d.NodeComponent
cloneNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree
 
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, duplicateSceneGraphObject, getCapability, getUserData, isCompiled, isLive, setCapability, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALLOW_COORDINATE_READ

public static final int ALLOW_COORDINATE_READ
Specifies that this GeometryArray allows reading the array of coordinates.

ALLOW_COORDINATE_WRITE

public static final int ALLOW_COORDINATE_WRITE
Specifies that this GeometryArray allows writing the array of coordinates.

ALLOW_COLOR_READ

public static final int ALLOW_COLOR_READ
Specifies that this GeometryArray allows reading the array of colors.

ALLOW_COLOR_WRITE

public static final int ALLOW_COLOR_WRITE
Specifies that this GeometryArray allows writing the array of colors.

ALLOW_NORMAL_READ

public static final int ALLOW_NORMAL_READ
Specifies that this GeometryArray allows reading the array of normals.

ALLOW_NORMAL_WRITE

public static final int ALLOW_NORMAL_WRITE
Specifies that this GeometryArray allows writing the array of normals.

ALLOW_TEXCOORD_READ

public static final int ALLOW_TEXCOORD_READ
Specifies that this GeometryArray allows reading the array of texture coordinates.

ALLOW_TEXCOORD_WRITE

public static final int ALLOW_TEXCOORD_WRITE
Specifies that this GeometryArray allows writing the array of texture coordinates.

ALLOW_COUNT_READ

public static final int ALLOW_COUNT_READ
Specifies that this GeometryArray allows reading the count information for this object.

ALLOW_FORMAT_READ

public static final int ALLOW_FORMAT_READ
Specifies that this GeometryArray allows reading the vertex format information for this object.

COORDINATES

public static final int COORDINATES
Specifies that this GeometryArray contains an array of coordinates. This bit must be set.

NORMALS

public static final int NORMALS
Specifies that this GeometryArray contains an array of normals.

COLOR_3

public static final int COLOR_3
Specifies that this GeometryArray contains an array of colors without alpha.

COLOR_4

public static final int COLOR_4
Specifies that this GeometryArray contains an array of colors with alpha. This takes precedence over COLOR_3.

TEXTURE_COORDINATE_2

public static final int TEXTURE_COORDINATE_2
Specifies that this GeometryArray contains an array of texture coordinates.

TEXTURE_COORDINATE_3

public static final int TEXTURE_COORDINATE_3
Specifies that this GeometryArray contains an array of texture coordinates. This takes precedence over TEXTURE_COORDINATE_2.
Constructor Detail

GeometryArray

public GeometryArray(int vertexCount,
                     int vertexFormat)
Constructs an empty GeometryArray object with the specified number of vertices and vertex format.
Parameters:
vertexCount - the number of vertex elements in this GeometryArray
vertexFormat - a mask indicating which components are present in each vertex. This is specified as one or more individual flags that are bitwise "OR"ed together to describe the per-vertex data. The flags include: COORDINATES, to signal the inclusion of vertex positions--always present; NORMALS, to signal the inclusion of per vertex normals; one of COLOR_3, COLOR_4, to signal the inclusion of per vertex colors (without or with color information); one of TEXTURE_COORDINATE_2 or TEXTURE_COORDINATE_3, to signal the inclusion of per-vertex texture coordinates 2D or 3D;
Throws:
java.lang.IllegalArgumentException - if vertexFormat does NOT include coordinates
Method Detail

getVertexCount

public final int getVertexCount()
Retrieves the number of vertices in this GeometryArray
Returns:
number of vertices in this GeometryArray
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getVertexFormat

public final int getVertexFormat()
Retrieves the vertexFormat of this GeometryArray
Returns:
format of vertices in this GeometryArray
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinate

public final void setCoordinate(int index,
                                float[] coordinate)
Sets the coordinate associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
coordinate - source array of 3 values containing the new coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinate

public final void setCoordinate(int index,
                                double[] coordinate)
Sets the coordinate associated with the vertex at the specified index.
Parameters:
index - destination vertex index in this geometry array
coordinate - source array of 3 values containing the new coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinate

public final void setCoordinate(int index,
                                Point3f coordinate)
Sets the coordinate associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
coordinate - a vector containing the new coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinate

public final void setCoordinate(int index,
                                Point3d coordinate)
Sets the coordinate associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
coordinate - a vector containing the new coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 float[] coordinates)
Sets the coordinates associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of 3*n values containing n new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 double[] coordinates)
Sets the coordinates associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of 3*n values containing n new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 Point3f[] coordinates)
Sets the coordinates associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of vectors containing new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 Point3d[] coordinates)
Sets the coordinates associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of vectors containing new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 float[] coordinates,
                                 int start,
                                 int length)
Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of 3*n values containing n new coordinates
start - starting source vertex index in coordinates array.
length - number of vertices to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 double[] coordinates,
                                 int start,
                                 int length)
Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of 3*n values containing n new coordinates
start - starting source vertex index in coordinates array.
length - number of vertices to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 Point3f[] coordinates,
                                 int start,
                                 int length)
Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of vectors containing new coordinates
start - starting source vertex index in coordinates array.
length - number of vertices to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setCoordinates

public final void setCoordinates(int index,
                                 Point3d[] coordinates,
                                 int start,
                                 int length)
Sets the coordinates associated with the vertices starting at the specified index for this object using coordinate data starting from vertex index start for length vertices.
Parameters:
index - starting destination vertex index in this geometry array
coordinates - source array of vectors containing new coordinates
start - starting source vertex index in coordinates array.
length - number of vertices to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setColor

public final void setColor(int index,
                           float[] color)
Sets the color associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
color - source array of 3 or 4 values containing the new color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColor

public final void setColor(int index,
                           byte[] color)
Sets the color associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
color - source array of 3 or 4 values containing the new color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColor

public final void setColor(int index,
                           Color3f color)
Sets the color associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
color - a vector containing the new color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColor

public final void setColor(int index,
                           Color4f color)
Sets the color associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
color - a vector containing the new color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColor

public final void setColor(int index,
                           Color3b color)
Sets the color associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
color - a vector containing the new color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColor

public final void setColor(int index,
                           Color4b color)
Sets the color associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
color - a vector containing the new color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            float[] colors)
Sets the colors associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of 3*n or 4*n values containing n new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            byte[] colors)
Sets the colors associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of 3*n or 4*n values containing n new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color3f[] colors)
Sets the colors associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color4f[] colors)
Sets the colors associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color3b[] colors)
Sets the colors associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color4b[] colors)
Sets the colors associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            float[] colors,
                            int start,
                            int length)
Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of 3*n or 4*n values containing n new colors
start - starting source vertex index in colors array.
length - number of colors to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            byte[] colors,
                            int start,
                            int length)
Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of 3*n or 4*n values containing n new colors
start - starting source vertex index in colors array.
length - number of colors to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color3f[] colors,
                            int start,
                            int length)
Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
start - starting source vertex index in colors array.
length - number of colors to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color4f[] colors,
                            int start,
                            int length)
Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
start - starting source vertex index in colors array.
length - number of colors to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color3b[] colors,
                            int start,
                            int length)
Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
start - starting source vertex index in colors array.
length - number of colors to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setColors

public final void setColors(int index,
                            Color4b[] colors,
                            int start,
                            int length)
Sets the colors associated with the vertices starting at the specified index for this object using data in colors starting at index start for length colors.
Parameters:
index - starting destination vertex index in this geometry array
colors - source array of vectors containing new colors
start - starting source vertex index in colors array.
length - number of colors to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if COLOR bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setNormal

public final void setNormal(int index,
                            float[] normal)
Sets the normal associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
normal - source array of 3 values containing the new normal
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if NORMALS bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setNormal

public final void setNormal(int index,
                            Vector3f normal)
Sets the normal associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
normal - the vector containing the new normal
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if NORMALS bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setNormals

public final void setNormals(int index,
                             float[] normals)
Sets the normals associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
normals - source array of 3*n values containing n new normals
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if NORMALS bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setNormals

public final void setNormals(int index,
                             Vector3f[] normals)
Sets the normals associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
normals - source array of vectors containing new normals
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if NORMALS bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setNormals

public final void setNormals(int index,
                             float[] normals,
                             int start,
                             int length)
Sets the normals associated with the vertices starting at the specified index for this object using data in normals starting at index start and ending at index start+length.
Parameters:
index - starting destination vertex index in this geometry array
normals - source array of 3*n values containing n new normals
start - starting source vertex index in normals array.
length - number of normals to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if NORMALS bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setNormals

public final void setNormals(int index,
                             Vector3f[] normals,
                             int start,
                             int length)
Sets the normals associated with the vertices starting at the specified index for this object using data in normals starting at index start and ending at index start+length.
Parameters:
index - starting destination vertex index in this geometry array
normals - source array of vectors containing new normals
start - starting source vertex index in normals array.
length - number of normals to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if NORMALS bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinate

public final void setTextureCoordinate(int index,
                                       float[] texCoord)
Sets the texture coordinate associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
texCoord - source array of 2 or 3 values containing the new texture coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinate

public final void setTextureCoordinate(int index,
                                       Point2f texCoord)
Sets the texture coordinate associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
texCoord - the vector containing the new texture coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinate

public final void setTextureCoordinate(int index,
                                       Point3f texCoord)
Sets the texture coordinate associated with the vertex at the specified index for this object.
Parameters:
index - destination vertex index in this geometry array
texCoord - the vector containing the new texture coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinates

public final void setTextureCoordinates(int index,
                                        float[] texCoords)
Sets the texture coordinates associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
texCoords - source array of 2*n or 3*n values containing n new texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinates

public final void setTextureCoordinates(int index,
                                        Point2f[] texCoords)
Sets the texture coordinates associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
texCoords - source array of vectors containing new texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinates

public final void setTextureCoordinates(int index,
                                        Point3f[] texCoords)
Sets the texture coordinates associated with the vertices starting at the specified index for this object. The entire source array is copied to this geometry array.
Parameters:
index - starting destination vertex index in this geometry array
texCoords - source array of vectors containing new texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinates

public final void setTextureCoordinates(int index,
                                        float[] texCoords,
                                        int start,
                                        int length)
Sets the texture coordinates associated with the vertices starting at the specified index for this object using data in texCoords starting at index start and ending at index start+length.
Parameters:
index - starting destination vertex index in this geometry array
texCoords - source array of 2*n or 3*n values containing n new texture coordinates
start - starting source vertex index in texCoords array.
length - number of texture Coordinates to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinates

public final void setTextureCoordinates(int index,
                                        Point2f[] texCoords,
                                        int start,
                                        int length)
Sets the texture coordinates associated with the vertices starting at the specified index for this object using data in texCoords starting at index start and ending at index start+length.
Parameters:
index - starting destination vertex index in this geometry array
texCoords - source array of vectors containing new texture coordinates
start - starting source vertex index in texCoords array.
length - number of texture Coordinates to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

setTextureCoordinates

public final void setTextureCoordinates(int index,
                                        Point3f[] texCoords,
                                        int start,
                                        int length)
Sets the texture coordinates associated with the vertices starting at the specified index for this object. starting at index start and ending at index start+length.
Parameters:
index - starting destination vertex index in this geometry array
texCoords - source array of vectors containing new texture coordinates
start - starting source vertex index in texCoords array.
length - number of texture Coordinates to be copied.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph
ArrayIndexOutOfBoundsException - if TEXTURE bit NOT set in constructor vertexFormat or array index for element is out of bounds.

getCoordinate

public final void getCoordinate(int index,
                                float[] coordinate)
Gets the coordinate associated with the vertex at the specified index for this object using data in texCoords
Parameters:
index - source vertex index in this geometry array
coordinate - destination array of 3 values that will receive the coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getCoordinate

public final void getCoordinate(int index,
                                double[] coordinate)
Gets the coordinate associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
coordinate - destination array of 3 values that will receive the coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getCoordinate

public final void getCoordinate(int index,
                                Point3f coordinate)
Gets the coordinate associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
coordinate - a vector that will receive the coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getCoordinate

public final void getCoordinate(int index,
                                Point3d coordinate)
Gets the coordinate associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
coordinate - a vector that will receive the coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getCoordinates

public final void getCoordinates(int index,
                                 float[] coordinates)
Gets the coordinates associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of vertices copied.
Parameters:
index - starting source vertex index in this geometry array
coordinates - destination array of 3*n values that will receive new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getCoordinates

public final void getCoordinates(int index,
                                 double[] coordinates)
Gets the coordinates associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of vertices copied.
Parameters:
index - starting source vertex index in this geometry array
coordinates - destination array of 3*n values that will receive new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getCoordinates

public final void getCoordinates(int index,
                                 Point3f[] coordinates)
Gets the coordinates associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of vertices copied.
Parameters:
index - starting source vertex index in this geometry array
coordinates - destination array of vectors that will receive new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getCoordinates

public final void getCoordinates(int index,
                                 Point3d[] coordinates)
Gets the coordinates associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of vertices copied.
Parameters:
index - starting source vertex index in this geometry array
coordinates - destination array of vectors that will receive new coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColor

public final void getColor(int index,
                           float[] color)
Gets the color associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
color - destination array of 3 or 4 values that will receive the color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColor

public final void getColor(int index,
                           byte[] color)
Gets the color associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
color - destination array of 3 or 4 values that will receive the color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColor

public final void getColor(int index,
                           Color3f color)
Gets the color associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
color - a vector that will receive the color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColor

public final void getColor(int index,
                           Color4f color)
Gets the color associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
color - a vector that will receive the color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColor

public final void getColor(int index,
                           Color3b color)
Gets the color associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
color - a vector that will receive the color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColor

public final void getColor(int index,
                           Color4b color)
Gets the color associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
color - a vector that will receive the color
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColors

public final void getColors(int index,
                            float[] colors)
Gets the colors associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of colors copied.
Parameters:
index - starting source vertex index in this geometry array
colors - destination array of 3*n or 4*n values that will receive n new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColors

public final void getColors(int index,
                            byte[] colors)
Gets the colors associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of colors copied.
Parameters:
index - starting source vertex index in this geometry array
colors - destination array of 3*n or 4*n values that will receive new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColors

public final void getColors(int index,
                            Color3f[] colors)
Gets the colors associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of colors copied.
Parameters:
index - starting source vertex index in this geometry array
colors - destination array of vectors that will receive new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColors

public final void getColors(int index,
                            Color4f[] colors)
Gets the colors associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of colors copied.
Parameters:
index - starting source vertex index in this geometry array
colors - destination array of vectors that will receive new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColors

public final void getColors(int index,
                            Color3b[] colors)
Gets the colors associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of colors copied.
Parameters:
index - starting source vertex index in this geometry array
colors - destination array of vectors that will receive new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getColors

public final void getColors(int index,
                            Color4b[] colors)
Gets the colors associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of colors copied.
Parameters:
index - starting source vertex index in this geometry array
colors - destination array of vectors that will receive new colors
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getNormal

public final void getNormal(int index,
                            float[] normal)
Gets the normal associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
normal - destination array of 3 values that will receive the normal
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getNormal

public final void getNormal(int index,
                            Vector3f normal)
Gets the normal associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
normal - the vector that will receive the normal
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getNormals

public final void getNormals(int index,
                             float[] normals)
Gets the normals associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of normals copied.
Parameters:
index - starting source vertex index in this geometry array
normal - destination array of 3*n values that will receive the normal
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getNormals

public final void getNormals(int index,
                             Vector3f[] normals)
Gets the normals associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of normals copied.
Parameters:
index - starting source vertex index in this geometry array
normals - destination array of vectors that will receive the normals
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getTextureCoordinate

public final void getTextureCoordinate(int index,
                                       float[] texCoord)
Gets the texture coordinate associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
texCoord - array of 2 or 3 values that will receive the texture coordinate
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getTextureCoordinate

public final void getTextureCoordinate(int index,
                                       Point2f texCoord)
Gets the texture coordinate associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
texCoord - the vector that will receive the texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getTextureCoordinate

public final void getTextureCoordinate(int index,
                                       Point3f texCoord)
Gets the texture coordinate associated with the vertex at the specified index for this object.
Parameters:
index - source vertex index in this geometry array
texCoord - the vector that will receive the texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getTextureCoordinates

public final void getTextureCoordinates(int index,
                                        float[] texCoords)
Gets the texture coordinates associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of texture coordinates copied.
Parameters:
index - starting source vertex index in this geometry array
texCoords - destination array of 2*n or 3*n values that will receive n new texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getTextureCoordinates

public final void getTextureCoordinates(int index,
                                        Point2f[] texCoords)
Gets the texture coordinates associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of texture coordinates copied.
Parameters:
index - starting source vertex index in this geometry array
texCoords - destination array of vectors that will receive the texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getTextureCoordinates

public final void getTextureCoordinates(int index,
                                        Point3f[] texCoords)
Gets the texture coordinates associated with the vertices starting at the specified index for this object. The length of the destination array determines the number of texture coordinates copied.
Parameters:
index - starting source vertex index in this geometry array
texCoords - destination array of vectors that will receive the texture coordinates
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph