diff --git a/lslopt/lslbasefuncs.py b/lslopt/lslbasefuncs.py index 459be81..dec2e9c 100644 --- a/lslopt/lslbasefuncs.py +++ b/lslopt/lslbasefuncs.py @@ -1568,21 +1568,21 @@ def llRot2Euler(r): def llRot2Fwd(r): assert isrotation(r) - v = (1., 0., 0.) + v = Vector((1., 0., 0.)) if r == (0., 0., 0., 0.): return v return llVecNorm(mul(v, r, f32=False)) def llRot2Left(r): assert isrotation(r) - v = (0., 1., 0.) + v = Vector((0., 1., 0.)) if r == (0., 0., 0., 0.): return v return llVecNorm(mul(v, r, f32=False)) def llRot2Up(r): assert isrotation(r) - v = (0., 0., 1.) + v = Vector((0., 0., 1.)) if r == (0., 0., 0., 0.): return v return llVecNorm(mul(v, r, f32=False)) diff --git a/testfuncs.py b/testfuncs.py index dd59e1f..14bdad9 100644 --- a/testfuncs.py +++ b/testfuncs.py @@ -924,6 +924,22 @@ def do_tests(): test('llFrand(F32(1.4e-45))', 0.0) test('llFrand(F32(1.1754942106924411e-38))', 0.0) + test('llRot2Fwd(Quaternion((1.,0.,0.,0.)))', Vector((1.,0.,0.))) + test('llRot2Fwd(Quaternion((0.,1.,0.,0.)))', Vector((-1.,0.,0.))) + test('llRot2Fwd(Quaternion((0.,0.,1.,0.)))', Vector((-1.,0.,0.))) + test('llRot2Fwd(Quaternion((0.,0.,0.,1.)))', Vector((1.,0.,0.))) + test('llRot2Fwd(Quaternion((0.,0.,0.,0.)))', Vector((1.,0.,0.))) + test('llRot2Left(Quaternion((1.,0.,0.,0.)))', Vector((0.,-1.,0.))) + test('llRot2Left(Quaternion((0.,1.,0.,0.)))', Vector((0.,1.,0.))) + test('llRot2Left(Quaternion((0.,0.,1.,0.)))', Vector((0.,-1.,0.))) + test('llRot2Left(Quaternion((0.,0.,0.,1.)))', Vector((0.,1.,0.))) + test('llRot2Left(Quaternion((0.,0.,0.,0.)))', Vector((0.,1.,0.))) + test('llRot2Up(Quaternion((1.,0.,0.,0.)))', Vector((0.,0.,-1.))) + test('llRot2Up(Quaternion((0.,1.,0.,0.)))', Vector((0.,0.,-1.))) + test('llRot2Up(Quaternion((0.,0.,1.,0.)))', Vector((0.,0.,1.))) + test('llRot2Up(Quaternion((0.,0.,0.,1.)))', Vector((0.,0.,1.))) + test('llRot2Up(Quaternion((0.,0.,0.,0.)))', Vector((0.,0.,1.))) + lslcommon.IsCalc = True test('cond(llGenerateKey())', True) lslcommon.IsCalc = False