Commit Graph
100 Commits
Author SHA1 Message Date
Martin Felis 5a6ac92a48 Using bits of the blueprints examples for the AnimGraphEditor. 2025-02-16 22:12:31 +01:00
Martin Felis a467715ce3 Switched to imgui fork https://github.com/thedmd/imgui/commits/feature/docking-layout-external/ commit 899d85eb9489796f73a4dc67ad86892729707ce9 2025-02-16 17:15:41 +01:00
Martin Felis 589b45554f Updated imgui to v1.91.8-docking. 2025-02-16 16:08:20 +01:00
Martin Felis 45d56dea0d Minor cleanup in editor. 2025-02-16 14:59:48 +01:00
Martin Felis 40f631c51a Fixed memory leak by introducing virtual node descriptors.
AnimNodeResources do not reference an actual node anymore. However, we still need descriptors to check whether connections are valid.

For this we have VirtualNodeDescriptors for which all sockets point to nullptr.
2025-02-16 14:22:13 +01:00
Martin Felis 4b378adc91 Minor cleanup. 2025-02-16 12:31:44 +01:00
Martin Felis 99d5a5eb0f Minor refactor. 2024-05-07 18:50:38 +02:00
Martin Felis 698abbce4b BlendTree input and output sockets can now be registered via the AnimGraphResource. 2024-05-01 21:49:34 +02:00
Martin Felis b9789bd1e1 Minor refactor. 2024-05-01 13:17:25 +02:00
Martin Felis fd032c273b Links can now be removed by hovering link and pressing the Delete key. 2024-05-01 13:11:54 +02:00
Martin Felis da431a3879 Fixed setting location of new nodes and minor connection rejection refactor. 2024-05-01 13:03:57 +02:00
Martin Felis 84fc49af30 Properly store and restore node positions in editor. 2024-05-01 12:50:16 +02:00
Martin Felis 7c7a765455 New nodes now spawn at popup start location. 2024-05-01 11:59:30 +02:00
Martin Felis e3baa65c3b Added breadcrumb navigation for embedded graphs. 2024-05-01 10:58:33 +02:00
Martin Felis 44087d7a7c Removed legacy editor, started working on editing embedded graphs. 2024-04-30 18:40:54 +02:00
Martin Felis e8af30d10c Added embedded fonts. 2024-04-30 17:49:29 +02:00
Martin Felis 4d1990bea8 Reactivated the sidebar in the new node editor. 2024-04-25 21:40:09 +02:00
Martin Felis 5e34aaf3db Extremely basic blend tree editing. 2024-04-25 21:12:08 +02:00
Martin Felis 3fb2995b02 Fixed building of editor app, though crashes everywhere. 2024-04-24 21:58:47 +02:00
Martin Felis c267276be3 Fixed connection validation when one of the nodes is an embedded blend tree. 2024-04-24 21:38:11 +02:00
Martin Felis 53c0bff7a6 Minor cleanup. 2024-04-21 12:47:19 +02:00
Martin Felis 91e226945c Added basic connection validation and connection removal to BlendTreeResources. 2024-04-21 12:42:49 +02:00
Martin Felis d95bc9fb9c Made BlendTreeResource::m_nodes and ::m_connections private.
This is a prerequisite to properly track Node input/output connections and to compute eval order in the BlendTreeResources.
2024-04-16 22:18:11 +02:00
Martin Felis 2d5337ed1d Reduced connection data block size.
Previously we allocated a block for each connection. However when an output is reused by multiple connections this lead to duplicates. It also obfuscated which block is actually being used.
2024-04-08 21:52:03 +02:00
Martin Felis 9f9ac60f9c Cleaned up some compilation issues for the AnimGraphEditor. 2024-04-05 00:44:37 +02:00
Martin Felis 1741238a61 Fixed variable shadowing. 2024-04-05 00:43:41 +02:00
Martin Felis 8694a11416 Removed even more unused files. 2024-04-05 00:18:07 +02:00
Martin Felis 3444f8a625 Removed dead code and unused files. 2024-04-04 19:47:24 +02:00
Martin Felis cd56efca3d Only storing single socket in AnimGraphConnections and simplified wiring logic. 2024-04-04 19:36:20 +02:00
Martin Felis 28eca48a61 Added a test that checks socket propagation into an embedded BlendTree. 2024-04-01 17:59:25 +02:00
Martin Felis 76ea38f118 Added support of time updates for simple embedded graphs. 2024-04-01 12:33:23 +02:00
Martin Felis 0aebe44bd5 Started working on evaluating embedded blend trees. 2024-03-25 22:26:29 +01:00
Martin Felis 99f11e61d8 Refactored AnimGraphResourceTests such that some tests use reusable fixtures. 2024-03-25 21:10:27 +01:00
Martin Felis 116bf7699b Added support of saving and loading of embedded blend tree resources. 2024-03-24 21:50:22 +01:00
Martin Felis 3a7f470acf Fixed memory leak in ResourceSaveLoadMathGraphInputs test. 2024-03-22 12:25:42 +01:00
Martin Felis e687c9b613 Restored AnimGraphResourceTests. 2024-03-20 22:40:46 +01:00
Martin Felis ccb9bc4e9b Working on unified BlendTree and StateMachine handling. 2024-03-17 22:06:27 +01:00
Martin Felis c7d2d195a3 Updated ozz-animation to version 0.14.3 (commit 92c392b667844) 2024-03-17 12:47:11 +01:00
Martin Felis 1ef53d6486 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	src/AnimGraph/AnimGraphEditor.cc
2024-03-16 20:08:45 +01:00
Martin Felis fdb2b6ffc5 Some progress with new graph editor. 2024-03-16 19:49:41 +01:00
Martin Felis a5af917f4b Updated imgui-node-editor to commit 32dc92e 2024-03-03 20:22:06 +01:00
Martin Felis a79ffaa420 WIP: new anim graph editor can show loaded graph. 2024-03-03 20:20:24 +01:00
Martin Felis e61180c4a7 WIP: implementation of new anim graph editor. 2024-03-01 14:26:52 +01:00
Martin Felis 8388fbfe3e Better separated 3D view and graph editor navigation. 2024-03-01 14:00:14 +01:00
Martin Felis dc958dcabd Fixed some clang-tidy warnings. 2024-03-01 13:59:00 +01:00
Martin Felis 8b7de58131 Disable ozz tests by default. 2024-03-01 11:13:05 +01:00
Martin Felis 4f0331f941 Fixed sgl initialization on my laptop. 2023-05-13 09:30:13 +02:00
Martin Felis 8c68737f62 Fixed referenced filenames in AnimGraphResourceTests. 2023-04-21 12:39:09 +02:00
Martin Felis 8dfc8dd05c Started thedmd/imgui-node-editor integration 2023-04-21 11:55:36 +02:00
Martin Felis 2dbf8373a8 imnodes: fixed compatibility with dear imgui 1.89.5 2023-04-21 10:04:04 +02:00
Martin Felis c809fe0c8c Fixed various clang-tidy messages. 2023-04-21 10:04:04 +02:00
Martin Felis c659909020 Fixed loading of graphs in the GraphEditor. 2023-04-21 10:04:04 +02:00
Martin Felis 9a1a82f681 Fixed loading of graphs in the GraphEditor. 2023-04-15 21:52:01 +02:00
Martin Felis 3f609310e2 Properly enabled docking for the application. 2023-04-15 00:24:24 +02:00
Martin Felis 26d070c4d3 Using latest imgui docking branch. 2023-04-15 00:23:52 +02:00
Martin Felis 72bcf8a21b Updated ozz-animation to version 0.14.1. 2023-04-15 00:07:29 +02:00
Martin Felis eb70c06c57 Updated sokol to latest git commit 1d48f3a. 2023-04-15 00:06:12 +02:00
Martin Felis 2e631b4fc3 Updated imgui to 1.89.5 2023-04-14 17:44:25 +02:00
Martin Felis 509f9616ad Scene now rendered to separate widget. 2023-04-14 17:21:53 +02:00
Martin Felis e8ef7924d2 Fixed Blend2Node::UpdateFlags(). 2023-04-03 19:31:09 +02:00
Martin Felis 0a45497de9 Added LockTranslationNode. 2023-04-02 21:40:49 +02:00
Martin Felis 7c8b44247b Fixed SpeedScale node not properly propagating time. 2023-04-02 21:24:12 +02:00
Martin Felis abf44a875a Added support for const node inputs. 2023-04-02 16:26:24 +02:00
Martin Felis 42303d5f47 Store the input values of nodes if they are non-zero. 2023-04-01 22:53:53 +02:00
Martin Felis 3d55b748e6 Refactored anim graph data usage and evaluation.
- Refactored NodeSocketAccessor to NodeDescriptor.
- Connections are wired up during AnimGraph instantiation.
  - Output and input sockets point to the same memory location.
  - No re-wiring needed during evaluation.
  - AnimGraph are pre-allocated (refactoring for less memory usage postponed).
- Evaluation of AnimGraph now possible from the editor.
2023-04-01 14:16:20 +02:00
Martin Felis 91607baa9d Initial step for connectivity refactor.
Instead of wiring up pointers with prepareNodeEval() and finishNodeEval() use for each connection a single memory block where outputs and inputs point to.
2023-03-30 23:50:07 +02:00
Martin Felis 411aa5ef20 Better split between runtime library and editor. 2023-03-30 18:11:54 +02:00
Martin Felis 9168dec9f9 Added NodeDescriptor::UpdateFlags() to set Blend2 weight input flags. 2023-03-30 16:53:09 +02:00
Martin Felis 9dd10e8f27 Initial version of NodeDescriptor which aims to replace NodeSocketAccessor. 2023-03-29 22:25:09 +02:00
Martin Felis 08283d9bcf Evaluation of very simple graphs works. 2023-03-28 22:00:58 +02:00
Martin Felis e38c0b4934 Started working on graph initialization in ATP Editor. 2023-03-26 23:39:11 +02:00
Martin Felis a1931185d8 Simple AnimationPlayer now working. 2023-03-26 18:53:32 +02:00
Martin Felis 80ea25483b Started working on the animation player widget. 2023-03-26 15:01:44 +02:00
Martin Felis 7152fa74e1 Added SkinnedMeshResource 2023-03-26 13:28:12 +02:00
Martin Felis 15871f349c Updated ozz-animation to version 0.14.1 @35b2efd4 2023-03-26 13:28:12 +02:00
Martin Felis bf3189ff49 Some more improvements of editor persistence. 2023-03-26 13:28:12 +02:00
Martin Felis 3d387a5dad Better serialization of application state. 2023-03-25 23:50:03 +01:00
Martin Felis 8a91c7700a Minor UI improvements. 2023-03-16 23:51:49 +01:00
Martin Felis aa9ab1def1 Added missing test data 2022-10-18 22:34:01 +02:00
Martin Felis 2a8a5a5e40 Use std::list for animation data eval buffer.. 2022-04-18 23:14:34 +02:00
Martin Felis 68331467f0 Refactored graph evaluations. 2022-04-18 20:02:16 +02:00
Martin Felis 5e7a48b2eb WIP: graph evaluations. Fixed various memory issues, better tests. 2022-04-14 18:03:36 +02:00
Martin Felis 2da07ef961 Working on graph evaluations. WIP. 2022-04-13 15:48:39 +02:00
Martin Felis b518220576 Added test which creates skeleton and animation during runtime. 2022-04-13 11:14:29 +02:00
Martin Felis eeef635c64 Initial works for actial animation sampling and graph evaluation. 2022-04-11 16:46:09 +02:00
Martin Felis bf0c7a7daa Added Tests for MathAdd Node 2022-04-11 11:40:53 +02:00
Martin Felis e7314e3477 imnodes: pin coloring and connectivity logic 2022-04-08 12:48:04 +02:00
Martin Felis 5d8c1e289b Initial graph evaluations, added Float to Vec3 Node, minor editor tweaks. 2022-04-03 21:05:11 +02:00
Martin Felis 08ae84fcb4 New evaluation scheme.
- Animation Data are always referenced via a pointer in nodes.
- Animation Data storage pointers are injected from graph when node is evaluated.
- Node value outputs always stored in node.
- Node value inputs always referenced via pointer. References are created when instantiating the graph.
2022-04-01 13:19:54 +02:00
Martin Felis abddbea62b Refactoring. 2022-03-25 12:05:56 +01:00
Martin Felis 6c0c0599f8 Removed old animation graph code. 2022-03-25 11:51:37 +01:00
Martin Felis 72a67195e6 Use socket pointers instead of indices for connections. 2022-03-25 11:23:03 +01:00
Martin Felis 84a9ef6f14 Use node pointer to check whether we use graph input/output nodes instead of indices. 2022-03-25 11:03:53 +01:00
Martin Felis 2f646bc5ec Simpler conversion SocketType <-> Strings. 2022-03-25 10:59:12 +01:00
Martin Felis 73e7a60875 Minor cleanup. 2022-02-24 23:47:31 +01:00
Martin Felis 976875c218 Added index member to node, preparing synctrack and node evaluation. 2022-02-24 22:55:40 +01:00
Martin Felis d6453911e2 Removed node input splitting. 2022-02-24 22:06:47 +01:00
Martin Felis 306a2cb4d8 Minor fix to node input splitting. Not sure it is a good idea anymore, though... 2022-02-22 22:49:12 +01:00
Martin Felis ef74f39cf4 Splitted animation and data node inputs. 2022-02-22 22:34:13 +01:00
Martin Felis af5d27db85 Simple time propagation works. 2022-02-22 22:03:26 +01:00