| Index: ui/gfx/interpolated_transform.h
|
| diff --git a/ui/gfx/interpolated_transform.h b/ui/gfx/interpolated_transform.h
|
| index b2220a83527fcdb17d70b384b60cb43ac0cbb851..9bc4bbb5adc9de33884babd61718d58a20100810 100644
|
| --- a/ui/gfx/interpolated_transform.h
|
| +++ b/ui/gfx/interpolated_transform.h
|
| @@ -9,6 +9,7 @@
|
| #include "base/basictypes.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "ui/gfx/point.h"
|
| +#include "ui/gfx/point3.h"
|
| #include "ui/gfx/transform.h"
|
|
|
| namespace ui {
|
| @@ -41,6 +42,11 @@ class UI_EXPORT InterpolatedTransform {
|
| // This function takes ownership of the passed InterpolatedTransform.
|
| void SetChild(InterpolatedTransform* child);
|
|
|
| + static bool FactorTRS(const ui::Transform& transform,
|
| + gfx::Point* translation,
|
| + float* rotation,
|
| + gfx::Point3f* scale);
|
| +
|
| protected:
|
| // Calculates the interpolated transform without considering our child.
|
| virtual ui::Transform InterpolateButDoNotCompose(float t) const = 0;
|
| @@ -53,6 +59,9 @@ class UI_EXPORT InterpolatedTransform {
|
| // it returns end_value.
|
| float ValueBetween(float time, float start_value, float end_value) const;
|
|
|
| + float start_time() const { return start_time_; }
|
| + float end_time() const { return end_time_; }
|
| +
|
| private:
|
| const float start_time_;
|
| const float end_time_;
|
| @@ -100,8 +109,12 @@ class UI_EXPORT InterpolatedRotation : public InterpolatedTransform {
|
| class UI_EXPORT InterpolatedScale : public InterpolatedTransform {
|
| public:
|
| InterpolatedScale(float start_scale, float end_scale);
|
| - InterpolatedScale(float start_scale,
|
| - float end_scale,
|
| + InterpolatedScale(float start_scale, float end_scale,
|
| + float start_time, float end_time);
|
| + InterpolatedScale(const gfx::Point3f& start_scale,
|
| + const gfx::Point3f& end_scale);
|
| + InterpolatedScale(const gfx::Point3f& start_scale,
|
| + const gfx::Point3f& end_scale,
|
| float start_time,
|
| float end_time);
|
| virtual ~InterpolatedScale();
|
| @@ -110,8 +123,8 @@ class UI_EXPORT InterpolatedScale : public InterpolatedTransform {
|
| virtual ui::Transform InterpolateButDoNotCompose(float t) const OVERRIDE;
|
|
|
| private:
|
| - const float start_scale_;
|
| - const float end_scale_;
|
| + const gfx::Point3f start_scale_;
|
| + const gfx::Point3f end_scale_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(InterpolatedScale);
|
| };
|
| @@ -181,7 +194,7 @@ class UI_EXPORT InterpolatedTransformAboutPivot : public InterpolatedTransform {
|
| virtual ~InterpolatedTransformAboutPivot();
|
|
|
| protected:
|
| - virtual ui::Transform InterpolateButDoNotCompose(float t) const OVERRIDE;
|
| + virtual Transform InterpolateButDoNotCompose(float t) const OVERRIDE;
|
|
|
| private:
|
| void Init(const gfx::Point& pivot, InterpolatedTransform* transform);
|
| @@ -191,6 +204,28 @@ class UI_EXPORT InterpolatedTransformAboutPivot : public InterpolatedTransform {
|
| DISALLOW_COPY_AND_ASSIGN(InterpolatedTransformAboutPivot);
|
| };
|
|
|
| +class UI_EXPORT InterpolatedTRSTransform : public InterpolatedTransform {
|
| + public:
|
| + InterpolatedTRSTransform(const Transform& start_transform,
|
| + const Transform& end_transform);
|
| +
|
| + InterpolatedTRSTransform(const Transform& start_transform,
|
| + const Transform& end_transform,
|
| + float start_time,
|
| + float end_time);
|
| +
|
| + virtual ~InterpolatedTRSTransform();
|
| +
|
| + protected:
|
| + virtual Transform InterpolateButDoNotCompose(float t) const OVERRIDE;
|
| +
|
| + private:
|
| + void Init(const ui::Transform& start_transform,
|
| + const ui::Transform& end_transform);
|
| +
|
| + scoped_ptr<InterpolatedTransform> transform_;
|
| +};
|
| +
|
| } // namespace ui
|
|
|
| #endif // UI_GFX_INTERPOLATED_TRANSFORM_H_
|
|
|