前: あとがき: これはいい方法では?

12. 付録: イメージマップ

手続きの中で画像を扱う最も簡単な方法は、ImageOrColor と ImageOrValue クラスを使うことです。これはファイルの読み込みや保存のメソッドと同じく、自身のユーザインターフェイスを提供します。しかし場合により、ImageMap クラスを直接使ったほうがいいことがあります。この場合、テクスチャや材質の保存や修復のため、ImageMap オブジェクトの取得方法と参照方法を知っている必要があります。

Scene オブジェクトは、その Scene でテクスチャや材質に使われるすべての ImageMap のマスターリストを保持します。このため、ある画像を使うテクスチャがどれだけたくさんのあったとしても、メモリに入れなければならない画像のコピーはたった1つです。その Scene の getImages() メソッドは、その Scene 内の ImageMap すべての Vector を返します。

一般的に、ImageMap を取得する最良の方法は、ImagesDialog クラスを使うことです。これは、現在読み込み済みの画像を選択したり、ディスクから新規に画像を読み込んだりできるダイアログボックスです。これの getSelection() メソッドはその後、ユーザが選択した ImageMap を返します。

テクスチャや材質をディスクに保存するときは、Scene の画像のマスターリスト scene.getImages().indexOf(map) で ImageMap のインデクスを保存する必要があります。ディスクから読み込みの返答があると、scene.getImages().elementAt(index) から ImageMap オブジェクトが与えられます。

直接的でも間接的(ImageOrColor と ImageOrValue を通して)でも、ImageMaps を使うときは usesImage() メソッドの実装を確認してください。これでユーザは、あなたのテクスチャや材質を使用中の Scene から画像を削除できなくなります。

前: あとがき: これはいい方法では?