2017-03-04 105 views
0

我有以下code未解决的次操作

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) 

所以aVec3,并在最后一行我们得到了一个Vec3 * Quat

而这seco

operator fun Vec3.times(b: Quat) = mul(Vec3(), this, b) 

我试图通过键入执行:ND运营商我想使用是在这个file顶级定义

import times

但建议times中有不一个我正在寻找

有什么问题?

+0

什么是'temp1.inverse'的返回类型?当你在函数形式中调用'times'扩展时,像'a.times(temp1.inverse())'是否正确解析? – Ilya

+0

啊,这很棘手......我用功能性的形式写出来,Intellij在解决和解决之间跳跃。alt +进入,导入,它解决了它。切换回运营商,完美无瑕..谢谢伊利亚,如果你想回答,我会接受:) – elect

回答

1

自拓operator fun Vec3.times(b: Quat)在包quat定义,你需要指定包名导入操作时:

import quat.times 
// or 
import quat.*