Skip to content

Commit 3f5ef2f

Browse files
authored
Merge pull request #2 from Affie/hotfix/convertconstructors
Fixes constructor fall back warnings in 0.7
2 parents 0b4ce42 + 72a8c4f commit 3f5ef2f

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

src/TransformUtils.jl

+16
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,22 @@ mutable struct Euler
141141
Euler(v::VectorFloatInt, q::Quaternion) = new(v[1],v[2],v[3], q)
142142
end
143143

144+
#explicit convertion constructors
145+
SO3(ss::so3) = convert(SO3, ss)
146+
SO3(A::AngleAxis) = convert(SO3, A)
147+
SO3(q::Quaternion) = convert(SO3, q)
148+
SO3(E::Euler) = convert(SO3, E)
149+
150+
Quaternion(ss::so3) = convert(Quaternion, ss)
151+
Quaternion(R::SO3) = convert(Quaternion, R)
152+
Quaternion(A::AngleAxis) = convert(Quaternion, A)
153+
Quaternion(E::Euler) = convert(Quaternion, E)
154+
155+
AngleAxis(R::SO3) = convert(AngleAxis, R)
156+
AngleAxis(q::Quaternion) = convert(AngleAxis, q)
157+
158+
Euler(SO3::SO3) = convert(Euler, SO3)
159+
Euler(q::Quaternion) = convert(Euler, q)
144160

145161
mutable struct SE3
146162
R::SO3

test/runtests.jl

+22
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,28 @@ using Test
1111
SE3(T.t, q)
1212
SE3(T.t, R)
1313
SE3(T.t, A)
14+
E = Euler(0)
15+
16+
RfromE = SO3(E)
17+
RfromQ = SO3(q)
18+
RfromA = SO3(A)
19+
Rfromss = SO3(ss)
20+
21+
QfromE = Quaternion(E)
22+
QfromR = Quaternion(R)
23+
QfromA = Quaternion(A)
24+
Qfromss = Quaternion(ss)
25+
26+
# AfromE = AngleAxis(E) # Convert not implemented yet
27+
AfromR = AngleAxis(R)
28+
AfromQ = AngleAxis(q)
29+
# Afromss = AngleAxis(ss) # Convert not implemented yet
30+
31+
EfromR = Euler(R)
32+
EfromQ = Euler(q)
33+
# EfromA = Euler(A) # Convert not implemented yet
34+
# Efromss = Euler(ss) # Convert not implemented yet
35+
1436
end
1537

1638
@testset "Ensure basic quaternion operations hold" begin

0 commit comments

Comments
 (0)