SceneLight.lua 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. require "Polycode/SceneEntity"
  2. class "SceneLight" (SceneEntity)
  3. AREA_LIGHT = 0
  4. SPOT_LIGHT = 1
  5. function SceneLight:SceneLight(...)
  6. if type(arg[1]) == "table" and count(arg) == 1 then
  7. if ""..arg[1]:class() == "SceneEntity" then
  8. self.__ptr = arg[1].__ptr
  9. return
  10. end
  11. end
  12. for k,v in pairs(arg) do
  13. if type(v) == "table" then
  14. if v.__ptr ~= nil then
  15. arg[k] = v.__ptr
  16. end
  17. end
  18. end
  19. if self.__ptr == nil and arg[1] ~= "__skip_ptr__" then
  20. self.__ptr = Polycore.SceneLight(unpack(arg))
  21. Polycore.__ptr_lookup[self.__ptr] = self
  22. end
  23. end
  24. function SceneLight:getIntensity()
  25. local retVal = Polycore.SceneLight_getIntensity(self.__ptr)
  26. return retVal
  27. end
  28. function SceneLight:getDistance()
  29. local retVal = Polycore.SceneLight_getDistance(self.__ptr)
  30. return retVal
  31. end
  32. function SceneLight:getType()
  33. local retVal = Polycore.SceneLight_getType(self.__ptr)
  34. return retVal
  35. end
  36. function SceneLight:renderDepthMap(scene)
  37. local retVal = Polycore.SceneLight_renderDepthMap(self.__ptr, scene.__ptr)
  38. end
  39. function SceneLight:Render()
  40. local retVal = Polycore.SceneLight_Render(self.__ptr)
  41. end
  42. function SceneLight:getLightViewMatrix()
  43. local retVal = Polycore.SceneLight_getLightViewMatrix(self.__ptr)
  44. if Polycore.__ptr_lookup[retVal] ~= nil then
  45. return Polycore.__ptr_lookup[retVal]
  46. else
  47. Polycore.__ptr_lookup[retVal] = Matrix4("__skip_ptr__")
  48. Polycore.__ptr_lookup[retVal].__ptr = retVal
  49. return Polycore.__ptr_lookup[retVal]
  50. end
  51. end
  52. function SceneLight:getZBufferTexture()
  53. local retVal = Polycore.SceneLight_getZBufferTexture(self.__ptr)
  54. if Polycore.__ptr_lookup[retVal] ~= nil then
  55. return Polycore.__ptr_lookup[retVal]
  56. else
  57. Polycore.__ptr_lookup[retVal] = Texture("__skip_ptr__")
  58. Polycore.__ptr_lookup[retVal].__ptr = retVal
  59. return Polycore.__ptr_lookup[retVal]
  60. end
  61. end
  62. function SceneLight:setLightColor(r, g, b)
  63. local retVal = Polycore.SceneLight_setLightColor(self.__ptr, r, g, b)
  64. end
  65. function SceneLight:enableShadows(val, resolution)
  66. local retVal = Polycore.SceneLight_enableShadows(self.__ptr, val, resolution)
  67. end
  68. function SceneLight:setShadowMapFOV(fov)
  69. local retVal = Polycore.SceneLight_setShadowMapFOV(self.__ptr, fov)
  70. end
  71. function SceneLight:areShadowsEnabled()
  72. local retVal = Polycore.SceneLight_areShadowsEnabled(self.__ptr)
  73. return retVal
  74. end
  75. function SceneLight:getLightType()
  76. local retVal = Polycore.SceneLight_getLightType(self.__ptr)
  77. return retVal
  78. end
  79. function SceneLight:__delete()
  80. Polycore.__ptr_lookup[self.__ptr] = nil
  81. Polycore.delete_SceneLight(self.__ptr)
  82. end