MItSelectionList::setFilter()和MItSelectionList::reset()
来源:互联网 发布:windows进程内存监控 编辑:程序博客网 时间:2024/06/16 23:02
今晚写代码中出现了一个问题,记录下来。
首先是所参照的没问题的代码:
当选择uv后if之间的代码块没问题的执行,
而几乎照搬的代码:
却根本不能迭代,调试过程发现,只有选择mesh才能迭代,但是当然的过不了if…… 我就郁闷啊。几乎一模一样的代码了,可电脑就是和我做对呢。
后来突然想难道是iter.reset()的问题?查了一下doc:
MStatus MItSelectionList::setFilter ( MFn::Type filter )
Apply a filter to the iteration. Selection items not matching the filter type will be excluded from the iteration.
MStatus MItSelectionList::reset ( )
Reset the iterator. If a filter has been specified then the current item will be the first selected item that matches the filter.
以前的理解一直是setFilter之后iter要迭代的序列会自动过滤掉非法的元素了,原来不是这样的,setFilter只是严格对比元素的apiType和指定的类型,不匹配的就标记为invalid,但是元素还是会迭代的,除非经过reset。
reset所做的不仅是将指针归位,还有就是去掉invalid的元素。
这样看来devkit里的代码其实是有问题的,虽然结果正确。setFilter之后不得不手动的验证排除,事实上只要setFilter正确然后reset,api会自动排除。
这个问题可能太弱智吧,本人菜鸟一只,如有错误欢迎指正。
还有就是mesh节点只能存储顶点的tweak,不能存uv的修改信息,如果一个mesh节点有历史,对uv的直接操作只能保存到节点中,如果直接对节点操作,一旦重新evaluate之后就浮云了。
- MItSelectionList::setFilter()和MItSelectionList::reset()
- setfilter
- PB中用SetFilter和Filter实现简单的查询功能
- PB中用SetFilter和Filter实现简单的查询功能
- MySQL RESET MASTER与RESET SLAVE和RESET SLAVE ALL
- RESET MASTER 和RESET SLAVE区别
- submit和reset按钮
- BufferedInputStream mark() 和reset()
- 关于Qt显示Jpg图片程序的移植和数据库的setfilter函数的问题
- QTableModel的setfilter()函数不能过滤中文和字符串的原因
- QTableModel的setfilter()函数不能过滤中文和字符串的原因
- QTableModel的setfilter()函数不能过滤中文和字符串的原因
- PyQt5 用QSqlTableModel操作sql数据库(插入新的列和setFilter()的使用)
- RESET MASTER和RESET SLAVE使用场景和说明
- d3d 设备丢失和reset
- git diff 和 git reset
- git revert 和 git reset
- mark() 和reset的使用
- WS-Addressing
- M8系统开发手记(2)
- 材质和纹理的区别
- oracle的OS验证
- Asterisk 1.8 sip 协议栈分析(1)
- MItSelectionList::setFilter()和MItSelectionList::reset()
- C++基础摘要
- struct中的地址对齐
- Asterisk 1.8 sip 协议栈分析(2)
- 可视电话的编程记录
- 教学课件 ---- 诗词游戏的开发
- 图片上传前的预览与检测
- 设计模式(三)--装饰者模式(1)
- NDIS6过滤驱动的编写