#pragma once #include #include class Mesh; struct Keyframe { int time = 0; glm::vec3 valueVec3 = glm::vec3(0); int valueInt = 0; }; enum class AnimationProperty { Position, Target, FoV }; struct Animation { Mesh* target = nullptr; std::string targetName; AnimationProperty property = AnimationProperty::Position; std::vector keyframes; }; struct CinematicMesh { std::string name, modelPath, materialPath; }; struct Shot { int start = 0, end = 0; bool loaded = false; std::string world; std::vector meshes; std::vector loadedMeshes; std::vector animations; }; class Cinematic { public: std::vector shots; };