UDF において、ある cell thread tc(たとえば翼を含む空間)に含まれる face thread tf(たとえば翼表面)を求めるのに、次のようなことができた:
begin_c_loop(c,tc); c_face_loop(c,tc,i) { if(C_FACE_THREAD(c,tc,i)==tf) { f=C_FACE(c,tc,i); f_node_loop(f,tf,n) { np=F_NODE(f,tf,n); if( NODE_POS_NEED_UPDATE(np) ) { NODE_POS_UPDATED(np); do something; } } } } end_c_loop(c,tc);
if(C_FACE_THREAD(c,tc,i)==tf)
のところ、UDFマニュアルのサンプルだと if( THREAD_ID(C_FACE_THREAD(c,tc,i)) == THREAD_ID(tf) )
のように書いてるんだけど、Thread ポインタのままで比較しても特に問題はなさそうだった。
…あれ?でもなんかこれあまり有意義ではないかも・・・