Added More Easing Functions

This commit is contained in:
OusmBlueNinja 2025-05-08 13:16:32 -05:00
parent 5efe2e0b14
commit a092c3499d
7 changed files with 1363 additions and 1327 deletions

View File

@ -21,13 +21,13 @@ DockId=0x00000018,0
[Window][Scene Tree]
Pos=0,19
Size=388,579
Size=341,579
Collapsed=0
DockId=0x0000000F,0
[Window][Viewport]
Pos=390,19
Size=1161,659
Pos=343,19
Size=1208,659
Collapsed=0
DockId=0x00000017,0
@ -42,8 +42,8 @@ Collapsed=0
DockId=0x00000019,0
[Window][Console]
Pos=390,680
Size=880,497
Pos=343,680
Size=927,273
Collapsed=0
DockId=0x0000001B,0
@ -54,8 +54,8 @@ Collapsed=0
DockId=0x00000017,1
[Window][Profiler]
Pos=390,955
Size=1185,222
Pos=343,955
Size=1232,222
Collapsed=0
DockId=0x00000014,0
@ -126,7 +126,7 @@ DockId=0x0000000D,0
[Window][Resources]
Pos=0,600
Size=388,577
Size=341,577
Collapsed=0
DockId=0x00000010,0
@ -137,7 +137,7 @@ Collapsed=0
[Window][Lua Globals]
Pos=1272,680
Size=303,497
Size=303,273
Collapsed=0
DockId=0x0000001C,0
@ -155,20 +155,20 @@ Column 2 Weight=1.0000
[Docking][Data]
DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Split=X
DockNode ID=0x00000005 Parent=0x11111111 SizeRef=989,1158 Split=X
DockNode ID=0x00000001 Parent=0x00000005 SizeRef=388,701 Split=Y Selected=0x12EF0F59
DockNode ID=0x00000001 Parent=0x00000005 SizeRef=341,701 Split=Y Selected=0x12EF0F59
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=342,637 Split=Y Selected=0x12EF0F59
DockNode ID=0x0000000F Parent=0x00000003 SizeRef=342,579 HiddenTabBar=1 Selected=0x12EF0F59
DockNode ID=0x00000010 Parent=0x00000003 SizeRef=342,577 HiddenTabBar=1 Selected=0x30401527
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=342,519 HiddenTabBar=1 Selected=0x36AF052B
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1530,701 Split=Y Selected=0xC450F867
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1577,701 Split=Y Selected=0xC450F867
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,659 Split=X Selected=0xC450F867
DockNode ID=0x00000017 Parent=0x00000007 SizeRef=1161,860 CentralNode=1 HiddenTabBar=1 Selected=0xC450F867
DockNode ID=0x00000017 Parent=0x00000007 SizeRef=1208,860 CentralNode=1 HiddenTabBar=1 Selected=0xC450F867
DockNode ID=0x00000018 Parent=0x00000007 SizeRef=367,860 HiddenTabBar=1 Selected=0x36DC96AB
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,497 Split=X Selected=0xEA83D666
DockNode ID=0x00000015 Parent=0x00000008 SizeRef=1236,172 Split=X Selected=0xEA83D666
DockNode ID=0x00000011 Parent=0x00000015 SizeRef=1185,168 Split=Y Selected=0x9B5D3198
DockNode ID=0x00000015 Parent=0x00000008 SizeRef=1283,172 Split=X Selected=0xEA83D666
DockNode ID=0x00000011 Parent=0x00000015 SizeRef=1232,168 Split=Y Selected=0x9B5D3198
DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,273 Split=X Selected=0xEA83D666
DockNode ID=0x0000001B Parent=0x00000013 SizeRef=880,497 HiddenTabBar=1 Selected=0xEA83D666
DockNode ID=0x0000001B Parent=0x00000013 SizeRef=927,497 HiddenTabBar=1 Selected=0xEA83D666
DockNode ID=0x0000001C Parent=0x00000013 SizeRef=303,497 HiddenTabBar=1 Selected=0x8CFF897F
DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1449,222 HiddenTabBar=1 Selected=0x9B5D3198
DockNode ID=0x00000012 Parent=0x00000015 SizeRef=49,168 HiddenTabBar=1 Selected=0x56009A08

View File

@ -54,6 +54,11 @@ cxxflags:
- -g
# - -DDISABLE_DEEP_PROFILING
- -DGLM_ENABLE_EXPERIMENTAL
- -O2
- -static
- -static-libstdc++
- -static-libgcc
# Auto-detect libraries and headers
auto_libs:

View File

@ -1,2 +1,4 @@
[COMPILE] g++ -std=c++20 -Wall -g -DGLM_ENABLE_EXPERIMENTAL -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -Isrc/vendor/imguizmo -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\Engine.cpp -o src\build\Engine.o
[COMPILE] g++ -std=c++20 -Wall -g -DGLM_ENABLE_EXPERIMENTAL -O2 -static -static-libstdc++ -static-libgcc -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -Isrc/vendor/imguizmo -IC:/msys64/mingw64/include -IC:\msys64\mingw64\lib\libyaml-cpp.a -Isrc\vendor\imgui -MMD -MP -c src\src\editor\windows\Inspector.cpp -o src\build\editor\windows\Inspector.o
[LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\AnimationComponent.o src\build\Components\AudioPlayerComponent.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\ParticleComponent.o src\build\Components\PathFollowerComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\core\audio\AudioEngine.o src\build\core\functions\Prefab.o src\build\core\functions\ScenePacker.o src\build\core\scripts\LuaGlobalBridge.o src\build\core\scripts\ScriptCore.o src\build\core\utils\AssetManager.o src\build\core\utils\EngineConfig.o src\build\core\utils\ExceptionHandler.o src\build\core\utils\FileDialog.o src\build\core\utils\input.o src\build\core\utils\LoadingWindow.o src\build\core\utils\Logging.o src\build\core\utils\Popup.o src\build\core\utils\Profiler.o src\build\core\utils\Texture.o src\build\core\utils\utils.o src\build\editor\windows\AssetBrowser.o src\build\editor\windows\AudioInfo.o src\build\editor\windows\Inspector.o src\build\editor\windows\LuaGlobals.o src\build\Entitys\Object.o src\build\utils\GameObjectsList.o src\build\utils\Shader.o src\build\utils\UID.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o src\build\xxhash.o src\build\miniaudio.o src\build\ImGuizmo.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto -ldbghelp -lz
[ERROR] Runtime crash
Command 'src\build\app.exe' returned non-zero exit status 3221225477.

File diff suppressed because it is too large Load Diff

View File

@ -50,7 +50,7 @@ struct ParticleEmitterSettings
float speedMin = 100.0f;
float speedMax = 300.0f;
core::types::Vec2 direction = {1.0f, 0.0f};
float spread = 1.57f; // radians
float spread = 1.57f;
core::types::Color startColor = {1, 1, 1, 1};
core::types::Color endColor = {1, 1, 1, 0};
bool loop = true;

View File

@ -63,7 +63,6 @@ void PathFollowerComponent::Update(float dt)
constexpr int m_arrivalRadius = 10;
// if we've arrived at this waypoint, advance based on mode
if (dist < m_arrivalRadius) {
switch (m_pathMode) {
case PathMode::Loop:

View File

@ -763,27 +763,57 @@ void DrawInspectorUI(std::shared_ptr<Object> selected)
{
ImGui::SeparatorText("PathFollower");
// Speed
float speed = pathfollower->GetSpeed();
if (ImGui::DragFloat("Speed", &speed, 1.0f, 0.0f, 1000.0f))
pathfollower->SetSpeed(speed);
// Easing
const char *easingNames[] = {"Linear", "EaseInOut", "EaseOutCubic"};
const char *easingNames[] = {
"Linear",
"EaseInOut",
"EaseOutCubic",
};
int currentEasing = static_cast<int>(pathfollower->GetEasing());
if (ImGui::Combo("Easing", &currentEasing, easingNames, IM_ARRAYSIZE(easingNames)))
pathfollower->SetEasing(static_cast<EasingFunction>(currentEasing));
const char* modeNames[] = { "Loop", "PingPong", "Stop" };
constexpr int PREVIEW_SAMPLES = 64;
static float preview[PREVIEW_SAMPLES];
for (int i = 0; i < PREVIEW_SAMPLES; ++i)
{
float t = float(i) / (PREVIEW_SAMPLES - 1);
switch (pathfollower->GetEasing())
{
case EasingFunction::Linear:
preview[i] = t;
break;
case EasingFunction::EaseInOut:
preview[i] = t * t * (3.0f - 2.0f * t);
break;
case EasingFunction::EaseOutCubic:
preview[i] = 1.0f - std::pow(1.0f - t, 3.0f);
break;
}
}
ImGui::PlotLines(
"##easingPreview",
preview,
PREVIEW_SAMPLES,
0, nullptr,
0.0f, 1.0f,
ImVec2(100, 50));
const char *modeNames[] = {"Loop", "PingPong", "Stop"};
int modeIndex = static_cast<int>(pathfollower->GetPathMode());
if (ImGui::Combo("Path Mode", &modeIndex, modeNames, IM_ARRAYSIZE(modeNames)))
pathfollower->SetPathMode(static_cast<PathMode>(modeIndex));
ImGui::SeparatorText("Path Points");
// Path points
auto &targets = pathfollower->GetTargets(); // Must return a reference!
auto &targets = pathfollower->GetTargets();
for (int i = 0; i < static_cast<int>(targets.size()); ++i)
{
ImGui::PushID(i);