vkmEngine 1.0.0
A C++ game engine · vkmengine.com
Loading...
Searching...
No Matches
bone_socket_system.h
1#pragma once
2
3#include "core/system.h"
4#include "debug/fault_latch.h"
5
6namespace Vkm::Engine {
7
17class BoneSocketSystem : public System {
18 public:
19 BoneSocketSystem() = default;
20 ~BoneSocketSystem() override = default;
21
22 BoneSocketSystem(const BoneSocketSystem& other) = delete;
23 BoneSocketSystem& operator=(const BoneSocketSystem& other) = delete;
24
25 BoneSocketSystem(BoneSocketSystem && other) = delete;
26 BoneSocketSystem& operator=(BoneSocketSystem && other) = delete;
27
28 public:
29 void update(FrameContext& ctx) override;
30
31 private:
37 void placeSockets(FrameContext& ctx);
38
39 private:
40 // Each is silent on screen (an unplaced socket stays where it was), so each is logged; one latch
41 // per fault, so one never silences another.
42 FaultLatch m_noPublishedPose;
43 FaultLatch m_noTransform;
44 FaultLatch m_unrooted;
45 FaultLatch m_noSkeleton;
46 FaultLatch m_bonelessSkeleton;
47 FaultLatch m_noBone;
48};
49
50} // namespace Vkm::Engine
void update(FrameContext &ctx) override
Execute this system for the current frame.
Names a recurring fault once per gap rather than once a frame.
Definition fault_latch.h:11
Per-frame state bundle passed to every system.
Definition system.h:55