BezierCurve.lua 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. class "BezierCurve"
  2. function BezierCurve:__getvar(name)
  3. if name == "insertPoint" then
  4. local retVal = Polycore.BezierCurve_get_insertPoint(self.__ptr)
  5. if retVal == nil then return nil end
  6. local __c = _G["BezierPoint"]("__skip_ptr__")
  7. __c.__ptr = retVal
  8. return __c
  9. elseif name == "evaluationAccuracy" then
  10. return Polycore.BezierCurve_get_evaluationAccuracy(self.__ptr)
  11. end
  12. end
  13. function BezierCurve:__setvar(name,value)
  14. if name == "evaluationAccuracy" then
  15. Polycore.BezierCurve_set_evaluationAccuracy(self.__ptr, value)
  16. return true
  17. end
  18. return false
  19. end
  20. function BezierCurve:BezierCurve(...)
  21. local arg = {...}
  22. for k,v in pairs(arg) do
  23. if type(v) == "table" then
  24. if v.__ptr ~= nil then
  25. arg[k] = v.__ptr
  26. end
  27. end
  28. end
  29. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  30. self.__ptr = Polycore.BezierCurve(unpack(arg))
  31. end
  32. end
  33. function BezierCurve:getControlPoint(index)
  34. local retVal = Polycore.BezierCurve_getControlPoint(self.__ptr, index)
  35. if retVal == nil then return nil end
  36. local __c = _G["BezierPoint"]("__skip_ptr__")
  37. __c.__ptr = retVal
  38. return __c
  39. end
  40. function BezierCurve:getNumControlPoints()
  41. local retVal = Polycore.BezierCurve_getNumControlPoints(self.__ptr)
  42. return retVal
  43. end
  44. function BezierCurve:addControlPoint(p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  45. local retVal = Polycore.BezierCurve_addControlPoint(self.__ptr, p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  46. end
  47. function BezierCurve:addControlPoint3dWithHandles(p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  48. local retVal = Polycore.BezierCurve_addControlPoint3dWithHandles(self.__ptr, p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z)
  49. end
  50. function BezierCurve:addControlPoint3d(x, y, z)
  51. local retVal = Polycore.BezierCurve_addControlPoint3d(self.__ptr, x, y, z)
  52. end
  53. function BezierCurve:addControlPoint2dWithHandles(p1x, p1y, p2x, p2y, p3x, p3y)
  54. local retVal = Polycore.BezierCurve_addControlPoint2dWithHandles(self.__ptr, p1x, p1y, p2x, p2y, p3x, p3y)
  55. end
  56. function BezierCurve:addControlPoint2d(x, y)
  57. local retVal = Polycore.BezierCurve_addControlPoint2d(self.__ptr, x, y)
  58. end
  59. function BezierCurve:getPointAt(a)
  60. local retVal = Polycore.BezierCurve_getPointAt(self.__ptr, a)
  61. if retVal == nil then return nil end
  62. local __c = _G["Vector3"]("__skip_ptr__")
  63. __c.__ptr = retVal
  64. return __c
  65. end
  66. function BezierCurve:getPointBetween(a, bp1, bp2)
  67. local retVal = Polycore.BezierCurve_getPointBetween(self.__ptr, a, bp1.__ptr, bp2.__ptr)
  68. if retVal == nil then return nil end
  69. local __c = _G["Vector3"]("__skip_ptr__")
  70. __c.__ptr = retVal
  71. return __c
  72. end
  73. function BezierCurve:clearControlPoints()
  74. local retVal = Polycore.BezierCurve_clearControlPoints(self.__ptr)
  75. end
  76. function BezierCurve:getYValueAtX(x)
  77. local retVal = Polycore.BezierCurve_getYValueAtX(self.__ptr, x)
  78. return retVal
  79. end
  80. function BezierCurve:getTValueAtX(x)
  81. local retVal = Polycore.BezierCurve_getTValueAtX(self.__ptr, x)
  82. return retVal
  83. end
  84. function BezierCurve:removePoint(point)
  85. local retVal = Polycore.BezierCurve_removePoint(self.__ptr, point.__ptr)
  86. end
  87. function BezierCurve:setHeightCacheResolution(resolution)
  88. local retVal = Polycore.BezierCurve_setHeightCacheResolution(self.__ptr, resolution)
  89. end
  90. function BezierCurve:rebuildHeightCache()
  91. local retVal = Polycore.BezierCurve_rebuildHeightCache(self.__ptr)
  92. end
  93. function BezierCurve:recalculateDistances()
  94. local retVal = Polycore.BezierCurve_recalculateDistances(self.__ptr)
  95. end
  96. function BezierCurve:__delete()
  97. if self then Polycore.delete_BezierCurve(self.__ptr) end
  98. end