1 #ifndef MSP_GAME_TRANSFORMPROPAGATOR_H_
2 #define MSP_GAME_TRANSFORMPROPAGATOR_H_
4 #include "eventobserver.h"
6 #include "mspgame_api.h"
14 class MSPGAME_API TransformPropagator: public System
17 struct ParentedTransform
19 Handle<Transform> transform;
20 Handle<Transform> parent;
23 EventObserver observer;
24 std::vector<ParentedTransform> transforms;
25 bool transforms_dirty = true;
28 TransformPropagator(Stage &);
30 void tick(Time::TimeDelta) override;
33 void rebuild_transform_order();
34 void rebuild_transform_order(Handle<Entity>, Handle<Transform>);
37 } // namespace Msp::Game