zoukankan      html  css  js  c++  java
  • 十一、Manipulators

    1. Manipulators是可以用三维进行绘制的的节点,可以将用户行为值化,对其他节点的属性进行modify。

    2. 属性值可以通过Channel Box 和Graph Editor进行修改。同其他的dg节点不一样,manipulator直接修改属性值,而不通过plug。

    3.可以用以下几种方法是用manipulator:

    Create a manipulator on any node in the current scene at any time.

    Create and assign a manipulator for a specific type of object.

    Create a context tool and associate the manipulator to the context tool. Whenever the context tool is active, the manipulator becomes active and ready for use.

    4. 所有的manipulator的function set都是从MFnManip3D派生而来。

    (1)FreePointTriadManip: 

    The FreePointTriadManip provides a point that can be moved anywhere. It has axes for constrained x, y, and z movement and obeys grid snapping, point snapping, and curve snapping.

    (2)DirectionManip:

    .....详情见document

    5 Manipulator Containers:

    (1)

    通过MPxManipContainer创建Manipulator container. 

    可以将base manipulators加入到container。

    定义从manipulator到attribute的联系。

    (2)必要的几个方法:

    creator(), initialize(), createChildren(), connectToDependNode()

    你也可以通过重写draw函数来自定义manipulator的绘制。

    (3)initialize()

    静态函数需要注册的。进行一些必要的初始化。

    (4)createChildren()

    base manipulator加到container里面是通过这个函数的,例子:

    MStatus moveManip::createChildren()
    {
        ...
        
        fDistanceManip = addDistanceManip(manipName, distanceName);
        fFreePointManip = addFreePointTriadManip(pointManipName,  pointName);
    
        ...        
    }

    The MPxManipContainer class provides a set of member functions to add individual base manipulators, most of them are named as addXYZManip, where XYZ represents the manipulator name

  • 相关阅读:
    异地多活(异地双活)实践经验
    申诉受理
    申诉受理
    关于数据采集需求的讨论帖
    Http压测工具wrk使用指南
    设计爬虫Hawk背后的故事
    APP接口版本兼容的问题
    .net点选验证码实现思路分享
    央企晒年薪 现在终于有机会看到了_青新闻__中国青年网
    蘑菇街电商交易平台服务架构及改造优化历程(含PPT)
  • 原文地址:https://www.cnblogs.com/bubbler/p/5176628.html
Copyright © 2011-2022 走看看