summaryrefslogtreecommitdiffstats
path: root/ui/gfx/interpolated_transform.cc
diff options
context:
space:
mode:
authorbehara.ms <behara.ms@samsung.com>2014-10-12 11:22:07 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-12 18:22:25 +0000
commite8966b432e46bdae10cdcec4e396317176992132 (patch)
tree47301dbdb68e4d6c8c85af1dbf00932a0ff6c7d9 /ui/gfx/interpolated_transform.cc
parentf33d8525c7148bc111b552f2c842b997af96ad0a (diff)
downloadchromium_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.cc24
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;
}