static int IntersectsSegment(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 5)
            {
                DragonBones.Armature obj = (DragonBones.Armature)ToLua.CheckObject <DragonBones.Armature>(L, 1);
                float            arg0    = (float)LuaDLL.luaL_checknumber(L, 2);
                float            arg1    = (float)LuaDLL.luaL_checknumber(L, 3);
                float            arg2    = (float)LuaDLL.luaL_checknumber(L, 4);
                float            arg3    = (float)LuaDLL.luaL_checknumber(L, 5);
                DragonBones.Slot o       = obj.IntersectsSegment(arg0, arg1, arg2, arg3);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 6)
            {
                DragonBones.Armature obj = (DragonBones.Armature)ToLua.CheckObject <DragonBones.Armature>(L, 1);
                float             arg0   = (float)LuaDLL.luaL_checknumber(L, 2);
                float             arg1   = (float)LuaDLL.luaL_checknumber(L, 3);
                float             arg2   = (float)LuaDLL.luaL_checknumber(L, 4);
                float             arg3   = (float)LuaDLL.luaL_checknumber(L, 5);
                DragonBones.Point arg4   = (DragonBones.Point)ToLua.CheckObject <DragonBones.Point>(L, 6);
                DragonBones.Slot  o      = obj.IntersectsSegment(arg0, arg1, arg2, arg3, arg4);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 7)
            {
                DragonBones.Armature obj = (DragonBones.Armature)ToLua.CheckObject <DragonBones.Armature>(L, 1);
                float             arg0   = (float)LuaDLL.luaL_checknumber(L, 2);
                float             arg1   = (float)LuaDLL.luaL_checknumber(L, 3);
                float             arg2   = (float)LuaDLL.luaL_checknumber(L, 4);
                float             arg3   = (float)LuaDLL.luaL_checknumber(L, 5);
                DragonBones.Point arg4   = (DragonBones.Point)ToLua.CheckObject <DragonBones.Point>(L, 6);
                DragonBones.Point arg5   = (DragonBones.Point)ToLua.CheckObject <DragonBones.Point>(L, 7);
                DragonBones.Slot  o      = obj.IntersectsSegment(arg0, arg1, arg2, arg3, arg4, arg5);
                ToLua.PushObject(L, o);
                return(1);
            }
            else if (count == 8)
            {
                DragonBones.Armature obj = (DragonBones.Armature)ToLua.CheckObject <DragonBones.Armature>(L, 1);
                float             arg0   = (float)LuaDLL.luaL_checknumber(L, 2);
                float             arg1   = (float)LuaDLL.luaL_checknumber(L, 3);
                float             arg2   = (float)LuaDLL.luaL_checknumber(L, 4);
                float             arg3   = (float)LuaDLL.luaL_checknumber(L, 5);
                DragonBones.Point arg4   = (DragonBones.Point)ToLua.CheckObject <DragonBones.Point>(L, 6);
                DragonBones.Point arg5   = (DragonBones.Point)ToLua.CheckObject <DragonBones.Point>(L, 7);
                DragonBones.Point arg6   = (DragonBones.Point)ToLua.CheckObject <DragonBones.Point>(L, 8);
                DragonBones.Slot  o      = obj.IntersectsSegment(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
                ToLua.PushObject(L, o);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: DragonBones.Armature.IntersectsSegment"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }