• 关于创建和删除DAG节点的一些知识


    首先,我们知道所有Shape节点都必须有一个Transform父节点。如果一个Shape节点是他的父Transform节点的最后一个子节点,那么,当我们使用MDagModifier来删除这个Shape节点的时候,他的父节点也会被同时删除掉。这是Maya的一个正常行为,Maya通过这种方式来使场景中避免了出现一些孤立的Transform节点。同样,当使用MDagModifier::createNode() 函数来创建一个新的Dag节点的时候,如果没有指定父节点并且是Shape节点的话,Maya也会同时创建一个新的Transform父节点给他,这和删除节点是一致的。

    然而,需要注意的是,MDagModifier::reparentNode()是不会删除空的父节点的,这个和前面提到的是不一样的;另外,delete 命令也不会自动删除空的父节点。

    如果当上面的情况发生时,也就是说删除Transform节点的最后一个Shape子节点的时候,如果你不希望Maya自动帮你把父节点也删除掉的话,下面两个API可以帮到你:

    MStatus MPxNode::setExistWithoutOutConnections

    (

    bool 

    flag

    )

    MStatus MPxNode::setExistWithoutInConnections

    (

    bool 

    flag

    )

    将flag设成true的话,当该节点没有任何上游或下游连接时,Maya也不会自动删除该节点了。

  • 相关阅读:
    MSP430的IAP程序在线编程学习
    新手入门Underscore.js 中文(template)
    关于javascript中的变量声明与赋值
    DOJO复选框操作
    添加.MSPX文件(VISTA下)
    TFS集合创建
    ExtJS的导航栏(Accordion TreePanel)
    新的开始,新的起点
    MongoDB实践之路安装
    检测一个文件是否正在使用
  • 原文地址:https://www.cnblogs.com/johnonsoftware/p/2920506.html
Copyright © 2020-2023  润新知