Toast Engine
Loading...
Searching...
No Matches
input::IModifier Class Referenceabstract

Polymorphic base for all modifiers. More...

#include <modifier.hpp>

Inheritance diagram for input::IModifier:

Public Member Functions

 IModifier (const IModifier &)=default
auto operator= (const IModifier &) -> IModifier &=default
virtual void apply (Value &value, const EvalContext &ctx)=0
 Transforms a value in place.
virtual auto name () const -> std::string_view=0

Static Public Member Functions

static auto fromToml (const toml::table &table) -> std::shared_ptr< IModifier >
 Builds a modifier from a TOML table keyed by its "name" field.

Detailed Description

Polymorphic base for all modifiers.

Member Function Documentation

◆ apply()

virtual void input::IModifier::apply ( Value & value,
const EvalContext & ctx )
pure virtual

Transforms a value in place.

Parameters
valueThe value to modify; its type tag is preserved
ctxFrame context, used by the key and delta-time modifiers

Implemented in input::DeadzoneModifier, input::ExponentialModifier, input::InvertModifier, input::KeyModifier, input::ScaleByDeltaTimeModifier, input::ScaleModifier, and input::SmoothModifier.

◆ fromToml()

auto input::IModifier::fromToml ( const toml::table & table) -> std::shared_ptr< IModifier >
static

Builds a modifier from a TOML table keyed by its "name" field.

Parameters
tableThe [[modifier]] table
Returns
A new modifier, or nullptr when the name is unknown
Here is the caller graph for this function:

◆ name()

virtual auto input::IModifier::name ( ) const -> std::string_view
nodiscardpure virtual

The documentation for this class was generated from the following files:
  • engine/src/toast/input/modifier.hpp
  • engine/src/toast/input/modifier.cpp