未解决的次操作
问题描述:
val temp1 = Quat(1f, Vec3(0, 1, 0)).normalize()
val temp2 = Quat(.5f, Vec3(1, 0, 0)).normalize()
val a = temp1 * Vec3(0, 1, 0)
val transformed0 = a * temp1.inverse() // error
第一*
正确解决了在Quat
类此operator:
operator fun times(b: Vec3) = mul(Vec3(), this, b)
所以a
是Vec3
,并在最后一行我们得到了一个Vec3 * Quat
而这seco
operator fun Vec3.times(b: Quat) = mul(Vec3(), this, b)
我试图通过键入执行:ND运营商我想使用是在这个file顶级定义
import times
但建议times
中有不一个我正在寻找
有什么问题?
答
自拓operator fun Vec3.times(b: Quat)
在包quat
定义,你需要指定包名导入操作时:
import quat.times
// or
import quat.*
什么是'temp1.inverse'的返回类型?当你在函数形式中调用'times'扩展时,像'a.times(temp1.inverse())'是否正确解析? – Ilya
啊,这很棘手......我用功能性的形式写出来,Intellij在解决和解决之间跳跃。alt +进入,导入,它解决了它。切换回运营商,完美无瑕..谢谢伊利亚,如果你想回答,我会接受:) – elect