シーングラフを表す World クラスは Node クラスのサブクラスであるため、Nodeクラスの addChild() メソッドを使用することで他の Node クラスのサブクラスを子ノードとして追加することができます。
以下のサンプルコードは Camera クラス、 Light クラス、 Group クラスの各オブジェクトを、直接または M3G データから生成し World クラスのオブジェクトに追加することで、シーングラフを構築しているところです。
/**
* private World myWorld;
* private Background myBackground;
* private Group boy;
* private Group meshGroup;
* private Camera camera;
* private Light ambLight;
* private Light dirLigth;
*/
/* シーングラフへの設定 */
myWorld.setBackground ( myBackground );
myWorld.addChild ( boy );
myWorld.addChild ( meshGroup );
myWorld.addChild ( camera );
myWorld.setActiveCamera ( camera );
myWorld.addChild ( ambLight );
myWorld.addChild ( dirLight );
* private World myWorld;
* private Background myBackground;
* private Group boy;
* private Group meshGroup;
* private Camera camera;
* private Light ambLight;
* private Light dirLigth;
*/
/* シーングラフへの設定 */
myWorld.setBackground ( myBackground );
myWorld.addChild ( boy );
myWorld.addChild ( meshGroup );
myWorld.addChild ( camera );
myWorld.setActiveCamera ( camera );
myWorld.addChild ( ambLight );
myWorld.addChild ( dirLight );
このとき setActiveCamera() メソッドにより、 World クラスを描画する際に使用する Camera クラスのオブジェクトを設定する必要があります。 World クラスに対して追加されていない Camera クラスのオブジェクトを設定することはできません。必ず World クラスに Camera クラスのオブジェクトを追加した後で設定を行うようにしてください。なお、setBackground() メソッドは World クラスに対して、背景となる Background クラスのオブジェクトを設定するメソッドです。 Background クラスのオブジェクトを設定しない場合デフォルトの値が適用され、背景は黒く塗りつぶされます。

SceneGraph 描画結果

