5 #ifndef FLUTTER_IMPELLER_SCENE_NODE_H_
6 #define FLUTTER_IMPELLER_SCENE_NODE_H_
13 #include "flutter/fml/macros.h"
52 variant<SetTransformEntry, SetAnimationStateEntry, SeekAnimationEntry>;
57 std::optional<std::vector<Entry>> Flush();
60 bool dirty_ IPLR_GUARDED_BY(write_mutex_) =
false;
61 std::vector<Entry> entries_ IPLR_GUARDED_BY(write_mutex_);
67 const fml::Mapping& ipscene_mapping,
75 const std::string&
GetName()
const;
76 void SetName(
const std::string& new_name);
81 const std::string& name,
82 bool exclude_animation_players =
false)
const;
93 bool AddChild(std::shared_ptr<Node> child);
104 const Matrix& parent_transform);
109 void UnpackFromFlatbuffer(
110 const fb::Node& node,
111 const std::vector<std::shared_ptr<Node>>& scene_nodes,
112 const std::vector<std::shared_ptr<Texture>>& textures,
120 bool is_root_ =
false;
121 bool is_joint_ =
false;
122 Node* parent_ =
nullptr;
123 std::vector<std::shared_ptr<Node>> children_;
127 std::vector<std::shared_ptr<Animation>> animations_;
128 mutable std::optional<AnimationPlayer> animation_player_;
130 std::unique_ptr<Skin> skin_;
134 Node& operator=(
const Node&) =
delete;
142 #endif // FLUTTER_IMPELLER_SCENE_NODE_H_