Autodesk forge transform extension 打开/关闭 X、Y、Z 轴

Autodesk forge transform extension turn on / off X, Y, Z axes

我正在使用 transform extension. Sometimes I want the x, y and z axes to be closed. For example, in this three.js example, pressing the x, y or z keys can be opened and closed via a feature such as .showX。当我在伪造扩展中尝试这个时,没有这样的功能。我该怎么办。 我只是在写这样的代码here。控制台日志已写入,但轴仍然可见。

 document.addEventListener('keydown', function (event) {
            if (event.key === "x") {
                console.log("X press");
                _transformControlTx.showX = !_transformControlTx.showX;
            }
            if (event.key === "y") {
                console.log("Y press");
                _transformControlTx.showY = !_transformControlTx.showY;
            }
            if (event.key === "z") {
                console.log("Z press");
                _transformControlTx.showZ = !_transformControlTx.showZ;
            }
        });

这个问题上周在Forge加速器上讨论过。讨论复制在此供参考:

小东: 变换工具基于THREE.TransformControls。在TRHEE.js的新版本中,貌似支持处理轴的可见性,但由于Forge Viewer是从three.js的旧版本中封装出来的,恐怕还不支持。复制了我的同事@Varun Patil - Forge Team,@Petr Broz(Forge Team)(由于时间差异,他们发表评论可能需要一些时间)。

社区似乎提供了另一种解决方法:

陈奕迅: 我比较了 three.js 示例和 Forge 查看器之间的两个 TransformControl。不幸的是,它们是完全不同的。 Forge Viewer 的 TransformControls 基于 three.js r71,因此它没有直接的 showing/hiding 轴支持。您需要按照上面的 Stack Overflow 线程那样做。

彼得: 恐怕来自 three.js 的转换工具可能会在运行时操纵场景图,根据需要添加和删除 3D 对象……这可以解释为什么您的修改似乎没有坚持。一般来说,如果你需要修改 three.js 的一些不可扩展的组件,而不是与实现斗争,我可能建议构建你自己的......如果你需要的只是 X 或 Y 的移动,你可以只需要一个带有红色和绿色两个薄圆柱体的 3D 对象,并处理它们的 mouseover、mousedown、mousemove 和 mouseup 事件