前言
自学第六天。Maya的文档,您但凡多说一点,事情都不会变得那么麻烦。这几天要去搞别的事了,比较赶,所以每天啃这个的时间又要被压缩了,学习真是太快乐了(精神错乱中)。
——在我们以各种方式得到DagPath后,例如
MDagPath::getAPathTo( const MObject & node,MDagPath & path )
就可以通过创建工具MFnDagNode
,连接当前的node,就可以得到其父节点或者子节点,如果不确定是否有子节点或者父节点,也可以调用hasParent/ hasChild
进行查询
如何找到Dagnode的前后
- 创建新的工具,并连接到node-》
setObject
setObject有多个重载,你可以直接传入MObject或者是MDagPath
MObject node_root = root_joint_path.node();
MFnDagNode nodeFn;
nodeFn.setObject(root_joint_path);
- 例子:找到root关节的第一个子关节
//创建工具
MFnDagNode nodeFn;
//root连接到工具
nodeFn.setObject(root_joint_path);
//打印root DAGNode的名称
MGlobal::displayInfo(nodeFn.name());
//获取root的子
MObject sec_joint=nodeFn.child(0);
nodeFn.setObject(sec_joint);
MGlobal::displayInfo("sec_" + nodeFn.name());
// check if the DAG is the child
MObject check = nodeFn.parent(0);
if (check == node_root) {
MGlobal::displayInfo("Success to find child");
}