Monday, 26 June 2017

VRML 2.0 Java API

History

  • Thu Aug 30 1996: First version( Community Place )
  • O : 実装済み
  • * : コンストラクタを呼んで生成した、Fieldクラスのサブクラスについては実装済みだが、 ScriptクラスのgetEventOut()/getField()等が生成したインスタンスについては未実装
  • X : 未実装

    Index

    vrml package

  • vrml.Field
  • vrml.ConstField
  • vrml.ConstMField
  • vrml.MField
  • vrml.Event
  • vrml.Browser
  • vrml.BaseNode

    vrml.field package

  • vrml.field.ConstSFBool
  • vrml.field.ConstSFColor
  • vrml.field.ConstSFFloat
  • vrml.field.ConstSFImage
  • vrml.field.ConstSFInt32
  • vrml.field.ConstSFNode
  • vrml.field.ConstSFRotation
  • vrml.field.ConstSFString
  • vrml.field.ConstSFTime
  • vrml.field.ConstSFVec2f
  • vrml.field.ConstSFVec3f
  • vrml.field.ConstMFColor
  • vrml.field.ConstMFFloat
  • vrml.field.ConstMFInt32
  • vrml.field.ConstMFNode
  • vrml.field.ConstMFRotation
  • vrml.field.ConstMFString
  • vrml.field.ConstMFTime
  • vrml.field.ConstMFVec2f
  • vrml.field.ConstMFVec3f
  • vrml.field.SFBool
  • vrml.field.SFColor
  • vrml.field.SFFloat
  • vrml.field.SFImage
  • vrml.field.SFInt32
  • vrml.field.SFNode
  • vrml.field.SFRotation
  • vrml.field.SFString
  • vrml.field.SFTime
  • vrml.field.SFVec2f
  • vrml.field.SFVec3f
  • vrml.field.MFColor
  • vrml.field.MFFloat
  • vrml.field.MFInt32
  • vrml.field.MFNode
  • vrml.field.MFRotation
  • vrml.field.MFString
  • vrml.field.MFTime
  • vrml.field.MFVec2f
  • vrml.field.MFVec3f

    vrml.node package

  • vrml.node.Node
  • vrml.node.Script

    Appendix vs package

    vs package
  • vs.Vscp(マルチユーザー共有動作API)

    vrml package

    public abstract class Field implements Cloneable
    {
    O   public Object clone();
    }
    
    public abstract class ConstField extends Field
    {
    }
    
    public abstract class ConstMField extends ConstField
    {
    O   public abstract int getSize();
    }
    
    public abstract class MField extends Field
    {
    O   public abstract int getSize();
    X   public abstract void clear();
    X   public abstract void delete(int index);
    }
    
    public class Event implements Cloneable {
    O  public String getName();
    O  public double getTimeStamp();
    O  public ConstField getValue();
    O  public Object clone();
    }
    
    public class Browser {
      // Browser interface
    O  public String getName();      
    O  public String getVersion();   
    
    X  public float getCurrentSpeed();
    
    X  public float getCurrentFrameRate();
    
    O  public String getWorldURL();
    X  public void replaceWorld(BaseNode[] nodes);
    
    O  public BaseNode[] createVrmlFromString(String vrmlSyntax)
        throws InvalidVRMLSyntaxException;
    
    O  public void createVrmlFromURL(String[] url, BaseNode node, String event)
    
    O  public void addRoute(BaseNode fromNode, String fromEventOut,
        BaseNode toNode, String toEventIn);
    O  public void deleteRoute(BaseNode fromNode, String fromEventOut,
        BaseNode toNode, String toEventIn);
    
    O  public void loadURL(String[] url, String[] parameter)
    
    O  public void setDescription(String description);
    }
    
    //
    // BaseNodeクラス
    // 
    public abstract class BaseNode 
    {
      // ノードの種別を返す。ノードがプロトタイプであれば、プロトタイプ名が
      // 返される。
    O  public String getType();
    
      // ノードが含まれているBrowserのインスタンスを返す。
    O  public Browser getBrowser();
    }
    
    

    vrml.field package

    public class ConstSFBool extends ConstField
    {
    O   public boolean getValue();
    }
    
    public class ConstSFColor extends ConstField
    {
    O   public void getValue(float color[]);
    O   public float getRed();
    O   public float getGreen();
    O   public float getBlue();
    }
    
    public class ConstSFFloat extends ConstField
    {
    O   public float getValue();
    }
    
    Xpublic class ConstSFImage extends ConstField
    {
    X   public int getWidth();
    X   public int getHeight();
    X   public int getComponents();
    X   public void getPixels(byte pixels[]);
    }
    
    public class ConstSFInt32 extends ConstField
    {
    O   public int getValue();
    }
    
    public class ConstSFNode extends ConstField
    {
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public BaseNode getValue();
    }
    
    public class ConstSFRotation extends ConstField
    {
    O   public void getValue(float[] rotation);
    }
    
    public class ConstSFString extends ConstField
    {
    O   public String getValue();
    }
    
    public class ConstSFTime extends ConstField
    {
    O   public double getValue();
    }
    
    public class ConstSFVec2f extends ConstField
    {
    O   public void getValue(float vec2[]);
    O   public float getX();
    O   public float getY();
    }
    
    public class ConstSFVec3f extends ConstField
    {
    O   public void getValue(float vec3[]);
    O   public float getX();
    O   public float getY();
    O   public float getZ();
    }
    
    public class ConstMFColor extends ConstMField
    {
    O   public void getValue(float colors[][]);
    O   public void getValue(float colors[]);
    *   public void get1Value(int index, float color[]);
    *   public void get1Value(int index, SFColor color);
    }
    
    public class ConstMFFloat extends ConstMField
    {
    O   public void getValue(float values[]);
    *   public float get1Value(int index);
    }
    
    public class ConstMFInt32 extends ConstMField
    {
    O   public void getValue(int values[]);
    *   public int get1Value(int index);
    }
    
    Xpublic class ConstMFNode extends ConstMField
    {
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public void getValue(BaseNode values[]);
    X   public Node get1Value(int index);
    }
    
    public class ConstMFRotation extends ConstMField
    {
    O   public void getValue(float rotations[][]);
    O   public void getValue(float rotations[]);
    *   public void get1Value(int index, float rotation[]);
    *   public void get1Value(int index, SFRotation rotation);
    }
    
    public class ConstMFString extends ConstMField
    {
    O   public void getValue(String values[]);
    *   public String get1Value(int index);
    }
    
    public class ConstMFTime extends ConstMField
    {
    O   public void getValue(double times[]);
    *   public double get1Value(int index);
    }
    
    public class ConstMFVec2f extends ConstMField
    {
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec2f vec);
    }
    
    public class ConstMFVec3f extends ConstMField
    {
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec3f vec);
    }
    
    public class SFBool extends Field
    {
    O   public SFBool(boolean value);
    O   public boolean getValue();
    O   public void setValue(boolean b);
    O   public void setValue(ConstSFBool b);
    O   public void setValue(SFBool b);
    }
    
    public class SFColor extends Field
    {
    O   public SFColor(float red, float green, float blue);
    O   public void getValue(float color[]);
    O   public float getRed();
    O   public float getGreen();
    O   public float getBlue();
    O   public void setValue(float color[]);
    O   public void setValue(float red, float green, float blue);
    O   public void setValue(ConstSFColor color);
    O   public void setValue(SFColor color);
    }
    
    public class SFFloat extends Field
    {
    O   public SFFloat(float f);
    O   public float getValue();
    O   public void setValue(float f);
    O   public void setValue(ConstSFFloat f);
    O   public void setValue(SFFloat f);
    }
    
    Xpublic class SFImage extends Field
    {
    X   public SFImage(int width, int height, int components, byte pixels[]);
    X   public int getWidth();
    X   public int getHeight();
    X   public int getComponents();
    X   public void getPixels(byte pixels[]);
    X   public void setValue(int width, int height, int components,
                            byte pixels[]);
    X   public void setValue(ConstSFImage image);
    X   public void setValue(SFImage image);
    }
    
    public class SFInt32 extends Field
    {
    O   public SFInt32(int value);
    O   public int getValue();
    O   public void setValue(int i);
    O   public void setValue(ConstSFInt32 i);
    O   public void setValue(SFInt32 i);
    }
    
    public class SFNode extends Field
    {
    O   public SFNode(BaseNode node);
    
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public Node getValue();
    O   public void setValue(BaseNode node);
    O   public void setValue(ConstSFNode node);
    O   public void setValue(SFNode node);
    }
    
    public class SFRotation extends Field
    {
    O   public SFRotation(float axisX, float axisY, float axisZ, float rotation);
    O   public void getValue(float[] rotation);
    O   public void setValue(float[] rotation);
    O   public void setValue(float axisX, float axisY, float axisZ, float rotation);
    O   public void setValue(ConstSFRotation rotation);
    O   public void setValue(SFRotation rotation);
    }
    
    public class SFString extends Field
    {
    O   public SFString(String s);
    O   public String getValue();
    O   public void setValue(String s);
    O   public void setValue(ConstSFString s);
    O   public void setValue(SFString s);
    }
    
    public class SFTime extends Field
    {
    O   public SFTime(double time);
    O   public double getValue();
    O   public void setValue(double time);
    O   public void setValue(ConstSFTime time);
    O   public void setValue(SFTime time);
    }
    
    public class SFVec2f extends Field
    {
    O   public SFVec2f(float x, float y);
    O   public void getValue(float vec[]);
    O   public float getX();
    O   public float getY();
    O   public void setValue(float vec[]);
    O   public void setValue(float x, float y);
    O   public void setValue(ConstSFVec2f vec);
    O   public void setValue(SFVec2f vec);
    }
    
    public class SFVec3f extends Field
    {
    O   public SFVec3f(float x, float y, float z);
    O   public void getValue(float vec[]);
    O   public float getX();
    O   public float getY();
    O   public float getZ();
    O   public void setValue(float vec[]);
    O   public void setValue(float x, float y, float z);
    O   public void setValue(ConstSFVec3f vec);
    O   public void setValue(SFVec3f vec);
    }
    
    public class MFColor extends MField
    {
    O   public MFColor(float value[][]);
    O   public MFColor(float value[]);
    O   public MFColor(int size, float value[]);
    
    O   public void getValue(float colors[][]);
    O   public void getValue(float colors[]);
    
    O   public void setValue(float colors[][]);
    
        /****************************************************************
         * color[0], color[1], color[2]がそれぞれ、先頭のred,green,
         * blueに対応する。すなわち、colorの数は"size / 3"として扱われる。
         ************************************************************** */
    O   public void setValue(int size, float colors[]);
    
    O   public void setValue(ConstMFColor colors);
    
    *   public void get1Value(int index, float color[]);
    *   public void get1Value(int index, SFColor color);
    
    *   public void set1Value(int index, ConstSFColor color);
    *   public void set1Value(int index, SFColor color);
    *   public void set1Value(int index, float red, float green, float blue);
    
    *   public void addValue(ConstSFColor color);
    *   public void addValue(SFColor color);
    *   public void addValue(float red, float green, float blue);
    
    *   public void insertValue(int index, ConstSFColor color);
    *   public void insertValue(int index, SFColor color);
    *   public void insertValue(int index, float red, float green, float blue);
    }
    
    public class MFFloat extends MField
    {
    O   public MFFloat(float values[]);
    
    O   public void getValue(float values[]);
    
    O   public void setValue(float values[]);
    O   public void setValue(int size, float values[]);
    O   public void setValue(ConstMFFloat value);
    
    *   public float get1Value(int index);
    
    *   public void set1Value(int index, float f);
    *   public void set1Value(int index, ConstSFFloat f);
    *   public void set1Value(int index, SFFloat f);
    
    *   public void addValue(float f);
    *   public void addValue(ConstSFFloat f);
    *   public void addValue(SFFloat f);
    
    *   public void insertValue(int index, float f);
    *   public void insertValue(int index, ConstSFFloat f);
    *   public void insertValue(int index, SFFloat f);
    }
    
    public class MFInt32 extends MField
    {
    O   public MFInt32(int values[]);
    
    O   public void getValue(int values[]);
    
    O   public void setValue(int values[]);
    O   public void setValue(int size, int values[]);
    O   public void setValue(ConstMFInt32 value);
    
    *   public int get1Value(int index);
    
    *   public void set1Value(int index, int i);
    *   public void set1Value(int index, ConstSFInt32 i);
    *   public void set1Value(int index, SFInt32 i);
    
    *   public void addValue(int i);
    *   public void addValue(ConstSFInt32 i);
    *   public void addValue(SFInt32 i);
    
    *   public void insertValue(int index, int i);
    *   public void insertValue(int index, ConstSFInt32 i);
    *   public void insertValue(int index, SFInt32 i);
    }
    
    public class MFNode extends MField
    {
    O   public MFNode(BaseNode node[]);
    
      /* ***********************************************************
       * getValue()はBaseNodeクラスのサブクラスインスタンスを返す。
       * 返されるクラスはブラウザの実装に異なる。
       *********************************************************** */
    O   public void getValue(BaseNode node[]);
    
    O   public void setValue(BaseNode node[]);
    O   public void setValue(int size, Node node[]);
    O   public void setValue(ConstMFNode node);
    
    *   public Node get1Value(int index);
    
    *   public void set1Value(int index, BaseNode node);
    *   public void set1Value(int index, ConstSFNode node);
    *   public void set1Value(int index, SFNode node);
    
    *   public void addValue(BaseNode node);
    *   public void addValue(ConstSFNode node);
    *   public void addValue(SFNode node);
    
    *   public void insertValue(int index, BaseNode node);
    *   public void insertValue(int index, ConstSFNode node);
    *   public void insertValue(int index, SFNode node);
    }
    
    public class MFRotation extends MField
    {
    O   public MFRotation(float rotations[][]);
    O   public MFRotation(float rotations[]);
    O   public MFRotation(int size, float rotations[]);
    
    O   public void getValue(float rotations[][]);
    O   public void getValue(float rotations[]);
    
    O   public void setValue(float rotations[][])
    O   public void setValue(int size, float rotations[]);
    O   public void setValue(ConstMFRotation rotations);
    
    *   public void get1Value(int index, float rotation[]);
    *   public void get1Value(int index, SFRotation rotation);
    
    *   public void set1Value(int index, ConstSFRotation rotation);
    *   public void set1Value(int index, SFRotation rotation);
    *   public void set1Value(int index, float ax, float ay, float az, float angle);
    
    *   public void addValue(ConstSFRotation rotation);
    *   public void addValue(SFRotation rotation);
    *   public void addValue(float ax, float ay, float az, float angle);
    
    *   public void insertValue(int index, ConstSFRotation rotation);
    *   public void insertValue(int index, SFRotation rotation);
    *   public void insertValue(int index, float ax, float ay, float az, float angle);
    }
    
    public class MFString extends MField
    {
    O   public MFString(String s[]);
    
    O   public void getValue(String s[]);
    
    O   public void setValue(String s[]);
    O   public void setValue(int size, String s[]);
    O   public void setValue(ConstMFString s);
    
    *   public String get1Value(int index);
    
    *   public void set1Value(int index, String s);
    *   public void set1Value(int index, ConstSFString s);
    *   public void set1Value(int index, SFString s);
    
    *   public void addValue(String s);
    *   public void addValue(ConstSFString s);
    *   public void addValue(SFString s);
    
    *   public void insertValue(int index, String s);
    *   public void insertValue(int index, ConstSFString s);
    *   public void insertValue(int index, SFString s);
    }
    
    public class MFTime extends MField
    {
    O   public MFTime(double times[]);
    
    O   public void getValue(double times[]);
    
    O   public void setValue(double times[]);
    O   public void setValue(int size, double times[]);
    O   public void setValue(ConstMFTime times);
    
    *   public double get1Value(int index);
    
    *   public void set1Value(int index, double time);
    *   public void set1Value(int index, ConstSFTime time);
    *   public void set1Value(int index, SFTime time);
    
    *   public void addValue(double time);
    *   public void addValue(ConstSFTime time);
    *   public void addValue(SFTime time);
    
    *   public void insertValue(int index, double time);
    *   public void insertValue(int index, ConstSFTime time);
    *   public void insertValue(int index, SFTime time);
    }
    
    public class MFVec2f extends MField
    {
    O   public MFVec2f(float vecs[][]);
    O   public MFVec2f(float vecs[]);
    O   public MFVec2f(int size, float vecs[]);
    
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    
    O   public void setValue(float vecs[][]);
    O   public void setValue(int size, vecs[]);
    O   public void setValue(ConstMFVec2f vecs);
    
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec2f vec);
    
    *   public void set1Value(int index, float x, float y);
    *   public void set1Value(int index, ConstSFVec2f vec);
    *   public void set1Value(int index, SFVec2f vec);
    
    *   public void addValue(float x, float y);
    *   public void addValue(ConstSFVec2f vec);
    *   public void addValue(SFVec2f vec);
    
    *   public void insertValue(int index, float x, float y);
    *   public void insertValue(int index, ConstSFVec2f vec);
    *   public void insertValue(int index, SFVec2f vec);
    }
    
    public class MFVec3f extends MField
    {
    O   public MFVec3f(float vecs[][]);
    O   public MFVec3f(float vecs[]);
    O   public MFVec3f(int size, float vecs[]);
    
    O   public void getValue(float vecs[][]);
    O   public void getValue(float vecs[]);
    
    O   public void setValue(float vecs[][]);
    O   public void setValue(int size, float vecs[]);
    O   public void setValue(ConstMFVec3f vecs);
    
    *   public void get1Value(int index, float vec[]);
    *   public void get1Value(int index, SFVec3f vec);
    
    *   public void set1Value(int index, float x, float y, float z);
    *   public void set1Value(int index, ConstSFVec3f vec);
    *   public void set1Value(int index, SFVec3f vec);
    
    *   public void addValue(float x, float y, float z);
    *   public void addValue(ConstSFVec3f vec);
    *   public void addValue(SFVec3f vec);
    
    *   public void insertValue(int index, float x, float y, float z);
    *   public void insertValue(int index, ConstSFVec3f vec);
    *   public void insertValue(int index, SFVec3f vec);
    }
    

    vrml.node package

    //
    // ノードクラス
    // 
    public abstract class Node extends BaseNode { 
      
      /* **********************************************************
       *ノードから、nameによって指定されたEventInフィールドを返す。
       *このフィールドは書き込みのみが可能である。
       *不当なEventInフィールド名が指定された場合、
       *InvalidEventInExceptionが発生する。
       ********************************************************** */
    O  public final Field getEventIn(String fieldName);
    
      /* **********************************************************
       *ノードから、nameによって指定されたEventOutフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なEventOutフィールド名が指定された場合、
       *InvalidEventOutExceptionが発生する。
       ********************************************************** */
    O  public final ConstField getEventOut(String fieldName);
    
      /* **********************************************************
       *ノードから、nameによって指定されたExposedFieldフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なExposedFieldフィールド名が指定された場合、
       *InvalidExposedFieldExceptionが発生する。
       ********************************************************** */
    O  public final Field getExposedField(String fieldName);
    }
    
    //
    // Scriptクラス
    //
    // VRMLのScriptノードに指定可能なJavaクラスはこのクラスのサブクラス
    // でなければならない。
    //
    public abstract class Script extends BaseNode { 
     
      /* ***********************************************************
       *全てのイベントが発生する前に評価される。
       *********************************************************** */
    O  public void initialize();
    
      /* **********************************************************
       *nameによって指定されたFieldフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なFieldフィールド名が指定された場合、
       *InvalidFieldExceptionが発生する。
       ********************************************************** */
    O  protected final Field getField(String fieldName);
    
      /* **********************************************************
       *nameによって指定されたEventOutフィールドを返す。
       *このフィールドは読み書きが可能である。
       *不当なEventOutフィールド名が指定された場合、
       *InvalidEventOutExceptionが発生する。
       ********************************************************** */
    O  protected final Field getEventOut(String fieldName);
    
      /* **********************************************************
       *nameによって指定されたEventInフィールドを返す。
       *このフィールドは書き込みのみが可能である。
       *不当なEventInフィールド名が指定された場合、
       *InvalidEventInExceptionが発生する。
       ********************************************************** */
    O  protected final Field getEventIn(String fieldName);
    
      /* **********************************************************
       *processEvents()は、スクリプトが同一タイムスタンプの1つ以上の
       *イベントを受け取ったときに評価される。 
       *countは、送られてきたイベントの個数を表す。
       ********************************************************** */
    O  public void processEvents(int count, Event events[]);
    
      /* **********************************************************
       *processEvent()は、1つのイベントを受け取ったときに評価される。
       ********************************************************** */
    O  public void processEvent(Event event);
    
      /* ****************************************************************
       * eventsProcessed()は、processEvents()が評価されるたびに評価される。
       **************************************************************** */
    O  public void eventsProcessed()
    
      /* ****************************************************************
       * shutdown()は、スクリプトノードが削除される時に評価される。
       **************************************************************** */
    O  public void shutdown(); 
    }