text: #include "Base.h"
  #include "ScriptController.h"
  #include "lua_PhysicsFixedConstraint.h"
  #include "Base.h"
  #include "Game.h"
  #include "Node.h"
  #include "PhysicsConstraint.h"
  #include "PhysicsFixedConstraint.h"
  #include "PhysicsGenericConstraint.h"
  #include "PhysicsRigidBody.h"
  
  namespace gameplay
  {
  
  void luaRegister_PhysicsFixedConstraint()
  {
      const luaL_Reg lua_members[] = 
      {
          {"getBreakingImpulse", lua_PhysicsFixedConstraint_getBreakingImpulse},
          {"getRotationOffsetA", lua_PhysicsFixedConstraint_getRotationOffsetA},
          {"getRotationOffsetB", lua_PhysicsFixedConstraint_getRotationOffsetB},
          {"getTranslationOffsetA", lua_PhysicsFixedConstraint_getTranslationOffsetA},
          {"getTranslationOffsetB", lua_PhysicsFixedConstraint_getTranslationOffsetB},
          {"isEnabled", lua_PhysicsFixedConstraint_isEnabled},
          {"setBreakingImpulse", lua_PhysicsFixedConstraint_setBreakingImpulse},
          {"setEnabled", lua_PhysicsFixedConstraint_setEnabled},
          {"setRotationOffsetA", lua_PhysicsFixedConstraint_setRotationOffsetA},
          {"setRotationOffsetB", lua_PhysicsFixedConstraint_setRotationOffsetB},
          {"setTranslationOffsetA", lua_PhysicsFixedConstraint_setTranslationOffsetA},
          {"setTranslationOffsetB", lua_PhysicsFixedConstraint_setTranslationOffsetB},
          {NULL, NULL}
      };
      const luaL_Reg lua_statics[] = 
      {
          {"centerOfMassMidpoint", lua_PhysicsFixedConstraint_static_centerOfMassMidpoint},
          {"getRotationOffset", lua_PhysicsFixedConstraint_static_getRotationOffset},
          {"getTranslationOffset", lua_PhysicsFixedConstraint_static_getTranslationOffset},
          {NULL, NULL}
      };
      std::vector<std::string> scopePath;
  
      ScriptUtil::registerClass("PhysicsFixedConstraint", lua_members, NULL, NULL, lua_statics, scopePath);
  }
  
  static PhysicsFixedConstraint* getInstance(lua_State* state)
  {
      void* userdata = luaL_checkudata(state, 1, "PhysicsFixedConstraint");
      luaL_argcheck(state, userdata != NULL, 1, "'PhysicsFixedConstraint' expected.");
      return (PhysicsFixedConstraint*)((ScriptUtil::LuaObject*)userdata)->instance;
  }
  
  int lua_PhysicsFixedConstraint_getBreakingImpulse(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))
              {
                  PhysicsFixedConstraint* instance = getInstance(state);
                  float result = instance->getBreakingImpulse();
  
                  // Push the return value onto the stack.
                  lua_pushnumber(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_getBreakingImpulse - 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;
  }
  
  int lua_PhysicsFixedConstraint_getRotationOffsetA(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))
              {
                  PhysicsFixedConstraint* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getRotationOffsetA());
                  if (returnPtr)
                  {
                      ScriptUtil::LuaObject* object = (ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Quaternion");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_getRotationOffsetA - 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;
  }
  
  int lua_PhysicsFixedConstraint_getRotationOffsetB(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))
              {
                  PhysicsFixedConstraint* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getRotationOffsetB());
                  if (returnPtr)
                  {
                      ScriptUtil::LuaObject* object = (ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Quaternion");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_getRotationOffsetB - 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;
  }
  
  int lua_PhysicsFixedConstraint_getTranslationOffsetA(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))
              {
                  PhysicsFixedConstraint* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getTranslationOffsetA());
                  if (returnPtr)
                  {
                      ScriptUtil::LuaObject* object = (ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_getTranslationOffsetA - 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;
  }
  
  int lua_PhysicsFixedConstraint_getTranslationOffsetB(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))
              {
                  PhysicsFixedConstraint* instance = getInstance(state);
                  void* returnPtr = (void*)&(instance->getTranslationOffsetB());
                  if (returnPtr)
                  {
                      ScriptUtil::LuaObject* object = (ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = false;
                      luaL_getmetatable(state, "Vector3");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_getTranslationOffsetB - 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;
  }
  
  int lua_PhysicsFixedConstraint_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))
              {
                  PhysicsFixedConstraint* instance = getInstance(state);
                  bool result = instance->isEnabled();
  
                  // Push the return value onto the stack.
                  lua_pushboolean(state, result);
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_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;
  }
  
  int lua_PhysicsFixedConstraint_setBreakingImpulse(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);
  
                  PhysicsFixedConstraint* instance = getInstance(state);
                  instance->setBreakingImpulse(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_setBreakingImpulse - 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;
  }
  
  int lua_PhysicsFixedConstraint_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 = ScriptUtil::luaCheckBool(state, 2);
  
                  PhysicsFixedConstraint* instance = getInstance(state);
                  instance->setEnabled(param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_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;
  }
  
  int lua_PhysicsFixedConstraint_setRotationOffsetA(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_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  ScriptUtil::LuaArray<Quaternion> param1 = ScriptUtil::getObjectPointer<Quaternion>(2, "Quaternion", true, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Quaternion'.");
                      lua_error(state);
                  }
  
                  PhysicsFixedConstraint* instance = getInstance(state);
                  instance->setRotationOffsetA(*param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_setRotationOffsetA - 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;
  }
  
  int lua_PhysicsFixedConstraint_setRotationOffsetB(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_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  ScriptUtil::LuaArray<Quaternion> param1 = ScriptUtil::getObjectPointer<Quaternion>(2, "Quaternion", true, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Quaternion'.");
                      lua_error(state);
                  }
  
                  PhysicsFixedConstraint* instance = getInstance(state);
                  instance->setRotationOffsetB(*param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_setRotationOffsetB - 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;
  }
  
  int lua_PhysicsFixedConstraint_setTranslationOffsetA(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_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  ScriptUtil::LuaArray<Vector3> param1 = ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Vector3'.");
                      lua_error(state);
                  }
  
                  PhysicsFixedConstraint* instance = getInstance(state);
                  instance->setTranslationOffsetA(*param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_setTranslationOffsetA - 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;
  }
  
  int lua_PhysicsFixedConstraint_setTranslationOffsetB(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_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  ScriptUtil::LuaArray<Vector3> param1 = ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Vector3'.");
                      lua_error(state);
                  }
  
                  PhysicsFixedConstraint* instance = getInstance(state);
                  instance->setTranslationOffsetB(*param1);
                  
                  return 0;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_setTranslationOffsetB - 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;
  }
  
  int lua_PhysicsFixedConstraint_static_centerOfMassMidpoint(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, 1) == LUA_TTABLE || lua_type(state, 1) == LUA_TNIL) &&
                  (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;
                  ScriptUtil::LuaArray<Node> param1 = ScriptUtil::getObjectPointer<Node>(1, "Node", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Node'.");
                      lua_error(state);
                  }
  
                  // Get parameter 2 off the stack.
                  bool param2Valid;
                  ScriptUtil::LuaArray<Node> param2 = ScriptUtil::getObjectPointer<Node>(2, "Node", false, &param2Valid);
                  if (!param2Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 2 to type 'Node'.");
                      lua_error(state);
                  }
  
                  void* returnPtr = (void*)new Vector3(PhysicsFixedConstraint::centerOfMassMidpoint(param1, param2));
                  if (returnPtr)
                  {
                      ScriptUtil::LuaObject* object = (ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(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_PhysicsFixedConstraint_static_centerOfMassMidpoint - 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;
  }
  
  int lua_PhysicsFixedConstraint_static_getRotationOffset(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, 1) == LUA_TTABLE || lua_type(state, 1) == LUA_TNIL) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  ScriptUtil::LuaArray<Node> param1 = ScriptUtil::getObjectPointer<Node>(1, "Node", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Node'.");
                      lua_error(state);
                  }
  
                  // Get parameter 2 off the stack.
                  bool param2Valid;
                  ScriptUtil::LuaArray<Vector3> param2 = ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param2Valid);
                  if (!param2Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 2 to type 'Vector3'.");
                      lua_error(state);
                  }
  
                  void* returnPtr = (void*)new Quaternion(PhysicsFixedConstraint::getRotationOffset(param1, *param2));
                  if (returnPtr)
                  {
                      ScriptUtil::LuaObject* object = (ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(ScriptUtil::LuaObject));
                      object->instance = returnPtr;
                      object->owns = true;
                      luaL_getmetatable(state, "Quaternion");
                      lua_setmetatable(state, -2);
                  }
                  else
                  {
                      lua_pushnil(state);
                  }
  
                  return 1;
              }
  
              lua_pushstring(state, "lua_PhysicsFixedConstraint_static_getRotationOffset - 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;
  }
  
  int lua_PhysicsFixedConstraint_static_getTranslationOffset(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, 1) == LUA_TTABLE || lua_type(state, 1) == LUA_TNIL) &&
                  (lua_type(state, 2) == LUA_TUSERDATA || lua_type(state, 2) == LUA_TNIL))
              {
                  // Get parameter 1 off the stack.
                  bool param1Valid;
                  ScriptUtil::LuaArray<Node> param1 = ScriptUtil::getObjectPointer<Node>(1, "Node", false, &param1Valid);
                  if (!param1Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 1 to type 'Node'.");
                      lua_error(state);
                  }
  
                  // Get parameter 2 off the stack.
                  bool param2Valid;
                  ScriptUtil::LuaArray<Vector3> param2 = ScriptUtil::getObjectPointer<Vector3>(2, "Vector3", true, &param2Valid);
                  if (!param2Valid)
                  {
                      lua_pushstring(state, "Failed to convert parameter 2 to type 'Vector3'.");
                      lua_error(state);
                  }
  
                  void* returnPtr = (void*)new Vector3(PhysicsFixedConstraint::getTranslationOffset(param1, *param2));
                  if (returnPtr)
                  {
                      ScriptUtil::LuaObject* object = (ScriptUtil::LuaObject*)lua_newuserdata(state, sizeof(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_PhysicsFixedConstraint_static_getTranslationOffset - 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;
  }
  
  }
  