Ref

プロパティー(Property)について

CueMolに登場するオブジェクトのうちいくつかには, プロパティーという概念があります. プロパティーは特にレンダラーにおいて重要です.

プロパティーは,文字通りそれを所有するオブジェクトの性質を決めるものです.
例えば,レンダラーはそのプロパティーにより表示色などが決まります.プロパティーはプロパティー名(文字列)とプロパティー値からなっており,プロパティー値は任意の型を取ることができます.

プロパティーの取得と設定

QScriptで,あるレンダラー$rendの,"foo"というプロパティーを取得する場合は,

 $value = $rend.getProp("foo");

と記述します.

逆に,あるレンダラー$rendの,"foo"というプロパティーを整数値'1'に設定する場合は,

 $rend.setProp("foo", 1);

と記述します.

ただし,以下に該当する場合は例外が発生します.

  • プロパティー"foo"が$rend存在しない場合
  • プロパティー"foo"がQScriptがサポートする型のいずれにも変換できない場合.
  • setProp()において,"foo"プロパティーの型と与えられた値の型が一致しない場合.

ただし,整数・実数間では自動型変換が起こるので,実数プロパティーに整数値を設定しても問題ありません.

サブプロパティー (Sub property)

プロパティーの中には,さらにその内部にサブプロパティーをもつものがあります. 例えば,tubeレンダラーsectionというプロパティーを持っていますが,sectionはその内部にwidth, tuberなど, 断面の形状に関するさまざまなプロパティーを持っています.

サブプロパティーを設定・取得するには,ドット表記を用います.

 $value = $rend.getProp("section.width");

上記の例では,"section"のサブプロパティーである"width"を取得しています.

ところで,"section"プロパティー自体はTubeSectionという型を持っていますが,この型はQScriptでは扱えません.このように,QScriptでは扱えない型を持つプロパティーでも,そのサブプロパティーは設定・取得できるわけです.


Last-modified: Thu, 04 Aug 2005 22:40:44 JST (5961d)