vgFindPart
vgFindPart finds a named part of an object. If name = NULL, then the root part of the object is returned. If multiple parts in the object have the
same name, the first occurrence of that part will be returned if part is NULL. To find subsequent occurrence, part should be the previous part
found.
什么意思呢,就是,如果name = NULL,那么就找到对象的根节点,如果多个部件共名,那么按照FLT遍历算法,第一个出现的部件将被返回 ,为了找到后续的部件,
part 应该设置为当前已经找到的部件。
解决的办法:
将你的MIS DCS弄到body的节点下面,和LAU_DCS一个级别,然后应用vgPart* d2 = vgFindPart(obj, "MIS_DCS", NULL);
或者
保持FLT文件节点布局现状,先找到LAU_DCS
vgPart* lau_dcs = vgFindPart(obj, "LAU_DCS", NULL);
然后接着找到 MIS_DCS
vgPart* mis_dcs = vgFindPart(obj, "LAU_DCS", lau_dcs);
下面是Vega关于车轮部件的寻找例子
To retrieve the parts with the same name in an object:
vgPart *w1, *w2, *w3, *w4;
w1 = vgFindPart ( obj, "wheel", NULL );
w2 = vgFindPart ( obj, "wheel", w1 );
w3 = vgFindPart ( obj, "wheel", w2 );
w4 = vgFindPart ( obj, "wheel", w3 ); |