text: // Autogenerated by gameplay-luagen
  #include "Base.h"
  #include "ScriptController.h"
  #include "lua_Node.h"
  #include "Animation.h"
  #include "AnimationTarget.h"
  #include "AudioSource.h"
  #include "Base.h"
  #include "Drawable.h"
  #include "Form.h"
  #include "Game.h"
  #include "Joint.h"
  #include "MaterialParameter.h"
  #include "Node.h"
  #include "PhysicsCharacter.h"
  #include "PhysicsGhostObject.h"
  #include "PhysicsRigidBody.h"
  #include "PhysicsVehicle.h"
  #include "PhysicsVehicleWheel.h"
  #include "Ref.h"
  #include "Scene.h"
  #include "ScriptController.h"
  #include "ScriptTarget.h"
  #include "Terrain.h"
  #include "Transform.h"
  #include "Joint.h"
  #include "Ref.h"
  #include "Transform.h"
  
  namespace gameplay
  {
  
  extern void luaGlobal_Register_Conversion_Function(const char* className, void*(*func)(void*, const char*));
  
  static Node* getInstance(lua_State* state)
  {
      void* userdata = luaL_checkudata(state, 1, "Node");
      luaL_argcheck(state, userdata != NULL, 1, "'Node' expected.");
      return (Node*)((gameplay::ScriptUtil::LuaObject*)userdata)->instance;
  }
  
  static int lua_Node__gc(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  void* userdata = luaL_checkudata(state, 1, "Node");
                  luaL_argcheck(state, userdata != NULL, 1, "'Node' expected.");
                  gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)userdata;
                  if (object->owns)
                  {
                      Node* instance = (Node*)object->instance;
                      SAFE_RELEASE(instance);
                  }
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node__gc - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_addChild(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Node> param1 = gameplay::ScriptUtil::getObjectPointer<Node>(2, "Node", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Node'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->addChild(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_addChild - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_addListener(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Transform::Listener> param1 = gameplay::ScriptUtil::getObjectPointer<Transform::Listener>(2, "TransformListener", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Transform::Listener'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->addListener(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_addListener - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL) &&
                  lua_type(state, 3) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Transform::Listener> param1 = gameplay::ScriptUtil::getObjectPointer<Transform::Listener>(2, "TransformListener", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Transform::Listener'.");
                      lua_error(state);
                  }
  
                  // Get parameter 2 off the stack.
                  long param2 = (long)luaL_checklong(state, 3);
  
                  Node* instance = getInstance(state);
                  instance->addListener(param1, param2);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_addListener - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2 or 3).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_addRef(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  instance->addRef();
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_addRef - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_addScript(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->addScript(param1));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Script");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_addScript - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_addScriptCallback(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 3:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL) &&
                  (lua_type(state, 3) == LUA_TSTRING || lua_type(state, 3) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<ScriptTarget::Event> param1 = gameplay::ScriptUtil::getObjectPointer<ScriptTarget::Event>(2, "ScriptTargetEvent", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'ScriptTarget::Event'.");
                      lua_error(state);
                  }
  
                  // Get parameter 2 off the stack.
                  const char* param2 = gameplay::ScriptUtil::getString(3, false);
  
                  Node* instance = getInstance(state);
                  instance->addScriptCallback(param1, param2);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_addScriptCallback - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 3).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_clearScripts(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  instance->clearScripts();
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_clearScripts - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_clone(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->clone());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_clone - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_createAnimation(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 3:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                      (lua_type(state, 3) == LUA_TSTRING || lua_type(state, 3) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                      // Get parameter 2 off the stack.
                      const char* param2 = gameplay::ScriptUtil::getString(3, false);
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->createAnimation(param1, param2));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "Animation");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TTABLE || lua_type(state, 3) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<Properties> param2 = gameplay::ScriptUtil::getObjectPointer<Properties>(3, "Properties", false, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->createAnimation(param1, param2));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "Animation");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_createAnimation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 7:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER &&
                      (lua_type(state, 5) == LUA_TTABLE || lua_type(state, 5) == LUA_TLIGHTUSERDATA) &&
                      (lua_type(state, 6) == LUA_TTABLE || lua_type(state, 6) == LUA_TLIGHTUSERDATA) &&
                      lua_type(state, 7) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                      // Get parameter 2 off the stack.
                      int param2 = (int)luaL_checkint(state, 3);
  
                      // Get parameter 3 off the stack.
                      unsigned int param3 = (unsigned int)luaL_checkunsigned(state, 4);
  
                      // Get parameter 4 off the stack.
                      gameplay::ScriptUtil::LuaArray<float> param4 = gameplay::ScriptUtil::getFloatPointer(5);
  
                      // Get parameter 5 off the stack.
                      gameplay::ScriptUtil::LuaArray<float> param5 = gameplay::ScriptUtil::getFloatPointer(6);
  
                      // Get parameter 6 off the stack.
                      Curve::InterpolationType param6 = (Curve::InterpolationType)luaL_checkint(state, 7);
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->createAnimation(param1, param2, param3, param4, param5, param6));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "Animation");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_createAnimation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 9:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER &&
                      (lua_type(state, 5) == LUA_TTABLE || lua_type(state, 5) == LUA_TLIGHTUSERDATA) &&
                      (lua_type(state, 6) == LUA_TTABLE || lua_type(state, 6) == LUA_TLIGHTUSERDATA) &&
                      (lua_type(state, 7) == LUA_TTABLE || lua_type(state, 7) == LUA_TLIGHTUSERDATA) &&
                      (lua_type(state, 8) == LUA_TTABLE || lua_type(state, 8) == LUA_TLIGHTUSERDATA) &&
                      lua_type(state, 9) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                      // Get parameter 2 off the stack.
                      int param2 = (int)luaL_checkint(state, 3);
  
                      // Get parameter 3 off the stack.
                      unsigned int param3 = (unsigned int)luaL_checkunsigned(state, 4);
  
                      // Get parameter 4 off the stack.
                      gameplay::ScriptUtil::LuaArray<float> param4 = gameplay::ScriptUtil::getFloatPointer(5);
  
                      // Get parameter 5 off the stack.
                      gameplay::ScriptUtil::LuaArray<float> param5 = gameplay::ScriptUtil::getFloatPointer(6);
  
                      // Get parameter 6 off the stack.
                      gameplay::ScriptUtil::LuaArray<float> param6 = gameplay::ScriptUtil::getFloatPointer(7);
  
                      // Get parameter 7 off the stack.
                      gameplay::ScriptUtil::LuaArray<float> param7 = gameplay::ScriptUtil::getFloatPointer(8);
  
                      // Get parameter 8 off the stack.
                      Curve::InterpolationType param8 = (Curve::InterpolationType)luaL_checkint(state, 9);
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->createAnimation(param1, param2, param3, param4, param5, param6, param7, param8));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "Animation");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_createAnimation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 3, 7 or 9).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_createAnimationFromBy(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 7:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                  lua_type(state, 3) == LUA_TNUMBER &&
                  (lua_type(state, 4) == LUA_TTABLE || lua_type(state, 4) == LUA_TLIGHTUSERDATA) &&
                  (lua_type(state, 5) == LUA_TTABLE || lua_type(state, 5) == LUA_TLIGHTUSERDATA) &&
                  lua_type(state, 6) == LUA_TNUMBER &&
                  lua_type(state, 7) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  // Get parameter 2 off the stack.
                  int param2 = (int)luaL_checkint(state, 3);
  
                  // Get parameter 3 off the stack.
                  gameplay::ScriptUtil::LuaArray<float> param3 = gameplay::ScriptUtil::getFloatPointer(4);
  
                  // Get parameter 4 off the stack.
                  gameplay::ScriptUtil::LuaArray<float> param4 = gameplay::ScriptUtil::getFloatPointer(5);
  
                  // Get parameter 5 off the stack.
                  Curve::InterpolationType param5 = (Curve::InterpolationType)luaL_checkint(state, 6);
  
                  // Get parameter 6 off the stack.
                  unsigned long param6 = (unsigned long)luaL_checkunsigned(state, 7);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->createAnimationFromBy(param1, param2, param3, param4, param5, param6));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Animation");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_createAnimationFromBy - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 7).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_createAnimationFromTo(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 7:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                  lua_type(state, 3) == LUA_TNUMBER &&
                  (lua_type(state, 4) == LUA_TTABLE || lua_type(state, 4) == LUA_TLIGHTUSERDATA) &&
                  (lua_type(state, 5) == LUA_TTABLE || lua_type(state, 5) == LUA_TLIGHTUSERDATA) &&
                  lua_type(state, 6) == LUA_TNUMBER &&
                  lua_type(state, 7) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  // Get parameter 2 off the stack.
                  int param2 = (int)luaL_checkint(state, 3);
  
                  // Get parameter 3 off the stack.
                  gameplay::ScriptUtil::LuaArray<float> param3 = gameplay::ScriptUtil::getFloatPointer(4);
  
                  // Get parameter 4 off the stack.
                  gameplay::ScriptUtil::LuaArray<float> param4 = gameplay::ScriptUtil::getFloatPointer(5);
  
                  // Get parameter 5 off the stack.
                  Curve::InterpolationType param5 = (Curve::InterpolationType)luaL_checkint(state, 6);
  
                  // Get parameter 6 off the stack.
                  unsigned long param6 = (unsigned long)luaL_checkunsigned(state, 7);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->createAnimationFromTo(param1, param2, param3, param4, param5, param6));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Animation");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_createAnimationFromTo - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 7).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_destroyAnimation(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  instance->destroyAnimation();
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_destroyAnimation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  instance->destroyAnimation(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_destroyAnimation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_findNode(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->findNode(param1));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_findNode - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                  lua_type(state, 3) == LUA_TBOOLEAN)
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  // Get parameter 2 off the stack.
                  bool param2 = gameplay::ScriptUtil::luaCheckBool(state, 3);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->findNode(param1, param2));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_findNode - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                  lua_type(state, 3) == LUA_TBOOLEAN &&
                  lua_type(state, 4) == LUA_TBOOLEAN)
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  // Get parameter 2 off the stack.
                  bool param2 = gameplay::ScriptUtil::luaCheckBool(state, 3);
  
                  // Get parameter 3 off the stack.
                  bool param3 = gameplay::ScriptUtil::luaCheckBool(state, 4);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->findNode(param1, param2, param3));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_findNode - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2, 3 or 4).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getActiveCameraTranslationView(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getActiveCameraTranslationView());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getActiveCameraTranslationView - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getActiveCameraTranslationWorld(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getActiveCameraTranslationWorld());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getActiveCameraTranslationWorld - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getAgent(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getAgent());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "AIAgent");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getAgent - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getAnimation(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getAnimation());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Animation");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getAnimation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getAnimation(param1));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Animation");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getAnimation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getAnimationPropertyComponentCount(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  int param1 = (int)luaL_checkint(state, 2);
  
                  Node* instance = getInstance(state);
                  unsigned int result = instance->getAnimationPropertyComponentCount(param1);
  
                  // Push the return value onto the stack.
                  lua_pushunsigned(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getAnimationPropertyComponentCount - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getAnimationPropertyValue(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 3:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER &&
                  (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TTABLE || lua_type(state, 3) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  int param1 = (int)luaL_checkint(state, 2);
  
                  // Get parameter 2 off the stack.
                  bool param2Valid;
                  gameplay::ScriptUtil::LuaArray<AnimationValue> param2 = gameplay::ScriptUtil::getObjectPointer<AnimationValue>(3, "AnimationValue", false, &param2Valid);
                  if (!param2Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 2 to type 'AnimationValue'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->getAnimationPropertyValue(param1, param2);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_getAnimationPropertyValue - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 3).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getAudioSource(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getAudioSource());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "AudioSource");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getAudioSource - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getBackVector(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)new Vector3(instance->getBackVector());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = true;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getBackVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getBackVector(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getBackVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getBoundingSphere(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getBoundingSphere());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "BoundingSphere");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getBoundingSphere - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getCamera(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getCamera());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Camera");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getCamera - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getChildCount(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  unsigned int result = instance->getChildCount();
  
                  // Push the return value onto the stack.
                  lua_pushunsigned(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getChildCount - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getCollisionObject(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getCollisionObject());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "PhysicsCollisionObject");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getCollisionObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getDownVector(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)new Vector3(instance->getDownVector());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = true;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getDownVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getDownVector(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getDownVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getDrawable(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getDrawable());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Drawable");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getDrawable - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getFirstChild(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getFirstChild());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getFirstChild - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getForwardVector(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)new Vector3(instance->getForwardVector());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = true;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getForwardVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getForwardVector(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getForwardVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getForwardVectorView(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getForwardVectorView());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getForwardVectorView - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getForwardVectorWorld(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getForwardVectorWorld());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getForwardVectorWorld - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getId(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  const char* result = instance->getId();
  
                  // Push the return value onto the stack.
                  lua_pushstring(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getId - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getInverseTransposeWorldMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getInverseTransposeWorldMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getInverseTransposeWorldMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getInverseTransposeWorldViewMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getInverseTransposeWorldViewMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getInverseTransposeWorldViewMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getInverseViewMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getInverseViewMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getInverseViewMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getInverseViewProjectionMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getInverseViewProjectionMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getInverseViewProjectionMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getLeftVector(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)new Vector3(instance->getLeftVector());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = true;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getLeftVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getLeftVector(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getLeftVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getLight(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getLight());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Light");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getLight - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getNextSibling(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getNextSibling());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getNextSibling - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getParent(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getParent());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getParent - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getPreviousSibling(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getPreviousSibling());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getPreviousSibling - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getProjectionMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getProjectionMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getProjectionMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getRefCount(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  unsigned int result = instance->getRefCount();
  
                  // Push the return value onto the stack.
                  lua_pushunsigned(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getRefCount - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getRightVector(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)new Vector3(instance->getRightVector());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = true;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getRightVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getRightVector(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getRightVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getRightVectorWorld(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getRightVectorWorld());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getRightVectorWorld - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getRootNode(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getRootNode());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getRootNode - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getRotation(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)&(instance->getRotation());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "Quaternion");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getRotation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Quaternion> param1 = gameplay::ScriptUtil::getObjectPointer<Quaternion>(2, "Quaternion", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getRotation(param1);
                      
                      return 0;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Matrix> param1 = gameplay::ScriptUtil::getObjectPointer<Matrix>(2, "Matrix", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getRotation(param1);
                      
                      return 0;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      float result = instance->getRotation(param1);
  
                      // Push the return value onto the stack.
                      lua_pushnumber(state, result);
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getRotation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getScale(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)&(instance->getScale());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getScale - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getScale(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getScale - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getScaleX(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  float result = instance->getScaleX();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getScaleX - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getScaleY(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  float result = instance->getScaleY();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getScaleY - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getScaleZ(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  float result = instance->getScaleZ();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getScaleZ - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getScene(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getScene());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Scene");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getScene - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getScriptEvent(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getScriptEvent(param1));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "ScriptTargetEvent");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getScriptEvent - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTag(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  const char* result = instance->getTag(param1);
  
                  // Push the return value onto the stack.
                  lua_pushstring(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getTag - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTranslation(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)&(instance->getTranslation());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getTranslation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getTranslation(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getTranslation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTranslationView(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getTranslationView());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getTranslationView - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTranslationWorld(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getTranslationWorld());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getTranslationWorld - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTranslationX(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  float result = instance->getTranslationX();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getTranslationX - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTranslationY(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  float result = instance->getTranslationY();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getTranslationY - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTranslationZ(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  float result = instance->getTranslationZ();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getTranslationZ - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getType(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  Node::Type result = instance->getType();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, (int)result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getType - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getTypeName(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  const char* result = instance->getTypeName();
  
                  // Push the return value onto the stack.
                  lua_pushstring(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getTypeName - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getUpVector(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA))
                  {
                      Node* instance = getInstance(state);
                      void* returnPtr = (void*)new Vector3(instance->getUpVector());
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = true;
                          luaL_getmetatable(state, "Vector3");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getUpVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->getUpVector(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_getUpVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1 or 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getUpVectorWorld(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)new Vector3(instance->getUpVectorWorld());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getUpVectorWorld - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getUserObject(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = ((void*)instance->getUserObject());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Ref");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getUserObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getViewMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getViewMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getViewMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getViewProjectionMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getViewProjectionMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getViewProjectionMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getWorldMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getWorldMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getWorldMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getWorldViewMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getWorldViewMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getWorldViewMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_getWorldViewProjectionMatrix(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getWorldViewProjectionMatrix());
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Matrix");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_getWorldViewProjectionMatrix - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_hasScriptListener(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                      Node* instance = getInstance(state);
                      bool result = instance->hasScriptListener(param1);
  
                      // Push the return value onto the stack.
                      lua_pushboolean(state, result);
  
                      return 1;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<ScriptTarget::Event> param1 = gameplay::ScriptUtil::getObjectPointer<ScriptTarget::Event>(2, "ScriptTargetEvent", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      bool result = instance->hasScriptListener(param1);
  
                      // Push the return value onto the stack.
                      lua_pushboolean(state, result);
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_hasScriptListener - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_hasTag(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  bool result = instance->hasTag(param1);
  
                  // Push the return value onto the stack.
                  lua_pushboolean(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_hasTag - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_isEnabled(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  bool result = instance->isEnabled();
  
                  // Push the return value onto the stack.
                  lua_pushboolean(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_isEnabled - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_isEnabledInHierarchy(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  bool result = instance->isEnabledInHierarchy();
  
                  // Push the return value onto the stack.
                  lua_pushboolean(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_isEnabledInHierarchy - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_isStatic(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  bool result = instance->isStatic();
  
                  // Push the return value onto the stack.
                  lua_pushboolean(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_isStatic - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_release(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  instance->release();
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_release - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_removeAllChildren(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  instance->removeAllChildren();
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_removeAllChildren - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_removeChild(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Node> param1 = gameplay::ScriptUtil::getObjectPointer<Node>(2, "Node", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Node'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->removeChild(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_removeChild - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_removeListener(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Transform::Listener> param1 = gameplay::ScriptUtil::getObjectPointer<Transform::Listener>(2, "TransformListener", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Transform::Listener'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->removeListener(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_removeListener - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_removeScript(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  bool result = instance->removeScript(param1);
  
                  // Push the return value onto the stack.
                  lua_pushboolean(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_removeScript - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_removeScriptCallback(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 3:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL) &&
                  (lua_type(state, 3) == LUA_TSTRING || lua_type(state, 3) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<ScriptTarget::Event> param1 = gameplay::ScriptUtil::getObjectPointer<ScriptTarget::Event>(2, "ScriptTargetEvent", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'ScriptTarget::Event'.");
                      lua_error(state);
                  }
  
                  // Get parameter 2 off the stack.
                  const char* param2 = gameplay::ScriptUtil::getString(3, false);
  
                  Node* instance = getInstance(state);
                  instance->removeScriptCallback(param1, param2);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_removeScriptCallback - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 3).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_rotate(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Quaternion> param1 = gameplay::ScriptUtil::getObjectPointer<Quaternion>(2, "Quaternion", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->rotate(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Matrix> param1 = gameplay::ScriptUtil::getObjectPointer<Matrix>(2, "Matrix", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->rotate(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_rotate - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                      lua_type(state, 3) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      Node* instance = getInstance(state);
                      instance->rotate(*param1, param2);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_rotate - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 5:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER &&
                      lua_type(state, 5) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      // Get parameter 4 off the stack.
                      float param4 = (float)luaL_checknumber(state, 5);
  
                      Node* instance = getInstance(state);
                      instance->rotate(param1, param2, param3, param4);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_rotate - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2, 3 or 5).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_rotateX(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->rotateX(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_rotateX - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_rotateY(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->rotateY(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_rotateY - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_rotateZ(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->rotateZ(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_rotateZ - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_scale(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      Node* instance = getInstance(state);
                      instance->scale(param1);
                      
                      return 0;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->scale(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_scale - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      Node* instance = getInstance(state);
                      instance->scale(param1, param2, param3);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_scale - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2 or 4).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_scaleX(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->scaleX(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_scaleX - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_scaleY(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->scaleY(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_scaleY - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_scaleZ(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->scaleZ(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_scaleZ - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_set(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Transform> param1 = gameplay::ScriptUtil::getObjectPointer<Transform>(2, "Transform", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->set(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_set - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL) &&
                      (lua_type(state, 4) == LUA_TUSERDATA || lua_type(state, 4) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<Quaternion> param2 = gameplay::ScriptUtil::getObjectPointer<Quaternion>(3, "Quaternion", true, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      // Get parameter 3 off the stack.
                      bool param3Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param3 = gameplay::ScriptUtil::getObjectPointer<Vector3>(4, "Vector3", true, &param3Valid);
                      if (!param3Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->set(*param1, *param2, *param3);
                      
                      return 0;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL) &&
                      (lua_type(state, 4) == LUA_TUSERDATA || lua_type(state, 4) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<Matrix> param2 = gameplay::ScriptUtil::getObjectPointer<Matrix>(3, "Matrix", true, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      // Get parameter 3 off the stack.
                      bool param3Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param3 = gameplay::ScriptUtil::getObjectPointer<Vector3>(4, "Vector3", true, &param3Valid);
                      if (!param3Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->set(*param1, *param2, *param3);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_set - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 5:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL) &&
                      lua_type(state, 4) == LUA_TNUMBER &&
                      (lua_type(state, 5) == LUA_TUSERDATA || lua_type(state, 5) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param2 = gameplay::ScriptUtil::getObjectPointer<Vector3>(3, "Vector3", true, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      // Get parameter 4 off the stack.
                      bool param4Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param4 = gameplay::ScriptUtil::getObjectPointer<Vector3>(5, "Vector3", true, &param4Valid);
                      if (!param4Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->set(*param1, *param2, param3, *param4);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_set - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2, 4 or 5).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setAgent(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<AIAgent> param1 = gameplay::ScriptUtil::getObjectPointer<AIAgent>(2, "AIAgent", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'AIAgent'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->setAgent(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setAgent - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setAnimationPropertyValue(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 3:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER &&
                  (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TTABLE || lua_type(state, 3) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  int param1 = (int)luaL_checkint(state, 2);
  
                  // Get parameter 2 off the stack.
                  bool param2Valid;
                  gameplay::ScriptUtil::LuaArray<AnimationValue> param2 = gameplay::ScriptUtil::getObjectPointer<AnimationValue>(3, "AnimationValue", false, &param2Valid);
                  if (!param2Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 2 to type 'AnimationValue'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->setAnimationPropertyValue(param1, param2);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setAnimationPropertyValue - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER &&
                  (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TTABLE || lua_type(state, 3) == LUA_TNIL) &&
                  lua_type(state, 4) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  int param1 = (int)luaL_checkint(state, 2);
  
                  // Get parameter 2 off the stack.
                  bool param2Valid;
                  gameplay::ScriptUtil::LuaArray<AnimationValue> param2 = gameplay::ScriptUtil::getObjectPointer<AnimationValue>(3, "AnimationValue", false, &param2Valid);
                  if (!param2Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 2 to type 'AnimationValue'.");
                      lua_error(state);
                  }
  
                  // Get parameter 3 off the stack.
                  float param3 = (float)luaL_checknumber(state, 4);
  
                  Node* instance = getInstance(state);
                  instance->setAnimationPropertyValue(param1, param2, param3);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setAnimationPropertyValue - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 3 or 4).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setAudioSource(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<AudioSource> param1 = gameplay::ScriptUtil::getObjectPointer<AudioSource>(2, "AudioSource", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'AudioSource'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->setAudioSource(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setAudioSource - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setCamera(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Camera> param1 = gameplay::ScriptUtil::getObjectPointer<Camera>(2, "Camera", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Camera'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->setCamera(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setCamera - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setCollisionObject(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      PhysicsCollisionObject::Type param1 = (PhysicsCollisionObject::Type)luaL_checkint(state, 2);
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->setCollisionObject(param1));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "PhysicsCollisionObject");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->setCollisionObject(param1));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "PhysicsCollisionObject");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setCollisionObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      PhysicsCollisionObject::Type param1 = (PhysicsCollisionObject::Type)luaL_checkint(state, 2);
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<PhysicsCollisionShape::Definition> param2 = gameplay::ScriptUtil::getObjectPointer<PhysicsCollisionShape::Definition>(3, "PhysicsCollisionShapeDefinition", true, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->setCollisionObject(param1, *param2));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "PhysicsCollisionObject");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setCollisionObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL) &&
                      (lua_type(state, 4) == LUA_TUSERDATA || lua_type(state, 4) == LUA_TTABLE || lua_type(state, 4) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      PhysicsCollisionObject::Type param1 = (PhysicsCollisionObject::Type)luaL_checkint(state, 2);
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<PhysicsCollisionShape::Definition> param2 = gameplay::ScriptUtil::getObjectPointer<PhysicsCollisionShape::Definition>(3, "PhysicsCollisionShapeDefinition", true, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      // Get parameter 3 off the stack.
                      bool param3Valid;
                      gameplay::ScriptUtil::LuaArray<PhysicsRigidBody::Parameters> param3 = gameplay::ScriptUtil::getObjectPointer<PhysicsRigidBody::Parameters>(4, "PhysicsRigidBodyParameters", false, &param3Valid);
                      if (!param3Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->setCollisionObject(param1, *param2, param3));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "PhysicsCollisionObject");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setCollisionObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 5:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL) &&
                      (lua_type(state, 4) == LUA_TUSERDATA || lua_type(state, 4) == LUA_TTABLE || lua_type(state, 4) == LUA_TNIL) &&
                      lua_type(state, 5) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      PhysicsCollisionObject::Type param1 = (PhysicsCollisionObject::Type)luaL_checkint(state, 2);
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<PhysicsCollisionShape::Definition> param2 = gameplay::ScriptUtil::getObjectPointer<PhysicsCollisionShape::Definition>(3, "PhysicsCollisionShapeDefinition", true, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      // Get parameter 3 off the stack.
                      bool param3Valid;
                      gameplay::ScriptUtil::LuaArray<PhysicsRigidBody::Parameters> param3 = gameplay::ScriptUtil::getObjectPointer<PhysicsRigidBody::Parameters>(4, "PhysicsRigidBodyParameters", false, &param3Valid);
                      if (!param3Valid)
                          break;
  
                      // Get parameter 4 off the stack.
                      int param4 = (int)luaL_checkint(state, 5);
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->setCollisionObject(param1, *param2, param3, param4));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "PhysicsCollisionObject");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setCollisionObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 6:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TNIL) &&
                      (lua_type(state, 4) == LUA_TUSERDATA || lua_type(state, 4) == LUA_TTABLE || lua_type(state, 4) == LUA_TNIL) &&
                      lua_type(state, 5) == LUA_TNUMBER &&
                      lua_type(state, 6) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      PhysicsCollisionObject::Type param1 = (PhysicsCollisionObject::Type)luaL_checkint(state, 2);
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<PhysicsCollisionShape::Definition> param2 = gameplay::ScriptUtil::getObjectPointer<PhysicsCollisionShape::Definition>(3, "PhysicsCollisionShapeDefinition", true, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      // Get parameter 3 off the stack.
                      bool param3Valid;
                      gameplay::ScriptUtil::LuaArray<PhysicsRigidBody::Parameters> param3 = gameplay::ScriptUtil::getObjectPointer<PhysicsRigidBody::Parameters>(4, "PhysicsRigidBodyParameters", false, &param3Valid);
                      if (!param3Valid)
                          break;
  
                      // Get parameter 4 off the stack.
                      int param4 = (int)luaL_checkint(state, 5);
  
                      // Get parameter 5 off the stack.
                      int param5 = (int)luaL_checkint(state, 6);
  
                      Node* instance = getInstance(state);
                      void* returnPtr = ((void*)instance->setCollisionObject(param1, *param2, param3, param4, param5));
                      if (returnPtr)
                      {
                          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                          object->instance = returnPtr;
                          object->owns = false;
                          luaL_getmetatable(state, "PhysicsCollisionObject");
                          lua_setmetatable(state, -2);
                      }
                      else
                      {
                          lua_pushnil(state);
                      }
  
                      return 1;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setCollisionObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2, 3, 4, 5 or 6).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setDrawable(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Drawable> param1 = gameplay::ScriptUtil::getObjectPointer<Drawable>(2, "Drawable", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Drawable'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->setDrawable(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setDrawable - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setEnabled(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TBOOLEAN)
              {
                  // Get parameter 1 off the stack.
                  bool param1 = gameplay::ScriptUtil::luaCheckBool(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->setEnabled(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setEnabled - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setId(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  instance->setId(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setId - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setIdentity(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA))
              {
                  Node* instance = getInstance(state);
                  instance->setIdentity();
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setIdentity - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setLight(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Light> param1 = gameplay::ScriptUtil::getObjectPointer<Light>(2, "Light", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Light'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->setLight(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setLight - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setRotation(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Quaternion> param1 = gameplay::ScriptUtil::getObjectPointer<Quaternion>(2, "Quaternion", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->setRotation(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Matrix> param1 = gameplay::ScriptUtil::getObjectPointer<Matrix>(2, "Matrix", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->setRotation(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setRotation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                      lua_type(state, 3) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      Node* instance = getInstance(state);
                      instance->setRotation(*param1, param2);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setRotation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 5:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER &&
                      lua_type(state, 5) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      // Get parameter 4 off the stack.
                      float param4 = (float)luaL_checknumber(state, 5);
  
                      Node* instance = getInstance(state);
                      instance->setRotation(param1, param2, param3, param4);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setRotation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2, 3 or 5).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setScale(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      Node* instance = getInstance(state);
                      instance->setScale(param1);
                      
                      return 0;
                  }
              } while (0);
  
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->setScale(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setScale - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      Node* instance = getInstance(state);
                      instance->setScale(param1, param2, param3);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setScale - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2 or 4).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setScaleX(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->setScaleX(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setScaleX - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setScaleY(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->setScaleY(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setScaleY - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setScaleZ(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->setScaleZ(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setScaleZ - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setTag(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  Node* instance = getInstance(state);
                  instance->setTag(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setTag - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TSTRING || lua_type(state, 2) == LUA_TNIL) &&
                  (lua_type(state, 3) == LUA_TSTRING || lua_type(state, 3) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(2, false);
  
                  // Get parameter 2 off the stack.
                  const char* param2 = gameplay::ScriptUtil::getString(3, false);
  
                  Node* instance = getInstance(state);
                  instance->setTag(param1, param2);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setTag - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2 or 3).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setTranslation(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->setTranslation(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setTranslation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      Node* instance = getInstance(state);
                      instance->setTranslation(param1, param2, param3);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_setTranslation - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2 or 4).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setTranslationX(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->setTranslationX(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setTranslationX - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setTranslationY(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->setTranslationY(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setTranslationY - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setTranslationZ(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->setTranslationZ(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setTranslationZ - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_setUserObject(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Ref> param1 = gameplay::ScriptUtil::getObjectPointer<Ref>(2, "Ref", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Ref'.");
                      lua_error(state);
                  }
  
                  Node* instance = getInstance(state);
                  instance->setUserObject(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_setUserObject - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_static_ANIMATE_ROTATE(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_ROTATE;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_ROTATE_TRANSLATE(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_ROTATE_TRANSLATE;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE_ROTATE(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE_ROTATE;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE_ROTATE_TRANSLATE(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE_ROTATE_TRANSLATE;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE_TRANSLATE(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE_TRANSLATE;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE_UNIT(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE_UNIT;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE_X(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE_X;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE_Y(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE_Y;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_SCALE_Z(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_SCALE_Z;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_TRANSLATE(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_TRANSLATE;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_TRANSLATE_X(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_TRANSLATE_X;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_TRANSLATE_Y(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_TRANSLATE_Y;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_ANIMATE_TRANSLATE_Z(lua_State* state)
  {
      // Validate the number of parameters.
      if (lua_gettop(state) > 0)
      {
          lua_pushstring(state, "Invalid number of parameters (expected 0).");
          lua_error(state);
      }
  
      int result = Node::ANIMATE_TRANSLATE_Z;
  
      // Push the return value onto the stack.
      lua_pushinteger(state, result);
  
      return 1;
  }
  
  static int lua_Node_static_create(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 0:
          {
              void* returnPtr = ((void*)Node::create());
              if (returnPtr)
              {
                  gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                  object->instance = returnPtr;
                  object->owns = true;
                  luaL_getmetatable(state, "Node");
                  lua_setmetatable(state, -2);
              }
              else
              {
                  lua_pushnil(state);
              }
  
              return 1;
              break;
          }
          case 1:
          {
              if ((lua_type(state, 1) == LUA_TSTRING || lua_type(state, 1) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  const char* param1 = gameplay::ScriptUtil::getString(1, false);
  
                  void* returnPtr = ((void*)Node::create(param1));
                  if (returnPtr)
                  {
                      gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Node");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_Node_static_create - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 0 or 1).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_static_isTransformChangedSuspended(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 0:
          {
              bool result = Node::isTransformChangedSuspended();
  
              // Push the return value onto the stack.
              lua_pushboolean(state, result);
  
              return 1;
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 0).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_static_resumeTransformChanged(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 0:
          {
              Node::resumeTransformChanged();
              
              return 0;
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 0).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_static_suspendTransformChanged(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 0:
          {
              Node::suspendTransformChanged();
              
              return 0;
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 0).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_transformPoint(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->transformPoint(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_transformPoint - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TTABLE || lua_type(state, 3) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param2 = gameplay::ScriptUtil::getObjectPointer<Vector3>(3, "Vector3", false, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->transformPoint(*param1, param2);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_transformPoint - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2 or 3).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_transformVector(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TTABLE || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", false, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->transformVector(param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_transformVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 3:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                      (lua_type(state, 3) == LUA_TUSERDATA || lua_type(state, 3) == LUA_TTABLE || lua_type(state, 3) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      // Get parameter 2 off the stack.
                      bool param2Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param2 = gameplay::ScriptUtil::getObjectPointer<Vector3>(3, "Vector3", false, &param2Valid);
                      if (!param2Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->transformVector(*param1, param2);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_transformVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 6:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER &&
                      lua_type(state, 5) == LUA_TNUMBER &&
                      (lua_type(state, 6) == LUA_TUSERDATA || lua_type(state, 6) == LUA_TTABLE || lua_type(state, 6) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      // Get parameter 4 off the stack.
                      float param4 = (float)luaL_checknumber(state, 5);
  
                      // Get parameter 5 off the stack.
                      bool param5Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param5 = gameplay::ScriptUtil::getObjectPointer<Vector3>(6, "Vector3", false, &param5Valid);
                      if (!param5Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->transformVector(param1, param2, param3, param4, param5);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_transformVector - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2, 3 or 6).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translate(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
                  {
                      // Get parameter 1 off the stack.
                      bool param1Valid;
                      gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                      if (!param1Valid)
                          break;
  
                      Node* instance = getInstance(state);
                      instance->translate(*param1);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_translate - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          case 4:
          {
              do
              {
                  if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                      lua_type(state, 2) == LUA_TNUMBER &&
                      lua_type(state, 3) == LUA_TNUMBER &&
                      lua_type(state, 4) == LUA_TNUMBER)
                  {
                      // Get parameter 1 off the stack.
                      float param1 = (float)luaL_checknumber(state, 2);
  
                      // Get parameter 2 off the stack.
                      float param2 = (float)luaL_checknumber(state, 3);
  
                      // Get parameter 3 off the stack.
                      float param3 = (float)luaL_checknumber(state, 4);
  
                      Node* instance = getInstance(state);
                      instance->translate(param1, param2, param3);
                      
                      return 0;
                  }
              } while (0);
  
              lua_pushstring(state, "lua_Node_translate - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2 or 4).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translateForward(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->translateForward(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_translateForward - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translateLeft(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->translateLeft(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_translateLeft - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translateSmooth(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 4:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL) &&
                  lua_type(state, 3) == LUA_TNUMBER &&
                  lua_type(state, 4) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  gameplay::ScriptUtil::LuaArray<Vector3> param1 = gameplay::ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Vector3'.");
                      lua_error(state);
                  }
  
                  // Get parameter 2 off the stack.
                  float param2 = (float)luaL_checknumber(state, 3);
  
                  // Get parameter 3 off the stack.
                  float param3 = (float)luaL_checknumber(state, 4);
  
                  Node* instance = getInstance(state);
                  instance->translateSmooth(*param1, param2, param3);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_translateSmooth - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 4).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translateUp(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->translateUp(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_translateUp - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translateX(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->translateX(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_translateX - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translateY(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->translateY(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_translateY - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_translateZ(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->translateZ(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_translateZ - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  static int lua_Node_update(lua_State* state)
  {
      // Get the number of parameters.
      int paramCount = lua_gettop(state);
  
      // Attempt to match the parameters to a valid binding.
      switch (paramCount)
      {
          case 2:
          {
              if ((lua_type(state, 1) == LUA_TUSERDATA) &&
                  lua_type(state, 2) == LUA_TNUMBER)
              {
                  // Get parameter 1 off the stack.
                  float param1 = (float)luaL_checknumber(state, 2);
  
                  Node* instance = getInstance(state);
                  instance->update(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_Node_update - Failed to match the given parameters to a valid function signature.");
              lua_error(state);
              break;
          }
          default:
          {
              lua_pushstring(state, "Invalid number of parameters (expected 2).");
              lua_error(state);
              break;
          }
      }
      return 0;
  }
  
  // Provides support for conversion to all known relative types of Node
  static void* __convertTo(void* ptr, const char* typeName)
  {
      Node* ptrObject = reinterpret_cast<Node*>(ptr);
  
      if (strcmp(typeName, "Joint") == 0)
      {
          return reinterpret_cast<void*>(static_cast<Joint*>(ptrObject));
      }
      else if (strcmp(typeName, "Ref") == 0)
      {
          return reinterpret_cast<void*>(static_cast<Ref*>(ptrObject));
      }
      else if (strcmp(typeName, "Transform") == 0)
      {
          return reinterpret_cast<void*>(static_cast<Transform*>(ptrObject));
      }
  
      // No conversion available for 'typeName'
      return NULL;
  }
  
  static int lua_Node_to(lua_State* state)
  {
      // There should be only a single parameter (this instance)
      if (lua_gettop(state) != 2 || lua_type(state, 1) != LUA_TUSERDATA || lua_type(state, 2) != LUA_TSTRING)
      {
          lua_pushstring(state, "lua_Node_to - Invalid number of parameters (expected 2).");
          lua_error(state);
          return 0;
      }
  
      Node* instance = getInstance(state);
      const char* typeName = gameplay::ScriptUtil::getString(2, false);
      void* result = __convertTo((void*)instance, typeName);
  
      if (result)
      {
          gameplay::ScriptUtil::LuaObject* object = (gameplay::ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(gameplay::ScriptUtil::LuaObject));
          object->instance = (void*)result;
          object->owns = false;
          luaL_getmetatable(state, typeName);
          lua_setmetatable(state, -2);
      }
      else
      {
          lua_pushnil(state);
      }
  
      return 1;
  }
  
  void luaRegister_Node()
  {
      const luaL_Reg lua_members[] = 
      {
          {"addChild", lua_Node_addChild},
          {"addListener", lua_Node_addListener},
          {"addRef", lua_Node_addRef},
          {"addScript", lua_Node_addScript},
          {"addScriptCallback", lua_Node_addScriptCallback},
          {"clearScripts", lua_Node_clearScripts},
          {"clone", lua_Node_clone},
          {"createAnimation", lua_Node_createAnimation},
          {"createAnimationFromBy", lua_Node_createAnimationFromBy},
          {"createAnimationFromTo", lua_Node_createAnimationFromTo},
          {"destroyAnimation", lua_Node_destroyAnimation},
          {"findNode", lua_Node_findNode},
          {"getActiveCameraTranslationView", lua_Node_getActiveCameraTranslationView},
          {"getActiveCameraTranslationWorld", lua_Node_getActiveCameraTranslationWorld},
          {"getAgent", lua_Node_getAgent},
          {"getAnimation", lua_Node_getAnimation},
          {"getAnimationPropertyComponentCount", lua_Node_getAnimationPropertyComponentCount},
          {"getAnimationPropertyValue", lua_Node_getAnimationPropertyValue},
          {"getAudioSource", lua_Node_getAudioSource},
          {"getBackVector", lua_Node_getBackVector},
          {"getBoundingSphere", lua_Node_getBoundingSphere},
          {"getCamera", lua_Node_getCamera},
          {"getChildCount", lua_Node_getChildCount},
          {"getCollisionObject", lua_Node_getCollisionObject},
          {"getDownVector", lua_Node_getDownVector},
          {"getDrawable", lua_Node_getDrawable},
          {"getFirstChild", lua_Node_getFirstChild},
          {"getForwardVector", lua_Node_getForwardVector},
          {"getForwardVectorView", lua_Node_getForwardVectorView},
          {"getForwardVectorWorld", lua_Node_getForwardVectorWorld},
          {"getId", lua_Node_getId},
          {"getInverseTransposeWorldMatrix", lua_Node_getInverseTransposeWorldMatrix},
          {"getInverseTransposeWorldViewMatrix", lua_Node_getInverseTransposeWorldViewMatrix},
          {"getInverseViewMatrix", lua_Node_getInverseViewMatrix},
          {"getInverseViewProjectionMatrix", lua_Node_getInverseViewProjectionMatrix},
          {"getLeftVector", lua_Node_getLeftVector},
          {"getLight", lua_Node_getLight},
          {"getMatrix", lua_Node_getMatrix},
          {"getNextSibling", lua_Node_getNextSibling},
          {"getParent", lua_Node_getParent},
          {"getPreviousSibling", lua_Node_getPreviousSibling},
          {"getProjectionMatrix", lua_Node_getProjectionMatrix},
          {"getRefCount", lua_Node_getRefCount},
          {"getRightVector", lua_Node_getRightVector},
          {"getRightVectorWorld", lua_Node_getRightVectorWorld},
          {"getRootNode", lua_Node_getRootNode},
          {"getRotation", lua_Node_getRotation},
          {"getScale", lua_Node_getScale},
          {"getScaleX", lua_Node_getScaleX},
          {"getScaleY", lua_Node_getScaleY},
          {"getScaleZ", lua_Node_getScaleZ},
          {"getScene", lua_Node_getScene},
          {"getScriptEvent", lua_Node_getScriptEvent},
          {"getTag", lua_Node_getTag},
          {"getTranslation", lua_Node_getTranslation},
          {"getTranslationView", lua_Node_getTranslationView},
          {"getTranslationWorld", lua_Node_getTranslationWorld},
          {"getTranslationX", lua_Node_getTranslationX},
          {"getTranslationY", lua_Node_getTranslationY},
          {"getTranslationZ", lua_Node_getTranslationZ},
          {"getType", lua_Node_getType},
          {"getTypeName", lua_Node_getTypeName},
          {"getUpVector", lua_Node_getUpVector},
          {"getUpVectorWorld", lua_Node_getUpVectorWorld},
          {"getUserObject", lua_Node_getUserObject},
          {"getViewMatrix", lua_Node_getViewMatrix},
          {"getViewProjectionMatrix", lua_Node_getViewProjectionMatrix},
          {"getWorldMatrix", lua_Node_getWorldMatrix},
          {"getWorldViewMatrix", lua_Node_getWorldViewMatrix},
          {"getWorldViewProjectionMatrix", lua_Node_getWorldViewProjectionMatrix},
          {"hasScriptListener", lua_Node_hasScriptListener},
          {"hasTag", lua_Node_hasTag},
          {"isEnabled", lua_Node_isEnabled},
          {"isEnabledInHierarchy", lua_Node_isEnabledInHierarchy},
          {"isStatic", lua_Node_isStatic},
          {"release", lua_Node_release},
          {"removeAllChildren", lua_Node_removeAllChildren},
          {"removeChild", lua_Node_removeChild},
          {"removeListener", lua_Node_removeListener},
          {"removeScript", lua_Node_removeScript},
          {"removeScriptCallback", lua_Node_removeScriptCallback},
          {"rotate", lua_Node_rotate},
          {"rotateX", lua_Node_rotateX},
          {"rotateY", lua_Node_rotateY},
          {"rotateZ", lua_Node_rotateZ},
          {"scale", lua_Node_scale},
          {"scaleX", lua_Node_scaleX},
          {"scaleY", lua_Node_scaleY},
          {"scaleZ", lua_Node_scaleZ},
          {"set", lua_Node_set},
          {"setAgent", lua_Node_setAgent},
          {"setAnimationPropertyValue", lua_Node_setAnimationPropertyValue},
          {"setAudioSource", lua_Node_setAudioSource},
          {"setCamera", lua_Node_setCamera},
          {"setCollisionObject", lua_Node_setCollisionObject},
          {"setDrawable", lua_Node_setDrawable},
          {"setEnabled", lua_Node_setEnabled},
          {"setId", lua_Node_setId},
          {"setIdentity", lua_Node_setIdentity},
          {"setLight", lua_Node_setLight},
          {"setRotation", lua_Node_setRotation},
          {"setScale", lua_Node_setScale},
          {"setScaleX", lua_Node_setScaleX},
          {"setScaleY", lua_Node_setScaleY},
          {"setScaleZ", lua_Node_setScaleZ},
          {"setTag", lua_Node_setTag},
          {"setTranslation", lua_Node_setTranslation},
          {"setTranslationX", lua_Node_setTranslationX},
          {"setTranslationY", lua_Node_setTranslationY},
          {"setTranslationZ", lua_Node_setTranslationZ},
          {"setUserObject", lua_Node_setUserObject},
          {"transformPoint", lua_Node_transformPoint},
          {"transformVector", lua_Node_transformVector},
          {"translate", lua_Node_translate},
          {"translateForward", lua_Node_translateForward},
          {"translateLeft", lua_Node_translateLeft},
          {"translateSmooth", lua_Node_translateSmooth},
          {"translateUp", lua_Node_translateUp},
          {"translateX", lua_Node_translateX},
          {"translateY", lua_Node_translateY},
          {"translateZ", lua_Node_translateZ},
          {"update", lua_Node_update},
          {"to", lua_Node_to},
          {NULL, NULL}
      };
      const luaL_Reg lua_statics[] = 
      {
          {"ANIMATE_ROTATE", lua_Node_static_ANIMATE_ROTATE},
          {"ANIMATE_ROTATE_TRANSLATE", lua_Node_static_ANIMATE_ROTATE_TRANSLATE},
          {"ANIMATE_SCALE", lua_Node_static_ANIMATE_SCALE},
          {"ANIMATE_SCALE_ROTATE", lua_Node_static_ANIMATE_SCALE_ROTATE},
          {"ANIMATE_SCALE_ROTATE_TRANSLATE", lua_Node_static_ANIMATE_SCALE_ROTATE_TRANSLATE},
          {"ANIMATE_SCALE_TRANSLATE", lua_Node_static_ANIMATE_SCALE_TRANSLATE},
          {"ANIMATE_SCALE_UNIT", lua_Node_static_ANIMATE_SCALE_UNIT},
          {"ANIMATE_SCALE_X", lua_Node_static_ANIMATE_SCALE_X},
          {"ANIMATE_SCALE_Y", lua_Node_static_ANIMATE_SCALE_Y},
          {"ANIMATE_SCALE_Z", lua_Node_static_ANIMATE_SCALE_Z},
          {"ANIMATE_TRANSLATE", lua_Node_static_ANIMATE_TRANSLATE},
          {"ANIMATE_TRANSLATE_X", lua_Node_static_ANIMATE_TRANSLATE_X},
          {"ANIMATE_TRANSLATE_Y", lua_Node_static_ANIMATE_TRANSLATE_Y},
          {"ANIMATE_TRANSLATE_Z", lua_Node_static_ANIMATE_TRANSLATE_Z},
          {"create", lua_Node_static_create},
          {"isTransformChangedSuspended", lua_Node_static_isTransformChangedSuspended},
          {"resumeTransformChanged", lua_Node_static_resumeTransformChanged},
          {"suspendTransformChanged", lua_Node_static_suspendTransformChanged},
          {NULL, NULL}
      };
      std::vector<std::string> scopePath;
  
      gameplay::ScriptUtil::registerClass("Node", lua_members, NULL, lua_Node__gc, lua_statics, scopePath);
  
      luaGlobal_Register_Conversion_Function("Node", __convertTo);
  }
  
  }
  