BezierCurve.lua 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. class "BezierCurve"
  2. function BezierCurve:BezierCurve(...)
  3. for k,v in pairs(arg) do
  4. if type(v) == "table" then
  5. if v.__ptr ~= nil then
  6. arg[k] = v.__ptr
  7. end
  8. end
  9. end
  10. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  11. self.__ptr = Polycore.BezierCurve(unpack(arg))
  12. end
  13. end
  14. function BezierCurve:getControlPoint(index)
  15. local retVal = Polycore.BezierCurve_getControlPoint(self.__ptr, index)
  16. if Polycore.__ptr_lookup[retVal] ~= nil then
  17. return Polycore.__ptr_lookup[retVal]
  18. else
  19. Polycore.__ptr_lookup[retVal] = BezierPoint("__skip_ptr__")
  20. Polycore.__ptr_lookup[retVal].__ptr = retVal
  21. return Polycore.__ptr_lookup[retVal]
  22. end
  23. end
  24. function BezierCurve:getNumControlPoints()
  25. local retVal = Polycore.BezierCurve_getNumControlPoints(self.__ptr)
  26. return retVal
  27. end
  28. function BezierCurve:addControlPoint(p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  29. local retVal = Polycore.BezierCurve_addControlPoint(self.__ptr, p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  30. end
  31. function BezierCurve:addControlPoint3dWithHandles(p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  32. local retVal = Polycore.BezierCurve_addControlPoint3dWithHandles(self.__ptr, p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  33. end
  34. function BezierCurve:addControlPoint3d(x, y, z)
  35. local retVal = Polycore.BezierCurve_addControlPoint3d(self.__ptr, x, y, z)
  36. end
  37. function BezierCurve:addControlPoint2dWithHandles(p1x, p1y, p2x, p2y, p3x, p3y)
  38. local retVal = Polycore.BezierCurve_addControlPoint2dWithHandles(self.__ptr, p1x, p1y, p2x, p2y, p3x, p3y)
  39. end
  40. function BezierCurve:addControlPoint2d(x, y)
  41. local retVal = Polycore.BezierCurve_addControlPoint2d(self.__ptr, x, y)
  42. end
  43. function BezierCurve:getHeightAt(a)
  44. local retVal = Polycore.BezierCurve_getHeightAt(self.__ptr, a)
  45. return retVal
  46. end
  47. function BezierCurve:getPointAt(a)
  48. local retVal = Polycore.BezierCurve_getPointAt(self.__ptr, a)
  49. if Polycore.__ptr_lookup[retVal] ~= nil then
  50. return Polycore.__ptr_lookup[retVal]
  51. else
  52. Polycore.__ptr_lookup[retVal] = Vector3("__skip_ptr__")
  53. Polycore.__ptr_lookup[retVal].__ptr = retVal
  54. return Polycore.__ptr_lookup[retVal]
  55. end
  56. end
  57. function BezierCurve:getPointBetween(a, bp1, bp2)
  58. local retVal = Polycore.BezierCurve_getPointBetween(self.__ptr, a, bp1.__ptr, bp2.__ptr)
  59. if Polycore.__ptr_lookup[retVal] ~= nil then
  60. return Polycore.__ptr_lookup[retVal]
  61. else
  62. Polycore.__ptr_lookup[retVal] = Vector3("__skip_ptr__")
  63. Polycore.__ptr_lookup[retVal].__ptr = retVal
  64. return Polycore.__ptr_lookup[retVal]
  65. end
  66. end
  67. function BezierCurve:rebuildBuffers()
  68. local retVal = Polycore.BezierCurve_rebuildBuffers(self.__ptr)
  69. end