[リストへもどる]
一括表示
タイトルボーンの下階層の取得
記事No9953
投稿日: 2011/11/30(Wed) 11:25
投稿者26℃
ボーンを選択して、その下階層の全てのボーンを取得させようとしたのですが、簡単なほうほうが思いつかず
おちゃっこさんはどのような方法で下階層のボーンを取得させていますか。
木構造で調べていると「深さ優先探索」というのを見つけたのですがこのような方法でしょうか?

タイトルRe: ボーンの下階層の取得
記事No9954
投稿日: 2011/11/30(Wed) 13:02
投稿者おちゃっこ
そういう時は再帰呼び出しを使います。
C言語でなんとなく書くと下のようになります。

まず親の無いトップジョイント(topjoint)を探します。
そして
int brotherflag = 0;
HogeFuncReq( topjoint, brotherflag );
のように再帰命令を呼び出します。

再帰命令は
void HogeFuncReq( CJoint* curjoint, int brotherflag )
{
 //jointに何らかの処理
 curjoint->pos.z += 0.5f;

 //子供があれば呼び出し
 if( curjoint->child ){
  HogeFuncReq( curjoint->child, 1 );
 }

 //兄弟があれば書き出し
 if( (brotherflag == 1) && curjoint->brother ){
  HogeFuncReq( curjoint->brother, 1 );
 }

}

っていう感じで書きます。
HSPでは再帰はやったことないですが
HSPにも実装されていたはずです。

タイトルRe^2: ボーンの下階層の取得
記事No9955
投稿日: 2011/11/30(Wed) 14:24
投稿者26℃
モジュールつかえば再帰可能なので、うまくいくことができました
ありがとうございます。