Skip to main content
Version: 🚧 Nightly

File animation.h

Location: animation.h

Classes​

Namespaces​

Includes​

Included by​

Source​

#ifndef f3d_animation_h
#define f3d_animation_h

#include "export.h"
#include "options.h"
#include "window.h"

namespace f3d
{
class F3D_EXPORT animation
{
public:
virtual animation& loadTime(double timeValue) = 0;

[[nodiscard]] virtual std::pair<double, double> getTimeRange() = 0;

[[nodiscard]] virtual std::vector<double> getKeyFrames() = 0;

[[nodiscard]] virtual unsigned int count() const = 0;

[[nodiscard]] virtual std::string getName(std::optional<int> index = std::nullopt) const = 0;

[[nodiscard]] virtual std::vector<std::string> getNames() const = 0;

enum class Direction : std::uint8_t
{
FORWARD,
BACKWARD
};

virtual animation& toggle(Direction direction = Direction::FORWARD) = 0;

virtual animation& start(Direction direction = Direction::FORWARD) = 0;

virtual animation& stop() = 0;

[[nodiscard]] virtual bool isPlaying() = 0;

[[nodiscard]] virtual animation::Direction getDirection() = 0;

protected:
animation() = default;
virtual ~animation() = default;
animation(const animation& opt) = delete;
animation(animation&& opt) = delete;
animation& operator=(const animation& opt) = delete;
animation& operator=(animation&& opt) = delete;
};
}

#endif