シーングラフからのノードの取得
ここでは、シーングラフからのノードの取得方法について解説します。
M3G ではシーングラフは木構造として管理されています。そのため、あるノードを取得するとそのノードが配下に持つノードも同時に取得されます。 M3G ファイルからデータを取得するためには Loader クラスの load() メソッドを使用します。このとき取得されるデータは Object3D クラスの配列として扱われ、下記の画像のようなデータの場合、CompositingMode オブジェクト、 PolygonMode オブジェクト、 World オブジェクトの3つが格納された配列が取得されます。従って、 World クラスのオブジェクトを取得するためには、得られた Object3D クラスの配列の第3要素を World クラスへキャストする必要があります。

World クラスの取得
* private Object3D [] roots;
* private World myWorld;
*/
/* リソースからのデータ取得 */
try{
/* Object3D クラスの配列から World オブジェクトを取得 */
if ( roots [ 2 ] .getUserID () == 20 ) {
一方、こうして得られた World オブジェクトが表すシーングラフから、ある特定のノードのみを取得したい場合 Object3D クラスの find() メソッドを使用します。このメソッドは呼び出し元のオブジェクトが配下に持つノードを検索し、引数として渡した UserID が一致するノードが存在した場合、そのノードを Object3D オブジェクトとして返すものです。 UserID とは、シーングラフ中の各オブジェクトに割り当てられた ID のことで、下記の画像中の赤線で囲まれた部分の値を指します。
特定ノードの取得
* private Appearance myAppearance;
* private World myWorld;
*/
/* Appearance オブジェクトの取得 */
myAppearance = ( Appearance ) myWorld.find ( 11 );
ここでは、上記のシーングラフから Appearance オブジェクトを取得しています。

