• 如何了解该属性是否会触发MDagMessage::addWorldMatrixModifiedCallback事件


    有一个partner问我,他在使用 MDagMessage::addWorldMatrixModifiedCallback 这个事件,但是他想了解到底哪些属性的变化会触发这个事件,他们有一些特殊的需求需要单独处理那些不触发这个事件的属性。

    这个就涉及到属性之间相互影响的关系,查了下SDK,上面说“This method registers a callback that is called when a DAG node's worldMatrix changes.”,那也就说,要知道哪些属性变化会触发该事件,只要知道哪些属性会影响到worldMatrix 属性, 一开始,我建议用户使用 affects 命令或者如下命令来获取:
    MFnDependencyNode::getAffectedAttributes (const MObject &attr, MObjectArray &affectedAttributes),
    MFnDependencyNode::getAffectedByAttributes (const MObject &attr, MObjectArray &affectedByAttributes) const

    但这个似乎还是不完美,幸好,MFnAttribute::isAffectsWorldSpace()似乎提供了更好的解决方式。只需要对该接口属性做个判断,理论上,如果该属性会影响世界空间,那么也就会影响world Martrix属性。自己做了些小实验,查看那些触发addWorldMatrixModifiedCallback() 的属性是否会影响世界空间,结果验证了自己的想法。

  • 相关阅读:
    strcmp()比较函数和strcasecmp()和strnatcmp()
    substr()函数
    改变字符串中的字母大小写
    explode()与相反函数 implode() 和join()
    PHP nl2br() 函数
    PHP trim() 函数
    PHP的count(数组)和strlen(字符串)的内部实现
    变量处理函数库
    php中定义数组的方法
    80端口的烦恼:[3]清除NT Kernel占用80端口
  • 原文地址:https://www.cnblogs.com/johnonsoftware/p/3564665.html
Copyright © 2020-2023  润新知