用mel编写自定义节点的属性编辑器界面
- // 初始化节点时调用
global proc initControl(string $attrName){// 传进来的参数是节点属性名,使用这个方法获得节点名称string $nodeName = `plugNode $attrName`;setUITemplate -pst "attributeEditorTemplate";button -label "Compute Weight" -c ("cageDeform -init -name " + $nodeName) computeWeightButton;setUITemplate -ppt;}- // 修改节点时(例如点击另一个同类节点)调用
- // 此函数的目的是对按钮绑定的命令做相应修改,使其能应用于相应节点
global proc modifyControl(string $attrName){// 当attrName = “cageDeformer1.noAttr”- // plugNode 命令能够提取节点名字cageDeformer1
string $nodeName = `plugNode $attrName`;print $nodeName;button -e -c ("meshControl -init -name " + $nodeName) computeWeightButton;}- // 函数名同文件名一样,同节点名cageDeformer对应
global proc AEcageDeformerTemplate(string $nodeName){editorTemplate -beginScrollLayout;// 新建一个卷展栏editorTemplate -beginLayout "Weight Scheme" -collapse false;// addControl自动指定合适类型的控件editorTemplate -addControl "maxNeighbourNum";editorTemplate -addControl "weightPower";// 在指定的时机调用前面的函数editorTemplate -callCustom "initControl" "modifyControl" "noAttr";editorTemplate -endLayout;editorTemplate -suppress "outMesh";editorTemplate -suppress "inControlMesh";editorTemplate -suppress "refMesh";editorTemplate -suppress "refControlMesh";editorTemplate -beginLayout "Node Behavior" -collapse true;editorTemplate -addControl "nodeState";editorTemplate -addControl "caching";editorTemplate -endLayout;editorTemplate -addExtraControls;editorTemplate -endScrollLayout;}
Specifies that at this point in the template when building the dialog, the procedure specified by the first argument is to be called to create some UI objects when a new node type is edited. The procedure specified by the second argument is to be called if an attribute editor already exists and another node of the same type is now to be edited. The replacing procedure should connect any controls created by the creating procedure to the equivalent attributes in the new node. A list of zero or more attributes specifies the attributes which the two procedures will involve. The procedures should have the signature:
proc AEcustomNew(string attributeName1, string attributeName2) The number of attributes specified in the call should correspond to the number of attributes in the procedure signature. |
用mel编写自定义节点的属性编辑器界面的更多相关文章
- 流程图GGEditor 之 自定义节点相关属性
自定义节点 注册 -- registerNode 我们通过以下接口往 G6 全局注册节点: // 注册节点 G6.registerNode(name, { // 绘制 draw(item) { r ...
- [翻译] Writing Property Editors 编写属性编辑器
Writing Property Editors 编写属性编辑器 When you select a component in the designer its properties are di ...
- (spring-第13回【IoC基础篇】)PropertyEditor(属性编辑器)--实例化Bean的第五大利器
上一篇讲到JavaBeans的属性编辑器,编写自己的属性编辑器,需要继承PropertyEditorSupport,编写自己的BeanInfo,需要继承SimpleBeanInfo,然后在BeanIn ...
- django “如何”系列4:如何编写自定义模板标签和过滤器
django的模板系统自带了一系列的内建标签和过滤器,一般情况下可以满足你的要求,如果觉得需更精准的模板标签或者过滤器,你可以自己编写模板标签和过滤器,然后使用{% load %}标签使用他们. 代码 ...
- SpringBoot编写自定义的starter 专题
What’s in a name All official starters follow a similar naming pattern; spring-boot-starter-*, where ...
- Fabric Engine2.0的自定义节点功能
Fabric Engine是一个多用途的引擎,针对maya等软件写节点写功能很方便.尤其是canvas节点编辑面板,提供了大量现有的功能供用户调用,当然这些节点功能都是可被用户编辑修改的,除此之外还提 ...
- SpringMVC源码阅读:属性编辑器、数据绑定
1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看SpringMVC源码阅读入门,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring ...
- 属性编辑器,即PropertyEditor-->Spring IoC
在Spring配置文件里,我们往往通过字面值为Bean各种类型的属性提供设置值:不管是double类型还是int类型,在配置文件中都对应字符串类型的字面值.BeanWrapper填充Bean属性时如何 ...
- Spring经常使用属性的注入及属性编辑器
对于对象的注入,我们使用ref方式,能够指定注入的对象.以下看下对于基本类型的注入.以及当spring无法转换基本类型进行注入时,怎样编写一个相似转换器的东西来完毕注入. 一.基本类型的注入 以下写一 ...
随机推荐
- “Stamping” PDF Files Downloaded from SharePoint 2010
http://blog.falchionconsulting.com/index.php/2012/03/stamping-pdf-files-downloaded-from-sharepoint-2 ...
- iOS设计模式之简单工厂模式
简单工厂模式 基本理解 到底要实例化谁,将来会不会增加实例化的对象,比如计算器增加开根运算,这是很容易变化的地方,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂. 通过使用工厂模式,我们可以 ...
- 解析plist文件(字典里包着数组,数组中又包含字典)
#import "RootTableViewController.h" #import "City.h" @interface RootTableViewCon ...
- 【原】PSD图标素材的全自动切图方法,适用于IOS、安卓、web前端等领域
屌丝个人开发者经常遇到的尴尬问题是,自己不会设计UI素材又请不起专业的美工.最好的方式是去网上下载符合自己需求的素材修修改改直接用上.但是,在这个过程中会发现很多下载下来的素材是PSD格式的,很多图标 ...
- KVO的使用
KVO的使用 KVO是一种设计模式,名为观察者. addObserver:forKeyPath:options:context: 通知其他对象的方法,这个方法在NSObject中就已经申明了,也就是说 ...
- DP大作战—组合背包
题目描述 组合背包:有的物品只可以取一次(01背包),有的物品可以取无限次(完全背包),有的物品可以取的次数有一个上限(多重背包). DD大牛的伪代码 for i = 1 to N if 第i件物品属 ...
- 关于Redis中交互的过程
一.Redis启动 加载配置(命令行或者配置文件) 启动TCP监听,客户端的列表保存在redisserver的clients中 启动AE Event Loop事件,异步处理客户请求 事件处理器的主循环 ...
- 关于Redis中的serverCron
1.serverCron简介 在 Redis 中, 常规操作由 redis.c/serverCron 实现, 它主要执行以下操作 /* This is our timer interrupt, cal ...
- .NET 分页
.net分页 1.存储过程create procedure 存储过程名( @pageIndex int, //第几页 @pageSize int ...
- cocos2d-x之悦动的小球
发现问题:update()函数不能用virtual前缀 主: bool HelloWorld::init() { if ( !LayerColor::initWithColor(Color4B(255 ...