@@ -79,39 +79,43 @@ get_center(center::CenterOfMass, x, y, z) = (sum(x) / length(x), sum(y) / length
7979get_center (center:: NTuple , x, y, z) = center
8080
8181function displacement_x! (ux, action:: Rotate , x, y, z, t)
82- # Not using sind and cosd functions until bug with oneAPI is solved:
83- # https://github.com/JuliaGPU/oneAPI.jl/issues/65
84- α = t .* (action. yaw* π/ 180 )
85- β = t .* (action. roll* π/ 180 )
86- γ = t .* (action. pitch* π/ 180 )
8782 cx, cy, cz = get_center (action. center, x, y, z)
88- x0, y0, z0 = x .- cx, y .- cy, z .- cz
89- ux .= cos .(α) .* cos .(β) .* x0 +
90- (cos .(α) .* sin .(β) .* sin .(γ) .- sin .(α) .* cos .(γ)) .* y0 +
91- (cos .(α) .* sin .(β) .* cos .(γ) .+ sin .(α) .* sin .(γ)) .* z0 .+ cx .- x
83+ α = deg2rad (action. yaw)
84+ β = deg2rad (action. roll)
85+ γ = deg2rad (action. pitch)
86+
87+ @. ux = cos (α * t) * cos (β * t) * (x - cx) +
88+ (cos (α * t) * sin (β * t) * sin (γ * t) - sin (α * t) * cos (γ * t)) * (y - cy) +
89+ (cos (α * t) * sin (β * t) * cos (γ * t) + sin (α * t) * sin (γ * t)) * (z - cz) +
90+ cx - x
91+
9292 return nothing
9393end
9494
9595function displacement_y! (uy, action:: Rotate , x, y, z, t)
96- α = t .* (action. yaw* π/ 180 )
97- β = t .* (action. roll* π/ 180 )
98- γ = t .* (action. pitch* π/ 180 )
9996 cx, cy, cz = get_center (action. center, x, y, z)
100- x0, y0, z0 = x .- cx, y .- cy, z .- cz
101- uy .= sin .(α) .* cos .(β) .* x0 +
102- (sin .(α) .* sin .(β) .* sin .(γ) .+ cos .(α) .* cos .(γ)) .* y0 +
103- (sin .(α) .* sin .(β) .* cos .(γ) .- cos .(α) .* sin .(γ)) .* z0 .+ cy .- y
97+ α = deg2rad (action. yaw)
98+ β = deg2rad (action. roll)
99+ γ = deg2rad (action. pitch)
100+
101+ @. uy = sin (α * t) * cos (β * t) * (x - cx) +
102+ (sin (α * t) * sin (β * t) * sin (γ * t) + cos (α * t) * cos (γ * t)) * (y - cy) +
103+ (sin (α * t) * sin (β * t) * cos (γ * t) - cos (α * t) * sin (γ * t)) * (z - cz) +
104+ cy - y
105+
104106 return nothing
105107end
106108
107109function displacement_z! (uz, action:: Rotate , x, y, z, t)
108- α = t .* (action. yaw* π/ 180 )
109- β = t .* (action. roll* π/ 180 )
110- γ = t .* (action. pitch* π/ 180 )
111110 cx, cy, cz = get_center (action. center, x, y, z)
112- x0, y0, z0 = x .- cx, y .- cy, z .- cz
113- uz .= - sin .(β) .* x0 +
114- cos .(β) .* sin .(γ) .* y0 +
115- cos .(β) .* cos .(γ) .* z0 .+ cz .- z
111+ α = deg2rad (action. yaw)
112+ β = deg2rad (action. roll)
113+ γ = deg2rad (action. pitch)
114+
115+ @. uz = - sin (β * t) * (x - cx) +
116+ cos (β * t) * sin (γ * t) * (y - cy) +
117+ cos (β * t) * cos (γ * t) * (z - cz) +
118+ cz - z
119+
116120 return nothing
117121end
0 commit comments