Hun*_*ter 7 floating-point xcode swift
我试图让我的代码没有警告。因为我刚刚更新了 Xcode,并且知道收到警告信号。我也尝试在下面解决这个问题。
这是给我警告的代码:
代码:
extension float4x4 {
var translation: float3 {
return float3(columns.3.x, columns.3.y, columns.3.z)
}
init(translation vector: float3) {
self.init(float4(1, 0, 0, 0),
float4(0, 1, 0, 0),
float4(0, 0, 1, 0),
float4(vector.x, vector.y, vector.z, 1))
}
}
extension float4 {
var xyz: float3 {
return float3(x, y, z)
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试翻译的内容如下:
代码:
extension SIMD4 {
var translation: SIMD3<Float> {
return SIMD3(columns.3.x, columns.3.y, columns.3.z)
}
init(translation vector: SIMD3<Float>) {
self.init(SIMD4<Float>(1, 0, 0, 0),
SIMD4<Float>(0, 1, 0, 0),
SIMD4<Float>(0, 0, 1, 0),
SIMD4(vector.x, vector.y, vector.z))
}
}
extension SIMD4 {
var xyz: SIMD3<Float> {
return SIMD3<Float>(x, y, z) as! SIMD3<Float>
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
基本上,我尝试过替换:
float3
Run Code Online (Sandbox Code Playgroud)
和:
SIMD3<Float>
Run Code Online (Sandbox Code Playgroud)
并且警告已经消失。
看起来您SIMD4
在真正打算扩展时意外地进行了扩展float4x4
(与float3
和不同float4
,它并未被弃用)。
另外,在您的其他扩展中,它可能应该是SIMD3<Scalar>
,而不是SIMD3<Float>
,这样xyz
将返回与调用的任何类型SIMD3
具有相同类型的 a :Scalar
SIMD4
extension float4x4 {
var translation: SIMD3<Float> {
SIMD3(columns.3.x, columns.3.y, columns.3.z)
}
init(translation vector: SIMD3<Float>) {
self.init(.init(1, 0, 0, 0),
.init(0, 1, 0, 0),
.init(0, 0, 1, 0),
.init(vector.x, vector.y, vector.z, 1))
}
}
extension SIMD4 {
var xyz: SIMD3<Scalar> {
SIMD3(x, y, z)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3855 次 |
最近记录: |