>>Delta

Shade Plugin SDK の vec3

2009年4月26日

Shade Plugin SDK の vec3

【追記】…あれ?よく見たらvec3型って添え字アクセス付いてない?んーと、これはアクセスだけ?自分が1日かけて「実装は無理」って結論にたどり着いた物が、足下にあったりとか…。また訳わからなくなってきました。無意味な記事かもしれません。

Shade Plugin SDKのvec3型の仕様がどうもしっくりこないので、自分で書いてみよう(書いてみたら何かわかるかも)と思い立ち、やってみました。

SDKでは、vec3型のvという変数の各成分にアクセスするにはv.xのようにメンバ変数にアクセスしますが、これをv[0]と配列添え字でもアクセスできたらループとか作りやすくて便利じゃない?てことでトライしてみた次第。

トライしましたが、ダメでした。添え字でデータを取り出す(floatやdoubleを返す)メソッドは簡単に定義できるんですが、v[0] = 1.0のように添え字付きの代入できるようにしようとすると難しいみたい。

演算子のオーバーロードにあるように、いったんoperator=で変数を受け取ってメンバ変数に格納し、次にoperator[]でそれを反映するようにすればできることはできるらしい。

けど、この方法だとv = 1.0のようにバッファ部分だけを書き換える処理ができるようになってしまうので、意図した動作とは違う使い方もできてしまってあまり美しくない感じがしました。同じ手法では+=が実装できないとか、クラス自体がバッファの分だけ大きくなってしまうとか。

結局、読み取りだけできる[]を残しておいてもしょうがないか。てことで、添え字アクセスは無しになりました。難しいんだなぁ。

投稿者 CASPAR003
投稿時刻 22:01
カテゴリー 雑記
コメント 0 件
トラックバック 0 件
記事へのリンク http://www.caspar003.info/delta/archive/2009/04/26/2201.html
コメント
投稿者
コメント
トラックバック
  • トラックバック

ブログ情報

カレンダー
2018年2月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28
最近のエントリー
最近のコメント
コメントを頂いたエントリー
コメントをくださった方一覧
コピー用紙の裏表
でった☆
CASPAR003
あのー
CASPAR003
amumo
CASPAR003
mariko
kazu
お仕事で青ざめた話
iun
iun
CASPAR003
AcrobatでPDFの一括印刷
Caesar
CASPAR003
Shadeのレンダラー仕様メモ
iun
CASPAR003
ブログ同盟本 C87 3日目 東S-04b
CON$
CASPAR003
Ca3 Post_Effector 2.0
sisioumaru
CASPAR003
sisioumaru
CASPAR003
Shade15について雑感
iun
CASPAR003
iun
色について
iun
CASPAR003
Lv67
iun
CASPAR003
雪まつり行ってきたよ
iun
CASPAR003