请问MS update13 的SDK中有没有拖拽面片相关的API可以用?类似于MS ce版本中的Drag mesh功能。我想选中一个mesh网格中的几个面片然后对这几个面片进行处理。
API中的函数一般就来说都是非常底层的,并不对应一个个工具。
对于您这个需求,如果Mesh的类型是Indexed的话,只需要找到相应的Vertex数组,修改一个顶点坐标位置即可。您需要首先到开发帮助文档中学习一下Mesh的数据的存储知识然后才能正确编写Mesh相关的代码。
对于一个mesh元素,我鼠标选中的话一般都是选中整个mesh元素的
Work smart, not just work hard!
这个需要像符老师上边说的那样读取Mesh的每个面的数据,然后判断是否跟框选或者划选的范围有交集来获取想要的面。
比如Drag Mesh工具会出现如下这样的画面:
这些黄色的部分你可以根据用户框选的Mesh的vertex构造这些边,然后用transient element(瞬态元素)表示它们。请查看MDL函数mdlTransient_xxx,这些瞬态元素不会添加到当前模型中,仅作为临时显示之用。
郭老师,我使用Polygon框选了一个范围,请问如何判断这个mesh上的哪些面片被我框选住了?目前我只知道如何判断一个点是不是在一个Polygon里面(mdlPolygon_pointInsideXY),判断面片的方法有吗?
感谢符工,确实可以用transient element来高亮显示出我选择了哪些面片
您可以判断一下面的每一个点是不是都在Polygon里边,从而确定这个面是否被框选中了。