如何使用遍历三.js修改线框
how to use traverse in three.js to modify wireframe
我有几个对象,当它被选中时,复选框会将线框属性更改为真或假(运行时(。
function toggleWireFrame(obj){
var f = function(obj2)
{
if(obj2.hasOwnProperty("material")){
obj2.material.wireframe=!obj2.material.wireframe;
}
}
obj.traverse(f);
}
1(如果你在每个网格上一个接一个地调用toggleWireFrame
,你的代码应该可以工作。
toggleWireFrame(meshA);
toggleWireFrame(meshB);
如果每个网格都由多个网格组成,并且您还需要切换所有子网格,这将很有意义。例如,如果您从 OBJ 文件导入模型,您可能会获得这样的网格层次结构。
2(还是您只想调用toggleWireFrame
一次并切换所有网格的线框?
如果是这种情况,您将不得不致电
toggleWireFrame(scene);
甚至
toggleWireFrame(myObject3D);
其中myObject3D
是一个Object3D
实例,它是要切换线框状态的所有网格的父级。
traverse()
通过循环访问起始对象的所有子项和孙项来工作。您需要确保要切换到线框的所有对象都在此起始对象下具有父级,如上面的示例所示。
3( 另一种选择是使用数组在创建每个材料时存储它们,然后在用户切换复选框时遍历此数组以更改线框属性。
这是我在项目中使用的,它只是反转布尔值,因为它是真的或假的。
function wireframeToggle(i) {
bool = i.material.wireframe;
i.material.wireframe = !bool;
}
工作示例(x 表示线框(
相关文章:
- 在threejs中使用纹理网格和线框网格
- 使用复选框绘制多段线谷歌地图API3,不'不起作用
- 线框立方体几何图形
- 在 Three.js 中,如何为形状提供自定义边缘颜色?(不只是设置线框:真)
- 无法在 Three.js 中对线框旋转进行动画处理
- 如何使用遍历三.js修改线框
- Chrome 扩展程序上下文菜单 - 修改文本框选择
- 如何在渲染时获得块元素(内部有内联元素)的线框高度
- three.js视频纹理线框错误
- 我可以't制作线框
- 如何使用Jquery修改文本框的值
- 引导双线框如何获得选择的值
- Javascript:修改文本框值时调用函数
- 使用TinyMCE富文本编辑器-如何修改文本框大小
- 演示如何使用WireframeHelper删除线框
- 带有物体材质的三维线框
- 修改文本框时的问题处理
- 修改文本框中输入的文本
- 修改文本框内容后,无法在末尾设置光标
- 修改文本框以使某些文本在使用占位符属性单击时消失