foo
オブジェクトの baa
メソッドを機能させるには、ピリオド ( .
) を挟んで foo.baa()
と記述します。
()
の中には引数が入るタイプのメソッドもあります。
メソッドには実行結果として「帰り値」を返すタイプと、何も値を返さないタイプがあります。foo
オブジェクトの buu
プロパティを読み書きする場合は foo.buu
と記述します。
()
はいりません。foo.baa().iroiro().arekore
のように続けて記述することもできます。
帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
文字列 | getName() | VRMLブラウザーの名前を返します。 | |
文字列 | getVersion() | VRMLブラウザーのバージョンを返します。 | |
数値 | getCurrentSpeed() | ビューアの移動速度を返します。(*1) | |
数値 | getCurrentFrameRate() | フレームレイト(1秒間に表示を更新した回数)を返します。 (*2) | |
文字列 | getWorldURL() | 表示中のURLを返します。 | |
なし | replaceWorld( nodes ) | nodes : MFNode | 現在表示中のVRMLを nodes に置き換えます。 |
MFNode | createVrmlFromString( vrmlSyntax ) | vrmlSyntax : 文字列 | VRMLのコードが記述された文字列 vrmlSyntax からVRMLノードを生成します。(*3) |
なし | createVrmlFromURL( url, node, event ) | url : MFString node : SFNode event : 文字列 |
url で示されたVRMLファイルからVRMLノード ( MFNode ) を生成します。 生成されたノードは node の event にイベントされます。(*4) |
なし | addRoute( fromNode, fromEventOut, toNode, toEventIn ) | fromNode : SFNode fromEventOut : 文字列 toNode : SFNode toEventIn : 文字列 |
新しく ROUTE を追加します。 |
なし | deleteRoute( fromNode, fromEventOut, toNode, toEventIn ) | fromNode : SFNode fromEventOut : 文字列 toNode : SFNode toEventIn : 文字列 |
既存の ROUTE を削除します。 |
なし | loadURL( url, parameter ) | url : MFString parameter : MFString |
url で示されたファイル(VRMLとは限らない)をロードします。 parameter は「キーワード = 値」で示し、ロード先のターゲットなどを指定します。 |
なし | setDescription( description ) | description : 文字列 | description を Webブラウザーのステータスバーに表示します。 |
生成 | 引数の型 | 説明 |
---|---|---|
new SFColor( r, g, b ) | r, g, b : 数値 | 各引数は 0.0 以上 1.0 以下の実数であり、RGBの各要素の強さです。 |
new SFColor() | new SFColor( 0.0, 0.0, 0.0 ) と同じです。 |
型 | プロパティ | 説明 |
---|---|---|
数値 | r | 色の赤成分の強さです。 |
数値 | g | 色の緑成分の強さです。 |
数値 | b | 色の青成分の強さです。 |
c
に SFColor オブジェクトが入っている場合、c[0], c[1], c[2]
でも各プロパティにアクセスできます。帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
なし | setHSV( h, s, v ) | h, s, v : 数値 | 色相(hue) 彩度(saturation) 明度(value) で表された色をこのオブジェクトにセットします。 各引数は 0 以上 1 以下の実数です。 |
配列[3] | getHSV() | この色オブジェクトをHSVで返します。 帰り値は3つの要素を持つ配列オブジェクトであり、それぞれに数値が入ります。 (*1) | |
文字列 | toString() | r, g, b の値をUTF-8形式の文字列で返します。 |
a = c.getHSV();
とした場合、a[0],a[1],a[2]
を読むと H,S,V の値を得ることができます。
a.constructor
の値を見てみると、Cosmo と Cortona ならば a は Array オブジェクトだと分かりますが、Contact の場合は不明です。
Contact の場合は a.length
で要素数を調べることができないなど、一般的な Array オブジェクトとは違うようです。
生成 | 引数の型 | 説明 |
---|---|---|
new SFImage( x, y, comp, array ) | x, y, comp : 数値 array : MFInt32 |
x, y は 1 以上の整数であり、画像の横と縦のピクセル数です。 comp は 1 から 4 の整数であり、1 ピクセル辺りのデータ量です。 array は x × y 個の要素を持つ MFInt32 オブジェクトであり、ピクセルごとの色(と透明度)が入ります。 |
型 | プロパティ | 説明 |
---|---|---|
数値 | x | 画像の横のピクセル数です。 |
数値 | y | 画像の縦のピクセル数です。 |
数値 | comp | 1 ピクセル辺りのデータ量(byte)です。 comp=1 : モノクロ256段階 comp=2 : モノクロ256段階 + 透明度256段階 comp=3 : フルカラー1677万色 comp=4 : フルカラー1677万色 + 透明度256段階 |
MFInt32 | array | ピクセルごとの色(と透明度)データです。 |
i
に SFImage オブジェクトが入っている場合、
i[0], i[1], i[2], i[3]
でも各プロパティにアクセスできます。
但し読み込みのみ可能であり書き換えはできません。i
に SFImage オブジェクトが入っている場合、i[0], i[1], i[2], i[3]・・・
は array プロパティの各要素へのアクセスとなります。
(読み込みのみ)帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
文字列 | toString() | x, y, comp, array の値をUTF-8形式の文字列で返します。 |
生成 | 引数の型 | 説明 |
---|---|---|
new SFNode( vrmlstring ) | vrmlstring : 文字列 | vrmlstring はVRMLのコードが記述された文字列です。 |
Browser.createVrmlFromString( vrmlSyntax )
は MFNode オブジェクトを生成します。型 | プロパティ | 説明 |
---|---|---|
フィールドによる | フィールド名 | オブジェクト(ノード)が持つフィールドです。 |
n
に SFNode オブジェクトが入っている場合、n.fieldName
で、そのノードのフィールドにアクセスできます。帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
文字列 | toString() | このオブジェクトのノード名をUTF-8形式の文字列で返します。 |
生成 | 引数の型 | 説明 |
---|---|---|
new SFRotation( x, y, z, angle ) | x, y, z, angle : 数値 | 各引数は実数であり、回転軸のxyz成分と回転角度です。 |
new SFRotation( axis, angle ) | axis : SFVec3f angle : 数値 |
axis は回転軸であり、angle は回転角度です。 |
new SFRotation( fromVector, toVector ) | fromVector : SFVec3f toVector : SFVec3f |
fromVector から toVector への回転を表すオブジェクトが生成されます。 |
new SFRotation() | new SFRotation( 0.0, 1.0, 0.0, 0.0 ) と同じです。 (*1) |
型 | プロパティ | 説明 |
---|---|---|
数値 | x | 回転軸の x 成分です。 |
数値 | y | 回転軸の y 成分です。 |
数値 | z | 回転軸の z 成分です。 |
数値 | angle | ラジアン単位の回転角度です。 |
r
に SFRotation オブジェクトが入っている場合、r[0], r[1], r[2], r[3]
でも各プロパティにアクセスできます。帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
SFVec3f | getAxis() | このオブジェクトの回転軸を返します。 | |
SFRotation | inverse() | このオブジェクトの逆回転を返します。(*1) | |
SFRotation | multiply( rot ) | rot : SFRotation | このオブジェクトに rot を掛けた回転オブジェクトを返します。(*2) |
SFVec3f | multVec( vec ) | vec : SFVec3f | このオブジェクトで vec を回転させた後のベクトルを返します。 |
なし | setAxis( vec ) | vec : SFVec3f | このオブジェクトに回転軸 vec をセットします。 |
SFRotation | slerp( dest, t ) | dest : SFRotation t : 数値 |
このオブジェクトと dest との間の補間値を返します。 t は 0 以上 1 以下の実数であり、t = 0 ならばこのオブジェクト、t = 1 ならば dest を返します。(*3) |
文字列 | toString() | x, y, z, angle の値をUTF-8形式の文字列で返します。 |
r.multiply( rot )
は Cosmo Contact での rot.multiply( r )
に相当します。
検証用VRML ソース
クリックすると回転アニメを開始しますが、Cortona とそれ以外のブラウザーとでは、アニメの内容が異なります。
VRMLブラウザーごとの結果比較生成 | 引数の型 | 説明 |
---|---|---|
new SFVec2f( x, y ) | x, y : 数値 | 各引数は実数であり、ベクトルの xy 成分です。 |
new SFVec2f() | new SFVec2f( 0.0, 0.0 ) と同じです。 |
型 | プロパティ | 説明 |
---|---|---|
数値 | x | 2次元ベクトルの x 成分です。 |
数値 | y | 2次元ベクトルの y 成分です。 |
v
に SFVec2f オブジェクトが入っている場合、v[0], v[1]
でも各プロパティにアクセスできます。帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
SFVec2f | add( vec ) | vec : SFVec2f | このオブジェクトに vec を加算したベクトルを返します。 |
SFVec2f | divide( n ) | n : 数値 | このオブジェクトの xy 成分を n で割ったベクトルを返します。 |
数値 | dot( vec ) | vec : SFVec2f | このオブジェクトと vec との内積を返します。 |
数値 | length() | このオブジェクトのベクトルの長さを返します。 | |
SFVec2f | multiply( n ) | n : 数値 | このオブジェクトの xy 成分を n 倍したベクトルを返します。 |
SFVec2f | normalize() | このオブジェクトの単位ベクトルを返します。 | |
SFVec2f | subtract( vec ) | vec : SFVec2f | このオブジェクトから vec を減算したベクトルを返します。 |
文字列 | toString() | x, y, z の値をUTF-8形式の文字列で返します。 |
negate()
(符号反転)メソッドがあります。
生成 | 引数の型 | 説明 |
---|---|---|
new SFVec3f( x, y, z ) | x, y, z : 数値 | 各引数は実数であり、ベクトルの xyz 成分です。 |
new SFVec3f() | new SFVec3f( 0.0, 0.0, 0.0 ) と同じです。 |
型 | プロパティ | 説明 |
---|---|---|
数値 | x | 3次元ベクトルの x 成分です。 |
数値 | y | 3次元ベクトルの y 成分です。 |
数値 | z | 3次元ベクトルの z 成分です。 |
v
に SFVec3f オブジェクトが入っている場合、v[0], v[1], v[2]
でも各プロパティにアクセスできます。帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
SFVec3f | add( vec ) | vec : SFVec3f | このオブジェクトに vec を加算したベクトルを返します。 |
SFVec3f | cross( vec ) | vec : SFVec3f | このオブジェクトと vec との外積を返します。 |
SFVec3f | divide( n ) | n : 数値 | このオブジェクトの xyz 成分を n で割ったベクトルを返します。 |
数値 | dot( vec ) | vec : SFVec3f | このオブジェクトと vec との内積を返します。 |
数値 | length() | このオブジェクトのベクトルの長さを返します。 | |
SFVec3f | multiply( n ) | n : 数値 | このオブジェクトの xyz 成分を n 倍したベクトルを返します。 |
SFVec3f | negate() | このオブジェクトの xyz 成分の符号を反転させたベクトルを返します。 | |
SFVec3f | normalize() | このオブジェクトを正規化した単位ベクトルを返します。 | |
SFVec3f | subtract( vec ) | vec : SFVec3f | このオブジェクトから vec を減算したベクトルを返します。 |
文字列 | toString() | x, y, z の値をUTF-8形式の文字列で返します。 |
生成 | 引数の型 | 説明 |
---|---|---|
new MFColor( c1, c2, ..... ) | c1, c2, ..... : SFColor | 各引数は生成するオブジェクトの SF型フィールドオブジェクトです。 |
new MFColor() | 要素数 ( length ) は 0 となります。 |
型 | プロパティ | 説明 |
---|---|---|
数値 | length | このオブジェクトの配列要素数です。 |
mc
に MFColor オブジェクトが入っている場合、mc[0], mc[1], .....
で各要素 ( SFColor オブジェクト) にアクセスできます。帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
文字列 | toString() | このオブジェクトの全要素をUTF-8形式の文字列で返します。 |
mc
から、最初の要素の緑成分の強さを変数 green
に入れる場合
green = mc[0].g; もしくは green = mc[0][1];
mvec
の全要素を単位ベクトル化する場合
for ( i=0; i<mvec.length; i++ ) mvec[i] = mvec[i].normalize();
もしくは
i=0; while (i<mvec.length) { mvec[i] = mvec[i].normalize(); i++; }
mv
の要素のx成分に 1 を加える際、
mv[i].x++;
もしくは mv[i][0]++;
という書き方をすると Contact ではエラーとなります。
この不具合を回避するには mv[i].x += 1;
もしくは mv[i][0] += 1;
という書き方をしてください。生成 | 引数の型 | 説明 |
---|---|---|
new VrmlMatrix( f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, f41, f42, f43, f44 ) |
f11, f12, ..... f44 : 数値 | 各引数は実数であり、行列を構成するための成分です。 |
new VrmlMatrix() | 単位行列を生成します。 |
vm
に VrmlMatrix オブジェクトが入っている場合、
vm[0][0], vm[0][1], .... ,vm[3][3]
で各成分にアクセスできます。帰り値の型 | メソッド | 引数の型 | 機能 |
---|---|---|---|
なし | setTransform( translation, rotation, scale, scaleOrientation, center ) | translation : SFVec3f rotation : SFRotation scale : SFVec3f scaleOrientation : SFRotation center : SFVec3f |
Transform ノード関係のフィールド値をこのオブジェクトにセットします。 引数の数は 0 から 5 であり、引数がない場合は単位行列がセットされます。 無指定の引数は Transform ノードの初期値と同じ値がセットされます。 |
setTransform( translation, rotation, scale, scaleOrientation ) | |||
setTransform( translation, rotation, scale ) | |||
setTransform( translation, rotation ) | |||
setTransform( translation ) | |||
setTransform() | |||
なし | getTransform( translation, rotation, scale ) | translation : SFVec3f rotation : SFRotation scale : SFVec3f |
引数で指定したオブジェクトに、この行列オブジェクトを分解した値を返します。 引数が無い場合や null オブジェクトである場合、その値は返しません。 行列内の「投影」や「せん断」の情報は無視されます。(*1) |
VrmlMatrix | inverse() | この行列オブジェクトの逆行列を返します。 | |
VrmlMatrix | transpose() | この行列オブジェクトの転置行列を返します。 | |
VrmlMatrix | multLeft( matrix ) | matrix : VrmlMatrix | この行列オブジェクトの左から行列 matrix を掛けた結果の行列を返します。 |
VrmlMatrix | multRight( matrix ) | matrix : VrmlMatrix | この行列オブジェクトの右から行列 matrix を掛けた結果の行列を返します。 |
SFVec3f | multVecMatrix( vec ) | vec : SFVec3f | 行ベクトル vec にこの行列オブジェクトを掛けた結果のベクトルを返します。 |
SFVec3f | multMatrixVec( vec ) | vec : SFVec3f | この行列オブジェクトに列ベクトル vec を掛けた結果のベクトルを返します。(*2) |
文字列 | toString() | このオブジェクトの全成分をUTF-8形式の文字列で返します。 |
getTransform()
メソッドを使う前に引数の宣言を行う必要があります。vm.getTransform( tr, ro, sc );
の各引数が未定義ならば tr = new SFVec3f(); ro = new SFRotation(); sc = new SFVec3f();
を事前に記述してください。vec = ( x, y, z, 1 )
を掛けているのに対し、Contact は ( 1, x, y, z )
を掛けている様です。