VertexDataArray.lua 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. require "Polycode/RenderDataArray"
  2. class "VertexDataArray" (RenderDataArray)
  3. function VertexDataArray:__getvar(name)
  4. if name == "countPerVertex" then
  5. local retVal = Polycode.VertexDataArray_get_countPerVertex(self.__ptr)
  6. if retVal == nil then return nil end
  7. local __c = _G["char"]("__skip_ptr__")
  8. __c.__ptr = retVal
  9. return __c
  10. end
  11. if RenderDataArray["__getvar"] ~= nil then
  12. return RenderDataArray.__getvar(self, name)
  13. end
  14. end
  15. function VertexDataArray:__setvar(name,value)
  16. if name == "countPerVertex" then
  17. Polycode.VertexDataArray_set_countPerVertex(self.__ptr, value.__ptr)
  18. return true
  19. end
  20. if RenderDataArray["__setvar"] ~= nil then
  21. return RenderDataArray.__setvar(self, name, value)
  22. else
  23. return false
  24. end
  25. end
  26. function VertexDataArray:VertexDataArray(...)
  27. local arg = {...}
  28. if type(arg[1]) == "table" and count(arg) == 1 then
  29. if ""..arg[1].__classname == "RenderDataArray" then
  30. self.__ptr = arg[1].__ptr
  31. return
  32. end
  33. end
  34. for k,v in pairs(arg) do
  35. if type(v) == "table" then
  36. if v.__ptr ~= nil then
  37. arg[k] = v.__ptr
  38. end
  39. end
  40. end
  41. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  42. self.__ptr = Polycode.VertexDataArray(unpack(arg))
  43. end
  44. end
  45. function VertexDataArray:getCountPerVertex()
  46. local retVal = Polycode.VertexDataArray_getCountPerVertex(self.__ptr)
  47. if retVal == nil then return nil end
  48. local __c = _G["char"]("__skip_ptr__")
  49. __c.__ptr = retVal
  50. return __c
  51. end
  52. function VertexDataArray:getArrayData()
  53. local retVal = Polycode.VertexDataArray_getArrayData(self.__ptr)
  54. if retVal == nil then return nil end
  55. local __c = _G["void"]("__skip_ptr__")
  56. __c.__ptr = retVal
  57. return __c
  58. end
  59. function VertexDataArray:getDataSize()
  60. local retVal = Polycode.VertexDataArray_getDataSize(self.__ptr)
  61. return retVal
  62. end
  63. function VertexDataArray:__delete()
  64. if self then Polycode.delete_VertexDataArray(self.__ptr) end
  65. end