Quat 使用问题,为什么逆旋转计算结果不对?

var quat = new cc.Quat(1,2,3,4);
cc.Quat.rotateX(quat, quat, 90);
cc.Quat.rotateX(quat, quat, -90);
console.log(quat);

期望结果:
quat 为 Quat(1,2,3,4) 与旋转前不变

实际结果
Quat {x: 0.6563156479251437, y: 0, z: 0, w: 0.3236432453668684}

经测试,似乎 cc.Quat.rotateX 方法 第一个参数 和 第二个参数 不能是同一个Quat,否则计算结果就会出错。
不确定类似的还有多少,感觉3D的向量计算的基础类,使用多少有些不方便,需要创建大量的临时变量。

建议:
是否可以延续Creator2的做法,所有计算都是影响自身?开发者去决定是否clone,这样至少逻辑上更清楚。
目前有的方法是影响自身,有的方法如rotateX又不能影响自身,很容易出问题。

非常抱歉,三个 rotate 函数的确有问题,1.1 会修复,急用的话参考这个 PR:

https://github.com/cocos-creator/engine/pull/6396

数学库公开接口有两套,成员函数和你的描述一致,统一只修改自己,而静态函数更灵活一些,统一传递 out 对象;