diff options
author | behara.ms <behara.ms@samsung.com> | 2014-10-12 11:22:07 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-12 18:22:25 +0000 |
commit | e8966b432e46bdae10cdcec4e396317176992132 (patch) | |
tree | 47301dbdb68e4d6c8c85af1dbf00932a0ff6c7d9 /ui/gfx/interpolated_transform.cc | |
parent | f33d8525c7148bc111b552f2c842b997af96ad0a (diff) | |
download | chromium_src-e8966b432e46bdae10cdcec4e396317176992132.zip chromium_src-e8966b432e46bdae10cdcec4e396317176992132.tar.gz chromium_src-e8966b432e46bdae10cdcec4e396317176992132.tar.bz2 |
Extending support for 3d in gfx::InterpolatedScale and gfx::InterpolatedTranslation
Previously InterpolatedScale and InterpolatedTranslation supported only 2d Translate and 2d Scale.
Added support for 3d Translate and Scale.
Review URL: https://codereview.chromium.org/642323002
Cr-Commit-Position: refs/heads/master@{#299258}
Diffstat (limited to 'ui/gfx/interpolated_transform.cc')
-rw-r--r-- | ui/gfx/interpolated_transform.cc | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/ui/gfx/interpolated_transform.cc b/ui/gfx/interpolated_transform.cc index 4c807f1..693b656 100644 --- a/ui/gfx/interpolated_transform.cc +++ b/ui/gfx/interpolated_transform.cc @@ -230,8 +230,8 @@ gfx::Transform InterpolatedScale::InterpolateButDoNotCompose(float t) const { gfx::Transform result; float scale_x = ValueBetween(t, start_scale_.x(), end_scale_.x()); float scale_y = ValueBetween(t, start_scale_.y(), end_scale_.y()); - // TODO(vollick) 3d xforms. - result.Scale(scale_x, scale_y); + float scale_z = ValueBetween(t, start_scale_.z(), end_scale_.z()); + result.Scale3d(scale_x, scale_y, scale_z); return result; } @@ -255,14 +255,28 @@ InterpolatedTranslation::InterpolatedTranslation(const gfx::Point& start_pos, end_pos_(end_pos) { } +InterpolatedTranslation::InterpolatedTranslation(const gfx::Point3F& start_pos, + const gfx::Point3F& end_pos) + : InterpolatedTransform(), start_pos_(start_pos), end_pos_(end_pos) { +} + +InterpolatedTranslation::InterpolatedTranslation(const gfx::Point3F& start_pos, + const gfx::Point3F& end_pos, + float start_time, + float end_time) + : InterpolatedTransform(start_time, end_time), + start_pos_(start_pos), + end_pos_(end_pos) { +} + InterpolatedTranslation::~InterpolatedTranslation() {} gfx::Transform InterpolatedTranslation::InterpolateButDoNotCompose(float t) const { gfx::Transform result; - // TODO(vollick) 3d xforms. - result.Translate(ValueBetween(t, start_pos_.x(), end_pos_.x()), - ValueBetween(t, start_pos_.y(), end_pos_.y())); + result.Translate3d(ValueBetween(t, start_pos_.x(), end_pos_.x()), + ValueBetween(t, start_pos_.y(), end_pos_.y()), + ValueBetween(t, start_pos_.z(), end_pos_.z())); return result; } |