SFBool

ブーリアン。TRUE か FALSEを指定します。
    fooBool FALSE
fooBoolにFALSE(偽)を設定します。 SFBool eventOutの初期値は FALSEです.

SFColor and MFColor

SFColorではRGB (red-green-blue)をあらわす0から1.0までの3つの数で 一つの色の指定します。 MFColorは0以上の色の指定です。
    fooColor [ 1.0 0. 0.0, 0 1 0, 0 0 1 ]
ではMFColorの方を持つfooColor,に赤、緑、青の3色を設定します。

SFColor eventOut の初期値は(0 0 0)、 MFColor eventOut の初期値は [ ]です.

SFFloat and MFFloat

SFFloatは一つの単精度の浮動小数、 MFFloatは0以上の単精度の浮動小数をあらわします。

    fooFloat [ 3.1415926, 12.5e-3, .0001 ]
はMFFloatのfooFloatに三つの少数を設定します.

SFFloat eventOut の初期値は0.0、 MFFloat eventOut の初期値は [ ]です.

SFInt32 and MFInt32

SFInt32は一つの32-bitの整数です. MFInt32は0以上の32-bitの整数です. '0x'で始まるのは16進数表記です。
    fooInt32 [ 17, -0xE20, -518820 ]

SFInt32 eventOut の初期値は 0、 MFInt32 eventOutの初期値は [ ] です.

H2>SFNode and MFNode

SFNodeは1つのMFNodeは0個以上のVRMLのノードをあらわします。 以下の例はMFNodefooNodeに4つのノードを設定します。

    fooNode [ Transform { translation 1 0 0 }
              DEF CUBE Box { }
              USE CUBE
              USE SOME_OTHER_NODE  ]

SFNode に対しては空をあらわすキーワード"NULL"が使えます。

SFNode eventOut の初期値は "NULL"、 MFNode eventOut の初期値は [ ]です.

SFRotation and MFRotation

SFRotationは一つのMFRotationは0個以上の任意の "回転" を含みます。 空白で区切られた4つの小数で指定され最初の三つで回転の軸を 残りの一つでその軸の周りの回転の角度(ラジアン)を指定します。

    fooRot 0.0 1.0 0.0 3.14159265
はy軸周りに半周する(π)変換です。

回転 (x y z a)を3x3行列の形式で書くと以下のようになります。

    [ tx2+c    txy+sz    txz-sy
      txy-sz   ty2+c     tyz+sx
      txz+sy   tyz-sx    tz2+c  ]

    where c = cos(a), s = sin(a), and t = 1-c

SFRotation eventOut の初期値は (0 0 1 0)、 MFRotation eventOut の初期値は [ ]です.

SFString and MFString

SFString一つはMFStringは0個以上の UTF-8 universal characterの文字列をあらわします。 ( UTF-8に関する詳細). 文字列はVRML ファイル中でダブルクォーテーションに挟まれます。 (例 "string")

すべての文字(改行、'#'を含む)をダブルクォーテーションの中に 書く事ができます。 ダブルクォーテーションとバックスラッシュを 書くときには前にバックスラッシュをつけます。

    fooString [ "One, Two, Three", "He said, \"Immel did it!\"" ]

SFString eventOut の初期値は "" (空文字列)、 MFString eventOut の初期値は [ ]です.

SFTime and MFTime

SFTime は一つのMFTime は0個以上の時間を表します。 VRML ファイル中での値は倍精度小数であらわされる Jan 1, 1970, 00:00:00 GMTからの経過秒です. 例

fooTime 0.0

SFTime eventOut の初期値は -1、 MFTime eventOut の初期値は [ ]です.

SFVec2f and MFVec2f

SFVec2fは一つのMFVec2fは一つ以上の2次元のベクトルをあらわします。 これは空白で区切られた2つの小数であらわされます。

    fooVec2f [ 42 666, 7 94 ]

はMFVec2f のfooVec2fに二つのベクトルを指定します。

SFVec2f eventOut の初期値は (0 0)、 MFVec2f eventOut の初期値は [ ]です.

5.12 SFVec3f and MFVec3f

SFVec3fは一つのMFVec3fは一つ以上の3次元のベクトルをあらわします。 これは空白で区切られた3つの小数であらわされます。

    fooVec3f [ 1 42 666, 7 94 0 ]

はMFVec3f のfooVec3fに二つのベクトルを指定します。

SFVec3f eventOut の初期値は (0 0 0)、 MFVec3f eventOut の初期値は [ ]です.

SFImage

SFImageは2次元の格子状に色を指定するためのものです。 これを使うためにはPixelTextureを用います。

まず最初の3つの数はそれぞれ格子の横のますの数, 縦のますの数, ピクセル値のバイト数を表します。 それに「横x縦」個のピクセル値(16進または10進)が続きます。

    fooImage <横の数> <縦の数> <ピクセル値のバイト数> <ピクセル値>

ピクセル値はバイト数によって以下のような意味を持ちます。

  1. ピクセル値のバイト数1の場合は白黒を意味しで明るさを1バイトであらわします。 0x00が黒で0xFFが白となります。
  2. ピクセル値のバイト数2の場合白黒に透明度がつきます。 1バイト目(上)が強さを、2バイト目が透明度(α値:0x00が透明)をあらわします。
  3. ピクセル値のバイト数3の場合RGBを意味し赤が0xFF0000、緑が 0x00FF00青が0x0000FFとなります。 それぞれのバイトにそれぞれの色の強さを入れて任意の色を作る事が出来ます。
  4. ピクセル値のバイト数4の場合RGBに続いて4バイト目が透明度(0x00が透明)をあらわします。

ピクセル値は前から順にますの左下から右下、1段上がってまた左から右と対応づけられます。 またピクセル値は一つの数として扱われます。 例えばバイト数3に対して 0x0000FF0xFF255 は同じです。

例えば,

    fooImage 1 2 1 0xFF 0x00

横が1, 縦が2個の区切られて下が白(0xFF)上が黒(0x00)になります。

    fooImage 2 4 3 0xFF0000 0xFF00 0 0 0 0 0xFFFFFF 0xFFFF00
                   # red    green  black.. white    yellow

横2縦4に区切って左下から赤、緑、黒、黒、黒、黒、白、最後に右上が黄色となります。

ちなみにSFImage eventOut の初期値は(0 0 0)です。