big ol update
|
|
@ -1,141 +0,0 @@
|
||||||
{
|
|
||||||
"inputs" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"path" : "CMakeLists.txt"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path" : "CMakeFiles/3.26.4/CMakeSystem.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeSystemSpecificInitialize.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path" : "CMakeFiles/3.26.4/CMakeCCompiler.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path" : "CMakeFiles/3.26.4/CMakeCXXCompiler.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeSystemSpecificInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeGenericSystem.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeInitializeConfigs.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/UnixPaths.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeLanguageInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU-C.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU-C.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCommonLanguageInclude.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCXXInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeLanguageInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU-CXX.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU-CXX.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCommonLanguageInclude.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"kind" : "cmakeFiles",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : "/media/garrett/Storage/Projects/Hydrangea",
|
|
||||||
"source" : "/media/garrett/Storage/Projects/Hydrangea"
|
|
||||||
},
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
{
|
|
||||||
"configurations" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directories" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"jsonFile" : "directory-.-f5ebdc15457944623624.json",
|
|
||||||
"minimumCMakeVersion" :
|
|
||||||
{
|
|
||||||
"string" : "3.22.1"
|
|
||||||
},
|
|
||||||
"projectIndex" : 0,
|
|
||||||
"source" : ".",
|
|
||||||
"targetIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name" : "",
|
|
||||||
"projects" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directoryIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"name" : "Hydrangea",
|
|
||||||
"targetIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"targets" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directoryIndex" : 0,
|
|
||||||
"id" : "game::@6890427a1f51a3e7e1df",
|
|
||||||
"jsonFile" : "target-game-c928b7f21fd872f316af.json",
|
|
||||||
"name" : "game",
|
|
||||||
"projectIndex" : 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : "/media/garrett/Storage/Projects/Hydrangea",
|
|
||||||
"source" : "/media/garrett/Storage/Projects/Hydrangea"
|
|
||||||
},
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
"backtraceGraph" :
|
|
||||||
{
|
|
||||||
"commands" : [],
|
|
||||||
"files" : [],
|
|
||||||
"nodes" : []
|
|
||||||
},
|
|
||||||
"installers" : [],
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"source" : "."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
{
|
|
||||||
"cmake" :
|
|
||||||
{
|
|
||||||
"generator" :
|
|
||||||
{
|
|
||||||
"multiConfig" : false,
|
|
||||||
"name" : "Unix Makefiles"
|
|
||||||
},
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"cmake" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/cmake",
|
|
||||||
"cpack" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/cpack",
|
|
||||||
"ctest" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/ctest",
|
|
||||||
"root" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26"
|
|
||||||
},
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"isDirty" : false,
|
|
||||||
"major" : 3,
|
|
||||||
"minor" : 26,
|
|
||||||
"patch" : 4,
|
|
||||||
"string" : "3.26.4",
|
|
||||||
"suffix" : ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"objects" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"jsonFile" : "codemodel-v2-330b5f213693ec063c5e.json",
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "cache-v2-f48b714d1e4412ccc47b.json",
|
|
||||||
"kind" : "cache",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "cmakeFiles-v1-13576cbc081bae598543.json",
|
|
||||||
"kind" : "cmakeFiles",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "toolchains-v1-99265b04de7ada3aac9e.json",
|
|
||||||
"kind" : "toolchains",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"reply" :
|
|
||||||
{
|
|
||||||
"cache-v2" :
|
|
||||||
{
|
|
||||||
"jsonFile" : "cache-v2-f48b714d1e4412ccc47b.json",
|
|
||||||
"kind" : "cache",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cmakeFiles-v1" :
|
|
||||||
{
|
|
||||||
"jsonFile" : "cmakeFiles-v1-13576cbc081bae598543.json",
|
|
||||||
"kind" : "cmakeFiles",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"codemodel-v2" :
|
|
||||||
{
|
|
||||||
"jsonFile" : "codemodel-v2-330b5f213693ec063c5e.json",
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 5
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"toolchains-v1" :
|
|
||||||
{
|
|
||||||
"jsonFile" : "toolchains-v1-99265b04de7ada3aac9e.json",
|
|
||||||
"kind" : "toolchains",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,598 +0,0 @@
|
||||||
{
|
|
||||||
"artifacts" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"path" : "game"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"backtrace" : 1,
|
|
||||||
"backtraceGraph" :
|
|
||||||
{
|
|
||||||
"commands" :
|
|
||||||
[
|
|
||||||
"add_executable",
|
|
||||||
"link_directories",
|
|
||||||
"target_link_libraries",
|
|
||||||
"include_directories"
|
|
||||||
],
|
|
||||||
"files" :
|
|
||||||
[
|
|
||||||
"CMakeLists.txt"
|
|
||||||
],
|
|
||||||
"nodes" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"file" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 0,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 24,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 1,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 14,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 2,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 30,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 2,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 31,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 3,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 10,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 3,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 18,
|
|
||||||
"parent" : 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"compileGroups" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"compileCommandFragments" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"fragment" : "-std=gnu++14 -fdiagnostics-color=always"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"includes" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"backtrace" : 5,
|
|
||||||
"path" : "/usr/include/SDL2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 6,
|
|
||||||
"path" : "/media/garrett/Storage/Projects/Hydrangea/include"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"language" : "CXX",
|
|
||||||
"languageStandard" :
|
|
||||||
{
|
|
||||||
"backtraces" :
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"standard" : "14"
|
|
||||||
},
|
|
||||||
"sourceIndexes" :
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6,
|
|
||||||
7,
|
|
||||||
8,
|
|
||||||
9,
|
|
||||||
10,
|
|
||||||
11,
|
|
||||||
12,
|
|
||||||
13,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
16,
|
|
||||||
17,
|
|
||||||
18,
|
|
||||||
19,
|
|
||||||
20,
|
|
||||||
21,
|
|
||||||
22,
|
|
||||||
23,
|
|
||||||
24,
|
|
||||||
25,
|
|
||||||
26,
|
|
||||||
27,
|
|
||||||
28,
|
|
||||||
29,
|
|
||||||
30,
|
|
||||||
31,
|
|
||||||
32,
|
|
||||||
33,
|
|
||||||
34,
|
|
||||||
35,
|
|
||||||
36,
|
|
||||||
37,
|
|
||||||
38,
|
|
||||||
39,
|
|
||||||
40,
|
|
||||||
41,
|
|
||||||
42,
|
|
||||||
43,
|
|
||||||
44,
|
|
||||||
45,
|
|
||||||
46,
|
|
||||||
47,
|
|
||||||
48,
|
|
||||||
49,
|
|
||||||
50,
|
|
||||||
51,
|
|
||||||
52,
|
|
||||||
53,
|
|
||||||
54,
|
|
||||||
55
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id" : "game::@6890427a1f51a3e7e1df",
|
|
||||||
"link" :
|
|
||||||
{
|
|
||||||
"commandFragments" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"fragment" : "",
|
|
||||||
"role" : "flags"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 2,
|
|
||||||
"fragment" : "-L/src",
|
|
||||||
"role" : "libraryPath"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fragment" : "-Wl,-rpath,/src",
|
|
||||||
"role" : "libraries"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 3,
|
|
||||||
"fragment" : "-L/usr/lib/x86_64-linux-gnu -lSDL2",
|
|
||||||
"role" : "libraries"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 4,
|
|
||||||
"fragment" : "-lSDL2_gpu",
|
|
||||||
"role" : "libraries"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"language" : "CXX"
|
|
||||||
},
|
|
||||||
"name" : "game",
|
|
||||||
"nameOnDisk" : "game",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"source" : "."
|
|
||||||
},
|
|
||||||
"sourceGroups" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"name" : "Source Files",
|
|
||||||
"sourceIndexes" :
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6,
|
|
||||||
7,
|
|
||||||
8,
|
|
||||||
9,
|
|
||||||
10,
|
|
||||||
11,
|
|
||||||
12,
|
|
||||||
13,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
16,
|
|
||||||
17,
|
|
||||||
18,
|
|
||||||
19,
|
|
||||||
20,
|
|
||||||
21,
|
|
||||||
22,
|
|
||||||
23,
|
|
||||||
24,
|
|
||||||
25,
|
|
||||||
26,
|
|
||||||
27,
|
|
||||||
28,
|
|
||||||
29,
|
|
||||||
30,
|
|
||||||
31,
|
|
||||||
32,
|
|
||||||
33,
|
|
||||||
34,
|
|
||||||
35,
|
|
||||||
36,
|
|
||||||
37,
|
|
||||||
38,
|
|
||||||
39,
|
|
||||||
40,
|
|
||||||
41,
|
|
||||||
42,
|
|
||||||
43,
|
|
||||||
44,
|
|
||||||
45,
|
|
||||||
46,
|
|
||||||
47,
|
|
||||||
48,
|
|
||||||
49,
|
|
||||||
50,
|
|
||||||
51,
|
|
||||||
52,
|
|
||||||
53,
|
|
||||||
54,
|
|
||||||
55
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sources" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/game.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/input_manager.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/main.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/node.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/player.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/scene.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/sprite.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/static_body.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/util.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/window.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_broad_phase.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_chain_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_circle_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collide_circle.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collide_edge.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collide_polygon.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collision.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_distance.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_dynamic_tree.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_edge_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_polygon_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_time_of_impact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_block_allocator.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_draw.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_math.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_settings.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_stack_allocator.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_timer.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_body.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_chain_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_chain_polygon_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_contact_manager.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_contact_solver.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_distance_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_edge_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_edge_polygon_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_fixture.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_friction_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_gear_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_island.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_motor_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_mouse_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_polygon_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_polygon_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_prismatic_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_pulley_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_revolute_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_weld_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_wheel_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_world.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_world_callbacks.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/rope/b2_rope.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/fmt/format.cc",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type" : "EXECUTABLE"
|
|
||||||
}
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
||||||
{
|
|
||||||
"kind" : "toolchains",
|
|
||||||
"toolchains" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"compiler" :
|
|
||||||
{
|
|
||||||
"id" : "GNU",
|
|
||||||
"implicit" :
|
|
||||||
{
|
|
||||||
"includeDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11/include",
|
|
||||||
"/usr/local/include",
|
|
||||||
"/usr/include/x86_64-linux-gnu",
|
|
||||||
"/usr/include"
|
|
||||||
],
|
|
||||||
"linkDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11",
|
|
||||||
"/usr/lib/x86_64-linux-gnu",
|
|
||||||
"/usr/lib",
|
|
||||||
"/lib/x86_64-linux-gnu",
|
|
||||||
"/lib"
|
|
||||||
],
|
|
||||||
"linkFrameworkDirectories" : [],
|
|
||||||
"linkLibraries" :
|
|
||||||
[
|
|
||||||
"gcc",
|
|
||||||
"gcc_s",
|
|
||||||
"c",
|
|
||||||
"gcc",
|
|
||||||
"gcc_s"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"path" : "/usr/bin/cc",
|
|
||||||
"version" : "11.4.0"
|
|
||||||
},
|
|
||||||
"language" : "C",
|
|
||||||
"sourceFileExtensions" :
|
|
||||||
[
|
|
||||||
"c",
|
|
||||||
"m"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"compiler" :
|
|
||||||
{
|
|
||||||
"id" : "GNU",
|
|
||||||
"implicit" :
|
|
||||||
{
|
|
||||||
"includeDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/include/c++/11",
|
|
||||||
"/usr/include/x86_64-linux-gnu/c++/11",
|
|
||||||
"/usr/include/c++/11/backward",
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11/include",
|
|
||||||
"/usr/local/include",
|
|
||||||
"/usr/include/x86_64-linux-gnu",
|
|
||||||
"/usr/include"
|
|
||||||
],
|
|
||||||
"linkDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11",
|
|
||||||
"/usr/lib/x86_64-linux-gnu",
|
|
||||||
"/usr/lib",
|
|
||||||
"/lib/x86_64-linux-gnu",
|
|
||||||
"/lib"
|
|
||||||
],
|
|
||||||
"linkFrameworkDirectories" : [],
|
|
||||||
"linkLibraries" :
|
|
||||||
[
|
|
||||||
"stdc++",
|
|
||||||
"m",
|
|
||||||
"gcc_s",
|
|
||||||
"gcc",
|
|
||||||
"c",
|
|
||||||
"gcc_s",
|
|
||||||
"gcc"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"path" : "/usr/bin/c++",
|
|
||||||
"version" : "11.4.0"
|
|
||||||
},
|
|
||||||
"language" : "CXX",
|
|
||||||
"sourceFileExtensions" :
|
|
||||||
[
|
|
||||||
"C",
|
|
||||||
"M",
|
|
||||||
"c++",
|
|
||||||
"cc",
|
|
||||||
"cpp",
|
|
||||||
"cxx",
|
|
||||||
"mm",
|
|
||||||
"mpp",
|
|
||||||
"CPP",
|
|
||||||
"ixx",
|
|
||||||
"cppm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
14
.gitignore
vendored
|
|
@ -1,10 +1,20 @@
|
||||||
|
# CMake and make files
|
||||||
cmake_install.cmake
|
cmake_install.cmake
|
||||||
CMakeCache.txt
|
CMakeCache.txt
|
||||||
CMakeFiles/
|
CMakeFiles/
|
||||||
CMakeTmp/
|
CMakeTmp/
|
||||||
Makefile
|
Makefile
|
||||||
|
build/
|
||||||
|
|
||||||
|
# .folders
|
||||||
.vscode/
|
.vscode/
|
||||||
compile.sh
|
.cmake/
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# scripts, execs, etc
|
||||||
|
build.sh
|
||||||
|
test.cpp
|
||||||
game
|
game
|
||||||
notes/
|
notes/
|
||||||
Testing/
|
Testing/
|
||||||
|
testing/
|
||||||
8
.idea/.gitignore
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
# Editor-based HTTP Client requests
|
|
||||||
/httpRequests/
|
|
||||||
# Datasource local storage ignored files
|
|
||||||
/dataSources/
|
|
||||||
/dataSources.local.xml
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module classpath="CMake" type="CPP_MODULE" version="4" />
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
|
|
||||||
<component name="CidrRootsConfiguration">
|
|
||||||
<sourceRoots>
|
|
||||||
<file path="$PROJECT_DIR$/include" />
|
|
||||||
<file path="$PROJECT_DIR$/src" />
|
|
||||||
</sourceRoots>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/Hydrangea.iml" filepath="$PROJECT_DIR$/.idea/Hydrangea.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
|
|
@ -17,19 +17,18 @@ set(SDL_GPU_LIBS SDL2_gpu ${GL_LIBRARIES})
|
||||||
# Then bring in the local source files and headers into the project
|
# Then bring in the local source files and headers into the project
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
|
|
||||||
file(GLOB SOURCES "src/*.cpp") # Base engine source files
|
file(GLOB_RECURSE SOURCES "src/*.cpp") # Base engine source files
|
||||||
file(GLOB BOX2D_SOURCES "src/box2d/*/*.cpp") # box2d Physics engine
|
file(GLOB_RECURSE BOX2D_SOURCES "src/box2d/*.cpp") # box2d Physics engine
|
||||||
file(GLOB FMT_SOURCES "src/fmt/*.cc") # fmt String formatter lib
|
file(GLOB_RECURSE FMT_SOURCES "src/fmt/*.cc") # fmt String formatter lib
|
||||||
|
|
||||||
add_executable( ${OUT_NAME}
|
add_executable( ${OUT_NAME}
|
||||||
${SOURCES}
|
${SOURCES}
|
||||||
${BOX2D_SOURCES}
|
${BOX2D_SOURCES}
|
||||||
${FMT_SOURCES}
|
${FMT_SOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(${OUT_NAME} ${SDL2_LIBRARIES})
|
target_link_libraries(${OUT_NAME} ${SDL2_LIBRARIES})
|
||||||
target_link_libraries(${OUT_NAME} ${SDL_GPU_LIBS})
|
target_link_libraries(${OUT_NAME} ${SDL_GPU_LIBS})
|
||||||
#target_link_libraries(${OUT_NAME} box2d)
|
|
||||||
|
|
||||||
get_target_property(OUT ${OUT_NAME} LINK_LIBRARIES)
|
get_target_property(OUT ${OUT_NAME} LINK_LIBRARIES)
|
||||||
message(STATUS ${OUT})
|
message(STATUS ${OUT})
|
||||||
|
|
|
||||||
9
build.sh
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
export LD_LIBRARY_PATH="/usr/local/lib"
|
|
||||||
cmake CMakeLists.txt
|
|
||||||
make -j 5
|
|
||||||
|
|
||||||
if [ "$1" == "play" ]; then
|
|
||||||
./game
|
|
||||||
fi
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]}
|
|
||||||
|
|
@ -1,144 +0,0 @@
|
||||||
{
|
|
||||||
"inputs" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"path" : "CMakeLists.txt"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isGenerated" : true,
|
|
||||||
"path" : "build/CMakeFiles/3.22.1/CMakeSystem.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isGenerated" : true,
|
|
||||||
"path" : "build/CMakeFiles/3.22.1/CMakeCCompiler.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isGenerated" : true,
|
|
||||||
"path" : "build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Platform/Linux.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeCInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isCMake" : true,
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isExternal" : true,
|
|
||||||
"path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"kind" : "cmakeFiles",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"source" : "/media/garrett/Storage/Projects/Hydrangea"
|
|
||||||
},
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
{
|
|
||||||
"configurations" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directories" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json",
|
|
||||||
"minimumCMakeVersion" :
|
|
||||||
{
|
|
||||||
"string" : "3.22.1"
|
|
||||||
},
|
|
||||||
"projectIndex" : 0,
|
|
||||||
"source" : ".",
|
|
||||||
"targetIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name" : "Debug",
|
|
||||||
"projects" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directoryIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
],
|
|
||||||
"name" : "Hydrangea",
|
|
||||||
"targetIndexes" :
|
|
||||||
[
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"targets" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"directoryIndex" : 0,
|
|
||||||
"id" : "game::@6890427a1f51a3e7e1df",
|
|
||||||
"jsonFile" : "target-game-Debug-9df99ffdcc4bbe325dba.json",
|
|
||||||
"name" : "game",
|
|
||||||
"projectIndex" : 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"source" : "/media/garrett/Storage/Projects/Hydrangea"
|
|
||||||
},
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 3
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
"backtraceGraph" :
|
|
||||||
{
|
|
||||||
"commands" : [],
|
|
||||||
"files" : [],
|
|
||||||
"nodes" : []
|
|
||||||
},
|
|
||||||
"installers" : [],
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"source" : "."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,132 +0,0 @@
|
||||||
{
|
|
||||||
"cmake" :
|
|
||||||
{
|
|
||||||
"generator" :
|
|
||||||
{
|
|
||||||
"multiConfig" : false,
|
|
||||||
"name" : "Ninja"
|
|
||||||
},
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"cmake" : "/usr/bin/cmake",
|
|
||||||
"cpack" : "/usr/bin/cpack",
|
|
||||||
"ctest" : "/usr/bin/ctest",
|
|
||||||
"root" : "/usr/share/cmake-3.22"
|
|
||||||
},
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"isDirty" : false,
|
|
||||||
"major" : 3,
|
|
||||||
"minor" : 22,
|
|
||||||
"patch" : 1,
|
|
||||||
"string" : "3.22.1",
|
|
||||||
"suffix" : ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"objects" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"jsonFile" : "codemodel-v2-3dd0101c350a8d407562.json",
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 3
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "cache-v2-5b5f3a9c60370adcf8ab.json",
|
|
||||||
"kind" : "cache",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "cmakeFiles-v1-cef2c3de0490094bf669.json",
|
|
||||||
"kind" : "cmakeFiles",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "toolchains-v1-50db6e0713f69d932e1c.json",
|
|
||||||
"kind" : "toolchains",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"reply" :
|
|
||||||
{
|
|
||||||
"client-vscode" :
|
|
||||||
{
|
|
||||||
"query.json" :
|
|
||||||
{
|
|
||||||
"requests" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"kind" : "cache",
|
|
||||||
"version" : 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"version" : 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind" : "toolchains",
|
|
||||||
"version" : 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"kind" : "cmakeFiles",
|
|
||||||
"version" : 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"jsonFile" : "cache-v2-5b5f3a9c60370adcf8ab.json",
|
|
||||||
"kind" : "cache",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "codemodel-v2-3dd0101c350a8d407562.json",
|
|
||||||
"kind" : "codemodel",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 2,
|
|
||||||
"minor" : 3
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "toolchains-v1-50db6e0713f69d932e1c.json",
|
|
||||||
"kind" : "toolchains",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"jsonFile" : "cmakeFiles-v1-cef2c3de0490094bf669.json",
|
|
||||||
"kind" : "cmakeFiles",
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,613 +0,0 @@
|
||||||
{
|
|
||||||
"artifacts" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"path" : "game"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"backtrace" : 1,
|
|
||||||
"backtraceGraph" :
|
|
||||||
{
|
|
||||||
"commands" :
|
|
||||||
[
|
|
||||||
"add_executable",
|
|
||||||
"link_directories",
|
|
||||||
"target_link_libraries",
|
|
||||||
"include_directories"
|
|
||||||
],
|
|
||||||
"files" :
|
|
||||||
[
|
|
||||||
"CMakeLists.txt"
|
|
||||||
],
|
|
||||||
"nodes" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"file" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 0,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 24,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 1,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 14,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 2,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 30,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 2,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 31,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 3,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 10,
|
|
||||||
"parent" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"command" : 3,
|
|
||||||
"file" : 0,
|
|
||||||
"line" : 18,
|
|
||||||
"parent" : 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"compileGroups" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"compileCommandFragments" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"fragment" : "-g"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fragment" : "-std=gnu++14"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"includes" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"backtrace" : 5,
|
|
||||||
"path" : "/usr/include/SDL2"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 6,
|
|
||||||
"path" : "/media/garrett/Storage/Projects/Hydrangea/include"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"language" : "CXX",
|
|
||||||
"languageStandard" :
|
|
||||||
{
|
|
||||||
"backtraces" :
|
|
||||||
[
|
|
||||||
1
|
|
||||||
],
|
|
||||||
"standard" : "14"
|
|
||||||
},
|
|
||||||
"sourceIndexes" :
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6,
|
|
||||||
7,
|
|
||||||
8,
|
|
||||||
9,
|
|
||||||
10,
|
|
||||||
11,
|
|
||||||
12,
|
|
||||||
13,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
16,
|
|
||||||
17,
|
|
||||||
18,
|
|
||||||
19,
|
|
||||||
20,
|
|
||||||
21,
|
|
||||||
22,
|
|
||||||
23,
|
|
||||||
24,
|
|
||||||
25,
|
|
||||||
26,
|
|
||||||
27,
|
|
||||||
28,
|
|
||||||
29,
|
|
||||||
30,
|
|
||||||
31,
|
|
||||||
32,
|
|
||||||
33,
|
|
||||||
34,
|
|
||||||
35,
|
|
||||||
36,
|
|
||||||
37,
|
|
||||||
38,
|
|
||||||
39,
|
|
||||||
40,
|
|
||||||
41,
|
|
||||||
42,
|
|
||||||
43,
|
|
||||||
44,
|
|
||||||
45,
|
|
||||||
46,
|
|
||||||
47,
|
|
||||||
48,
|
|
||||||
49,
|
|
||||||
50,
|
|
||||||
51,
|
|
||||||
52,
|
|
||||||
53,
|
|
||||||
54,
|
|
||||||
55,
|
|
||||||
56
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"id" : "game::@6890427a1f51a3e7e1df",
|
|
||||||
"link" :
|
|
||||||
{
|
|
||||||
"commandFragments" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"fragment" : "-g",
|
|
||||||
"role" : "flags"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fragment" : "",
|
|
||||||
"role" : "flags"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 2,
|
|
||||||
"fragment" : "-L/src",
|
|
||||||
"role" : "libraryPath"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"fragment" : "-Wl,-rpath,/src",
|
|
||||||
"role" : "libraries"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 3,
|
|
||||||
"fragment" : "-L/usr/lib/x86_64-linux-gnu -lSDL2",
|
|
||||||
"role" : "libraries"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 4,
|
|
||||||
"fragment" : "-lSDL2_gpu",
|
|
||||||
"role" : "libraries"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"language" : "CXX"
|
|
||||||
},
|
|
||||||
"name" : "game",
|
|
||||||
"nameOnDisk" : "game",
|
|
||||||
"paths" :
|
|
||||||
{
|
|
||||||
"build" : ".",
|
|
||||||
"source" : "."
|
|
||||||
},
|
|
||||||
"sourceGroups" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"name" : "Source Files",
|
|
||||||
"sourceIndexes" :
|
|
||||||
[
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6,
|
|
||||||
7,
|
|
||||||
8,
|
|
||||||
9,
|
|
||||||
10,
|
|
||||||
11,
|
|
||||||
12,
|
|
||||||
13,
|
|
||||||
14,
|
|
||||||
15,
|
|
||||||
16,
|
|
||||||
17,
|
|
||||||
18,
|
|
||||||
19,
|
|
||||||
20,
|
|
||||||
21,
|
|
||||||
22,
|
|
||||||
23,
|
|
||||||
24,
|
|
||||||
25,
|
|
||||||
26,
|
|
||||||
27,
|
|
||||||
28,
|
|
||||||
29,
|
|
||||||
30,
|
|
||||||
31,
|
|
||||||
32,
|
|
||||||
33,
|
|
||||||
34,
|
|
||||||
35,
|
|
||||||
36,
|
|
||||||
37,
|
|
||||||
38,
|
|
||||||
39,
|
|
||||||
40,
|
|
||||||
41,
|
|
||||||
42,
|
|
||||||
43,
|
|
||||||
44,
|
|
||||||
45,
|
|
||||||
46,
|
|
||||||
47,
|
|
||||||
48,
|
|
||||||
49,
|
|
||||||
50,
|
|
||||||
51,
|
|
||||||
52,
|
|
||||||
53,
|
|
||||||
54,
|
|
||||||
55,
|
|
||||||
56
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sources" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/dynamic_body.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/game.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/input_manager.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/main.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/node.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/player.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/scene.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/sprite.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/static_body.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/util.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/window.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_broad_phase.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_chain_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_circle_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collide_circle.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collide_edge.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collide_polygon.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_collision.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_distance.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_dynamic_tree.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_edge_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_polygon_shape.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/collision/b2_time_of_impact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_block_allocator.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_draw.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_math.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_settings.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_stack_allocator.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/common/b2_timer.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_body.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_chain_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_chain_polygon_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_contact_manager.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_contact_solver.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_distance_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_edge_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_edge_polygon_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_fixture.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_friction_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_gear_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_island.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_motor_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_mouse_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_polygon_circle_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_polygon_contact.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_prismatic_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_pulley_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_revolute_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_weld_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_wheel_joint.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_world.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/dynamics/b2_world_callbacks.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/box2d/rope/b2_rope.cpp",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backtrace" : 1,
|
|
||||||
"compileGroupIndex" : 0,
|
|
||||||
"path" : "src/fmt/format.cc",
|
|
||||||
"sourceGroupIndex" : 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"type" : "EXECUTABLE"
|
|
||||||
}
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
||||||
{
|
|
||||||
"kind" : "toolchains",
|
|
||||||
"toolchains" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"compiler" :
|
|
||||||
{
|
|
||||||
"id" : "GNU",
|
|
||||||
"implicit" :
|
|
||||||
{
|
|
||||||
"includeDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11/include",
|
|
||||||
"/usr/local/include",
|
|
||||||
"/usr/include/x86_64-linux-gnu",
|
|
||||||
"/usr/include"
|
|
||||||
],
|
|
||||||
"linkDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11",
|
|
||||||
"/usr/lib/x86_64-linux-gnu",
|
|
||||||
"/usr/lib",
|
|
||||||
"/lib/x86_64-linux-gnu",
|
|
||||||
"/lib"
|
|
||||||
],
|
|
||||||
"linkFrameworkDirectories" : [],
|
|
||||||
"linkLibraries" :
|
|
||||||
[
|
|
||||||
"gcc",
|
|
||||||
"gcc_s",
|
|
||||||
"c",
|
|
||||||
"gcc",
|
|
||||||
"gcc_s"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"path" : "/bin/x86_64-linux-gnu-gcc-11",
|
|
||||||
"version" : "11.4.0"
|
|
||||||
},
|
|
||||||
"language" : "C",
|
|
||||||
"sourceFileExtensions" :
|
|
||||||
[
|
|
||||||
"c",
|
|
||||||
"m"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"compiler" :
|
|
||||||
{
|
|
||||||
"id" : "GNU",
|
|
||||||
"implicit" :
|
|
||||||
{
|
|
||||||
"includeDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/include/c++/11",
|
|
||||||
"/usr/include/x86_64-linux-gnu/c++/11",
|
|
||||||
"/usr/include/c++/11/backward",
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11/include",
|
|
||||||
"/usr/local/include",
|
|
||||||
"/usr/include/x86_64-linux-gnu",
|
|
||||||
"/usr/include"
|
|
||||||
],
|
|
||||||
"linkDirectories" :
|
|
||||||
[
|
|
||||||
"/usr/lib/gcc/x86_64-linux-gnu/11",
|
|
||||||
"/usr/lib/x86_64-linux-gnu",
|
|
||||||
"/usr/lib",
|
|
||||||
"/lib/x86_64-linux-gnu",
|
|
||||||
"/lib"
|
|
||||||
],
|
|
||||||
"linkFrameworkDirectories" : [],
|
|
||||||
"linkLibraries" :
|
|
||||||
[
|
|
||||||
"stdc++",
|
|
||||||
"m",
|
|
||||||
"gcc_s",
|
|
||||||
"gcc",
|
|
||||||
"c",
|
|
||||||
"gcc_s",
|
|
||||||
"gcc"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"path" : "/bin/x86_64-linux-gnu-g++-11",
|
|
||||||
"version" : "11.4.0"
|
|
||||||
},
|
|
||||||
"language" : "CXX",
|
|
||||||
"sourceFileExtensions" :
|
|
||||||
[
|
|
||||||
"C",
|
|
||||||
"M",
|
|
||||||
"c++",
|
|
||||||
"cc",
|
|
||||||
"cpp",
|
|
||||||
"cxx",
|
|
||||||
"mm",
|
|
||||||
"mpp",
|
|
||||||
"CPP",
|
|
||||||
"ixx",
|
|
||||||
"cppm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"version" :
|
|
||||||
{
|
|
||||||
"major" : 1,
|
|
||||||
"minor" : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
# ninja log v5
|
|
||||||
4 247 1702159838973791840 CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o 2584c67db79bc7f6
|
|
||||||
7 253 1702159838981791836 CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o f0cd7e99d5f1b2f6
|
|
||||||
6 303 1702159839029791810 CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o f16c4b982bdb0256
|
|
||||||
248 550 1702159839277791678 CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o 5018c314eb6f805c
|
|
||||||
3 571 1702159839289791672 CMakeFiles/game.dir/src/util.cpp.o c1bdceb11ac46020
|
|
||||||
303 607 1702159839333791648 CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o ee45cc40c07de0d1
|
|
||||||
253 614 1702159839337791647 CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o e62a6fcf34355c52
|
|
||||||
0 708 1702159839433791596 CMakeFiles/game.dir/src/dynamic_body.cpp.o 190c439dcd7ca4c8
|
|
||||||
550 867 1702159839593791509 CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o 11276083ca1c7f45
|
|
||||||
572 877 1702159839601791506 CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o 64b29720677838bf
|
|
||||||
614 965 1702159839693791457 CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o f55ea97c9fc7b9c
|
|
||||||
708 1027 1702159839753791424 CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o 864d525ee344138f
|
|
||||||
877 1037 1702159839765791419 CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o aa2fe16437d0eab1
|
|
||||||
608 1050 1702159839777791412 CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o 3190c0909911317a
|
|
||||||
966 1137 1702159839865791364 CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o 460ab1093b305604
|
|
||||||
1037 1211 1702159839933791329 CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o 35f60214dc2f6162
|
|
||||||
1027 1216 1702159839941791325 CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o 59e10962e30bc3b
|
|
||||||
1137 1237 1702159839953791318 CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o e624a175973223a8
|
|
||||||
867 1276 1702159840001791292 CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o fb4c74b917d01306
|
|
||||||
2 1312 1702159840037791273 CMakeFiles/game.dir/src/player.cpp.o f70983e79251fd0c
|
|
||||||
1050 1349 1702159840077791251 CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o 48c6e36f3e22d80
|
|
||||||
1 1391 1702159840117791231 CMakeFiles/game.dir/src/node.cpp.o 2d6c346af5ab59d3
|
|
||||||
1 1449 1702159840177791198 CMakeFiles/game.dir/src/input_manager.cpp.o 9679f5afa764ce3c
|
|
||||||
0 1455 1702159840173791201 CMakeFiles/game.dir/src/game.cpp.o afcd93a026538e93
|
|
||||||
1216 1492 1702159840221791175 CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o deee820bad566c5
|
|
||||||
2 1506 1702159840233791168 CMakeFiles/game.dir/src/scene.cpp.o 498f0987c94048bf
|
|
||||||
1237 1523 1702159840249791160 CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o 4c1ba6cb10da1c61
|
|
||||||
1 1525 1702159840253791157 CMakeFiles/game.dir/src/main.cpp.o 8fb557ab0446f19b
|
|
||||||
1211 1541 1702159840269791149 CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o f169fb3d58f132d0
|
|
||||||
2 1549 1702159840269791149 CMakeFiles/game.dir/src/static_body.cpp.o 5165020241c22f35
|
|
||||||
1276 1555 1702159840269791149 CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o 99e893b9aa634d3
|
|
||||||
1313 1629 1702159840357791101 CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o 6c051ad305d37510
|
|
||||||
1349 1631 1702159840357791101 CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o c5694e44f070976a
|
|
||||||
1493 1673 1702159840401791078 CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o 16d0b786bd2dc1d9
|
|
||||||
4 1690 1702159840417791070 CMakeFiles/game.dir/src/window.cpp.o e4a06dd3638cc981
|
|
||||||
1391 1729 1702159840457791048 CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o e0b634d3fd058f04
|
|
||||||
1455 1743 1702159840461791047 CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o f41b104f0d0c983
|
|
||||||
1449 1757 1702159840485791033 CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o dd432ab62a7d1f2b
|
|
||||||
1507 1788 1702159840513791018 CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o adfb8903d9117b02
|
|
||||||
1523 1809 1702159840533791007 CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o c1b927d3db50eebb
|
|
||||||
1555 1828 1702159840553790998 CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o 3c6d8922105990a4
|
|
||||||
1631 1850 1702159840573790987 CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o d6e6909dd17c6116
|
|
||||||
2 1869 1702159840597790973 CMakeFiles/game.dir/src/sprite.cpp.o 22e50b55e4ffbce5
|
|
||||||
1526 1881 1702159840609790968 CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o 8bb6a6dbe697ca52
|
|
||||||
1549 1884 1702159840613790965 CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o 13c5d3d8f7aa6391
|
|
||||||
1541 1888 1702159840617790964 CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o bdc166afff2a791
|
|
||||||
1673 1918 1702159840645790949 CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o 58c5e8e6356c2b80
|
|
||||||
1629 1928 1702159840653790943 CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o f93c6bed3a465154
|
|
||||||
1690 1959 1702159840685790927 CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o 42c5027973f19a4c
|
|
||||||
1743 1982 1702159840709790913 CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o df2e4d5aadff477d
|
|
||||||
1828 1996 1702159840725790905 CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o 35a49da1a277caec
|
|
||||||
1729 2015 1702159840741790897 CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o 2cf2b9e124e22cef
|
|
||||||
1757 2036 1702159840765790883 CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o e8740d4966159ce4
|
|
||||||
1788 2050 1702159840777790878 CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o 377e9725ac313a2
|
|
||||||
1850 2094 1702159840821790855 CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o 2e9bc545012f9006
|
|
||||||
1809 2141 1702159840869790829 CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o e01b3ad075abccc5
|
|
||||||
1869 3636 1702159842361790032 CMakeFiles/game.dir/src/fmt/format.cc.o eb44cdfe74bad47a
|
|
||||||
|
|
@ -1,537 +0,0 @@
|
||||||
# CMAKE generated file: DO NOT EDIT!
|
|
||||||
# Generated by "Ninja" Generator, CMake Version 3.22
|
|
||||||
|
|
||||||
# This file contains all the build statements describing the
|
|
||||||
# compilation DAG.
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Write statements declared in CMakeLists.txt:
|
|
||||||
#
|
|
||||||
# Which is the root file.
|
|
||||||
# =============================================================================
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Project: Hydrangea
|
|
||||||
# Configurations: Debug
|
|
||||||
# =============================================================================
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Minimal version of Ninja required by this file
|
|
||||||
|
|
||||||
ninja_required_version = 1.5
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Set configuration variable for custom commands.
|
|
||||||
|
|
||||||
CONFIGURATION = Debug
|
|
||||||
# =============================================================================
|
|
||||||
# Include auxiliary files.
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Include rules file.
|
|
||||||
|
|
||||||
include CMakeFiles/rules.ninja
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Logical path to working directory; prefix for absolute paths.
|
|
||||||
|
|
||||||
cmake_ninja_workdir = /media/garrett/Storage/Projects/Hydrangea/build/
|
|
||||||
# =============================================================================
|
|
||||||
# Object build statements for EXECUTABLE target game
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Order-only phony target for game
|
|
||||||
|
|
||||||
build cmake_object_order_depends_target_game: phony || CMakeFiles/game.dir
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/dynamic_body.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/dynamic_body.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/dynamic_body.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/game.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/game.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/game.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/input_manager.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/input_manager.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/input_manager.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/main.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/main.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/main.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/node.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/node.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/node.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/player.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/player.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/player.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/scene.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/scene.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/scene.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/sprite.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/sprite.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/sprite.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/static_body.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/static_body.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/static_body.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/util.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/util.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/util.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/window.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/window.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/window.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_broad_phase.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_chain_shape.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_circle_shape.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_circle.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_edge.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_polygon.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collision.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_distance.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_dynamic_tree.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_edge_shape.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_polygon_shape.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_time_of_impact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_block_allocator.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_draw.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_math.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_settings.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_stack_allocator.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_timer.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_body.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_circle_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_polygon_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_circle_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_manager.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_solver.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_distance_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_circle_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_polygon_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_fixture.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_friction_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_gear_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_island.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_motor_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_mouse_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_circle_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_contact.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_prismatic_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_pulley_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_revolute_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_weld_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_wheel_joint.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world_callbacks.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/rope/b2_rope.cpp || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/rope
|
|
||||||
|
|
||||||
build CMakeFiles/game.dir/src/fmt/format.cc.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/fmt/format.cc || cmake_object_order_depends_target_game
|
|
||||||
DEP_FILE = CMakeFiles/game.dir/src/fmt/format.cc.o.d
|
|
||||||
FLAGS = -g -std=gnu++14
|
|
||||||
INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
OBJECT_FILE_DIR = CMakeFiles/game.dir/src/fmt
|
|
||||||
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Link build statements for EXECUTABLE target game
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Link the executable game
|
|
||||||
|
|
||||||
build game: CXX_EXECUTABLE_LINKER__game_Debug CMakeFiles/game.dir/src/dynamic_body.cpp.o CMakeFiles/game.dir/src/game.cpp.o CMakeFiles/game.dir/src/input_manager.cpp.o CMakeFiles/game.dir/src/main.cpp.o CMakeFiles/game.dir/src/node.cpp.o CMakeFiles/game.dir/src/player.cpp.o CMakeFiles/game.dir/src/scene.cpp.o CMakeFiles/game.dir/src/sprite.cpp.o CMakeFiles/game.dir/src/static_body.cpp.o CMakeFiles/game.dir/src/util.cpp.o CMakeFiles/game.dir/src/window.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o CMakeFiles/game.dir/src/fmt/format.cc.o
|
|
||||||
FLAGS = -g
|
|
||||||
LINK_LIBRARIES = -Wl,-rpath,/src -L/usr/lib/x86_64-linux-gnu -lSDL2 -lSDL2_gpu
|
|
||||||
LINK_PATH = -L/src
|
|
||||||
OBJECT_DIR = CMakeFiles/game.dir
|
|
||||||
POST_BUILD = :
|
|
||||||
PRE_LINK = :
|
|
||||||
TARGET_FILE = game
|
|
||||||
TARGET_PDB = game.dbg
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Utility command for edit_cache
|
|
||||||
|
|
||||||
build CMakeFiles/edit_cache.util: CUSTOM_COMMAND
|
|
||||||
COMMAND = cd /media/garrett/Storage/Projects/Hydrangea/build && /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
|
|
||||||
DESC = No interactive CMake dialog available...
|
|
||||||
restat = 1
|
|
||||||
|
|
||||||
build edit_cache: phony CMakeFiles/edit_cache.util
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Utility command for rebuild_cache
|
|
||||||
|
|
||||||
build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
|
|
||||||
COMMAND = cd /media/garrett/Storage/Projects/Hydrangea/build && /usr/bin/cmake --regenerate-during-build -S/media/garrett/Storage/Projects/Hydrangea -B/media/garrett/Storage/Projects/Hydrangea/build
|
|
||||||
DESC = Running CMake to regenerate build system...
|
|
||||||
pool = console
|
|
||||||
restat = 1
|
|
||||||
|
|
||||||
build rebuild_cache: phony CMakeFiles/rebuild_cache.util
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Target aliases.
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Folder targets.
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Folder: /media/garrett/Storage/Projects/Hydrangea/build
|
|
||||||
|
|
||||||
build all: phony game
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Built-in targets
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Re-run CMake if any of its inputs changed.
|
|
||||||
|
|
||||||
build build.ninja: RERUN_CMAKE | ../CMakeLists.txt /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake /usr/share/cmake-3.22/Modules/CMakeCInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux.cmake /usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.22.1/CMakeCCompiler.cmake CMakeFiles/3.22.1/CMakeCXXCompiler.cmake CMakeFiles/3.22.1/CMakeSystem.cmake
|
|
||||||
pool = console
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# A missing CMake input file is not an error.
|
|
||||||
|
|
||||||
build ../CMakeLists.txt /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake /usr/share/cmake-3.22/Modules/CMakeCInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux.cmake /usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.22.1/CMakeCCompiler.cmake CMakeFiles/3.22.1/CMakeCXXCompiler.cmake CMakeFiles/3.22.1/CMakeSystem.cmake: phony
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Clean all the built files.
|
|
||||||
|
|
||||||
build clean: CLEAN
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Print all primary targets available.
|
|
||||||
|
|
||||||
build help: HELP
|
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
|
||||||
# Make the all target the default.
|
|
||||||
|
|
||||||
default all
|
|
||||||
|
|
@ -1,287 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/dynamic_body.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/dynamic_body.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/dynamic_body.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/game.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/game.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/game.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/input_manager.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/input_manager.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/input_manager.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/main.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/main.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/main.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/node.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/node.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/node.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/player.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/player.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/player.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/scene.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/scene.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/scene.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/sprite.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/sprite.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/sprite.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/static_body.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/static_body.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/static_body.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/util.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/util.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/util.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/window.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/window.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/window.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_broad_phase.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_broad_phase.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_chain_shape.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_chain_shape.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_circle_shape.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_circle_shape.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_circle.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_circle.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_edge.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_edge.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_polygon.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_polygon.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collision.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collision.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_distance.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_distance.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_dynamic_tree.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_dynamic_tree.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_edge_shape.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_edge_shape.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_polygon_shape.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_polygon_shape.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_time_of_impact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_time_of_impact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_block_allocator.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_block_allocator.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_draw.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_draw.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_math.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_math.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_settings.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_settings.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_stack_allocator.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_stack_allocator.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_timer.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_timer.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_body.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_body.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_circle_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_circle_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_polygon_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_polygon_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_circle_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_circle_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_manager.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_manager.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_solver.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_solver.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_distance_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_distance_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_circle_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_circle_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_polygon_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_polygon_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_fixture.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_fixture.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_friction_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_friction_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_gear_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_gear_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_island.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_island.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_motor_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_motor_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_mouse_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_mouse_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_circle_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_circle_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_contact.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_contact.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_prismatic_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_prismatic_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_pulley_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_pulley_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_revolute_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_revolute_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_weld_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_weld_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_wheel_joint.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_wheel_joint.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world_callbacks.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world_callbacks.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/rope/b2_rope.cpp",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/rope/b2_rope.cpp"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"directory": "/media/garrett/Storage/Projects/Hydrangea/build",
|
|
||||||
"command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/fmt/format.cc.o -c /media/garrett/Storage/Projects/Hydrangea/src/fmt/format.cc",
|
|
||||||
"file": "/media/garrett/Storage/Projects/Hydrangea/src/fmt/format.cc"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
@ -75,7 +75,7 @@ public:
|
||||||
/// Get the number of proxies.
|
/// Get the number of proxies.
|
||||||
int32 GetProxyCount() const;
|
int32 GetProxyCount() const;
|
||||||
|
|
||||||
/// Update the pairs. This results in pair callbacks. This can only add pairs.
|
/// update the pairs. This results in pair callbacks. This can only add pairs.
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void UpdatePairs(T* callback);
|
void UpdatePairs(T* callback);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ public:
|
||||||
/// Destroy a proxy. This asserts if the id is invalid.
|
/// Destroy a proxy. This asserts if the id is invalid.
|
||||||
void DestroyProxy(int32 proxyId);
|
void DestroyProxy(int32 proxyId);
|
||||||
|
|
||||||
/// Move a proxy with a swepted AABB. If the proxy has moved outside of its fattened AABB,
|
/// move a proxy with a swepted AABB. If the proxy has moved outside of its fattened AABB,
|
||||||
/// then the proxy is removed from the tree and re-inserted. Otherwise
|
/// then the proxy is removed from the tree and re-inserted. Otherwise
|
||||||
/// the function returns immediately.
|
/// the function returns immediately.
|
||||||
/// @return true if the proxy was re-inserted.
|
/// @return true if the proxy was re-inserted.
|
||||||
|
|
@ -290,7 +290,7 @@ inline void b2DynamicTree::RayCast(T* callback, const b2RayCastInput& input) con
|
||||||
|
|
||||||
if (value > 0.0f)
|
if (value > 0.0f)
|
||||||
{
|
{
|
||||||
// Update segment bounding box.
|
// update segment bounding box.
|
||||||
maxFraction = value;
|
maxFraction = value;
|
||||||
b2Vec2 t = p1 + maxFraction * (p2 - p1);
|
b2Vec2 t = p1 + maxFraction * (p2 - p1);
|
||||||
segmentAABB.lowerBound = b2Min(p1, t);
|
segmentAABB.lowerBound = b2Min(p1, t);
|
||||||
|
|
|
||||||
|
|
@ -221,9 +221,6 @@ private:
|
||||||
friend class b2ContactManager;
|
friend class b2ContactManager;
|
||||||
friend class b2Controller;
|
friend class b2Controller;
|
||||||
|
|
||||||
b2World(const b2World&) = delete;
|
|
||||||
void operator=(const b2World&) = delete;
|
|
||||||
|
|
||||||
void Solve(const b2TimeStep& step);
|
void Solve(const b2TimeStep& step);
|
||||||
void SolveTOI(const b2TimeStep& step);
|
void SolveTOI(const b2TimeStep& step);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,9 @@ class InputManager
|
||||||
private:
|
private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static std::vector<SDL_Event>& GetFrameEvents();
|
static std::vector<SDL_Event>& getFrameEvents();
|
||||||
static void WindowEscape();
|
static void windowEscape();
|
||||||
|
static bool keyDown;
|
||||||
static bool key_down;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -18,9 +18,9 @@ class Util
|
||||||
private:
|
private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void Log(LogType type, std::string msg, std::string file, int line);
|
static void log(LogType type, std::string msg, std::string file, int line);
|
||||||
static std::string GenerateUUID();
|
static std::string generateUuid();
|
||||||
static std::string LogTypeToStr(LogType type);
|
static std::string logTypeToStr(LogType type);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -20,13 +20,14 @@ public:
|
||||||
void Close();
|
void Close();
|
||||||
|
|
||||||
static SDL_Window *window;
|
static SDL_Window *window;
|
||||||
static GPU_Target *window_target;
|
static GPU_Target *windowTarget;
|
||||||
static int window_id;
|
static int windowId;
|
||||||
static bool is_running;
|
static bool isRunning;
|
||||||
|
|
||||||
int window_height = 480;
|
int windowHeight = 480;
|
||||||
int window_width = 640;
|
int windowWidth = 640;
|
||||||
std::string window_title = "Window";
|
std::string windowTitle = "Window";
|
||||||
|
int windowTargetFramerate = 60;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -966,7 +966,7 @@ class basic_memory_buffer final : public detail::buffer<T> {
|
||||||
FMT_CONSTEXPR20 ~basic_memory_buffer() { deallocate(); }
|
FMT_CONSTEXPR20 ~basic_memory_buffer() { deallocate(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Move data from other to this buffer.
|
// move data from other to this buffer.
|
||||||
FMT_CONSTEXPR20 void move(basic_memory_buffer& other) {
|
FMT_CONSTEXPR20 void move(basic_memory_buffer& other) {
|
||||||
alloc_ = std::move(other.alloc_);
|
alloc_ = std::move(other.alloc_);
|
||||||
T* data = other.data();
|
T* data = other.data();
|
||||||
|
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
#include "scene.h"
|
|
||||||
#include "window.h"
|
|
||||||
|
|
||||||
#ifndef GAME_H
|
|
||||||
#define GAME_H
|
|
||||||
|
|
||||||
class Game
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Constructor and Destructor
|
|
||||||
Game();
|
|
||||||
~Game();
|
|
||||||
|
|
||||||
// Methods
|
|
||||||
int Init();
|
|
||||||
|
|
||||||
// Members
|
|
||||||
static Scene *scene;
|
|
||||||
Window *window = NULL;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
#include <iostream>
|
|
||||||
#include <strings.h>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "math/vec2.h"
|
|
||||||
#include "scene.h"
|
|
||||||
#include "util.h"
|
|
||||||
|
|
||||||
#ifndef NODE_H
|
|
||||||
#define NODE_H
|
|
||||||
|
|
||||||
class Node
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
// Methods
|
|
||||||
void UpdateChildren();
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Constructor and Destructor
|
|
||||||
Node();
|
|
||||||
~Node();
|
|
||||||
|
|
||||||
// Methods
|
|
||||||
virtual void Update();
|
|
||||||
void AddChild(Node* child);
|
|
||||||
|
|
||||||
// Member Variables
|
|
||||||
std::string name;
|
|
||||||
Vec2 world_position = Vec2(0, 0);
|
|
||||||
Vec2 local_position = Vec2(0, 0);
|
|
||||||
Scene* scene = NULL;
|
|
||||||
Node* parent = NULL;
|
|
||||||
std::vector<Node*> children;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
42
include/nodes/card.h
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
#ifndef HYDRANGEA_CARD_H
|
||||||
|
#define HYDRANGEA_CARD_H
|
||||||
|
|
||||||
|
#include "node.h"
|
||||||
|
#include "sprite.h"
|
||||||
|
|
||||||
|
typedef enum CardSuite {
|
||||||
|
HEART = 0,
|
||||||
|
CLUB,
|
||||||
|
SPADE,
|
||||||
|
DIAMOND,
|
||||||
|
} CARD_SUITE_t;
|
||||||
|
|
||||||
|
enum CardSpecialValue {
|
||||||
|
ACE = 1,
|
||||||
|
JACK = 11,
|
||||||
|
QUEEN = 12,
|
||||||
|
KING = 13,
|
||||||
|
};
|
||||||
|
|
||||||
|
class Card : public Node {
|
||||||
|
public:
|
||||||
|
Card();
|
||||||
|
|
||||||
|
~Card();
|
||||||
|
|
||||||
|
void flip();
|
||||||
|
|
||||||
|
void update() override;
|
||||||
|
|
||||||
|
void pollInputs() override;
|
||||||
|
|
||||||
|
void free() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
CARD_SUITE_t suite;
|
||||||
|
int value;
|
||||||
|
Sprite *face = new Sprite("./resources/img/cards/c11.png");
|
||||||
|
Sprite *back = new Sprite("./resources/img/cards/cardback.png");
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //HYDRANGEA_CARD_H
|
||||||
29
include/nodes/hand.h
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef HYDRANGEA_HAND_H
|
||||||
|
#define HYDRANGEA_HAND_H
|
||||||
|
|
||||||
|
#include "engine/input_manager.h"
|
||||||
|
#include "node.h"
|
||||||
|
#include "card.h"
|
||||||
|
|
||||||
|
class Hand : public Node {
|
||||||
|
public:
|
||||||
|
Hand();
|
||||||
|
|
||||||
|
~Hand();
|
||||||
|
|
||||||
|
void free() override;
|
||||||
|
|
||||||
|
void update() override;
|
||||||
|
|
||||||
|
void pollInputs() override;
|
||||||
|
|
||||||
|
void drawCard();
|
||||||
|
|
||||||
|
void removeCard();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
void organizeDeck();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //HYDRANGEA_HAND_H
|
||||||
44
include/nodes/node.h
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
#include <algorithm>
|
||||||
|
#include <iostream>
|
||||||
|
#include <strings.h>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "math/vec2.h"
|
||||||
|
#include "scene.h"
|
||||||
|
#include "engine/util.h"
|
||||||
|
|
||||||
|
#ifndef NODE_H
|
||||||
|
#define NODE_H
|
||||||
|
|
||||||
|
class Node {
|
||||||
|
private:
|
||||||
|
// Methods
|
||||||
|
void updateChildren();
|
||||||
|
|
||||||
|
void pollChildInputs();
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Constructor and Destructor
|
||||||
|
Node();
|
||||||
|
|
||||||
|
~Node();
|
||||||
|
|
||||||
|
// Methods
|
||||||
|
virtual void update();
|
||||||
|
|
||||||
|
virtual void pollInputs();
|
||||||
|
|
||||||
|
virtual void free();
|
||||||
|
|
||||||
|
void addChild(Node *child);
|
||||||
|
|
||||||
|
// Member Variables
|
||||||
|
std::string name;
|
||||||
|
Vec2 worldPosition = Vec2(0, 0);
|
||||||
|
Vec2 localPosition = Vec2(0, 0);
|
||||||
|
Scene *scene = nullptr;
|
||||||
|
Node *parent = nullptr;
|
||||||
|
std::vector<Node *> children;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -5,16 +5,21 @@
|
||||||
#define PLAYER_H
|
#define PLAYER_H
|
||||||
|
|
||||||
class Player : public Node {
|
class Player : public Node {
|
||||||
private:
|
|
||||||
void Update() override;
|
|
||||||
void Move();
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Player();
|
Player();
|
||||||
|
|
||||||
~Player();
|
~Player();
|
||||||
|
|
||||||
|
void update() override;
|
||||||
|
|
||||||
|
void pollInputs() override;
|
||||||
|
|
||||||
|
void free() override;
|
||||||
|
|
||||||
Sprite *sprite;
|
Sprite *sprite;
|
||||||
Sprite *hammer;
|
Sprite *hammer;
|
||||||
|
private:
|
||||||
|
void move();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include "engine/window.h"
|
||||||
|
|
||||||
#include "box2d/b2_math.h"
|
#include "box2d/b2_math.h"
|
||||||
#include "box2d/b2_world.h"
|
#include "box2d/b2_world.h"
|
||||||
|
|
@ -7,26 +8,33 @@
|
||||||
#define HYDRANGEA_SCENE_H
|
#define HYDRANGEA_SCENE_H
|
||||||
|
|
||||||
class Node;
|
class Node;
|
||||||
class Scene
|
|
||||||
{
|
class Scene {
|
||||||
private:
|
private:
|
||||||
// Members
|
// Members
|
||||||
std::vector<Node*> node_tree;
|
std::vector<Node *> nodeTree;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Constructor and Destructor
|
// Constructor and Destructor
|
||||||
Scene();
|
Scene();
|
||||||
|
|
||||||
~Scene();
|
~Scene();
|
||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
void Update();
|
void update();
|
||||||
void AppendNode(Node* node);
|
|
||||||
|
void pollInputs();
|
||||||
|
|
||||||
|
void freeSceneData();
|
||||||
|
|
||||||
|
void appendNode(Node *node);
|
||||||
|
|
||||||
// Members
|
// Members
|
||||||
b2Vec2 b_gravity = b2Vec2(0, -10);
|
b2Vec2 b_gravity = b2Vec2(0, -10);
|
||||||
b2World *b_world;
|
b2World b_world = b2World(b_gravity);
|
||||||
int velocity_iterations = 6;
|
float timeStep = 1.0f / 60.0f;
|
||||||
int position_iterations = 2;
|
int velocityIterations = 6;
|
||||||
|
int positionIterations = 2;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //HYDRANGEA_SCENE_H
|
#endif //HYDRANGEA_SCENE_H
|
||||||
44
include/nodes/sprite.h
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
#include <SDL2/SDL.h>
|
||||||
|
#include <SDL2/SDL_gpu.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <strings.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
#include "math/vec2.h"
|
||||||
|
#include "node.h"
|
||||||
|
|
||||||
|
#ifndef SPRITE_H
|
||||||
|
#define SPRITE_H
|
||||||
|
|
||||||
|
class Sprite : public Node {
|
||||||
|
public:
|
||||||
|
// Constructor and Destructor
|
||||||
|
explicit Sprite(const std::string &resource_path);
|
||||||
|
|
||||||
|
~Sprite();
|
||||||
|
|
||||||
|
// Methods
|
||||||
|
void update() override;
|
||||||
|
|
||||||
|
void pollInputs() override;
|
||||||
|
|
||||||
|
void free() override;
|
||||||
|
|
||||||
|
void setImage(GPU_Image *img);
|
||||||
|
|
||||||
|
void setImage(char *img_path);
|
||||||
|
|
||||||
|
void getImage(GPU_Image *image);
|
||||||
|
|
||||||
|
// Member Variables
|
||||||
|
double angle = 0;
|
||||||
|
Vec2 scale = Vec2(1, 1);
|
||||||
|
bool visible = true;
|
||||||
|
private:
|
||||||
|
GPU_Image *gpuImage;
|
||||||
|
GPU_Target *target_;
|
||||||
|
|
||||||
|
void render();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#include "node.h"
|
#include "nodes/node.h"
|
||||||
#include "box2d/b2_body.h"
|
#include "box2d/b2_body.h"
|
||||||
#include "box2d/b2_polygon_shape.h"
|
#include "box2d/b2_polygon_shape.h"
|
||||||
#include "box2d/b2_fixture.h"
|
#include "box2d/b2_fixture.h"
|
||||||
|
|
@ -6,24 +6,27 @@
|
||||||
#ifndef HYDRANGEA_DYNAMIC_BODY_H
|
#ifndef HYDRANGEA_DYNAMIC_BODY_H
|
||||||
#define HYDRANGEA_DYNAMIC_BODY_H
|
#define HYDRANGEA_DYNAMIC_BODY_H
|
||||||
|
|
||||||
class DynamicBody : public Node
|
class DynamicBody : public Node {
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
explicit DynamicBody(float size_x = 10.0f, float size_y = 10.0f);
|
explicit DynamicBody(float size_x = 10.0f, float size_y = 10.0f);
|
||||||
|
|
||||||
~DynamicBody();
|
~DynamicBody();
|
||||||
|
|
||||||
void Update() override;
|
void update() override;
|
||||||
|
|
||||||
|
void render();
|
||||||
|
|
||||||
|
void SetWorldPosition(float pos_x, float pos_y);
|
||||||
|
|
||||||
Vec2 size;
|
Vec2 size;
|
||||||
float friction;
|
float friction;
|
||||||
float density;
|
float density;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
b2BodyDef b_body_def;
|
b2BodyDef bBodyDef;
|
||||||
b2Body *b_body;
|
b2Body *bBody;
|
||||||
b2PolygonShape b_shape;
|
b2PolygonShape bShape;
|
||||||
b2FixtureDef b_fixture_def;
|
b2FixtureDef bFixtureDef;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //HYDRANGEA_DYNAMIC_BODY_H
|
#endif //HYDRANGEA_DYNAMIC_BODY_H
|
||||||
|
|
@ -1,23 +1,24 @@
|
||||||
#include "node.h"
|
#include "nodes/node.h"
|
||||||
#include "box2d/b2_body.h"
|
#include "box2d/b2_body.h"
|
||||||
#include "box2d/b2_polygon_shape.h"
|
#include "box2d/b2_polygon_shape.h"
|
||||||
|
|
||||||
#ifndef HYDRANGEA_STATIC_BODY_H
|
#ifndef HYDRANGEA_STATIC_BODY_H
|
||||||
#define HYDRANGEA_STATIC_BODY_H
|
#define HYDRANGEA_STATIC_BODY_H
|
||||||
|
|
||||||
class StaticBody : public Node
|
class StaticBody : public Node {
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
explicit StaticBody(float size_x = 10.0f, float size_y = 10.0f);
|
explicit StaticBody(float size_x = 10.0f, float size_y = 10.0f);
|
||||||
|
|
||||||
~StaticBody();
|
~StaticBody();
|
||||||
|
|
||||||
void Update() override;
|
void update() override;
|
||||||
void Render();
|
|
||||||
|
void render();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
b2BodyDef b_body_def;
|
b2BodyDef bBodyDef;
|
||||||
b2Body *b_body;
|
b2Body *bBody;
|
||||||
b2PolygonShape b_shape;
|
b2PolygonShape bShape;
|
||||||
Vec2 size;
|
Vec2 size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
#include <SDL2/SDL.h>
|
|
||||||
#include <SDL2/SDL_gpu.h>
|
|
||||||
#include <iostream>
|
|
||||||
#include <strings.h>
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
#include "math/vec2.h"
|
|
||||||
#include "node.h"
|
|
||||||
|
|
||||||
#ifndef SPRITE_H
|
|
||||||
#define SPRITE_H
|
|
||||||
|
|
||||||
class Sprite : public Node
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
GPU_Image* image;
|
|
||||||
GPU_Target* target;
|
|
||||||
|
|
||||||
void Render();
|
|
||||||
|
|
||||||
public:
|
|
||||||
// Constructor and Deconstructor
|
|
||||||
explicit Sprite(std::string resource_path);
|
|
||||||
~Sprite();
|
|
||||||
|
|
||||||
// Methods
|
|
||||||
void Update() override;
|
|
||||||
|
|
||||||
void SetImage( GPU_Image img );
|
|
||||||
void SetImage( char* img_path );
|
|
||||||
GPU_Image GetImage();
|
|
||||||
|
|
||||||
// Member Variables
|
|
||||||
float angle = 0;
|
|
||||||
Vec2 scale = Vec2(1, 1);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
53
include/tweeny/dispatcher.h
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* This file contains code to help call a function applying a tuple as its arguments.
|
||||||
|
* This code is private and not documented. */
|
||||||
|
|
||||||
|
#ifndef TWEENY_DISPATCHER_H
|
||||||
|
#define TWEENY_DISPATCHER_H
|
||||||
|
|
||||||
|
#include <tuple>
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
namespace detail {
|
||||||
|
template<int ...> struct seq { };
|
||||||
|
template<int N, int ...S> struct gens : gens<N - 1, N - 1, S...> { };
|
||||||
|
template<int ...S> struct gens<0, S...> {
|
||||||
|
typedef seq<S...> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename R, typename Func, typename TupleType, int ...S>
|
||||||
|
R dispatch(Func && f, TupleType && args, seq<S...>) {
|
||||||
|
return f(std::get<S>(args) ...);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename R, typename Func, typename... Ts>
|
||||||
|
R call(Func && f, const std::tuple<Ts...> & args) {
|
||||||
|
return dispatch<R>(f, args, typename gens<sizeof...(Ts)>::type());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //TWEENY_DISPATCHER_H
|
||||||
662
include/tweeny/easing.h
Normal file
|
|
@ -0,0 +1,662 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file easing.h
|
||||||
|
* The purpose of this file is to list all bundled easings. All easings are based on Robert Penner's easing
|
||||||
|
* functions: http://robertpenner.com/easing/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_EASING_H
|
||||||
|
#define TWEENY_EASING_H
|
||||||
|
|
||||||
|
#include <cmath>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
#ifndef M_PI
|
||||||
|
#define M_PI 3.14159265358979323846
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup easings Easings
|
||||||
|
* @brief Bundled easing functions based on
|
||||||
|
* <a href="http://robertpenner.com/easing/">Robert Penner's Easing Functions</a>
|
||||||
|
* @details You should plug these functions into @ref tweeny::tween::via function to specify the easing used in a tween.
|
||||||
|
* @sa tweeny::easing
|
||||||
|
* @{
|
||||||
|
*//**
|
||||||
|
* @defgroup stepped Stepped
|
||||||
|
* @{
|
||||||
|
* @brief The value does not change. No interpolation is used.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup default Default
|
||||||
|
* @{
|
||||||
|
* @brief A default mode for arithmetic values it will change in constant speed, for non-arithmetic value will be constant.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup linear Linear
|
||||||
|
* @{
|
||||||
|
* @brief The most boring ever easing function. It has no acceleration and change values in constant speed.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup quadratic Quadratic
|
||||||
|
* @{
|
||||||
|
* @brief The most commonly used easing functions.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup cubic Cubic
|
||||||
|
* @{
|
||||||
|
* @brief A bit curvier than the quadratic easing.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup quartic Quartic
|
||||||
|
* @{
|
||||||
|
* @brief A steeper curve. Acceleration changes faster than Cubic.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup quintic Quintic
|
||||||
|
* @{
|
||||||
|
* @brief An even steeper curve. Acceleration changes really fast.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup sinuisodal Sinuisodal
|
||||||
|
* @{
|
||||||
|
* @brief A very gentle curve, gentlier than quadratic.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup exponential Exponential
|
||||||
|
* @{
|
||||||
|
* @brief A very steep curve, based on the `p(t) = 2^(10*(t-1))` equation.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup circular Circular
|
||||||
|
* @{
|
||||||
|
* @brief A smooth, circular slope that resembles the arc of an circle.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup back Back
|
||||||
|
* @{
|
||||||
|
* @brief An easing function that has a "cute" natural coming back effect.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup elastic Elastic
|
||||||
|
* @{
|
||||||
|
* @brief An elastic easing function. Values go a little past the maximum/minimum in an elastic effect.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @defgroup bounce Bounce
|
||||||
|
* @{
|
||||||
|
* @brief A bouncing easing function. Values "bounce" around the maximum/minumum.
|
||||||
|
* @}
|
||||||
|
*//**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
/**
|
||||||
|
* @brief The easing class holds all the bundled easings.
|
||||||
|
*
|
||||||
|
* You should pass the easing function to the @p tweeny::tween::via method, to set the easing function that will
|
||||||
|
* be used to interpolate values in a tween point.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto tween = tweeny::from(0).to(100).via(tweeny::easing::linear);
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
class easing {
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* @brief Enumerates all easings to aid in runtime when adding easins to a tween using tween::via
|
||||||
|
*
|
||||||
|
* The aim of this enum is to help in situations where the easing doesn't come straight from the C++
|
||||||
|
* code but rather from a configuration file or some sort of external paramenter.
|
||||||
|
*/
|
||||||
|
enum class enumerated {
|
||||||
|
def,
|
||||||
|
linear,
|
||||||
|
stepped,
|
||||||
|
quadraticIn,
|
||||||
|
quadraticOut,
|
||||||
|
quadraticInOut,
|
||||||
|
cubicIn,
|
||||||
|
cubicOut,
|
||||||
|
cubicInOut,
|
||||||
|
quarticIn,
|
||||||
|
quarticOut,
|
||||||
|
quarticInOut,
|
||||||
|
quinticIn,
|
||||||
|
quinticOut,
|
||||||
|
quinticInOut,
|
||||||
|
sinusoidalIn,
|
||||||
|
sinusoidalOut,
|
||||||
|
sinusoidalInOut,
|
||||||
|
exponentialIn,
|
||||||
|
exponentialOut,
|
||||||
|
exponentialInOut,
|
||||||
|
circularIn,
|
||||||
|
circularOut,
|
||||||
|
circularInOut,
|
||||||
|
bounceIn,
|
||||||
|
bounceOut,
|
||||||
|
bounceInOut,
|
||||||
|
elasticIn,
|
||||||
|
elasticOut,
|
||||||
|
elasticInOut,
|
||||||
|
backIn,
|
||||||
|
backOut,
|
||||||
|
backInOut
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup stepped
|
||||||
|
* @brief Value is constant.
|
||||||
|
*/
|
||||||
|
static constexpr struct steppedEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return start;
|
||||||
|
}
|
||||||
|
} stepped = steppedEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup default
|
||||||
|
* @brief Values change with constant speed for arithmetic type only. The non-arithmetic it will be constant.
|
||||||
|
*/
|
||||||
|
static constexpr struct defaultEasing {
|
||||||
|
template<class...> struct voidify { using type = void; };
|
||||||
|
template<class... Ts> using void_t = typename voidify<Ts...>::type;
|
||||||
|
|
||||||
|
template<class T, class = void>
|
||||||
|
struct supports_arithmetic_operations : std::false_type {};
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct supports_arithmetic_operations<T, void_t<
|
||||||
|
decltype(std::declval<T>() + std::declval<T>()),
|
||||||
|
decltype(std::declval<T>() - std::declval<T>()),
|
||||||
|
decltype(std::declval<T>() * std::declval<T>()),
|
||||||
|
decltype(std::declval<T>() * std::declval<float>()),
|
||||||
|
decltype(std::declval<float>() * std::declval<T>())
|
||||||
|
>> : std::true_type{};
|
||||||
|
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
static typename std::enable_if<std::is_integral<T>::value, T>::type run(float position, T start, T end) {
|
||||||
|
return static_cast<T>(roundf((end - start) * position + start));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
static typename std::enable_if<supports_arithmetic_operations<T>::value && !std::is_integral<T>::value, T>::type run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * position + start);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
static typename std::enable_if<!supports_arithmetic_operations<T>::value, T>::type run(float position, T start, T end) {
|
||||||
|
return start;
|
||||||
|
}
|
||||||
|
} def = defaultEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup linear
|
||||||
|
* @brief Values change with constant speed.
|
||||||
|
*/
|
||||||
|
static constexpr struct linearEasing {
|
||||||
|
template<typename T>
|
||||||
|
static typename std::enable_if<std::is_integral<T>::value, T>::type run(float position, T start, T end) {
|
||||||
|
return static_cast<T>(roundf((end - start) * position + start));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
static typename std::enable_if<!std::is_integral<T>::value, T>::type run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * position + start);
|
||||||
|
}
|
||||||
|
} linear = linearEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quadratic
|
||||||
|
* @brief Accelerate initial values with a quadratic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quadraticInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * position * position + start);
|
||||||
|
}
|
||||||
|
} quadraticIn = quadraticInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quadratic
|
||||||
|
* @brief Deaccelerate ending values with a quadratic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quadraticOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((-(end - start)) * position * (position - 2) + start);
|
||||||
|
}
|
||||||
|
} quadraticOut = quadraticOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quadratic
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a quadratic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quadraticInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
position *= 2;
|
||||||
|
if (position < 1) {
|
||||||
|
return static_cast<T>(((end - start) / 2) * position * position + start);
|
||||||
|
}
|
||||||
|
|
||||||
|
--position;
|
||||||
|
return static_cast<T>((-(end - start) / 2) * (position * (position - 2) - 1) + start);
|
||||||
|
}
|
||||||
|
} quadraticInOut = quadraticInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup cubic
|
||||||
|
* @brief Aaccelerate initial values with a cubic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct cubicInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * position * position * position + start);
|
||||||
|
}
|
||||||
|
} cubicIn = cubicInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup cubic
|
||||||
|
* @brief Deaccelerate ending values with a cubic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct cubicOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
--position;
|
||||||
|
return static_cast<T>((end - start) * (position * position * position + 1) + start);
|
||||||
|
}
|
||||||
|
} cubicOut = cubicOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup cubic
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a cubic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct cubicInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
position *= 2;
|
||||||
|
if (position < 1) {
|
||||||
|
return static_cast<T>(((end - start) / 2) * position * position * position + start);
|
||||||
|
}
|
||||||
|
position -= 2;
|
||||||
|
return static_cast<T>(((end - start) / 2) * (position * position * position + 2) + start);
|
||||||
|
}
|
||||||
|
} cubicInOut = cubicInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quartic
|
||||||
|
* @brief Acceelerate initial values with a quartic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quarticInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * position * position * position * position + start);
|
||||||
|
}
|
||||||
|
} quarticIn = quarticInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quartic
|
||||||
|
* @brief Deaccelerate ending values with a quartic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quarticOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
--position;
|
||||||
|
return static_cast<T>( -(end - start) * (position * position * position * position - 1) + start);
|
||||||
|
}
|
||||||
|
} quarticOut = quarticOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quartic
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a quartic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quarticInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
position *= 2;
|
||||||
|
if (position < 1) {
|
||||||
|
return static_cast<T>(((end - start) / 2) * (position * position * position * position) +
|
||||||
|
start);
|
||||||
|
}
|
||||||
|
position -= 2;
|
||||||
|
return static_cast<T>((-(end - start) / 2) * (position * position * position * position - 2) +
|
||||||
|
start);
|
||||||
|
}
|
||||||
|
} quarticInOut = quarticInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quintic
|
||||||
|
* @brief Acceelerate initial values with a quintic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quinticInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * position * position * position * position * position + start);
|
||||||
|
}
|
||||||
|
} quinticIn = quinticInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quintic
|
||||||
|
* @brief Deaccelerate ending values with a quintic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quinticOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
position--;
|
||||||
|
return static_cast<T>((end - start) * (position * position * position * position * position + 1) +
|
||||||
|
start);
|
||||||
|
}
|
||||||
|
} quinticOut = quinticOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup quintic
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a quintic equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct quinticInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
position *= 2;
|
||||||
|
if (position < 1) {
|
||||||
|
return static_cast<T>(
|
||||||
|
((end - start) / 2) * (position * position * position * position * position) +
|
||||||
|
start);
|
||||||
|
}
|
||||||
|
position -= 2;
|
||||||
|
return static_cast<T>(
|
||||||
|
((end - start) / 2) * (position * position * position * position * position + 2) +
|
||||||
|
start);
|
||||||
|
}
|
||||||
|
} quinticInOut = quinticInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup sinusoidal
|
||||||
|
* @brief Acceelerate initial values with a sinusoidal equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct sinusoidalInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>(-(end - start) * cosf(position * static_cast<float>(M_PI) / 2) + (end - start) + start);
|
||||||
|
}
|
||||||
|
} sinusoidalIn = sinusoidalInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup sinusoidal
|
||||||
|
* @brief Deaccelerate ending values with a sinusoidal equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct sinusoidalOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * sinf(position * static_cast<float>(M_PI) / 2) + start);
|
||||||
|
}
|
||||||
|
} sinusoidalOut = sinusoidalOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup sinusoidal
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a sinusoidal equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct sinusoidalInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((-(end - start) / 2) * (cosf(position * static_cast<float>(M_PI)) - 1) + start);
|
||||||
|
}
|
||||||
|
} sinusoidalInOut = sinusoidalInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup exponential
|
||||||
|
* @brief Acceelerate initial values with an exponential equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct exponentialInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * powf(2, 10 * (position - 1)) + start);
|
||||||
|
}
|
||||||
|
} exponentialIn = exponentialInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup exponential
|
||||||
|
* @brief Deaccelerate ending values with an exponential equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct exponentialOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>((end - start) * (-powf(2, -10 * position) + 1) + start);
|
||||||
|
}
|
||||||
|
} exponentialOut = exponentialOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup exponential
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with an exponential equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct exponentialInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
position *= 2;
|
||||||
|
if (position < 1) {
|
||||||
|
return static_cast<T>(((end - start) / 2) * powf(2, 10 * (position - 1)) + start);
|
||||||
|
}
|
||||||
|
--position;
|
||||||
|
return static_cast<T>(((end - start) / 2) * (-powf(2, -10 * position) + 2) + start);
|
||||||
|
}
|
||||||
|
} exponentialInOut = exponentialInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup circular
|
||||||
|
* @brief Acceelerate initial values with a circular equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct circularInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return static_cast<T>( -(end - start) * (sqrtf(1 - position * position) - 1) + start );
|
||||||
|
}
|
||||||
|
} circularIn = circularInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup circular
|
||||||
|
* @brief Deaccelerate ending values with a circular equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct circularOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
--position;
|
||||||
|
return static_cast<T>((end - start) * (sqrtf(1 - position * position)) + start);
|
||||||
|
}
|
||||||
|
} circularOut = circularOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup circular
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a circular equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct circularInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
position *= 2;
|
||||||
|
if (position < 1) {
|
||||||
|
return static_cast<T>((-(end - start) / 2) * (sqrtf(1 - position * position) - 1) + start);
|
||||||
|
}
|
||||||
|
|
||||||
|
position -= 2;
|
||||||
|
return static_cast<T>(((end - start) / 2) * (sqrtf(1 - position * position) + 1) + start);
|
||||||
|
}
|
||||||
|
} circularInOut = circularInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup bounce
|
||||||
|
* @brief Acceelerate initial values with a "bounce" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct bounceInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
return (end - start) - bounceOut.run((1 - position), T(), end) + start;
|
||||||
|
}
|
||||||
|
} bounceIn = bounceInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup bounce
|
||||||
|
* @brief Deaccelerate ending values with a "bounce" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct bounceOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
T c = end - start;
|
||||||
|
if (position < (1 / 2.75f)) {
|
||||||
|
return static_cast<T>(c * (7.5625f * position * position) + start);
|
||||||
|
} else if (position < (2.0f / 2.75f)) {
|
||||||
|
float postFix = position -= (1.5f / 2.75f);
|
||||||
|
return static_cast<T>(c * (7.5625f * (postFix) * position + .75f) + start);
|
||||||
|
} else if (position < (2.5f / 2.75f)) {
|
||||||
|
float postFix = position -= (2.25f / 2.75f);
|
||||||
|
return static_cast<T>(c * (7.5625f * (postFix) * position + .9375f) + start);
|
||||||
|
} else {
|
||||||
|
float postFix = position -= (2.625f / 2.75f);
|
||||||
|
return static_cast<T>(c * (7.5625f * (postFix) * position + .984375f) + start);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} bounceOut = bounceOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup bounce
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a "bounce" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct bounceInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
if (position < 0.5f) return static_cast<T>(bounceIn.run(position * 2, T(), end) * .5f + start);
|
||||||
|
else return static_cast<T>(bounceOut.run((position * 2 - 1), T(), end) * .5f + (end - start) * .5f + start);
|
||||||
|
}
|
||||||
|
} bounceInOut = bounceInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup elastic
|
||||||
|
* @brief Acceelerate initial values with an "elastic" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct elasticInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
if (position <= 0.00001f) return start;
|
||||||
|
if (position >= 0.999f) return end;
|
||||||
|
float p = .3f;
|
||||||
|
auto a = end - start;
|
||||||
|
float s = p / 4;
|
||||||
|
float postFix =
|
||||||
|
a * powf(2, 10 * (position -= 1)); // this is a fix, again, with post-increment operators
|
||||||
|
return static_cast<T>(-(postFix * sinf((position - s) * (2 * static_cast<float>(M_PI)) / p)) + start);
|
||||||
|
}
|
||||||
|
} elasticIn = elasticInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup elastic
|
||||||
|
* @brief Deaccelerate ending values with an "elastic" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct elasticOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
if (position <= 0.00001f) return start;
|
||||||
|
if (position >= 0.999f) return end;
|
||||||
|
float p = .3f;
|
||||||
|
auto a = end - start;
|
||||||
|
float s = p / 4;
|
||||||
|
return static_cast<T>(a * powf(2, -10 * position) * sinf((position - s) * (2 * static_cast<float>(M_PI)) / p) + end);
|
||||||
|
}
|
||||||
|
} elasticOut = elasticOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup elastic
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with an "elastic" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct elasticInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
if (position <= 0.00001f) return start;
|
||||||
|
if (position >= 0.999f) return end;
|
||||||
|
position *= 2;
|
||||||
|
float p = (.3f * 1.5f);
|
||||||
|
auto a = end - start;
|
||||||
|
float s = p / 4;
|
||||||
|
float postFix;
|
||||||
|
|
||||||
|
if (position < 1) {
|
||||||
|
postFix = a * powf(2, 10 * (position -= 1)); // postIncrement is evil
|
||||||
|
return static_cast<T>(-0.5f * (postFix * sinf((position - s) * (2 * static_cast<float>(M_PI)) / p)) + start);
|
||||||
|
}
|
||||||
|
postFix = a * powf(2, -10 * (position -= 1)); // postIncrement is evil
|
||||||
|
return static_cast<T>(postFix * sinf((position - s) * (2 * static_cast<float>(M_PI)) / p) * .5f + end);
|
||||||
|
}
|
||||||
|
} elasticInOut = elasticInOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup back
|
||||||
|
* @brief Acceelerate initial values with a "back" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct backInEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
float s = 1.70158f;
|
||||||
|
float postFix = position;
|
||||||
|
return static_cast<T>((end - start) * (postFix) * position * ((s + 1) * position - s) + start);
|
||||||
|
}
|
||||||
|
} backIn = backInEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup back
|
||||||
|
* @brief Deaccelerate ending values with a "back" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct backOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
float s = 1.70158f;
|
||||||
|
position -= 1;
|
||||||
|
return static_cast<T>((end - start) * ((position) * position * ((s + 1) * position + s) + 1) + start);
|
||||||
|
}
|
||||||
|
} backOut = backOutEasing{};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup back
|
||||||
|
* @brief Acceelerate initial and deaccelerate ending values with a "back" equation.
|
||||||
|
*/
|
||||||
|
static constexpr struct backInOutEasing {
|
||||||
|
template<typename T>
|
||||||
|
static T run(float position, T start, T end) {
|
||||||
|
float s = 1.70158f;
|
||||||
|
float t = position;
|
||||||
|
auto b = start;
|
||||||
|
auto c = end - start;
|
||||||
|
float d = 1;
|
||||||
|
s *= (1.525f);
|
||||||
|
if ((t /= d / 2) < 1) return static_cast<T>(c / 2 * (t * t * (((s) + 1) * t - s)) + b);
|
||||||
|
float postFix = t -= 2;
|
||||||
|
return static_cast<T>(c / 2 * ((postFix) * t * (((s) + 1) * t + s) + 2) + b);
|
||||||
|
}
|
||||||
|
} backInOut = backInOutEasing{};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#endif //TWEENY_EASING_H
|
||||||
127
include/tweeny/easingresolve.h
Normal file
|
|
@ -0,0 +1,127 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file provides the easing resolution mechanism so that the library user can mix lambdas and the bundled
|
||||||
|
* pre-defined easing functions. It shall not be used directly.
|
||||||
|
* This file is private.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_EASINGRESOLVE_H
|
||||||
|
#define TWEENY_EASINGRESOLVE_H
|
||||||
|
|
||||||
|
#include <tuple>
|
||||||
|
#include "easing.h"
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
namespace detail {
|
||||||
|
using std::get;
|
||||||
|
|
||||||
|
template<int I, typename TypeTuple, typename FunctionTuple, typename... Fs>
|
||||||
|
struct easingresolve {
|
||||||
|
static void impl(FunctionTuple &b, Fs... fs) {
|
||||||
|
if (sizeof...(Fs) == 0) return;
|
||||||
|
easingresolve<I, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<int I, typename TypeTuple, typename FunctionTuple, typename F1, typename... Fs>
|
||||||
|
struct easingresolve<I, TypeTuple, FunctionTuple, F1, Fs...> {
|
||||||
|
static void impl(FunctionTuple &b, F1 f1, Fs... fs) {
|
||||||
|
get<I>(b) = f1;
|
||||||
|
easingresolve<I + 1, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<int I, typename TypeTuple, typename FunctionTuple, typename... Fs>
|
||||||
|
struct easingresolve<I, TypeTuple, FunctionTuple, easing::steppedEasing, Fs...> {
|
||||||
|
typedef typename std::tuple_element<I, TypeTuple>::type ArgType;
|
||||||
|
|
||||||
|
static void impl(FunctionTuple &b, easing::steppedEasing, Fs... fs) {
|
||||||
|
get<I>(b) = easing::stepped.run<ArgType>;
|
||||||
|
easingresolve<I + 1, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<int I, typename TypeTuple, typename FunctionTuple, typename... Fs>
|
||||||
|
struct easingresolve<I, TypeTuple, FunctionTuple, easing::linearEasing, Fs...> {
|
||||||
|
typedef typename std::tuple_element<I, TypeTuple>::type ArgType;
|
||||||
|
|
||||||
|
static void impl(FunctionTuple &b, easing::linearEasing, Fs... fs) {
|
||||||
|
get<I>(b) = easing::linear.run<ArgType>;
|
||||||
|
easingresolve<I + 1, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
template<int I, typename TypeTuple, typename FunctionTuple, typename... Fs>
|
||||||
|
struct easingresolve<I, TypeTuple, FunctionTuple, easing::defaultEasing, Fs...> {
|
||||||
|
typedef typename std::tuple_element<I, TypeTuple>::type ArgType;
|
||||||
|
|
||||||
|
static void impl(FunctionTuple &b, easing::defaultEasing, Fs... fs) {
|
||||||
|
get<I>(b) = easing::def.run<ArgType>;
|
||||||
|
easingresolve<I + 1, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#define DECLARE_EASING_RESOLVE(__EASING_TYPE__) \
|
||||||
|
template <int I, typename TypeTuple, typename FunctionTuple, typename... Fs> \
|
||||||
|
struct easingresolve<I, TypeTuple, FunctionTuple, easing::__EASING_TYPE__ ## InEasing, Fs...> { \
|
||||||
|
typedef typename std::tuple_element<I, TypeTuple>::type ArgType; \
|
||||||
|
static void impl(FunctionTuple & b, decltype(easing::__EASING_TYPE__ ## In), Fs... fs) { \
|
||||||
|
get<I>(b) = easing::__EASING_TYPE__ ## In.run<ArgType>; \
|
||||||
|
easingresolve<I+1, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...); \
|
||||||
|
} \
|
||||||
|
}; \
|
||||||
|
\
|
||||||
|
template <int I, typename TypeTuple, typename FunctionTuple, typename... Fs> \
|
||||||
|
struct easingresolve<I, TypeTuple, FunctionTuple, easing::__EASING_TYPE__ ## OutEasing, Fs...> { \
|
||||||
|
typedef typename std::tuple_element<I, TypeTuple>::type ArgType; \
|
||||||
|
static void impl(FunctionTuple & b, decltype(easing::__EASING_TYPE__ ## Out), Fs... fs) { \
|
||||||
|
get<I>(b) = easing::__EASING_TYPE__ ## Out.run<ArgType>; \
|
||||||
|
easingresolve<I+1, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...); \
|
||||||
|
} \
|
||||||
|
}; \
|
||||||
|
\
|
||||||
|
template <int I, typename TypeTuple, typename FunctionTuple, typename... Fs> \
|
||||||
|
struct easingresolve<I, TypeTuple, FunctionTuple, easing::__EASING_TYPE__ ## InOutEasing, Fs...> { \
|
||||||
|
typedef typename std::tuple_element<I, TypeTuple>::type ArgType; \
|
||||||
|
static void impl(FunctionTuple & b, decltype(easing::__EASING_TYPE__ ## InOut), Fs... fs) { \
|
||||||
|
get<I>(b) = easing::__EASING_TYPE__ ## InOut.run<ArgType>; \
|
||||||
|
easingresolve<I+1, TypeTuple, FunctionTuple, Fs...>::impl(b, fs...); \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
DECLARE_EASING_RESOLVE(quadratic);
|
||||||
|
DECLARE_EASING_RESOLVE(cubic);
|
||||||
|
DECLARE_EASING_RESOLVE(quartic);
|
||||||
|
DECLARE_EASING_RESOLVE(quintic);
|
||||||
|
DECLARE_EASING_RESOLVE(sinusoidal);
|
||||||
|
DECLARE_EASING_RESOLVE(exponential);
|
||||||
|
DECLARE_EASING_RESOLVE(circular);
|
||||||
|
DECLARE_EASING_RESOLVE(bounce);
|
||||||
|
DECLARE_EASING_RESOLVE(elastic);
|
||||||
|
DECLARE_EASING_RESOLVE(back);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //TWEENY_EASINGRESOLVE_H
|
||||||
37
include/tweeny/int2type.h
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file declares a helper struct to create a type from a integer value, to aid in template tricks.
|
||||||
|
* This file is private.
|
||||||
|
*/
|
||||||
|
#ifndef TWEENY_INT2TYPE_H
|
||||||
|
#define TWEENY_INT2TYPE_H
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
namespace detail {
|
||||||
|
template<std::size_t> struct int2type { };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //TWEENY_INT2TYPE_H
|
||||||
656
include/tweeny/tween.h
Normal file
|
|
@ -0,0 +1,656 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file tween.h
|
||||||
|
* This file contains the core of tweeny: the main tween class.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_TWEEN_H
|
||||||
|
#define TWEENY_TWEEN_H
|
||||||
|
|
||||||
|
#include <tuple>
|
||||||
|
#include <vector>
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
|
#include "tweentraits.h"
|
||||||
|
#include "tweenpoint.h"
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
/**
|
||||||
|
* @brief The tween class is the core class of tweeny. It controls the interpolation steps, easings and durations.
|
||||||
|
*
|
||||||
|
* It should not be constructed manually but rather from @p tweeny::from, to facilitate template argument
|
||||||
|
* deduction (and also to keep your code clean).
|
||||||
|
*/
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
class tween {
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* @brief Instantiates a tween from a starting point.
|
||||||
|
*
|
||||||
|
* This is a static factory helper function to be used by @p tweeny::from. You should not use this directly.
|
||||||
|
* @p t The first value in the point
|
||||||
|
* @p vs The remaining values
|
||||||
|
*/
|
||||||
|
static tween<T, Ts...> from(T t, Ts... vs);
|
||||||
|
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
* @brief Default constructor for a tween
|
||||||
|
*
|
||||||
|
* This constructor is provided to facilitate the usage of containers of tweens (e.g, std::vector). It
|
||||||
|
* should not be used manually as the tweening created by it is invalid.
|
||||||
|
*/
|
||||||
|
tween();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a new point in this tweening.
|
||||||
|
*
|
||||||
|
* This will add a new tweening point with the specified values. Next calls to @p via and @p during
|
||||||
|
* will refer to this point.
|
||||||
|
*
|
||||||
|
* **Example**
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto t = tweeny::from(0).to(100).to(200);
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @param t, vs Point values
|
||||||
|
* @returns *this
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & to(T t, Ts... vs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Specifies the easing function for the last added point.
|
||||||
|
*
|
||||||
|
* This will specify the easing between the last tween point added by @p to and its previous step. You can
|
||||||
|
* use any callable object. Additionally, you can use the easing objects specified in the class @p easing.
|
||||||
|
*
|
||||||
|
* If it is a multi-value point, you can either specify a single easing function that will be used for
|
||||||
|
* every value or you can specify an easing function for each value. You can mix and match callable objects,
|
||||||
|
* lambdas and bundled easing objects.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* // use bundled linear easing
|
||||||
|
* auto tween1 = tweeny::from(0).to(100).via(tweeny::easing::linear);
|
||||||
|
*
|
||||||
|
* // use custom lambda easing
|
||||||
|
* auto tween2 = tweeny::from(0).to(100).via([](float p, int a, int b) { return (b-a) * p + a; });
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @param fs The functions
|
||||||
|
* @returns *this
|
||||||
|
* @see tweeny::easing
|
||||||
|
*/
|
||||||
|
template<typename... Fs> tween<T, Ts...> & via(Fs... fs);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Specifies the easing function for the last added point, accepting an enumeration.
|
||||||
|
*
|
||||||
|
* This will specify the easing between the last tween point added by @p to and its previous step. You can
|
||||||
|
* use a value from the @p tweeny::easing::enumerated enum. You can then have an enumeration of your own
|
||||||
|
* poiting to this enumerated enums, or use it directly. You can mix-and-match enumerated easings, functions
|
||||||
|
* and easing names.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto tween1 = tweeny::from(0).to(100).via(tweeny::easing::enumerated::linear);
|
||||||
|
* auto tween2 = tweeny::from(0.0f, 100.0f).to(100.0f, 0.0f).via(tweeny::easing::linear, "backOut");
|
||||||
|
*
|
||||||
|
* @param fs The functions
|
||||||
|
* @returns *this
|
||||||
|
* @see tweeny::easing
|
||||||
|
*/
|
||||||
|
template<typename... Fs> tween<T, Ts...> & via(easing::enumerated enumerated, Fs... fs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Specifies the easing function for the last added point, accepting an easing name as a `std::string` value.
|
||||||
|
*
|
||||||
|
* This will specify the easing between the last tween point added by @p to and its previous step.
|
||||||
|
* You can mix-and-match enumerated easings, functions and easing names.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto tween = tweeny::from(0.0f, 100.0f).to(100.0f, 0.0f).via(tweeny::easing::linear, "backOut");
|
||||||
|
*
|
||||||
|
* @param fs The functions
|
||||||
|
* @returns *this
|
||||||
|
* @see tweeny::easing
|
||||||
|
*/
|
||||||
|
template<typename... Fs> tween<T, Ts...> & via(const std::string & easing, Fs... fs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Specifies the easing function for the last added point, accepting an easing name as a `const char *` value.
|
||||||
|
*
|
||||||
|
* This will specify the easing between the last tween point added by @p to and its previous step.
|
||||||
|
* You can mix-and-match enumerated easings, functions and easing names.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto tween = tweeny::from(0.0f, 100.0f).to(100.0f, 0.0f).via(tweeny::easing::linear, "backOut");
|
||||||
|
*
|
||||||
|
* @param fs The functions
|
||||||
|
* @returns *this
|
||||||
|
* @see tweeny::easing
|
||||||
|
*/
|
||||||
|
template<typename... Fs> tween<T, Ts...> & via(const char * easing, Fs... fs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Specifies the easing function for a specific point.
|
||||||
|
*
|
||||||
|
* Points starts at index 0. The index 0 refers to the first @p to call.
|
||||||
|
* Using this function without adding a point with @p to leads to undefined
|
||||||
|
* behaviour.
|
||||||
|
*
|
||||||
|
* @param index The tween point index
|
||||||
|
* @param fs The functions
|
||||||
|
* @returns *this
|
||||||
|
* @see tweeny::easing
|
||||||
|
*/
|
||||||
|
template<typename... Fs> tween<T, Ts...> & via(int index, Fs... fs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Specifies the duration, typically in milliseconds, for the tweening of values in last point.
|
||||||
|
*
|
||||||
|
* You can either specify a single duration for all values or give every value its own duration. Value types
|
||||||
|
* must be convertible to the uint16_t type.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* // Specify that the first point will be reached in 100 milliseconds and the first value in the second
|
||||||
|
* // point in 100, whereas the second value will be reached in 500.
|
||||||
|
* auto tween = tweeny::from(0, 0).to(100, 200).during(100).to(200, 300).during(100, 500);
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @param ds Duration values
|
||||||
|
* @returns *this
|
||||||
|
*/
|
||||||
|
template<typename... Ds> tween<T, Ts...> & during(Ds... ds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Steps the animation by the designated delta amount.
|
||||||
|
*
|
||||||
|
* You should call this every frame of your application, passing in the amount of delta time that
|
||||||
|
* you want to animate.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* // tween duration is 100ms
|
||||||
|
* auto tween = tweeny::from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // steps for 16ms
|
||||||
|
* tween.step(16);
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @param dt Delta duration
|
||||||
|
* @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onStep()
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & step(int32_t dt, bool suppressCallbacks = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Steps the animation by the designated delta amount.
|
||||||
|
*
|
||||||
|
* You should call this every frame of your application, passing in the amount of delta time that
|
||||||
|
* you want to animate. This overload exists to match unsigned int arguments.
|
||||||
|
*
|
||||||
|
* @param dt Delta duration
|
||||||
|
* @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onStep()
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & step(uint32_t dt, bool suppressCallbacks = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Steps the animation by the designated percentage amount.
|
||||||
|
*
|
||||||
|
* You can use this function to step the tweening by a specified percentage delta.
|
||||||
|
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* // tween duration is 100ms
|
||||||
|
* auto tween = tweeny::from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // steps for 16ms
|
||||||
|
* tween.step(0.001f);
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @param dp Delta percentage, between `0.0f` and `1.0f`
|
||||||
|
* @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onStep()
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & step(float dp, bool suppressCallbacks = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Seeks to a specified point in time based on the currentProgress.
|
||||||
|
*
|
||||||
|
* This function sets the current animation time and currentProgress. Callbacks set by @p call will be triggered.
|
||||||
|
*
|
||||||
|
* @param p The percentage to seek to, between 0.0f and 1.0f, inclusive.
|
||||||
|
* @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onSeek()
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & seek(float p, bool suppressCallbacks = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Seeks to a specified point in time.
|
||||||
|
*
|
||||||
|
* This function sets the current animation time and currentProgress. Callbacks set by @p call will be triggered.
|
||||||
|
*
|
||||||
|
* @param d The duration to seek to, between 0 and the total duration.
|
||||||
|
* @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onSeek()
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
* @see duration
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & seek(int32_t d, bool suppressCallbacks = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Seeks to a specified point in time.
|
||||||
|
*
|
||||||
|
* This function sets the current animation time and currentProgress. Callbacks set by @p call will be triggered.
|
||||||
|
*
|
||||||
|
* @param d The duration to seek to, between 0 and the total duration.
|
||||||
|
* @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onSeek()
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
* @see duration
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & seek(uint32_t d, bool suppressCallbacks = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a callback that will be called when stepping occurs, accepting both the tween and
|
||||||
|
* its values.
|
||||||
|
*
|
||||||
|
* You can add as many callbacks as you want. Its arguments types must be equal to the argument types
|
||||||
|
* of a tween instance, preceded by a variable of the tween type. Callbacks can be of any callable type. It will only be called
|
||||||
|
* via tween::step() functions. For seek callbacks, see tween::onSeek().
|
||||||
|
*
|
||||||
|
* Keep in mind that the function will be *copied* into an array, so any variable captured by value
|
||||||
|
* will also be copied with it.
|
||||||
|
*
|
||||||
|
* If the callback returns false, it will be called next time. If it returns true, it will be removed from
|
||||||
|
* the callback queue.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto t = tweeny:from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // pass a lambda
|
||||||
|
* t.onStep([](tweeny::tween<int> & t, int v) { printf("%d ", v); return false; });
|
||||||
|
*
|
||||||
|
* // pass a functor instance
|
||||||
|
* struct ftor { void operator()(tweeny::tween<int> & t, int v) { printf("%d ", v); return false; } };
|
||||||
|
* t.onStep(ftor());
|
||||||
|
* @endcode
|
||||||
|
* @sa step
|
||||||
|
* @sa seek
|
||||||
|
* @sa onSeek
|
||||||
|
* @param callback A callback in with the prototype `bool callback(tween<Ts...> & t, Ts...)`
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & onStep(typename detail::tweentraits<T, Ts...>::callbackType callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a callback that will be called when stepping occurs, accepting only the tween.
|
||||||
|
*
|
||||||
|
* You can add as many callbacks as you want. It must receive the tween as an argument.
|
||||||
|
* Callbacks can be of any callable type. It will only be called
|
||||||
|
* via tween::step() functions. For seek callbacks, see tween::onSeek().
|
||||||
|
*
|
||||||
|
* Keep in mind that the function will be *copied* into an array, so any variable captured by value
|
||||||
|
* will also be copied with it.
|
||||||
|
*
|
||||||
|
* If the callback returns false, it will be called next time. If it returns true, it will be removed from
|
||||||
|
* the callback queue.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto t = tweeny:from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // pass a lambda
|
||||||
|
* t.onStep([](tweeny::tween<int> & t) { printf("%d ", t.value()); return false; });
|
||||||
|
*
|
||||||
|
* // pass a functor instance
|
||||||
|
* struct ftor { void operator()(tweeny::tween<int> & t) { printf("%d ", t.values()); return false; } };
|
||||||
|
* t.onStep(ftor());
|
||||||
|
* @endcode
|
||||||
|
* @sa step
|
||||||
|
* @sa seek
|
||||||
|
* @sa onSeek
|
||||||
|
* @param callback A callback in the form `bool f(tween<Ts...> & t)`
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & onStep(typename detail::tweentraits<T, Ts...>::noValuesCallbackType callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a callback that will be called when stepping occurs, accepting only the tween values.
|
||||||
|
*
|
||||||
|
* You can add as many callbacks as you want. It must receive the tween values as an argument.
|
||||||
|
* Callbacks can be of any callable type. It will only be called
|
||||||
|
* via tween::step() functions. For seek callbacks, see tween::onSeek().
|
||||||
|
*
|
||||||
|
* Keep in mind that the function will be *copied* into an array, so any variable captured by value
|
||||||
|
* will also be copied with it.
|
||||||
|
*
|
||||||
|
* If the callback returns false, it will be called next time. If it returns true, it will be removed from
|
||||||
|
* the callback queue.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto t = tweeny:from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // pass a lambda
|
||||||
|
* t.onStep([](int v) { printf("%d ", v); return false; });
|
||||||
|
*
|
||||||
|
* // pass a functor instance
|
||||||
|
* struct ftor { void operator()(int x) { printf("%d ", x); return false; } };
|
||||||
|
* t.onStep(ftor());
|
||||||
|
* @endcode
|
||||||
|
* @sa step
|
||||||
|
* @sa seek
|
||||||
|
* @sa onSeek
|
||||||
|
* @param callback A callback in the form `bool f(Ts...)`
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & onStep(typename detail::tweentraits<T, Ts...>::noTweenCallbackType callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a callback for that will be called when seeking occurs
|
||||||
|
*
|
||||||
|
* You can add as many callbacks as you want. Its arguments types must be equal to the argument types
|
||||||
|
* of a tween instance, preceded by a variable of the tween typve. Callbacks can be of any callable type. It will be called
|
||||||
|
* via tween::seek() functions. For step callbacks, see tween::onStep().
|
||||||
|
*
|
||||||
|
* Keep in mind that the function will be *copied* into an array, so any variable captured by value
|
||||||
|
* will also be copied with it.
|
||||||
|
*
|
||||||
|
* If the callback returns false, it will be called next time. If it returns true, it will be removed from
|
||||||
|
* the callback queue.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto t = t:from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // pass a lambda
|
||||||
|
* t.onSeek([](tweeny::tween<int> & t, int v) { printf("%d ", v); });
|
||||||
|
*
|
||||||
|
* // pass a functor instance
|
||||||
|
* struct ftor { void operator()(tweeny::tween<int> & t, int v) { printf("%d ", v); } };
|
||||||
|
* t.onSeek(ftor());
|
||||||
|
* @endcode
|
||||||
|
* @param callback A callback in with the prototype `bool callback(tween<Ts...> & t, Ts...)`
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & onSeek(typename detail::tweentraits<T, Ts...>::callbackType callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a callback for that will be called when seeking occurs, accepting only the tween values.
|
||||||
|
*
|
||||||
|
* You can add as many callbacks as you want. It must receive the tween as an argument.
|
||||||
|
* Callbacks can be of any callable type. It will be called
|
||||||
|
* via tween::seek() functions. For step callbacks, see tween::onStep().
|
||||||
|
*
|
||||||
|
* Keep in mind that the function will be *copied* into an array, so any variable captured by value
|
||||||
|
* will also be copied again.
|
||||||
|
*
|
||||||
|
* If the callback returns false, it will be called next time. If it returns true, it will be removed from
|
||||||
|
* the callback queue.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto t = t:from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // pass a lambda
|
||||||
|
* t.onSeek([](int v) { printf("%d ", v); });
|
||||||
|
*
|
||||||
|
* // pass a functor instance
|
||||||
|
* struct ftor { void operator()(int v) { printf("%d ", v); return false; } };
|
||||||
|
* t.onSeek(ftor());
|
||||||
|
* @endcode
|
||||||
|
* @param callback A callback in the form `bool f(Ts...)`
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & onSeek(typename detail::tweentraits<T, Ts...>::noTweenCallbackType callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Adds a callback for that will be called when seeking occurs, accepting only the tween.
|
||||||
|
*
|
||||||
|
* You can add as many callbacks as you want. It must receive the tween as an argument.
|
||||||
|
* Callbacks can be of any callable type. It will be called
|
||||||
|
* via tween::seek() functions. For step callbacks, see tween::onStep().
|
||||||
|
*
|
||||||
|
* Keep in mind that the function will be *copied* into an array, so any variable captured by value
|
||||||
|
* will also be copied again.
|
||||||
|
*
|
||||||
|
* If the callback returns false, it will be called next time. If it returns true, it will be removed from
|
||||||
|
* the callback queue.
|
||||||
|
*
|
||||||
|
* **Example**:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* auto t = t:from(0).to(100).during(100);
|
||||||
|
*
|
||||||
|
* // pass a lambda
|
||||||
|
* t.onSeek([](tweeny::tween<int> & t) { printf("%d ", t.value()); return false; });
|
||||||
|
*
|
||||||
|
* // pass a functor instance
|
||||||
|
* struct ftor { void operator()(tweeny::tween<int> & t) { printf("%d ", t.value()); return false; } };
|
||||||
|
* t.onSeek(ftor());
|
||||||
|
* @endcode
|
||||||
|
* @param callback A callback in the form `bool f(tween<Ts...> & t)`
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & onSeek(typename detail::tweentraits<T, Ts...>::noValuesCallbackType callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the total duration of this tween
|
||||||
|
*
|
||||||
|
* @returns The duration of all the tween points.
|
||||||
|
*/
|
||||||
|
uint32_t duration() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the current tween values
|
||||||
|
*
|
||||||
|
* This returns the current tween value as returned by the
|
||||||
|
* tween::step() function, except that it does not perform a step.
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & peek() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Calculates and returns the tween values at a given progress
|
||||||
|
*
|
||||||
|
* This returns the tween value at the requested progress, without stepping
|
||||||
|
* or seeking.
|
||||||
|
* @returns std::tuple<Ts...> with the current tween values.
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType peek(float progress) const;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Calculates and return the tween values at a given time
|
||||||
|
*
|
||||||
|
* This returns the tween values at the requested time, without stepping
|
||||||
|
* or seeking.
|
||||||
|
* @returns std::tuple<Ts...> with the calculated tween values.
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType peek(uint32_t time) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the current currentProgress of the interpolation.
|
||||||
|
*
|
||||||
|
* 0 means its at the values passed in the construction, 1 means the last step.
|
||||||
|
* @returns the current currentProgress between 0 and 1 (inclusive)
|
||||||
|
*/
|
||||||
|
float progress() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets the direction of this tween forward.
|
||||||
|
*
|
||||||
|
* Note that this only affects tween::step() function.
|
||||||
|
* @returns *this
|
||||||
|
* @sa backward
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & forward();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets the direction of this tween backward.
|
||||||
|
*
|
||||||
|
* Note that this only affects tween::step() function.
|
||||||
|
* @returns *this
|
||||||
|
* @sa forward
|
||||||
|
*/
|
||||||
|
tween<T, Ts...> & backward();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the current direction of this tween
|
||||||
|
*
|
||||||
|
* @returns -1 If it is mobin backwards in time, 1 if it is moving forward in time
|
||||||
|
*/
|
||||||
|
int direction() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Jumps to a specific tween point
|
||||||
|
*
|
||||||
|
* This will seek the tween to a percentage matching the beginning of that step.
|
||||||
|
*
|
||||||
|
* @param point The point to seek to. 0 means the point passed in tweeny::from
|
||||||
|
* @param suppressCallbacks (optional) set to true to suppress seek() callbacks
|
||||||
|
* @returns current values
|
||||||
|
* @sa seek
|
||||||
|
*/
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & jump(size_t point, bool suppressCallbacks = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Returns the current tween point
|
||||||
|
*
|
||||||
|
* @returns Current tween point
|
||||||
|
*/
|
||||||
|
uint16_t point() const;
|
||||||
|
|
||||||
|
private /* member types */:
|
||||||
|
using traits = detail::tweentraits<T, Ts...>;
|
||||||
|
|
||||||
|
private /* member variables */:
|
||||||
|
uint32_t total = 0; // total runtime
|
||||||
|
uint16_t currentPoint = 0; // current point
|
||||||
|
float currentProgress = 0; // current progress
|
||||||
|
std::vector<detail::tweenpoint<T, Ts...>> points;
|
||||||
|
typename traits::valuesType current;
|
||||||
|
std::vector<typename traits::callbackType> onStepCallbacks;
|
||||||
|
std::vector<typename traits::callbackType> onSeekCallbacks;
|
||||||
|
int8_t currentDirection = 1;
|
||||||
|
|
||||||
|
private:
|
||||||
|
/* member functions */
|
||||||
|
tween(T t, Ts... vs);
|
||||||
|
template<size_t I> void interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type<I>) const;
|
||||||
|
void interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type<0>) const;
|
||||||
|
void render(float p);
|
||||||
|
void dispatch(std::vector<typename traits::callbackType> & cbVector);
|
||||||
|
uint16_t pointAt(float progress) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Class specialization when a tween has a single value
|
||||||
|
*
|
||||||
|
* This class is preferred automatically by your compiler when your tween has only one value. It exists mainly
|
||||||
|
* so that you dont need to use std::get<0> to obtain a single value when using tween::step, tween::seek or any other
|
||||||
|
* value returning function. Other than that, you should look at the
|
||||||
|
* tweeny::tween documentation.
|
||||||
|
*
|
||||||
|
* Except for this little detail, this class methods and behaviours are exactly the same.
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
class tween<T> {
|
||||||
|
public:
|
||||||
|
static tween<T> from(T t);
|
||||||
|
|
||||||
|
public:
|
||||||
|
tween(); ///< @sa tween::tween
|
||||||
|
tween<T> & to(T t); ///< @sa tween::to
|
||||||
|
template<typename... Fs> tween<T> & via(Fs... fs); ///< @sa tween::via
|
||||||
|
template<typename... Fs> tween<T> & via(int index, Fs... fs); ///< @sa tween::via
|
||||||
|
template<typename... Fs> tween<T> & via(tweeny::easing::enumerated enumerated, Fs... fs); ///< @sa tween::via
|
||||||
|
template<typename... Fs> tween<T> & via(const std::string & easing, Fs... fs); ///< @sa tween::via
|
||||||
|
template<typename... Fs> tween<T> & via(const char * easing, Fs... fs); ///< @sa tween::via
|
||||||
|
template<typename... Ds> tween<T> & during(Ds... ds); ///< @sa tween::during
|
||||||
|
const T & step(int32_t dt, bool suppressCallbacks = false); ///< @sa tween::step(int32_t dt, bool suppressCallbacks)
|
||||||
|
const T & step(uint32_t dt, bool suppressCallbacks = false); ///< @sa tween::step(uint32_t dt, bool suppressCallbacks)
|
||||||
|
const T & step(float dp, bool suppressCallbacks = false); ///< @sa tween::step(float dp, bool suppressCallbacks)
|
||||||
|
const T & seek(float p, bool suppressCallbacks = false); ///< @sa tween::seek(float p, bool suppressCallbacks)
|
||||||
|
const T & seek(int32_t d, bool suppressCallbacks = false); ///< @sa tween::seek(int32_t d, bool suppressCallbacks)
|
||||||
|
const T & seek(uint32_t d, bool suppressCallbacks = false); ///< @sa tween::seek(uint32_t d, bool suppressCallbacks)
|
||||||
|
tween<T> & onStep(typename detail::tweentraits<T>::callbackType callback); ///< @sa tween::onStep
|
||||||
|
tween<T> & onStep(typename detail::tweentraits<T>::noValuesCallbackType callback); ///< @sa tween::onStep
|
||||||
|
tween<T> & onStep(typename detail::tweentraits<T>::noTweenCallbackType callback); ///< @sa tween::onStep
|
||||||
|
tween<T> & onSeek(typename detail::tweentraits<T>::callbackType callback); ///< @sa tween::onSeek
|
||||||
|
tween<T> & onSeek(typename detail::tweentraits<T>::noValuesCallbackType callback); ///< @sa tween::onSeek
|
||||||
|
tween<T> & onSeek(typename detail::tweentraits<T>::noTweenCallbackType callback); ///< @sa tween::onSeek
|
||||||
|
const T & peek() const; ///< @sa tween::peek
|
||||||
|
T peek(float progress) const; ///< @sa tween::peek
|
||||||
|
T peek(uint32_t time) const; ///< @sa tween::peek
|
||||||
|
uint32_t duration() const; ///< @sa tween::duration
|
||||||
|
float progress() const; ///< @sa tween::progress
|
||||||
|
tween<T> & forward(); ///< @sa tween::forward
|
||||||
|
tween<T> & backward(); ///< @sa tween::backward
|
||||||
|
int direction() const; ///< @sa tween::direction
|
||||||
|
const T & jump(size_t point, bool suppressCallbacks = false); ///< @sa tween::jump
|
||||||
|
uint16_t point() const; ///< @sa tween::point
|
||||||
|
|
||||||
|
private /* member types */:
|
||||||
|
using traits = detail::tweentraits<T>;
|
||||||
|
|
||||||
|
private /* member variables */:
|
||||||
|
uint32_t total = 0; // total runtime
|
||||||
|
uint16_t currentPoint = 0; // current point
|
||||||
|
float currentProgress = 0; // current progress
|
||||||
|
std::vector<detail::tweenpoint<T>> points;
|
||||||
|
T current;
|
||||||
|
std::vector<typename traits::callbackType> onStepCallbacks;
|
||||||
|
std::vector<typename traits::callbackType> onSeekCallbacks;
|
||||||
|
int8_t currentDirection = 1;
|
||||||
|
|
||||||
|
private:
|
||||||
|
/* member functions */
|
||||||
|
tween(T t);
|
||||||
|
void interpolate(float prog, unsigned point, T & value) const;
|
||||||
|
void render(float p);
|
||||||
|
void dispatch(std::vector<typename traits::callbackType> & cbVector);
|
||||||
|
uint16_t pointAt(float progress) const;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "tween.tcc"
|
||||||
|
#include "tweenone.tcc"
|
||||||
|
|
||||||
|
#endif //TWEENY_TWEEN_H
|
||||||
346
include/tweeny/tween.tcc
Normal file
|
|
@ -0,0 +1,346 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The purpose of this file is to hold implementations for the tween.h file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_TWEEN_TCC
|
||||||
|
#define TWEENY_TWEEN_TCC
|
||||||
|
|
||||||
|
#include "tween.h"
|
||||||
|
#include "dispatcher.h"
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
template<typename T>
|
||||||
|
T clip(const T & n, const T & lower, const T & upper) {
|
||||||
|
return std::max(lower, std::min(n, upper));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts> inline tween<T, Ts...> tween<T, Ts...>::from(T t, Ts... vs) { return tween<T, Ts...>(t, vs...); }
|
||||||
|
template<typename T, typename... Ts> inline tween<T, Ts...>::tween() { }
|
||||||
|
template<typename T, typename... Ts> inline tween<T, Ts...>::tween(T t, Ts... vs) {
|
||||||
|
points.emplace_back(t, vs...);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts> inline tween<T, Ts...> & tween<T, Ts...>::to(T t, Ts... vs) {
|
||||||
|
points.emplace_back(t, vs...);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
template<typename... Fs>
|
||||||
|
inline tween<T, Ts...> & tween<T, Ts...>::via(Fs... vs) {
|
||||||
|
points.at(points.size() - 2).via(vs...);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
template<typename... Fs>
|
||||||
|
inline tween<T, Ts...> & tween<T, Ts...>::via(int index, Fs... vs) {
|
||||||
|
points.at(static_cast<size_t>(index)).via(vs...);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
template<typename... Fs>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::via(easing::enumerated enumerated, Fs... vs) {
|
||||||
|
switch (enumerated) {
|
||||||
|
case easing::enumerated::def: return via(easing::def, vs...);
|
||||||
|
case easing::enumerated::linear: return via(easing::linear, vs...);
|
||||||
|
case easing::enumerated::stepped: return via(easing::stepped, vs...);
|
||||||
|
case easing::enumerated::quadraticIn: return via(easing::quadraticIn, vs...);
|
||||||
|
case easing::enumerated::quadraticOut: return via(easing::quadraticOut, vs...);
|
||||||
|
case easing::enumerated::quadraticInOut: return via(easing::quadraticInOut, vs...);
|
||||||
|
case easing::enumerated::cubicIn: return via(easing::cubicIn, vs...);
|
||||||
|
case easing::enumerated::cubicOut: return via(easing::cubicOut, vs...);
|
||||||
|
case easing::enumerated::cubicInOut: return via(easing::cubicInOut, vs...);
|
||||||
|
case easing::enumerated::quarticIn: return via(easing::quarticIn, vs...);
|
||||||
|
case easing::enumerated::quarticOut: return via(easing::quarticOut, vs...);
|
||||||
|
case easing::enumerated::quarticInOut: return via(easing::quarticInOut, vs...);
|
||||||
|
case easing::enumerated::quinticIn: return via(easing::quinticIn, vs...);
|
||||||
|
case easing::enumerated::quinticOut: return via(easing::quinticOut, vs...);
|
||||||
|
case easing::enumerated::quinticInOut: return via(easing::quinticInOut, vs...);
|
||||||
|
case easing::enumerated::sinusoidalIn: return via(easing::sinusoidalIn, vs...);
|
||||||
|
case easing::enumerated::sinusoidalOut: return via(easing::sinusoidalOut, vs...);
|
||||||
|
case easing::enumerated::sinusoidalInOut: return via(easing::sinusoidalInOut, vs...);
|
||||||
|
case easing::enumerated::exponentialIn: return via(easing::exponentialIn, vs...);
|
||||||
|
case easing::enumerated::exponentialOut: return via(easing::exponentialOut, vs...);
|
||||||
|
case easing::enumerated::exponentialInOut: return via(easing::exponentialInOut, vs...);
|
||||||
|
case easing::enumerated::circularIn: return via(easing::circularIn, vs...);
|
||||||
|
case easing::enumerated::circularOut: return via(easing::circularOut, vs...);
|
||||||
|
case easing::enumerated::circularInOut: return via(easing::circularInOut, vs...);
|
||||||
|
case easing::enumerated::bounceIn: return via(easing::bounceIn, vs...);
|
||||||
|
case easing::enumerated::bounceOut: return via(easing::bounceOut, vs...);
|
||||||
|
case easing::enumerated::bounceInOut: return via(easing::bounceInOut, vs...);
|
||||||
|
case easing::enumerated::elasticIn: return via(easing::elasticIn, vs...);
|
||||||
|
case easing::enumerated::elasticOut: return via(easing::elasticOut, vs...);
|
||||||
|
case easing::enumerated::elasticInOut: return via(easing::elasticInOut, vs...);
|
||||||
|
case easing::enumerated::backIn: return via(easing::backIn, vs...);
|
||||||
|
case easing::enumerated::backOut: return via(easing::backOut, vs...);
|
||||||
|
case easing::enumerated::backInOut: return via(easing::backInOut, vs...);
|
||||||
|
default: return via(easing::def, vs...);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
template<typename... Fs>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::via(const std::string & easing, Fs... vs) {
|
||||||
|
if (easing == "stepped") return via(easing::stepped, vs...);
|
||||||
|
if (easing == "linear") return via(easing::linear, vs...);
|
||||||
|
if (easing == "quadraticIn") return via(easing::quadraticIn, vs...);
|
||||||
|
if (easing == "quadraticOut") return via(easing::quadraticOut, vs...);
|
||||||
|
if (easing == "quadraticInOut") return via(easing::quadraticInOut, vs...);
|
||||||
|
if (easing == "cubicIn") return via(easing::cubicIn, vs...);
|
||||||
|
if (easing == "cubicOut") return via(easing::cubicOut, vs...);
|
||||||
|
if (easing == "cubicInOut") return via(easing::cubicInOut, vs...);
|
||||||
|
if (easing == "quarticIn") return via(easing::quarticIn, vs...);
|
||||||
|
if (easing == "quarticOut") return via(easing::quarticOut, vs...);
|
||||||
|
if (easing == "quarticInOut") return via(easing::quarticInOut, vs...);
|
||||||
|
if (easing == "quinticIn") return via(easing::quinticIn, vs...);
|
||||||
|
if (easing == "quinticOut") return via(easing::quinticOut, vs...);
|
||||||
|
if (easing == "quinticInOut") return via(easing::quinticInOut, vs...);
|
||||||
|
if (easing == "sinusoidalIn") return via(easing::sinusoidalIn, vs...);
|
||||||
|
if (easing == "sinusoidalOut") return via(easing::sinusoidalOut, vs...);
|
||||||
|
if (easing == "sinusoidalInOut") return via(easing::sinusoidalInOut, vs...);
|
||||||
|
if (easing == "exponentialIn") return via(easing::exponentialIn, vs...);
|
||||||
|
if (easing == "exponentialOut") return via(easing::exponentialOut, vs...);
|
||||||
|
if (easing == "exponentialInOut") return via(easing::exponentialInOut, vs...);
|
||||||
|
if (easing == "circularIn") return via(easing::circularIn, vs...);
|
||||||
|
if (easing == "circularOut") return via(easing::circularOut, vs...);
|
||||||
|
if (easing == "circularInOut") return via(easing::circularInOut, vs...);
|
||||||
|
if (easing == "bounceIn") return via(easing::bounceIn, vs...);
|
||||||
|
if (easing == "bounceOut") return via(easing::bounceOut, vs...);
|
||||||
|
if (easing == "bounceInOut") return via(easing::bounceInOut, vs...);
|
||||||
|
if (easing == "elasticIn") return via(easing::elasticIn, vs...);
|
||||||
|
if (easing == "elasticOut") return via(easing::elasticOut, vs...);
|
||||||
|
if (easing == "elasticInOut") return via(easing::elasticInOut, vs...);
|
||||||
|
if (easing == "backIn") return via(easing::backIn, vs...);
|
||||||
|
if (easing == "backOut") return via(easing::backOut, vs...);
|
||||||
|
if (easing == "backInOut") return via(easing::backInOut, vs...);
|
||||||
|
return via(easing::def, vs...);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
template<typename... Fs>
|
||||||
|
tween <T, Ts...> & tween<T, Ts...>::via(const char * easing, Fs... vs) {
|
||||||
|
return via(std::string(easing));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
template<typename... Ds>
|
||||||
|
inline tween<T, Ts...> & tween<T, Ts...>::during(Ds... ds) {
|
||||||
|
total = 0;
|
||||||
|
points.at(points.size() - 2).during(ds...);
|
||||||
|
for (detail::tweenpoint<T, Ts...> & p : points) {
|
||||||
|
total += p.duration();
|
||||||
|
p.stacked = total;
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline const typename detail::tweentraits<T, Ts...>::valuesType & tween<T, Ts...>::step(int32_t dt, bool suppress) {
|
||||||
|
return step(static_cast<float>(dt)/static_cast<float>(total), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline const typename detail::tweentraits<T, Ts...>::valuesType & tween<T, Ts...>::step(uint32_t dt, bool suppress) {
|
||||||
|
return step(static_cast<int32_t>(dt), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline const typename detail::tweentraits<T, Ts...>::valuesType & tween<T, Ts...>::step(float dp, bool suppress) {
|
||||||
|
dp *= currentDirection;
|
||||||
|
seek(currentProgress + dp, true);
|
||||||
|
if (!suppress) dispatch(onStepCallbacks);
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline const typename detail::tweentraits<T, Ts...>::valuesType & tween<T, Ts...>::seek(float p, bool suppress) {
|
||||||
|
p = detail::clip(p, 0.0f, 1.0f);
|
||||||
|
currentProgress = p;
|
||||||
|
render(p);
|
||||||
|
if (!suppress) dispatch(onSeekCallbacks);
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline const typename detail::tweentraits<T, Ts...>::valuesType & tween<T, Ts...>::seek(int32_t t, bool suppress) {
|
||||||
|
return seek(static_cast<float>(t) / static_cast<float>(total), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline uint32_t tween<T, Ts...>::duration() const {
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
template<size_t I>
|
||||||
|
inline void tween<T, Ts...>::interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type<I>) const {
|
||||||
|
auto & p = points.at(point);
|
||||||
|
auto pointDuration = uint32_t(p.duration() - (p.stacked - (prog * static_cast<float>(total))));
|
||||||
|
float pointTotal = static_cast<float>(pointDuration) / static_cast<float>(p.duration(I));
|
||||||
|
if (pointTotal > 1.0f) pointTotal = 1.0f;
|
||||||
|
auto easing = std::get<I>(p.easings);
|
||||||
|
std::get<I>(values) = easing(pointTotal, std::get<I>(p.values), std::get<I>(points.at(point+1).values));
|
||||||
|
interpolate(prog, point, values, detail::int2type<I-1>{ });
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline void tween<T, Ts...>::interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type<0>) const {
|
||||||
|
auto & p = points.at(point);
|
||||||
|
auto pointDuration = uint32_t(p.duration() - (p.stacked - (prog * static_cast<float>(total))));
|
||||||
|
float pointTotal = static_cast<float>(pointDuration) / static_cast<float>(p.duration(0));
|
||||||
|
if (pointTotal > 1.0f) pointTotal = 1.0f;
|
||||||
|
auto easing = std::get<0>(p.easings);
|
||||||
|
std::get<0>(values) = easing(pointTotal, std::get<0>(p.values), std::get<0>(points.at(point+1).values));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline void tween<T, Ts...>::render(float p) {
|
||||||
|
currentPoint = pointAt(p);
|
||||||
|
interpolate(p, currentPoint, current, detail::int2type<sizeof...(Ts) - 1 + 1 /* +1 for the T */>{ });
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::onStep(typename detail::tweentraits<T, Ts...>::callbackType callback) {
|
||||||
|
onStepCallbacks.push_back(callback);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::onStep(typename detail::tweentraits<T, Ts...>::noValuesCallbackType callback) {
|
||||||
|
onStepCallbacks.push_back([callback](tween<T, Ts...> & t, T, Ts...) { return callback(t); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::onStep(typename detail::tweentraits<T, Ts...>::noTweenCallbackType callback) {
|
||||||
|
onStepCallbacks.push_back([callback](tween<T, Ts...> &, T t, Ts... vs) { return callback(t, vs...); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::onSeek(typename detail::tweentraits<T, Ts...>::callbackType callback) {
|
||||||
|
onSeekCallbacks.push_back(callback);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::onSeek(typename detail::tweentraits<T, Ts...>::noValuesCallbackType callback) {
|
||||||
|
onSeekCallbacks.push_back([callback](tween<T, Ts...> & t, T, Ts...) { return callback(t); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::onSeek(typename detail::tweentraits<T, Ts...>::noTweenCallbackType callback) {
|
||||||
|
onSeekCallbacks.push_back([callback](tween<T, Ts...> &, T t, Ts... vs) { return callback(t, vs...); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
void tween<T, Ts...>::dispatch(std::vector<typename traits::callbackType> & cbVector) {
|
||||||
|
std::vector<size_t> dismissed;
|
||||||
|
for (size_t i = 0; i < cbVector.size(); ++i) {
|
||||||
|
auto && cb = cbVector[i];
|
||||||
|
bool dismiss = detail::call<bool>(cb, std::tuple_cat(std::make_tuple(std::ref(*this)), current));
|
||||||
|
if (dismiss) dismissed.push_back(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dismissed.size() > 0) {
|
||||||
|
for (size_t i = 0; i < dismissed.size(); ++i) {
|
||||||
|
size_t index = dismissed[i];
|
||||||
|
cbVector[index] = cbVector.at(cbVector.size() - 1 - i);
|
||||||
|
}
|
||||||
|
cbVector.resize(cbVector.size() - dismissed.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType & tween<T, Ts...>::peek() const {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType tween<T, Ts...>::peek(float progress) const {
|
||||||
|
typename detail::tweentraits<T, Ts...>::valuesType values;
|
||||||
|
interpolate(progress, pointAt(progress), values, detail::int2type<sizeof...(Ts) - 1 + 1 /* +1 for the T */>{ });
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
const typename detail::tweentraits<T, Ts...>::valuesType tween<T, Ts...>::peek(uint32_t time) const {
|
||||||
|
typename detail::tweentraits<T, Ts...>::valuesType values;
|
||||||
|
float progress = static_cast<float>(time) / static_cast<float>(total);
|
||||||
|
interpolate(progress, pointAt(progress), values, detail::int2type<sizeof...(Ts) - 1 + 1 /* +1 for the T */>{ });
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
float tween<T, Ts...>::progress() const {
|
||||||
|
return currentProgress;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::forward() {
|
||||||
|
currentDirection = 1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
tween<T, Ts...> & tween<T, Ts...>::backward() {
|
||||||
|
currentDirection = -1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
int tween<T, Ts...>::direction() const {
|
||||||
|
return currentDirection;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts>
|
||||||
|
inline const typename detail::tweentraits<T, Ts...>::valuesType & tween<T, Ts...>::jump(std::size_t p, bool suppress) {
|
||||||
|
p = detail::clip(p, static_cast<size_t>(0), points.size() -1);
|
||||||
|
return seek(static_cast<int32_t>(points.at(p).stacked), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts> inline uint16_t tween<T, Ts...>::point() const {
|
||||||
|
return currentPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T, typename... Ts> inline uint16_t tween<T, Ts...>::pointAt(float progress) const {
|
||||||
|
uint32_t t = static_cast<uint32_t>(progress * total);
|
||||||
|
uint16_t point = 0;
|
||||||
|
while (t > points.at(point).stacked) point++;
|
||||||
|
if (point > 0 && t <= points.at(point - 1u).stacked) point--;
|
||||||
|
return point;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //TWEENY_TWEEN_TCC
|
||||||
334
include/tweeny/tweenone.tcc
Normal file
|
|
@ -0,0 +1,334 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The purpose of this file is to hold implementations for the tween.h file, s
|
||||||
|
* pecializing on the single value case.
|
||||||
|
*/
|
||||||
|
#ifndef TWEENY_TWEENONE_TCC
|
||||||
|
#define TWEENY_TWEENONE_TCC
|
||||||
|
|
||||||
|
#include "tween.h"
|
||||||
|
#include "dispatcher.h"
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
template<typename T> inline tween<T> tween<T>::from(T t) { return tween<T>(t); }
|
||||||
|
template<typename T> inline tween<T>::tween() { }
|
||||||
|
template<typename T> inline tween<T>::tween(T t) {
|
||||||
|
points.emplace_back(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T> inline tween<T> & tween<T>::to(T t) {
|
||||||
|
points.emplace_back(t);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
template<typename... Fs>
|
||||||
|
inline tween<T> & tween<T>::via(Fs... vs) {
|
||||||
|
points.at(points.size() - 2).via(vs...);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
template<typename... Fs>
|
||||||
|
inline tween<T> & tween<T>::via(int index, Fs... vs) {
|
||||||
|
points.at(static_cast<size_t>(index)).via(vs...);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
template<typename... Fs>
|
||||||
|
tween <T> & tween<T>::via(easing::enumerated enumerated, Fs... vs) {
|
||||||
|
switch (enumerated) {
|
||||||
|
case easing::enumerated::def: return via(easing::def, vs...);
|
||||||
|
case easing::enumerated::linear: return via(easing::linear, vs...);
|
||||||
|
case easing::enumerated::stepped: return via(easing::stepped, vs...);
|
||||||
|
case easing::enumerated::quadraticIn: return via(easing::quadraticIn, vs...);
|
||||||
|
case easing::enumerated::quadraticOut: return via(easing::quadraticOut, vs...);
|
||||||
|
case easing::enumerated::quadraticInOut: return via(easing::quadraticInOut, vs...);
|
||||||
|
case easing::enumerated::cubicIn: return via(easing::cubicIn, vs...);
|
||||||
|
case easing::enumerated::cubicOut: return via(easing::cubicOut, vs...);
|
||||||
|
case easing::enumerated::cubicInOut: return via(easing::cubicInOut, vs...);
|
||||||
|
case easing::enumerated::quarticIn: return via(easing::quarticIn, vs...);
|
||||||
|
case easing::enumerated::quarticOut: return via(easing::quarticOut, vs...);
|
||||||
|
case easing::enumerated::quarticInOut: return via(easing::quarticInOut, vs...);
|
||||||
|
case easing::enumerated::quinticIn: return via(easing::quinticIn, vs...);
|
||||||
|
case easing::enumerated::quinticOut: return via(easing::quinticOut, vs...);
|
||||||
|
case easing::enumerated::quinticInOut: return via(easing::quinticInOut, vs...);
|
||||||
|
case easing::enumerated::sinusoidalIn: return via(easing::sinusoidalIn, vs...);
|
||||||
|
case easing::enumerated::sinusoidalOut: return via(easing::sinusoidalOut, vs...);
|
||||||
|
case easing::enumerated::sinusoidalInOut: return via(easing::sinusoidalInOut, vs...);
|
||||||
|
case easing::enumerated::exponentialIn: return via(easing::exponentialIn, vs...);
|
||||||
|
case easing::enumerated::exponentialOut: return via(easing::exponentialOut, vs...);
|
||||||
|
case easing::enumerated::exponentialInOut: return via(easing::exponentialInOut, vs...);
|
||||||
|
case easing::enumerated::circularIn: return via(easing::circularIn, vs...);
|
||||||
|
case easing::enumerated::circularOut: return via(easing::circularOut, vs...);
|
||||||
|
case easing::enumerated::circularInOut: return via(easing::circularInOut, vs...);
|
||||||
|
case easing::enumerated::bounceIn: return via(easing::bounceIn, vs...);
|
||||||
|
case easing::enumerated::bounceOut: return via(easing::bounceOut, vs...);
|
||||||
|
case easing::enumerated::bounceInOut: return via(easing::bounceInOut, vs...);
|
||||||
|
case easing::enumerated::elasticIn: return via(easing::elasticIn, vs...);
|
||||||
|
case easing::enumerated::elasticOut: return via(easing::elasticOut, vs...);
|
||||||
|
case easing::enumerated::elasticInOut: return via(easing::elasticInOut, vs...);
|
||||||
|
case easing::enumerated::backIn: return via(easing::backIn, vs...);
|
||||||
|
case easing::enumerated::backOut: return via(easing::backOut, vs...);
|
||||||
|
case easing::enumerated::backInOut: return via(easing::backInOut, vs...);
|
||||||
|
default: return via(easing::def, vs...);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
template<typename... Fs>
|
||||||
|
tween <T> & tween<T>::via(const std::string & easing, Fs... vs) {
|
||||||
|
if (easing == "stepped") return via(easing::stepped, vs...);
|
||||||
|
if (easing == "linear") return via(easing::linear, vs...);
|
||||||
|
if (easing == "quadraticIn") return via(easing::quadraticIn, vs...);
|
||||||
|
if (easing == "quadraticOut") return via(easing::quadraticOut, vs...);
|
||||||
|
if (easing == "quadraticInOut") return via(easing::quadraticInOut, vs...);
|
||||||
|
if (easing == "cubicIn") return via(easing::cubicIn, vs...);
|
||||||
|
if (easing == "cubicOut") return via(easing::cubicOut, vs...);
|
||||||
|
if (easing == "cubicInOut") return via(easing::cubicInOut, vs...);
|
||||||
|
if (easing == "quarticIn") return via(easing::quarticIn, vs...);
|
||||||
|
if (easing == "quarticOut") return via(easing::quarticOut, vs...);
|
||||||
|
if (easing == "quarticInOut") return via(easing::quarticInOut, vs...);
|
||||||
|
if (easing == "quinticIn") return via(easing::quinticIn, vs...);
|
||||||
|
if (easing == "quinticOut") return via(easing::quinticOut, vs...);
|
||||||
|
if (easing == "quinticInOut") return via(easing::quinticInOut, vs...);
|
||||||
|
if (easing == "sinusoidalIn") return via(easing::sinusoidalIn, vs...);
|
||||||
|
if (easing == "sinusoidalOut") return via(easing::sinusoidalOut, vs...);
|
||||||
|
if (easing == "sinusoidalInOut") return via(easing::sinusoidalInOut, vs...);
|
||||||
|
if (easing == "exponentialIn") return via(easing::exponentialIn, vs...);
|
||||||
|
if (easing == "exponentialOut") return via(easing::exponentialOut, vs...);
|
||||||
|
if (easing == "exponentialInOut") return via(easing::exponentialInOut, vs...);
|
||||||
|
if (easing == "circularIn") return via(easing::circularIn, vs...);
|
||||||
|
if (easing == "circularOut") return via(easing::circularOut, vs...);
|
||||||
|
if (easing == "circularInOut") return via(easing::circularInOut, vs...);
|
||||||
|
if (easing == "bounceIn") return via(easing::bounceIn, vs...);
|
||||||
|
if (easing == "bounceOut") return via(easing::bounceOut, vs...);
|
||||||
|
if (easing == "bounceInOut") return via(easing::bounceInOut, vs...);
|
||||||
|
if (easing == "elasticIn") return via(easing::elasticIn, vs...);
|
||||||
|
if (easing == "elasticOut") return via(easing::elasticOut, vs...);
|
||||||
|
if (easing == "elasticInOut") return via(easing::elasticInOut, vs...);
|
||||||
|
if (easing == "backIn") return via(easing::backIn, vs...);
|
||||||
|
if (easing == "backOut") return via(easing::backOut, vs...);
|
||||||
|
if (easing == "backInOut") return via(easing::backInOut, vs...);
|
||||||
|
return via(easing::def, vs...);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
template<typename... Fs>
|
||||||
|
tween <T> & tween<T>::via(const char * easing, Fs... vs) {
|
||||||
|
return via(std::string(easing));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
template<typename... Ds>
|
||||||
|
inline tween<T> & tween<T>::during(Ds... ds) {
|
||||||
|
total = 0;
|
||||||
|
points.at(points.size() - 2).during(ds...);
|
||||||
|
for (detail::tweenpoint<T> & p : points) {
|
||||||
|
total += p.duration();
|
||||||
|
p.stacked = total;
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const T & tween<T>::step(int32_t dt, bool suppress) {
|
||||||
|
return step(static_cast<float>(dt)/static_cast<float>(total), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const T & tween<T>::step(uint32_t dt, bool suppress) {
|
||||||
|
return step(static_cast<int32_t>(dt), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const T & tween<T>::step(float dp, bool suppress) {
|
||||||
|
dp *= currentDirection;
|
||||||
|
seek(currentProgress + dp, true);
|
||||||
|
if (!suppress) dispatch(onStepCallbacks);
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const T & tween<T>::seek(float p, bool suppress) {
|
||||||
|
p = detail::clip(p, 0.0f, 1.0f);
|
||||||
|
currentProgress = p;
|
||||||
|
render(p);
|
||||||
|
if (!suppress) dispatch(onSeekCallbacks);
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const T & tween<T>::seek(int32_t t, bool suppress) {
|
||||||
|
return seek(static_cast<float>(t) / static_cast<float>(total), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const T & tween<T>::seek(uint32_t t, bool suppress) {
|
||||||
|
return seek(static_cast<float>(t) / static_cast<float>(total), suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline uint32_t tween<T>::duration() const {
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline void tween<T>::interpolate(float prog, unsigned point, T & value) const {
|
||||||
|
auto & p = points.at(point);
|
||||||
|
auto pointDuration = uint32_t(p.duration() - (p.stacked - (prog * static_cast<float>(total))));
|
||||||
|
float pointTotal = static_cast<float>(pointDuration) / static_cast<float>(p.duration());
|
||||||
|
if (pointTotal > 1.0f) pointTotal = 1.0f;
|
||||||
|
auto easing = std::get<0>(p.easings);
|
||||||
|
value = easing(pointTotal, std::get<0>(p.values), std::get<0>(points.at(point+1).values));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline void tween<T>::render(float p) {
|
||||||
|
currentPoint = pointAt(p);
|
||||||
|
interpolate(p, currentPoint, current);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::onStep(typename detail::tweentraits<T>::callbackType callback) {
|
||||||
|
onStepCallbacks.push_back(callback);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::onStep(typename detail::tweentraits<T>::noValuesCallbackType callback) {
|
||||||
|
onStepCallbacks.push_back([callback](tween<T> & tween, T) { return callback(tween); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::onStep(typename detail::tweentraits<T>::noTweenCallbackType callback) {
|
||||||
|
onStepCallbacks.push_back([callback](tween<T> &, T v) { return callback(v); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::onSeek(typename detail::tweentraits<T>::callbackType callback) {
|
||||||
|
onSeekCallbacks.push_back(callback);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::onSeek(typename detail::tweentraits<T>::noValuesCallbackType callback) {
|
||||||
|
onSeekCallbacks.push_back([callback](tween<T> & t, T) { return callback(t); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::onSeek(typename detail::tweentraits<T>::noTweenCallbackType callback) {
|
||||||
|
onSeekCallbacks.push_back([callback](tween<T> &, T v) { return callback(v); });
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void tween<T>::dispatch(std::vector<typename traits::callbackType> & cbVector) {
|
||||||
|
std::vector<size_t> dismissed;
|
||||||
|
for (size_t i = 0; i < cbVector.size(); ++i) {
|
||||||
|
auto && cb = cbVector[i];
|
||||||
|
bool dismiss = cb(*this, current);
|
||||||
|
if (dismiss) dismissed.push_back(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dismissed.size() > 0) {
|
||||||
|
for (size_t i = 0; i < dismissed.size(); ++i) {
|
||||||
|
size_t index = dismissed[i];
|
||||||
|
cbVector[index] = cbVector.at(cbVector.size() - 1 - i);
|
||||||
|
}
|
||||||
|
cbVector.resize(cbVector.size() - dismissed.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
const T & tween<T>::peek() const {
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
T tween<T>::peek(float progress) const {
|
||||||
|
T value;
|
||||||
|
interpolate(progress, pointAt(progress), value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
T tween<T>::peek(uint32_t time) const {
|
||||||
|
T value;
|
||||||
|
float progress = static_cast<float>(time) / static_cast<float>(total);
|
||||||
|
interpolate(progress, pointAt(progress), value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
float tween<T>::progress() const {
|
||||||
|
return currentProgress;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::forward() {
|
||||||
|
currentDirection = 1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
tween<T> & tween<T>::backward() {
|
||||||
|
currentDirection = -1;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
int tween<T>::direction() const {
|
||||||
|
return currentDirection;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline const T & tween<T>::jump(size_t p, bool suppress) {
|
||||||
|
p = detail::clip(p, static_cast<size_t>(0), points.size() -1);
|
||||||
|
return seek(points.at(p).stacked, suppress);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T> inline uint16_t tween<T>::point() const {
|
||||||
|
return currentPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template<typename T> inline uint16_t tween<T>::pointAt(float progress) const {
|
||||||
|
auto t = static_cast<uint32_t>(progress * total);
|
||||||
|
uint16_t point = 0;
|
||||||
|
while (t > points.at(point).stacked) point++;
|
||||||
|
if (point > 0 && t <= points.at(point - 1u).stacked) point--;
|
||||||
|
return point;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //TWEENY_TWEENONE_TCC
|
||||||
82
include/tweeny/tweenpoint.h
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file provides the declarations for a tween point utility class. A tweenpoint holds the tween values,
|
||||||
|
* easings and durations.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef TWEENY_TWEENPOINT_H
|
||||||
|
#define TWEENY_TWEENPOINT_H
|
||||||
|
|
||||||
|
|
||||||
|
#include <tuple>
|
||||||
|
#include <array>
|
||||||
|
|
||||||
|
#include "tweentraits.h"
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
namespace detail {
|
||||||
|
/*
|
||||||
|
* The tweenpoint class aids in the management of a tweening point by the tween class.
|
||||||
|
* This class is private.
|
||||||
|
*/
|
||||||
|
template<typename... Ts>
|
||||||
|
struct tweenpoint {
|
||||||
|
typedef detail::tweentraits<Ts...> traits;
|
||||||
|
|
||||||
|
typename traits::valuesType values;
|
||||||
|
typename traits::durationsArrayType durations;
|
||||||
|
typename traits::easingCollection easings;
|
||||||
|
typename traits::callbackType onEnterCallbacks;
|
||||||
|
uint32_t stacked;
|
||||||
|
|
||||||
|
/* Constructs a tweenpoint from a set of values, filling their durations and easings */
|
||||||
|
tweenpoint(Ts... vs);
|
||||||
|
|
||||||
|
/* Set the duration for all the values in this point */
|
||||||
|
template<typename D> void during(D milis);
|
||||||
|
|
||||||
|
/* Sets the duration for each value in this point */
|
||||||
|
template<typename... Ds> void during(Ds... vs);
|
||||||
|
|
||||||
|
/* Sets the easing functions of each value */
|
||||||
|
template<typename... Fs> void via(Fs... fs);
|
||||||
|
|
||||||
|
/* Sets the same easing function for all values */
|
||||||
|
template<typename F> void via(F f);
|
||||||
|
|
||||||
|
/* Returns the highest value in duration array */
|
||||||
|
uint16_t duration() const;
|
||||||
|
|
||||||
|
/* Returns the value of that specific value */
|
||||||
|
uint16_t duration(size_t i) const;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "tweenpoint.tcc"
|
||||||
|
|
||||||
|
#endif //TWEENY_TWEENPOINT_H
|
||||||
115
include/tweeny/tweenpoint.tcc
Normal file
|
|
@ -0,0 +1,115 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file implements the tweenpoint class
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_TWEENPOINT_TCC
|
||||||
|
#define TWEENY_TWEENPOINT_TCC
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
#include "tweenpoint.h"
|
||||||
|
#include "tweentraits.h"
|
||||||
|
#include "easing.h"
|
||||||
|
#include "easingresolve.h"
|
||||||
|
#include "int2type.h"
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
namespace detail {
|
||||||
|
template<typename TypeTupleT, typename EasingCollectionT, typename EasingT, size_t I> void easingfill(EasingCollectionT & f, EasingT easing, int2type<I>) {
|
||||||
|
easingresolve<I, TypeTupleT, EasingCollectionT, EasingT>::impl(f, easing);
|
||||||
|
easingfill<TypeTupleT, EasingCollectionT, EasingT>(f, easing, int2type<I - 1>{ });
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TypeTupleT, typename EasingCollectionT, typename EasingT> void easingfill(EasingCollectionT & f, EasingT easing, int2type<0>) {
|
||||||
|
easingresolve<0, TypeTupleT, EasingCollectionT, EasingT>::impl(f, easing);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class ...T>
|
||||||
|
struct are_same;
|
||||||
|
|
||||||
|
template <class A, class B, class ...T>
|
||||||
|
struct are_same<A, B, T...>
|
||||||
|
{
|
||||||
|
static const bool value = std::is_same<A, B>::value && are_same<B, T...>::value;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class A>
|
||||||
|
struct are_same<A>
|
||||||
|
{
|
||||||
|
static const bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
inline tweenpoint<Ts...>::tweenpoint(Ts... vs) : values{vs...} {
|
||||||
|
during(static_cast<uint16_t>(0));
|
||||||
|
via(easing::def);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
template<typename D>
|
||||||
|
inline void tweenpoint<Ts...>::during(D milis) {
|
||||||
|
for (uint16_t & t : durations) { t = static_cast<uint16_t>(milis); }
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
template<typename... Ds>
|
||||||
|
inline void tweenpoint<Ts...>::during(Ds... milis) {
|
||||||
|
static_assert(sizeof...(Ds) == sizeof...(Ts),
|
||||||
|
"Amount of durations should be equal to the amount of values in a point");
|
||||||
|
std::array<int, sizeof...(Ts)> list = {{ milis... }};
|
||||||
|
std::copy(list.begin(), list.end(), durations.begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
template<typename... Fs>
|
||||||
|
inline void tweenpoint<Ts...>::via(Fs... fs) {
|
||||||
|
static_assert(sizeof...(Fs) == sizeof...(Ts),
|
||||||
|
"Number of functions passed to via() must be equal the number of values.");
|
||||||
|
detail::easingresolve<0, std::tuple<Ts...>, typename traits::easingCollection, Fs...>::impl(easings, fs...);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
template<typename F>
|
||||||
|
inline void tweenpoint<Ts...>::via(F f) {
|
||||||
|
easingfill<typename traits::valuesType>(easings, f, int2type<sizeof...(Ts) - 1>{ });
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
inline uint16_t tweenpoint<Ts...>::duration() const {
|
||||||
|
return *std::max_element(durations.begin(), durations.end());
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
inline uint16_t tweenpoint<Ts...>::duration(size_t i) const {
|
||||||
|
return durations.at(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif //TWEENY_TWEENPOINT_TCC
|
||||||
75
include/tweeny/tweentraits.h
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file provides useful typedefs and traits for a tween.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_TWEENTRAITS_H
|
||||||
|
#define TWEENY_TWEENTRAITS_H
|
||||||
|
|
||||||
|
#include <tuple>
|
||||||
|
#include <functional>
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
template<typename T, typename... Ts> class tween;
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template<typename... Ts> struct equal {};
|
||||||
|
template<typename T> struct equal<T> { enum { value = true }; };
|
||||||
|
template <typename T, typename U, typename... Ts> struct equal<T, U, Ts...> {
|
||||||
|
enum { value = std::is_same<T, U>::value && equal<T, Ts...>::value && equal<U, Ts...>::value };
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename T, typename...> struct first { typedef T type; };
|
||||||
|
|
||||||
|
template<bool equal, typename... Ts>
|
||||||
|
struct valuetype { };
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
struct valuetype<false, Ts...> {
|
||||||
|
typedef std::tuple<Ts...> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
struct valuetype<true, Ts...> {
|
||||||
|
typedef std::array<typename first<Ts...>::type, sizeof...(Ts)> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename... Ts>
|
||||||
|
struct tweentraits {
|
||||||
|
typedef std::tuple<std::function<Ts(float, Ts, Ts)>...> easingCollection;
|
||||||
|
typedef std::function<bool(tween<Ts...> &, Ts...)> callbackType;
|
||||||
|
typedef std::function<bool(tween<Ts...> &)> noValuesCallbackType;
|
||||||
|
typedef std::function<bool(Ts...)> noTweenCallbackType;
|
||||||
|
typedef typename valuetype<equal<Ts...>::value, Ts...>::type valuesType;
|
||||||
|
typedef std::array<uint16_t, sizeof...(Ts)> durationsArrayType;
|
||||||
|
typedef tween<Ts...> type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //TWEENY_TWEENTRAITS_H
|
||||||
102
include/tweeny/tweeny.h
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file tweeny.h
|
||||||
|
* This file is the main header file for Tweeny. You should not need to include anything else.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @mainpage Tweeny
|
||||||
|
*
|
||||||
|
* Tweeny is an inbetweening library designed for the creation of complex animations for games and other beautiful
|
||||||
|
* interactive software. It leverages features of modern C++ to empower developers with an intuitive API for
|
||||||
|
* declaring tweenings of any type of value, as long as they support arithmetic operations.
|
||||||
|
*
|
||||||
|
* This document contains Tweeny's API reference. The most interesting parts are:
|
||||||
|
*
|
||||||
|
* * The Fine @ref manual
|
||||||
|
* * The tweeny::from global function, to start a new tween.
|
||||||
|
* * The tweeny::tween class itself, that has all the interesting methods for a tween.
|
||||||
|
* * The <a href="modules.html">modules page</a> has a list of type of easings.
|
||||||
|
*
|
||||||
|
* This is how the API looks like:
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
*
|
||||||
|
* #include "tweeny.h"
|
||||||
|
*
|
||||||
|
* using tweeny::easing;
|
||||||
|
*
|
||||||
|
* int main() {
|
||||||
|
* // steps 1% each iteration
|
||||||
|
* auto tween = tweeny::from(0).to(100).during(100).via(easing::linear);
|
||||||
|
* while (tween.progress() < 1.0f) tween.step(0.01f);
|
||||||
|
*
|
||||||
|
* // a tween with multiple values
|
||||||
|
* auto tween2 = tweeny::from(0, 1.0f).to(1200, 7.0f).during(1000).via(easing::backInOut, easing::linear);
|
||||||
|
*
|
||||||
|
* // a tween with multiple points, different easings and durations
|
||||||
|
* auto tween3 = tweeny::from(0, 0)
|
||||||
|
* .to(100, 100).during(100).via(easing::backOut, easing::backOut)
|
||||||
|
* .to(200, 200).during(500).via(easing::linear);
|
||||||
|
* return 0;
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* **Examples**
|
||||||
|
*
|
||||||
|
* * Check <a href="http://github.com/mobius3/tweeny-demos">tweeny-demos</a> repository to see demonstration code
|
||||||
|
*
|
||||||
|
* **Useful links and references**
|
||||||
|
* * <a href="http://www.timotheegroleau.com/Flash/experiments/easing_function_generator.htm">Tim Groleau's easing function generator (requires flash)</a>
|
||||||
|
* * <a href="http://easings.net/">Easing cheat sheet (contains graphics!)</a>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_H
|
||||||
|
#define TWEENY_H
|
||||||
|
|
||||||
|
#include "tween.h"
|
||||||
|
#include "easing.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The tweeny namespace contains all symbols and names for the Tweeny library.
|
||||||
|
*/
|
||||||
|
namespace tweeny {
|
||||||
|
/**
|
||||||
|
* @brief Creates a tween starting from the values defined in the arguments.
|
||||||
|
*
|
||||||
|
* Starting values can have heterogeneous types, even user-defined types, provided they implement the
|
||||||
|
* four arithmetic operators (+, -, * and /). The types used will also define the type of each next step, the type
|
||||||
|
* of the callback and the type of arguments the passed easing functions must have.
|
||||||
|
*
|
||||||
|
* @sa tweeny::tween
|
||||||
|
*/
|
||||||
|
template<typename... Ts> tween<Ts...> from(Ts... vs);
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "tweeny.tcc"
|
||||||
|
|
||||||
|
#endif //TWEENY_TWEENY_H
|
||||||
40
include/tweeny/tweeny.tcc
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
This file is part of the Tweeny library.
|
||||||
|
|
||||||
|
Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas
|
||||||
|
Copyright (c) 2016 Guilherme R. Costa
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file provides the implementation for tweeny.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TWEENY_TWEENY_TCC
|
||||||
|
#define TWEENY_TWEENY_TCC
|
||||||
|
|
||||||
|
#include "tween.h"
|
||||||
|
|
||||||
|
namespace tweeny {
|
||||||
|
template<typename... Ts> inline tween<Ts...> from(Ts... vs) {
|
||||||
|
return tween<Ts...>::from(vs...);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //TWEENY_TWEENY_TCC
|
||||||
BIN
resources/img/cards/c1.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
resources/img/cards/c10.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
resources/img/cards/c11.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
resources/img/cards/c12.png
Normal file
|
After Width: | Height: | Size: 279 KiB |
BIN
resources/img/cards/c13.png
Normal file
|
After Width: | Height: | Size: 257 KiB |
BIN
resources/img/cards/c2.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
resources/img/cards/c3.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
resources/img/cards/c4.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
resources/img/cards/c5.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
resources/img/cards/c6.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
resources/img/cards/c7.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
resources/img/cards/c8.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
resources/img/cards/c9.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
resources/img/cards/cardback.png
Normal file
|
After Width: | Height: | Size: 499 KiB |
BIN
resources/img/cards/d1.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
resources/img/cards/d10.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
resources/img/cards/d11.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
resources/img/cards/d12.png
Normal file
|
After Width: | Height: | Size: 191 KiB |
BIN
resources/img/cards/d13.png
Normal file
|
After Width: | Height: | Size: 260 KiB |
BIN
resources/img/cards/d2.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
resources/img/cards/d3.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
resources/img/cards/d4.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
resources/img/cards/d5.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
resources/img/cards/d6.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
resources/img/cards/d7.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
resources/img/cards/d8.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
resources/img/cards/d9.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
resources/img/cards/h1.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
resources/img/cards/h10.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
resources/img/cards/h11.png
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
resources/img/cards/h12.png
Normal file
|
After Width: | Height: | Size: 238 KiB |
BIN
resources/img/cards/h13.png
Normal file
|
After Width: | Height: | Size: 273 KiB |
BIN
resources/img/cards/h2.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
resources/img/cards/h3.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
resources/img/cards/h4.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
resources/img/cards/h5.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
resources/img/cards/h6.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
resources/img/cards/h7.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
resources/img/cards/h8.png
Normal file
|
After Width: | Height: | Size: 40 KiB |