29#ifndef NOMLIB_ACTIONS_SEQUENCE_ACTION_HPP
30#define NOMLIB_ACTIONS_SEQUENCE_ACTION_HPP
35#include "nomlib/config.hpp"
36#include "nomlib/actions/IActionObject.hpp"
48 typedef IActionObject derived_type;
58 virtual std::unique_ptr<IActionObject>
clone()
const override;
64 virtual void pause(real32 delta_time)
override;
66 virtual void resume(real32 delta_time)
override;
68 virtual void rewind(real32 delta_time)
override;
86 static const char* DEBUG_CLASS_NAME;
89 update(real32 delta_time, uint32 direction);
91 typedef std::vector<std::shared_ptr<IActionObject>> container_type;
92 typedef container_type::iterator container_iterator;
94 const container_type& actions()
const;
98 container_iterator actions_iterator_;
FrameState
The update status of the action.
std::function< real32(real32, real32, real32, real32)> timing_curve_func
A function pointer to a timing mode.
real32 speed() const
Get the speed modifier of the action.
std::vector< std::shared_ptr< IActionObject > > action_list
A collection of actions.
virtual void release() override
Free externally referenced resources held by the action.
nom::size_type num_completed_
The total number of completed actions.
virtual std::unique_ptr< IActionObject > clone() const override
Create a deep copy instance of the action.
SequenceAction(const action_list &actions)
Run a collection of actions sequentially.
virtual void set_timing_curve(const IActionObject::timing_curve_func &mode) override
Set the timing mode of the child actions.
virtual void set_speed(real32 speed) override
Set the speed factor of the child actions.
virtual void rewind(real32 delta_time) override
Reset the internal state of the action back to its initial starting values.
friend class ActionTest
Allow access into our private parts for unit testing.
virtual void pause(real32 delta_time) override
Freeze the action's internal state.
virtual IActionObject::FrameState next_frame(real32 delta_time) override
Play the action forward in time by one time step.
container_type actions_
The child actions.
virtual IActionObject::FrameState prev_frame(real32 delta_time) override
Play the action backwards in time by one time step.
nom::size_type num_actions_
The total number of actions at the time of construction.
virtual void resume(real32 delta_time) override
Resume the internal state of the action.