BezierCurve.lua 3.6 KB

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