关于创建和删除DAG节点的一些知识
2013-02-21 14:10
435 查看
首先,我们知道所有Shape节点都必须有一个Transform父节点。如果一个Shape节点是他的父Transform节点的最后一个子节点,那么,当我们使用MDagModifier来删除这个Shape节点的时候,他的父节点也会被同时删除掉。这是Maya的一个正常行为,Maya通过这种方式来使场景中避免了出现一些孤立的Transform节点。同样,当使用MDagModifier::createNode() 函数来创建一个新的Dag节点的时候,如果没有指定父节点并且是Shape节点的话,Maya也会同时创建一个新的Transform父节点给他,这和删除节点是一致的。
然而,需要注意的是,MDagModifier::reparentNode()是不会删除空的父节点的,这个和前面提到的是不一样的;另外,delete 命令也不会自动删除空的父节点。
如果当上面的情况发生时,也就是说删除Transform节点的最后一个Shape子节点的时候,如果你不希望Maya自动帮你把父节点也删除掉的话,下面两个API可以帮到你:
将flag设成true的话,当该节点没有任何上游或下游连接时,Maya也不会自动删除该节点了。
然而,需要注意的是,MDagModifier::reparentNode()是不会删除空的父节点的,这个和前面提到的是不一样的;另外,delete 命令也不会自动删除空的父节点。
如果当上面的情况发生时,也就是说删除Transform节点的最后一个Shape子节点的时候,如果你不希望Maya自动帮你把父节点也删除掉的话,下面两个API可以帮到你:
MStatus MPxNode::setExistWithoutOutConnections | ( | bool | flag | ) |
MStatus MPxNode::setExistWithoutInConnections | ( | bool | flag | ) |
相关文章推荐
- 这是一个关于XML文档的操作管理器XMLHelper类,类中包括XML文档的创建,文档节点和属性的读取,添加,修改,删除的方法功能的实现
- 二、jena解析关于基因的go.owl文件(创建、新增类、以及一些节点)
- 关于idea创建Spring 的一些基础知识
- 6410之驱动的一些优化(自动创建/dev设备节点)
- JavaScript权威指南_129_第15章_脚本化文档_15.6-创建、 插入、删除节点-插入节点
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- 关于 XML 的一些基础知识
- 一些关于_WIN32_WINNT的知识
- 关于网站的一些小知识
- 关于Android service的一些基础知识集合
- 关于小波变换和Gabor变换的一些知识!
- 关于字体的一些网站和知识收集
- 一些关于Qt creator的小知识
- JS创建替换删除节点
- 关于Python multiprocessing.Array创建的共享内存无法删除的问题
- 关于Android屏幕适配应该知道的一些知识
- 关于网卡的一些知识
- 一些关于条码的知识
- 关于图形渲染的一些基础知识
- 8_Linux基础知识及命令――――目录的创建与删除