Quaternion.lua 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. class "Quaternion"
  2. function Quaternion:Quaternion(w, x, y, z)
  3. if self.__ptr == nil then
  4. self.__ptr = Polycore.Quaternion(w, x, y, z)
  5. end
  6. end
  7. function Quaternion:setFromMatrix(kRot)
  8. return Polycore.Quaternion_setFromMatrix(self.__ptr, kRot.__ptr)
  9. end
  10. function Quaternion:Slerp(fT, rkP, rkQ, shortestPath)
  11. return Polycore.Quaternion_Slerp(self.__ptr, fT, rkP.__ptr, rkQ.__ptr, shortestPath)
  12. end
  13. function Quaternion:Dot(rkQ)
  14. return Polycore.Quaternion_Dot(self.__ptr, rkQ.__ptr)
  15. end
  16. function Quaternion:Log()
  17. return Polycore.Quaternion_Log(self.__ptr)
  18. end
  19. function Quaternion:Exp()
  20. return Polycore.Quaternion_Exp(self.__ptr)
  21. end
  22. function Quaternion:Norm()
  23. return Polycore.Quaternion_Norm(self.__ptr)
  24. end
  25. function Quaternion:normalise()
  26. return Polycore.Quaternion_normalise(self.__ptr)
  27. end
  28. function Quaternion:lookAt(D, upVector)
  29. return Polycore.Quaternion_lookAt(self.__ptr, D.__ptr, upVector.__ptr)
  30. end
  31. function Quaternion:createFromMatrix(matrix)
  32. return Polycore.Quaternion_createFromMatrix(self.__ptr, matrix.__ptr)
  33. end
  34. function Quaternion:Squad(fT, rkP, rkA, rkB, rkQ, shortestPath)
  35. return Polycore.Quaternion_Squad(self.__ptr, fT, rkP.__ptr, rkA.__ptr, rkB.__ptr, rkQ.__ptr, shortestPath)
  36. end
  37. function Quaternion:Inverse()
  38. return Polycore.Quaternion_Inverse(self.__ptr)
  39. end
  40. function Quaternion:set(w, x, y, z)
  41. return Polycore.Quaternion_set(self.__ptr, w, x, y, z)
  42. end
  43. function Quaternion:inverse()
  44. return Polycore.Quaternion_inverse(self.__ptr)
  45. end
  46. function Quaternion:InvSqrt(x)
  47. return Polycore.Quaternion_InvSqrt(self.__ptr, x)
  48. end
  49. function Quaternion:fromAxes(az, ay, ax)
  50. return Polycore.Quaternion_fromAxes(self.__ptr, az, ay, ax)
  51. end
  52. function Quaternion:FromAngleAxis(rfAngle, rkAxis)
  53. return Polycore.Quaternion_FromAngleAxis(self.__ptr, rfAngle.__ptr, rkAxis.__ptr)
  54. end
  55. function Quaternion:ToAngleAxis(rfAngle, rkAxis)
  56. return Polycore.Quaternion_ToAngleAxis(self.__ptr, rfAngle.__ptr, rkAxis.__ptr)
  57. end
  58. function Quaternion:createFromAxisAngle(x, y, z, degrees)
  59. return Polycore.Quaternion_createFromAxisAngle(self.__ptr, x, y, z, degrees)
  60. end
  61. function Quaternion:createMatrix()
  62. return Polycore.Quaternion_createMatrix(self.__ptr)
  63. end