template<typename Value, typename Property, class PropertyManager>
bn::cyclic_by_value_template_action class

Modifies the property of a value by delta from a minimum to a maximum. When the property is over the given maximum, it goes back to the given minimum and vice versa.

Template parameters
Value Value to modify.
Property Property of the value to modify.
PropertyManager Reads and writes the property of the value to modify.

Constructors, destructors, conversion operators

cyclic_by_value_template_action(const Value& value, const Property& delta_property, const Property& min_property, const Property& after_max_property) protected
Constructor.
cyclic_by_value_template_action(Value&& value, const Property& delta_property, const Property& min_property, const Property& after_max_property) protected
Constructor.

Public functions

void reset()
Resets the property to its initial state.
void update()
Adds delta_property to the property.

Protected functions

auto value() const -> const Value&
Returns the value to modify.
auto delta_property() const -> const Property&
Returns how much to add to the property when the action is updated.
void set_min_property(const Property& min_property)
Sets the minimum property.
void set_after_max_property(const Property& after_max_property)
Sets the immediate amount after the maximum property.

Function documentation

template<typename Value, typename Property, class PropertyManager>
bn::cyclic_by_value_template_action<Value, Property, PropertyManager>::cyclic_by_value_template_action(const Value& value, const Property& delta_property, const Property& min_property, const Property& after_max_property) protected

Constructor.

Parameters
value Value to copy.
delta_property How much to add to the property when the action is updated.
min_property Minimum property.
after_max_property Immediate amount after the maximum property.

template<typename Value, typename Property, class PropertyManager>
bn::cyclic_by_value_template_action<Value, Property, PropertyManager>::cyclic_by_value_template_action(Value&& value, const Property& delta_property, const Property& min_property, const Property& after_max_property) protected

Constructor.

Parameters
value Value to move.
delta_property How much to add to the property when the action is updated.
min_property Minimum property.
after_max_property Immediate amount after the maximum property.

template<typename Value, typename Property, class PropertyManager>
void bn::cyclic_by_value_template_action<Value, Property, PropertyManager>::update()

Adds delta_property to the property.

When the property reaches the maximum, it goes back to the minimum and vice versa.