Extensible 3D (X3D) language bindings
Part 2:  Java

Annex B

(normative)

Abstract node interfaces

--- X3D separator bar ---

cube B.1 Introduction and topics

B.1.1 Introduction

This annex provides the definition of the interface signature for each interface that represents the abstract node instance defined in IS0/IEC 19775-2 (see 2.[19775]).

B.1.2 Topics

See Table B.1 for the topics in this clause.

Table B.1 — Topics

B.1.3 Conventions

This annex describes all the known interfaces that represent abstract node types. It also defines the other types such as interfaces that represent fields scenes etc. The convention used is to provide the definition of the class using the Java language syntax as would be seen in a Java source file.

The naming convention used by to construct interfaces follows these rules:

Extra convenience methods may be supplied by the interfaces on an as-desired basis.

--- X3D separator bar ---

cube B.2 Node type interfaces

B.2.1 X3DAppearanceChildNode

public interface X3DAppearanceChildNode extends X3DNode {
}

B.2.2 X3DAppearanceNode

public interface X3DAppearanceNode extends X3DNode {
}

B.2.3 X3DAudioClipNode

public interface X3DAudioClipNode
    extends X3DTimeDependentNode, X3DUrlObject {

    public String getDescription();

    public void setDescription(String str);

    public float getPitch();

    public void setPitch(float pitch) throws InvalidFieldValueException;

    public double getDuration();

    public getDuration(double time);
}

B.2.4 X3DBackgroundNode

public interface X3DBackgroundNode extends X3DBindableNode {

    public int getNumSkyAngle();

    public void getSkyAngle(float[] angles);

    public void setSkyAngle(float[] angles);

    public int getNumGroundAngle();

    public void getGroundAngle(float[] angle);

    public void setGroundAngle(float[] angle);

    public int getNumSkyColor();

    public void getSkyColor(float[] colors);

    public void setSkyColor(float[] colors);

    public int getNumGroundColor();

    public void getGroundColor(float[] color);

    public void setGroundColor(float[] color);
}

B.2.5 X3DBindableNode

public interface X3DBindableNode extends X3DChildNode {

    public void setBind(boolean enable);

    public boolean isBound();

    public double getBindTime();
}

B.2.6 X3DChildNode

public interface X3DChildNode extends X3DNode {
}

B.2.7 X3DColorNode

public interface X3DColorNode extends X3DGeometricPropertyNode {

    public int getNumColors();

    public int getNumComponents();

    public void setColor(float[] colors);

    public void getColor(float[] color);
}

B.2.8 X3DComposedGeometryNode

public interface X3DComposedGeometryNode extends X3DGeometryNode {

    public X3DNode getColor();

    public void setColor(X3DColorNode node);

    public void setColor(X3DProtoInstance comp)
        throws InvalidFieldValueException;

    public X3DNode getCoord();

    public void setCoord(X3DCoordinateNode node);

    public void setCoord(X3DProtoInstance node)
        throws InvalidFieldValueException;

    public X3DNode getTexCoord();

    public void setTexCoord(X3DTextureCoordinateNode node);

    public void setTexCoord(X3DProtoInstance node)
        throws InvalidFieldValueException;

    public X3DNode getNormal();

    public void setNormal(X3DNormalNode node);

    public void setNormal(X3DProtoInstance node)
        throws InvalidFieldValueException;

    public boolean getIsSolid();

    public void setIsSolid(boolean solid)
        throws InvalidWritableFieldException;

    public boolean getIsCCW();

    public void setIsCCW(boolean ccw);
        throws InvalidWritableFieldException;

    public boolean getColorPerVertex();

    public void setColorPerVertex(boolean perVertex);
        throws InvalidWritableFieldException;

    public boolean getNormalPerVertex();

    public void setNormalPerVertex(boolean perVertex);
        throws InvalidWritableFieldException;
}

B.2.9 X3DCoordinateNode

public interface X3DCoordinateNode extends X3DGeometricPropertyNode {

    public int getNumCoordinates();

    public void setPoint(float[] points);

    public void getPoint(float[] points);
}

B.2.10 X3DDragSensorNode

public interface X3DDragSensorNode extends X3DPointingDeviceSensorNode {

    public void setAutoOffset(boolean newAutoOffset);

    public boolean getAutoOffset();

    public void getTrackPoint(float[] point);
}

B.2.11 X3DEnvironmentalSensorNode

public interface X3DEnvironmentalSensorNode extends X3DSensorNode {

    public double getEnterTime();

    public double getExitTime();

    public void getCenter(float[] pos);

    public void setCenter(float[] pos);

    public void getSize(float[] size);

    public void setSize(float[] size);
}

B.2.12 X3DFontStyleNode

public interface X3DFontStyleNode extends X3DNode {

    public int PLAIN_STYLE = java.awt.Font.PLAIN;
    public int ITALIC_STYLE = java.awt.Font.ITALIC;
    public int BOLD_STYLE = java.awt.Font.BOLD;
    public int BOLDITALIC_STYLE = java.awt.Font.BOLD + java.awt.Font.ITALIC;

    public int BEGIN_JUSTIFY = 1;
    public int END_JUSTIFY = 2;
    public int MIDDLE_JUSTIFY = 3;
    public int FIRST_JUSTIFY = 4;

    public Font getFont();

    public int getHorizontalJustification();

    public int getVerticalJustification();

    public float getSpacing();

    public float getSize();

    public boolean isTopToBottom();

    public boolean isLeftToRight();
}

B.2.13 X3DGeometricPropertyNode

public interface X3DGeometricPropertyNode extends X3DNode {
}

B.2.14 X3DGeometryNode

public interface X3DGeometryNode extends X3DNode {
}

B.2.15 X3DGroupingNode

public interface X3DGroupingNode extends X3DChildNode, X3DBoundedObject {

    public void getChildren(X3DNode[] nodes);

    public void setChildren(X3DNode[] kids)
        throws InvalidNodeException;

    public void addChildren(X3DNode[] added)
        throws InvalidNodeException;

    public void addChild(X3DNode added)
        throws InvalidNodeException;

    public void removeChildren(X3DNode[] removed)
        throws InvalidNodeException;

    public void removeChild(X3DNode removed)
        throws InvalidNodeException;

    public int getNumChildren();
}

B.2.16 X3DInfoNode

public interface X3DInfoNode extends X3DChildNode {
}

B.2.17 X3DInterpolatorNode

public interface X3DInterpolatorNode extends X3DChildNode {
    public void setFraction(float value);

    public int getNumKeys();

    public void setKey(float[] keys);

    public void getKey(float[] keys);
}

B.2.18 X3DKeyDeviceSensorNode

public interface X3DKeyDeviceSensorNode extends X3DSensorNode {
}

B.2.19 X3DLightNode

public interface X3DLightNode extends X3DChildNode {

    public boolean getOn();

    public void setOn(boolean state);

    public float getAmbientIntensity();

    public void setAmbientIntensity(float intensity)
        throws InvalidFieldValueException;

    public void getColor(float[] color);

    public void setColor(float[] color)
        throws InvalidFieldValueException;

    public float getIntensity();

    public void setIntensity(float newIntensity)
        throws InvalidFieldValueException;
}

B.2.20 X3DMaterialNode

public interface X3DMaterialNode extends X3DAppearanceChildNode {
}

B.2.21 X3DNetworkSensorNode

public interface X3DNetworkSensorNode extends X3DSensorNode {
}

B.2.22 X3DNode

public interface X3DNode extends X3DMetadataObject {

    public String getNodeName()
      throws InvalidNodeException;

    public X3DFieldDefinition[] getFieldDefinitions()
        throws InvalidNodeException;

    public void realize()
        throws InvalidNodeException;

    public boolean isRealized()
        throws InvalidNodeException;

    public int[] getNodeType()
        throws InvalidNodeException;

    public X3DField getField(String name)
        throws InvalidFieldException, InvalidNodeException;

    public void dispose()
      throws InvalidNodeException;
}

B.2.23 X3DNormalNode

public interface X3DNormalNode extends X3DGeometricPropertyNode {

    public int getNumNormals();

    public void setVector(float[] value);

    public void getVector(float[] value);
}

B.2.24 X3DParametricGeometryNode

public interface X3DParametricGeometryNode extends X3DGeometryNode {
}

B.2.25 X3DPointingDeviceSensorNode

public interface X3DPointingDeviceSensorNode extends X3DSensorNode {
}

B.2.26 X3DProtoInstance

public interface X3DProtoInstance extends X3DNode {
    public int[] getImplementationTypes();
}

B.2.27 X3DScriptNode

public interface X3DScriptNode
    extends X3DChildNode, X3DUrlObject {
}

B.2.28 X3DSensorNode

public interface X3DSensorNode extends X3DChildNode {
    public void setEnabled(boolean state);

    public boolean getEnabled();

    public boolean getIsActive();
}

B.2.29 X3DSequencerNode

public interface X3DSequencerNode extends X3DChildNode {
    public void setFraction(float fraction);

    public int getNumKey();

    public void getKey(float[] keys);

    public void setKey(float[] keys);

    public int getNumKeyValue();
}

B.2.30 X3DShapeNode

public interface X3DShapeNode extends X3DChildNode {

    public X3DNode getAppearance();

    public void setAppearance(X3DAppearanceNode app);

    public void setAppearance(X3DProtoInstance app);

    public X3DNode getGeometry();

    public void setGeometry(X3DGeometryNode geom);

    public void setGeometry(X3DProtoInstance geom);
}

B.2.31 X3DSoundNode

public interface X3DSoundNode extends X3DChildNode {
}

B.2.32 X3DSoundSourceNode

public interface X3DSoundSourceNode extends X3DTimeDependentNode {

    public float getPitch();

    public void setPitch(float pitch) throws InvalidFieldValueException;

    public void setDescription(String text);

    public String getDescription(String text);
}

B.2.33 X3DTextNode

public interface X3DTextNode extends X3DGeometryNode {

    public void setFontStyle(X3DFontStyleNode fs);

    public void setFontStyle(X3DProtoInstance fs);

    public X3DNode getFontStyle();

    public int getNumText();

    public void setText(String[] text);

    public void getText(String[] text);
}

B.2.34 X3DTextureCoordinateNode

public interface X3DTextureCoordinateNode extends X3DGeometricPropertyNode {

    public int getNumCoordinates();

    public int getNumComponents();

    public void setPoint(float[] points);

    public void getPoint(float[] points);
}

B.2.35 X3DTextureNode

public interface X3DTextureNode extends X3DAppearanceChildNode {
}

B.2.36 X3DTexture2DNode

public interface X3DTexture2DNode extends X3DTextureNode {

    public void setRepeatS(boolean state);

    public boolean getRepeatS();

    public void setRepeatT(boolean state);

    public boolean getRepeatT();
}

B.2.37 X3DTextureTransformNode

public interface X3DTextureTransformNode extends X3DAppearanceChildNode {
}

B.2.38 X3DTextureTransform2DNode

public interface X3DTextureTransform2DNode extends X3DTextureTransformNode {
    public void getCenter(float[] position);

    public void setCenter(float[] position);

    public float getRotation();

    public void setRotation(float angle);

    public void getScale(float[] scale);

    public void setScale(float[] scale);

    public void getTranslation(float[] trans);

    public void setTranslation(float[] trans);
}

B.2.39 X3DTimeDependentNode

public interface X3DTimeDependentNode extends X3DChildNode {

    public boolean getIsActive();

    public boolean getIsPaused();

    public double getElapsedTime();

    public void setNumLoops(float count);

    public float getNumLoops();

    public void setLoop(boolean loop);

    public boolean getLoop();

    public void setStartTime(double time);

    public double getStartTime();

    public void setStopTime(double time);

    public double getStopTime();

    public void setPauseTime(double time);

    public double getPauseTime();

    public void setUnPauseTime(double time);

    public double getUnPauseTime();
}

B.2.40 X3DTouchSensorNode

public interface X3DTouchSensorNode
    extends X3DPointingDeviceSensorNode {

    public boolean getIsOver();

    public double getEnterTime();

    public double getTouchTime();
}

B.2.41 X3DTriggerNode

public interface X3DTriggerNode
	extends X3DChildNode {
}

cube B.3 Auxiliary node type interfaces

B.3.1 X3DBoundedObject

public interface X3DBoundedObject {
}

B.3.2 X3DMetadataObject

public interface X3DMetadataObject {
    public void setMetadata(X3DMetadataObject data);

    public X3DMetadataObject getMetadata();

    public void setStandard(String std);

    public String getStandard();

    public void setName(String name);

    public String getName();
}

B.3.3 X3DUrlObject

public interface X3DUrlObject {
    public int getNumUrls();

    public void getUrl(String[] urls);

    public void setUrl(String[] urls);
}

cube B.4 Field interfaces

B.4.1 X3DFieldTypes

public interface X3DFieldTypes {

    public int INPUT_ONLY = 1;
    public int INITIALIZE_ONLY = 2;
    public int INPUT_OUTPUT = 3;
    public int OUTPUT_ONLY = 4;

    public int SFBOOL = 1;
    public int MFBOOL = 2;
    public int SFCOLOR = 21;
    public int MFCOLOR = 22;
    public int SFCOLORRGBA = 23;
    public int MFCOLORRGBA = 24;
    public int SFDOUBLE = 7;
    public int MFDOUBLE = 8;
    public int SFFLOAT = 5;
    public int MFFLOAT = 6;
    public int SFIMAGE = 25;
    public int MFIMAGE = 26;
    public int SFINT32 = 3;
    public int MFINT32 = 4;
    public int SFNODE = 11;
    public int MFNODE = 12;
    public int SFROTATION = 19;
    public int MFROTATION = 20;
    public int SFSTRING = 27;
    public int MFSTRING = 28;
    public int SFTIME = 9;
    public int MFTIME = 10;
    public int SFVEC2F = 13;
    public int MFVEC2F = 14;
    public int SFVEC3F = 15;
    public int MFVEC3F = 16;
    public int SFVEC3D = 17;
    public int MFVEC3D = 18;
}

B.4.2 X3DFieldEvent

public class X3DFieldEvent extends java.util.EventObject {

    public X3DFieldEvent(Object src, double ts, Object data);

    public double getTime();

    public Object getData();
}

B.4.3 X3DFieldEventListener

public interface X3DFieldEventListener extends java.util.EventListener {
    public void readableFieldChanged(X3DFieldEvent evt);
}

B.4.4 X3DFieldDefinition

public interface X3DFieldDefinition {

    public String getName();

    public int getAccessType();

    public int getFieldType();

    public String getFieldTypeString();
}

B.4.5 X3DField

public interface X3DField {

    public X3DFieldDefinition getDefinition();

    public boolean isReadable();

    public boolean isWritable();

    public void addX3DEventListener(X3DFieldEventListener l);

    public void removeX3DEventListener(X3DFieldEventListener l);

    public void setUserData(Object data);

    public Object getUserData();
}

B.4.6 MField

public interface MField extends X3DField {

    public int size();

    public void clear();

    public void remove(int index);
}

B.4.7 SFBool

public interface SFBool extends X3DField {

    public boolean getValue();

    public void setValue(boolean value);
}

B.4.8 MFBool

public interface MFBool extends MField {

    public void getValue(boolean[] vals);

    public boolean get1Value(int index);

    public void setValue(int size, boolean[] value);

    public void set1Value(int index, boolean value)
        throws ArrayIndexOutOfBoundsException;

    public void append(boolean value);

    public void insertValue(int index, boolean value);
}

B.4.9 SFColor

public interface SFColor extends X3DField {

    public void getValue(float[] value);

    public void setValue(float[] value);
}

B.4.10 MFColor

public interface MFColor extends MField {

    public void getValue(float[][] value);

    public void getValue(float[] value);

    public void get1Value(int index, float[] value);

    public void setValue(int numColors, float[] value);

    public void setValue(int numColors, float[][] value);

    public void set1Value(int index, float[] value);

    public void append(float[] value);

    public void insertValue(int index, float[] value);
}

B.4.11 SFColorRGBA

public interface SFColorRGBA extends X3DField {

    public void getValue(float[] value);

    public void setValue(float[] value);
}

B.4.12 MFColorRGBA

public interface MFColorRGBA extends MField {

    public void getValue(float[][] value);

    public void getValue(float[] value);

    public void get1Value(int index, float[] value);

    public void setValue(int numColors, float[] value);

    public void setValue(int numColors, float[][] value);

    public void set1Value(int index, float[] value);

    public void append(float[] value);

    public void insertValue(int index, float[] value);
}

B.4.13 SFDouble

public interface SFDouble extends X3DField {

    public double getValue();

    public void setValue(double value);
}

B.4.14 MFDouble

public interface MFDouble extends MField {

    public void getValue(double[] values);

    public double get1Value(int index)
        throws ArrayIndexOutOfBoundsException;

    public void setValue(int size, double[] value);

    public void set1Value(int index, double value)
        throws ArrayIndexOutOfBoundsException;

    public void append(double[] value);

    public void insertValue(int index, double[] value);
}

B.4.15 SFFloat

public interface SFFloat extends X3DField {

    public float getValue();

    public void setValue(float value);
}

B.4.16 MFFloat

public interface MFFloat extends MField {

    public void getValue(float[] values);

    public float get1Value(int index)
        throws ArrayIndexOutOfBoundsException;

    public void setValue(int size, float[] value);

    public void set1Value(int index, float value)
        throws ArrayIndexOutOfBoundsException;

    public void append(float[] value);

    public void insertValue(int index, float[] value);
}

B.4.17 SFImage

public interface SFImage extends X3DField {

    public int getWidth();

    public int getHeight();

    public int getComponents();

    public void getPixels(int[] pixels);

    public java.awt.image.WritableRenderedImage getImage();


    public void setValue(int width,
                         int height,
                         int components,
                         int[] pixels);

    public void setImage(java.awt.image.RenderedImage image);

    public void setSubImage(java.awt.image.RenderedImage image,
                            int srcWidth,
                            int srcHeight,
                            int srcXOffset,
                            int srcYOffset,
                            int destXOffset,
                            int destYOffset);
}

B.4.18 MFImage

public interface MFImage extends MField {

    public int getWidth(int imgIndex);

    public int getHeight(int imgIndex);

    public int getComponents(int imgIndex);

    public void getPixels(int imgIndex, int[] pixels);

    public WritableRenderedImage getImage(int imgIndex);

    public void setImage(int imgIndex, RenderedImage img);

    public void setSubImage(int imgIndex,
                            RenderedImage img,
                            int srcWidth,
                            int srcHeight,
                            int srcXOffset,
                            int srcYOffset,
                            int destXOffset,
                            int destYOffset);

    public void set1Value(int index, int value);

    public void set1Value(int imgIndex,
                          int width,
                          int height,
                          int components,
                          int[] pixels);

    public void setValue(int[] value);

    public void setImage(RenderedImage[] img);

    public void append(RenderedImage value);

    public void insertValue(int index, RenderedImage value);

B.4.19 SFInt32

public interface SFInt32 extends X3DField {

    public int getValue();

    public void setValue(int value);
}

B.4.20 MFInt32

public interface MFInt32 extends MField {

    public void getValue(int[] values);

    public int get1Value(int index)
        throws ArrayIndexOutOfBoundsException;

    public void setValue(int size, int[] value);

    public void set1Value(int index, int value)
        throws ArrayIndexOutOfBoundsException;

    public void append(int[] value);

    public void insertValue(int index, int[] value);
}

B.4.21 SFNode

public interface SFNode extends X3DField {

    public X3DNode getValue();

    public void setValue(X3DNode value)
      throws InvalidNodeException;
}

B.4.22 MFNode

public interface MFNode extends MField {

    public void getValue(X3DNode[] nodes);

    public X3DNode get1Value(int index);

    public void setValue(int size, X3DNode[] value);

    public void set1Value(int index, X3DNode value);

    public void append(X3DNode value);

    public void insertValue(int index, X3DNode value);
}

B.4.23 SFRotation

public interface SFRotation extends X3DField {

    public void getValue(float[] value);

    public void setValue(float[] value);
}

B.4.24 MFRotation

public interface MFRotation extends MField {

    public void getValue(float[][] value);

    public void getValue(float[] value);

    public void get1Value(int index, float[] value);

    public void setValue(int numRotations, float[] value);

    public void setValue(int numRotations, float[][] value);

    public void set1Value(int index, float[] value);

    public void append(float[] value);

    public void insertValue(int index, float[] value);
}

B.4.25 SFString

public interface SFString extends X3DField {

    public String getValue();

    public void setValue(String value);
}

B.4.26 MFString

public interface MFString extends MField {

    public void getValue(String[] value);

    public String get1Value(int index);

    public void setValue(int numStrings, String[] value);

    public void set1Value(int index, String value);

    public void append(String[] value);

    public void insertValue(int index, String[] value);
}

B.4.27 SFTime

public interface SFTime extends X3DField {

    public double getValue();

    public long getJavaValue();

    public void setValue(double value);

    public void setValue(long value);
}

B.4.28 MFTime

public interface MFTime extends MField {

    public void getValue(double[] value);

    public double get1Value(int index);

    public long get1JavaValue(int index);

    public void setValue(int size, double[] value);

    public void setValue(int size, long[] value);

    public void set1Value(int index, double value);

    public void set1Value(int index, long value);

    public void append(double value);

    public void append(long value);

    public void insertValue(int index, long value);

    public void insertValue(int index, double value);
}

B.4.29 SFVec2d

public interface SFVec2d extends X3DField {

    public void getValue(double[] value);

    public void setValue(double[] value);
}

B.4.30 MFVec2d

public interface MFVec2d extends MField {

    public void getValue(double[][] value);

    public void getValue(double[] value);

    public void get1Value(int index, double[] value);

    public void setValue(int size, double[] value);

    public void setValue(int size, double[][] value);

    public void set1Value(int index, double[] value);

    public void append(double[] value);

    public void insertValue(int index, double[] value);
}

B.4.31 SFVec2f

public interface SFVec2f extends X3DField {

    public void getValue(float[] value);

    public void setValue(float[] value);
}

B.4.32 MFVec2f

public interface MFVec2f extends MField {

    public void getValue(float[][] value);

    public void getValue(float[] value);

    public void get1Value(int index, float[] value);

    public void setValue(int size, float[] value);

    public void setValue(int size, float[][] value);

    public void set1Value(int index, float[] value);

    public void append(float[] value);

    public void insertValue(int index, float[] value);
}

B.4.33 SFVec3d

public interface SFVec3d extends X3DField {

    public void getValue(double[] value);

    public void setValue(double[] value);
}

B.4.34 MFVec3d

public interface MFVec3d extends MField {

    public void getValue(double[][] value);

    public void getValue(double[] value);

    public void get1Value(int index, double[] value);

    public void setValue(int size, double[] value);

    public void setValue(int size, double[][] value);

    public void set1Value(int index, double[] value);

    public void append(double[] value);

    public void insertValue(int index, double[] value);
}

B.4.35 SFVec3f

public interface SFVec3f extends X3DField {

    public void getValue(float[] value);

    public void setValue(float[] value);
}

B.4.36 MFVec3f

public interface MFVec3f extends MField {

    public void getValue(float[][] value);

    public void getValue(float[] value);

    public void get1Value(int index, float[] value);

    public void setValue(int size, float[] value);

    public void setValue(int size, float[][] value);

    public void set1Value(int index, float[] value);

    public void append(float[] value);

    public void insertValue(int index, float[] value);
}

cube B.5 Service interfaces

B.5.1 BrowserEvent

public class BrowserEvent extends EventObject {
    public static final int INITIALIZED = 0;
    public static final int SHUTDOWN = 1;
    public static final int URL_ERROR = 2;
    public static final int CONNECTION_ERROR = 10;
    public static final int LAST_IDENTIFIER = 100;

    public BrowserEvent(Object browser, int action);
    public int getID();
}

B.5.2 BrowserFactory

public class BrowserFactory {
    private BrowserFactory();

    public static void setBrowserFactoryImpl(
        BrowserFactoryImpl fac)
        throws IllegalArgumentException,
               X3DException,
               SecurityException;

    public static X3DComponent createX3DComponent(Map params)
        throws NotSupportedException;

    public static ExternalBrowser getBrowser(Applet applet)
        throws NotSupportedException,
               NoSuchBrowserException,
               ConnectionException;

    public static ExternalBrowser getBrowser(Applet applet,
                                             String frameName,
                                             int index)
        throws NotSupportedException,
               NoSuchBrowserException,
               ConnectionException;

    public static ExternalBrowser getBrowser(InetAddress address, int port)
        throws NotSupportedException,
               NoSuchBrowserException,
               UnknownHostException,
               ConnectionException;
}

B.5.3 X3DFieldEvent

public class X3DFieldEvent extends EventObject {
    public X3DFieldEvent(Object src, double ts, Object data);
    public double getTime();
    public Object getData();
}

B.5.4 Matrix3

public class Matrix3 {
	public Matrix3();
	public void setIdentity();
    public void set(int row, int column)
    public float get(int row, int column)
    public void setTransform(SFVec2f translation,
                             SFVec3f rotation,
                             SFVec2f scale,
                             SFVec3f scaleOrientation,
                             SFVec2f center)
    public void getTransform(SFVec2f translation,
                             SFVec3f rotation,
                             SFVec2f scale)
    public Matrix3 inverse()
    public Matrix3 transpose()
    public Matrix3 multiplyLeft(Matrix3 mat)
    public Matrix3 multiplyRight(Matrix3 mat)
    public Matrix3 multiplyRowVector(SFVec3f vec)
    public Matrix3 multiplyColVector(SFVec3f vec)
}

B.5.5 Matrix4

public class Matrix4 {
	public Matrix4();
	public void setIdentity();
    public void set(int row, int column)
    public float get(int row, int column)
    public void setTransform(SFVec3f translation,
                             SFRotation rotation,
                             SFVec3f scale,
                             SFRotation scaleOrientation,
                             SFVec3f center)
    public void getTransform(SFVec3f translation,
                             SFRotation rotation,
                             SFVec3f scale)
    public Matrix3 inverse()
    public Matrix3 transpose()
    public Matrix3 multiplyLeft(Matrix4 mat)
    public Matrix3 multiplyRight(Matrix4 mat)
    public Matrix3 multiplyRowVector(SFVec3f vec)
    public Matrix3 multiplyColVector(SFVec3f vec)
}

cube B.6 Statement interfaces

B.6.1 ComponentInfo

public interface ComponentInfo {
    public String getName();
    public int getLevel();
    public String getTitle();
    public String getProviderURL();
    public String toX3DString();
}

B.6.2 ProfileInfo

public interface ProfileInfo {
    public String getName();
    public String getTitle();
    public ComponentInfo[] getComponents();
    public String toX3DString();
}

cube B.7 Exception definitions

B.7.1 X3DException

public class X3DException extends RuntimeException {
	public X3DException();
	public X3DException(String);
}

B.7.2 BrowserNotSharedException

public class BrowserNotSharedException extends X3DException {
	public BrowserNotSharedException();
	public BrowserNotSharedException(String);
}

B.6.3 ConnectionException

public class ConnectionException extends X3DException {
	public ConnectionException();
	public ConnectionException(String);
}

B.6.4 ImportedNodeException

public class ImportedNodeException extends X3DException {
	public ImportedNodeException();
	public ImportedNodeException(String);
}

B.7.5 InsufficientCapabilitiesException

public class InsufficientCapabilitiesException extends X3DException {
	public InsufficientCapabilitiesException();
	public InsufficientCapabilitiesException(String);
}

B.7.6 InvalidBrowserException

public class InvalidBrowserException extends X3DException {
	public InvalidBrowserException();
	public InvalidBrowserException(String);
}

B.7.7 InvalidDocumentException

public class InvalidDocumentException extends X3DException {
	public InvalidDocumentException();
	public InvalidDocumentException(String);
}

B.7.8 InvalidExecutionContextException

public class InvalidExecutionContextException extends X3DException {
	public InvalidExecutionContextException();
	public InvalidExecutionContextException(String);
}

B.7.9 InvalidFieldException

public class InvalidFieldException extends X3DException {
	public InvalidFieldException();
	public InvalidFieldException(String);
}

B.7.10 InvalidFieldValueException

public class InvalidFieldValueException extends X3DException {
	public InvalidFieldValueException();
	public InvalidFieldValueException(String);
}

B.7.11 InvalidNodeException

public class InvalidNodeException extends X3DException {
	public InvalidNodeException();
	public InvalidNodeException(String);
}

B.7.12 InvalidOperationTimingException

public class InvalidOperationTimingException extends X3DException {
	public InvalidOperationTimingException();
	public InvalidOperationTimingException(String);
}

B.7.13 InvalidProtoException

public class InvalidProtoException extends X3DException {
	public InvalidProtoException();
	public InvalidProtoException(String);
}

B.7.14 InvalidRouteException

public class InvalidRouteException extends X3DException {
	public InvalidRouteException();
	public InvalidRouteException(String);
}

B.7.15 InvalidURLException

public class InvalidURLException extends X3DException {
	public InvalidURLException();
	public InvalidURLException(String);
}

B.7.16 InvalidX3DException

public class InvalidX3DException extends X3DException {
	public InvalidX3DException();
	public InvalidX3DException(String);
}

B.7.17 NodeInUseException

public class NodeInUseException extends X3DException {
	public NodeInUseException();
	public NodeInUseException(String);
}

B.7.18 NodeUnavailableException

public class NodeUnavailableException extends X3DException {
	public NodeUnavailableException();
	public NodeUnavailableException(String);
}

B.7.19 NoSuchBrowserException

public class NoSuchBrowserException extends X3DException {
	public NoSuchBrowserException();
	public NoSuchBrowserException(String);
}

B.7.20 NotSupportedException

public class NotSupportedException extends X3DException {
	public NotSupportedException();
	public NotSupportedException(String);
}

B.7.21 URLUnavailableException

public class URLUnavailableException extends X3DException {
	public URLUnavailableException();
	public URLUnavailableException(String);
}

--- X3D separator bar ---