Skip to content

# Class evam::CurveDecor

template <class TMotor, signed short tBend>

ClassList > evam > CurveDecor

Decorator that applies an S-curve (nonlinear) transformation to the control signal. More...

- `#include <evamCurveDecor.h>`

Inherits the following classes: TMotor

## Public Functions

Type | Name
--- | ---
| CurveDecor ()
| CurveDecor (CurveConfig config, Args... args)
signed short | GetBend () const Get the current bend intensity value.
void | Go (signed short aValue) Apply the curved transformation and pass to the underlying motor.
void | SetBend (signed short aValue) Set the bend intensity at runtime.

## Detailed Description

Converts linear input into an S-shaped curve, useful for smoother starts and finer control in the mid-range. Positive bend values create a softer start, negative values create a sharper initial response.

Template parameters:

- `Motor` Base motor class (must implement Go(signed short))
- `kBend` Bend intensity. Range: -10..10. 0 = linear.

## Public Functions Documentation

### function CurveDecor [1/2]

    inline evam::CurveDecor::CurveDecor ()

### function CurveDecor [2/2]

    template<typename... Args>
    inline evam::CurveDecor::CurveDecor (
        CurveConfig config,
        Args... args
    )

### function GetBend

Get the current bend intensity value.

    inline signed short evam::CurveDecor::GetBend () const

Returns:

Current bend value in range -10..10.

### function Go

Apply the curved transformation and pass to the underlying motor.

    inline void evam::CurveDecor::Go (
        signed short aValue
    )

Parameters:

- `aValue` Input control value, range -1000..1000.

### function SetBend

Set the bend intensity at runtime.

    inline void evam::CurveDecor::SetBend (
        signed short aValue
    )

Parameters:

- `aValue` Bend value, clamped to -10..10.

The documentation for this class was generated from the following file `src/evamCurveDecor.h`