1 #ifndef MSP_GAME_TRANSFORMPROPAGATOR_H_
2 #define MSP_GAME_TRANSFORMPROPAGATOR_H_
4 #include "eventobserver.h"
13 class TransformPropagator: public System
16 struct ParentedTransform
18 Handle<Transform> transform;
19 Handle<Transform> parent;
22 EventObserver observer;
23 std::vector<ParentedTransform> transforms;
24 bool transforms_dirty = true;
27 TransformPropagator(Stage &);
29 void tick(Time::TimeDelta) override;
32 void rebuild_transform_order();
33 void rebuild_transform_order(Handle<Entity>, Handle<Transform>);
36 } // namespace Msp::Game