| Flutter Impeller |

Public Member Functions | List of all members
impeller::scene::ScaleTimelineResolver Class Referencefinal

`#include <property_resolver.h>`

Inheritance diagram for impeller::scene::ScaleTimelineResolver:

## Public Member Functions
| ~ScaleTimelineResolver ()
void | Apply (AnimationTransforms &target, SecondsF time, Scalar weight) override
| Resolve and apply the property value to a target node. This operation is additive; a given node property may be amended by many different PropertyResolvers prior to rendering. For example, an AnimationPlayer may blend multiple Animations together by applying several AnimationClips. More...
Public Member Functions inherited from impeller::scene::TimelineResolver
virtual | ~TimelineResolver ()
SecondsF | GetEndTime ()
Public Member Functions inherited from impeller::scene::PropertyResolver
virtual | ~PropertyResolver ()

## Additional Inherited Members
Static Public Member Functions inherited from impeller::scene::PropertyResolver
static std::unique_ptr< TranslationTimelineResolver > | MakeTranslationTimeline (std::vector< Scalar > times, std::vector< Vector3 > values)
static std::unique_ptr< RotationTimelineResolver > | MakeRotationTimeline (std::vector< Scalar > times, std::vector< Quaternion > values)
static std::unique_ptr< ScaleTimelineResolver > | MakeScaleTimeline (std::vector< Scalar > times, std::vector< Vector3 > values)
Protected Member Functions inherited from impeller::scene::TimelineResolver
TimelineKey | GetTimelineKey (SecondsF time)
Protected Attributes inherited from impeller::scene::TimelineResolver
std::vector< Scalar > | times_

## Detailed Description

Definition at line 114 of file property_resolver.h.

## Constructor & Destructor Documentation

## ◆ ~ScaleTimelineResolver()

impeller::scene::ScaleTimelineResolver::~ScaleTimelineResolver | ( |  | ) |
| default

## Member Function Documentation

## ◆ Apply()

void impeller::scene::ScaleTimelineResolver::Apply | ( | AnimationTransforms & | target,
|  | SecondsF | time,
|  | Scalar | weight
| ) |  |
| override virtual

Resolve and apply the property value to a target node. This operation is additive; a given node property may be amended by many different PropertyResolvers prior to rendering. For example, an AnimationPlayer may blend multiple Animations together by applying several AnimationClips.

Implements impeller::scene::PropertyResolver.

Definition at line 123 of file property_resolver.cc.

125 {
126 if (values_.empty()) {
127 return;
128 }
129 auto key = GetTimelineKey(time);
130 auto value = values_[key.index];
131 if (key.lerp < 1) {
132 value = values_[key.index - 1].Lerp(value, key.lerp);
133 }
134
135 target.animated_pose.scale *=
136 Vector3(1, 1, 1).Lerp(value / target.bind_pose.scale, weight);
137 }

References impeller::scene::AnimationTransforms::animated_pose, impeller::scene::AnimationTransforms::bind_pose, impeller::scene::TimelineResolver::GetTimelineKey(), impeller::Vector3::Lerp(), and impeller::MatrixDecomposition::scale.

The documentation for this class was generated from the following files:

- impeller/scene/animation/property_resolver.h
- impeller/scene/animation/property_resolver.cc

impeller::scene::TimelineResolver::GetTimelineKey
TimelineKey GetTimelineKey(SecondsF time)
Definition: property_resolver.cc:62