CInterpolatorBase Class

Implements a callback, which is called by the Animation API when it has to calculate a new value of an animation variable.

Syntax

class CInterpolatorBase : public CUIAnimationInterpolatorBase<CInterpolatorBase>;

Members

Public Constructors

Name Description
CInterpolatorBase::CInterpolatorBase Constructs the CInterpolatorBase object.

Public Methods

Name Description
CInterpolatorBase::CreateInstance Creates an instance of CInterpolatorBase and stores a pointer to custom interpolator, which will be handling events.
CInterpolatorBase::GetDependencies Gets the interpolator's dependencies. (Overrides CUIAnimationInterpolatorBase::GetDependencies.)
CInterpolatorBase::GetDuration Gets the interpolator's duration. (Overrides CUIAnimationInterpolatorBase::GetDuration.)
CInterpolatorBase::GetFinalValue Gets the final value to which the interpolator leads. (Overrides CUIAnimationInterpolatorBase::GetFinalValue.)
CInterpolatorBase::InterpolateValue Interpolates the value at a given offset (Overrides CUIAnimationInterpolatorBase::InterpolateValue.)
CInterpolatorBase::InterpolateVelocity Interpolates the velocity at a given offset (Overrides CUIAnimationInterpolatorBase::InterpolateVelocity.)
CInterpolatorBase::SetCustomInterpolator Stores a pointer to custom interpolator, which will be handling events.
CInterpolatorBase::SetDuration Sets the interpolator's duration (Overrides CUIAnimationInterpolatorBase::SetDuration.)
CInterpolatorBase::SetInitialValueAndVelocity Sets the interpolator's initial value and velocity. (Overrides CUIAnimationInterpolatorBase::SetInitialValueAndVelocity.)

Remarks

This handler is created and passed to IUIAnimationTransitionFactory::CreateTransition when a CCustomTransition object is being created as a part of animation initialization process (started by CAnimationController::AnimateGroup). Usually you don't need to use this class directly, it just routs all events to a CCustomInterpolator-derived class, whose pointer is passed to constructor of CCustomTransition.

Inheritance Hierarchy

CUIAnimationCallbackBase

CUIAnimationInterpolatorBase

CInterpolatorBase

Requirements

Header: afxanimationcontroller.h

CInterpolatorBase::CInterpolatorBase

Constructs the CInterpolatorBase object.

CInterpolatorBase();

CInterpolatorBase::CreateInstance

Creates an instance of CInterpolatorBase and stores a pointer to custom interpolator, which will be handling events.

static COM_DECLSPEC_NOTHROW HRESULT CreateInstance(
    CCustomInterpolator* pInterpolator,
    IUIAnimationInterpolator** ppHandler);

Parameters

pInterpolator
A pointer to custom interpolator.

ppHandler
Output. Contains a pointer to instance of CInterpolatorBase when the function returns.

Return Value

CInterpolatorBase::GetDependencies

Gets the interpolator's dependencies.

IFACEMETHOD(GetDependencies)(
    __out UI_ANIMATION_DEPENDENCIES* initialValueDependencies,
    __out UI_ANIMATION_DEPENDENCIES* initialVelocityDependencies,
    __out UI_ANIMATION_DEPENDENCIES* durationDependencies);

Parameters

initialValueDependencies
Output. Aspects of the interpolator that depend on the initial value passed to SetInitialValueAndVelocity.

initialVelocityDependencies
Output. Aspects of the interpolator that depend on the initial velocity passed to SetInitialValueAndVelocity.

durationDependencies
Output. Aspects of the interpolator that depend on the duration passed to SetDuration.

Return Value

If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not set, or custom implementation returns FALSE from the GetDependencies method.

CInterpolatorBase::GetDuration

Gets the interpolator's duration.

IFACEMETHOD(GetDuration)(__out UI_ANIMATION_SECONDS* duration);

Parameters

duration
Output. The duration of the transition, in seconds.

Return Value

If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not set, or custom implementation returns FALSE from the GetDuration method.

CInterpolatorBase::GetFinalValue

Gets the final value to which the interpolator leads.

IFACEMETHOD(GetFinalValue)(__out DOUBLE* value);

Parameters

value
Output. The final value of a variable at the end of the transition.

Return Value

If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not set, or custom implementation returns FALSE from the GetFinalValue method.

CInterpolatorBase::InterpolateValue

Interpolates the value at a given offset

IFACEMETHOD(InterpolateValue)(
    __in UI_ANIMATION_SECONDS offset,
    __out DOUBLE* value);

Parameters

offset
The offset from the start of the transition. The offset is always greater than or equal to zero and less than the duration of the transition. This method is not called if the duration of the transition is zero.

value
Output. The interpolated value.

Return Value

If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not set, or custom implementation returns FALSE from the InterpolateValue method.

CInterpolatorBase::InterpolateVelocity

Interpolates the velocity at a given offset

IFACEMETHOD(InterpolateVelocity)(
    __in UI_ANIMATION_SECONDS offset,
    __out DOUBLE* velocity);

Parameters

offset
The offset from the start of the transition. The offset is always greater than or equal to zero and less than or equal to the duration of the transition. This method is not called if the duration of the transition is zero.

velocity
Output. The velocity of the variable at the offset.

Return Value

If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not set, or custom implementation returns FALSE from the InterpolateVelocity method.

CInterpolatorBase::SetCustomInterpolator

Stores a pointer to custom interpolator, which will be handling events.

void SetCustomInterpolator(CCustomInterpolator* pInterpolator);

Parameters

pInterpolator
A pointer to custom interpolator.

CInterpolatorBase::SetDuration

Sets the interpolator's duration

IFACEMETHOD(SetDuration)(__in UI_ANIMATION_SECONDS duration);

Parameters

duration
The duration of the transition.

Return Value

If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not set, or custom implementation returns FALSE from the SetDuration method.

CInterpolatorBase::SetInitialValueAndVelocity

Sets the interpolator's initial value and velocity.

IFACEMETHOD(SetInitialValueAndVelocity)(
    __in DOUBLE initialValue,
    __in DOUBLE initialVelocity);

Parameters

initialValue
The value of the variable at the start of the transition.

initialVelocity
The velocity of the variable at the start of the transition.

Return Value

If the method succeeds, it returns S_OK. It returns E_FAIL if CCustomInterpolator is not set, or custom implementation returns FALSE from the SetInitialValueAndVelocity method.

See also

Classes