| Index: ui/gfx/interpolated_transform.h
|
| diff --git a/ui/gfx/interpolated_transform.h b/ui/gfx/interpolated_transform.h
|
| deleted file mode 100644
|
| index dea52b4596184fde559f001540a63372f2555b21..0000000000000000000000000000000000000000
|
| --- a/ui/gfx/interpolated_transform.h
|
| +++ /dev/null
|
| @@ -1,271 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef UI_GFX_INTERPOLATED_TRANSFORM_H_
|
| -#define UI_GFX_INTERPOLATED_TRANSFORM_H_
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "ui/gfx/point.h"
|
| -#include "ui/gfx/point3_f.h"
|
| -#include "ui/gfx/transform.h"
|
| -#include "ui/gfx/transform_util.h"
|
| -#include "ui/gfx/vector3d_f.h"
|
| -
|
| -namespace ui {
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// class InterpolatedTransform
|
| -//
|
| -// Abstract base class for transforms that animate over time. These
|
| -// interpolated transforms can be combined to allow for more sophisticated
|
| -// animations. For example, you might combine a rotation of 90 degrees between
|
| -// times 0 and 1, with a scale from 1 to 0.3 between times 0 and 0.25 and a
|
| -// scale from 0.3 to 1 from between times 0.75 and 1.
|
| -//
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -class GFX_EXPORT InterpolatedTransform {
|
| - public:
|
| - InterpolatedTransform();
|
| - // The interpolated transform varies only when t in (start_time, end_time).
|
| - // If t <= start_time, Interpolate(t) will return the initial transform, and
|
| - // if t >= end_time, Interpolate(t) will return the final transform.
|
| - InterpolatedTransform(float start_time, float end_time);
|
| - virtual ~InterpolatedTransform();
|
| -
|
| - // Returns the interpolated transform at time t. Note: not virtual.
|
| - gfx::Transform Interpolate(float t) const;
|
| -
|
| - // The Intepolate ultimately returns the product of our transform at time t
|
| - // and our child's transform at time t (if we have one).
|
| - //
|
| - // This function takes ownership of the passed InterpolatedTransform.
|
| - void SetChild(InterpolatedTransform* child);
|
| -
|
| - // If the interpolated transform is reversed, Interpolate(t) will return
|
| - // Interpolate(1 - t)
|
| - void SetReversed(bool reversed) { reversed_ = reversed; }
|
| - bool Reversed() const { return reversed_; }
|
| -
|
| - protected:
|
| - // Calculates the interpolated transform without considering our child.
|
| - virtual gfx::Transform InterpolateButDoNotCompose(float t) const = 0;
|
| -
|
| - // If time in (start_time_, end_time_], this function linearly interpolates
|
| - // between start_value and end_value. More precisely it returns
|
| - // (1 - t) * start_value + t * end_value where
|
| - // t = (start_time_ - time) / (end_time_ - start_time_).
|
| - // If time < start_time_ it returns start_value, and if time >= end_time_
|
| - // 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_;
|
| -
|
| - // The child transform. If you consider an interpolated transform as a
|
| - // function of t. If, without a child, we are f(t), and our child is
|
| - // g(t), then with a child we become f'(t) = f(t) * g(t). Using a child
|
| - // transform, we can chain collections of transforms together.
|
| - scoped_ptr<InterpolatedTransform> child_;
|
| -
|
| - bool reversed_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterpolatedTransform);
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// class InterpolatedRotation
|
| -//
|
| -// Represents an animated rotation.
|
| -//
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -class GFX_EXPORT InterpolatedRotation : public InterpolatedTransform {
|
| - public:
|
| - InterpolatedRotation(float start_degrees, float end_degrees);
|
| - InterpolatedRotation(float start_degrees,
|
| - float end_degrees,
|
| - float start_time,
|
| - float end_time);
|
| - ~InterpolatedRotation() override;
|
| -
|
| - protected:
|
| - gfx::Transform InterpolateButDoNotCompose(float t) const override;
|
| -
|
| - private:
|
| - const float start_degrees_;
|
| - const float end_degrees_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterpolatedRotation);
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// class InterpolatedAxisAngleRotation
|
| -//
|
| -// Represents an animated rotation.
|
| -//
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -class GFX_EXPORT InterpolatedAxisAngleRotation : public InterpolatedTransform {
|
| - public:
|
| - InterpolatedAxisAngleRotation(const gfx::Vector3dF& axis,
|
| - float start_degrees,
|
| - float end_degrees);
|
| - InterpolatedAxisAngleRotation(const gfx::Vector3dF& axis,
|
| - float start_degrees,
|
| - float end_degrees,
|
| - float start_time,
|
| - float end_time);
|
| - ~InterpolatedAxisAngleRotation() override;
|
| -
|
| - protected:
|
| - gfx::Transform InterpolateButDoNotCompose(float t) const override;
|
| -
|
| - private:
|
| - gfx::Vector3dF axis_;
|
| - const float start_degrees_;
|
| - const float end_degrees_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterpolatedAxisAngleRotation);
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// class InterpolatedScale
|
| -//
|
| -// Represents an animated scale.
|
| -//
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -class GFX_EXPORT InterpolatedScale : public InterpolatedTransform {
|
| - public:
|
| - 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);
|
| - ~InterpolatedScale() override;
|
| -
|
| - protected:
|
| - gfx::Transform InterpolateButDoNotCompose(float t) const override;
|
| -
|
| - private:
|
| - const gfx::Point3F start_scale_;
|
| - const gfx::Point3F end_scale_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterpolatedScale);
|
| -};
|
| -
|
| -class GFX_EXPORT InterpolatedTranslation : public InterpolatedTransform {
|
| - public:
|
| - InterpolatedTranslation(const gfx::Point& start_pos,
|
| - const gfx::Point& end_pos);
|
| - InterpolatedTranslation(const gfx::Point& start_pos,
|
| - const gfx::Point& end_pos,
|
| - float start_time,
|
| - float end_time);
|
| - InterpolatedTranslation(const gfx::Point3F& start_pos,
|
| - const gfx::Point3F& end_pos);
|
| - InterpolatedTranslation(const gfx::Point3F& start_pos,
|
| - const gfx::Point3F& end_pos,
|
| - float start_time,
|
| - float end_time);
|
| - ~InterpolatedTranslation() override;
|
| -
|
| - protected:
|
| - gfx::Transform InterpolateButDoNotCompose(float t) const override;
|
| -
|
| - private:
|
| - const gfx::Point3F start_pos_;
|
| - const gfx::Point3F end_pos_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterpolatedTranslation);
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// class InterpolatedConstantTransform
|
| -//
|
| -// Represents a transform that is constant over time. This is only useful when
|
| -// composed with other interpolated transforms.
|
| -//
|
| -// See InterpolatedTransformAboutPivot for an example of its usage.
|
| -//
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -class GFX_EXPORT InterpolatedConstantTransform : public InterpolatedTransform {
|
| - public:
|
| - explicit InterpolatedConstantTransform(const gfx::Transform& transform);
|
| - ~InterpolatedConstantTransform() override;
|
| -
|
| - protected:
|
| - gfx::Transform InterpolateButDoNotCompose(float t) const override;
|
| -
|
| - private:
|
| - const gfx::Transform transform_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterpolatedConstantTransform);
|
| -};
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// class InterpolatedTransformAboutPivot
|
| -//
|
| -// Represents an animated transform with a transformed origin. Essentially,
|
| -// at each time, t, the interpolated transform is created by composing
|
| -// P * T * P^-1 where P is a constant transform to the new origin.
|
| -//
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -class GFX_EXPORT InterpolatedTransformAboutPivot
|
| - : public InterpolatedTransform {
|
| - public:
|
| - // Takes ownership of the passed transform.
|
| - InterpolatedTransformAboutPivot(const gfx::Point& pivot,
|
| - InterpolatedTransform* transform);
|
| -
|
| - // Takes ownership of the passed transform.
|
| - InterpolatedTransformAboutPivot(const gfx::Point& pivot,
|
| - InterpolatedTransform* transform,
|
| - float start_time,
|
| - float end_time);
|
| - ~InterpolatedTransformAboutPivot() override;
|
| -
|
| - protected:
|
| - gfx::Transform InterpolateButDoNotCompose(float t) const override;
|
| -
|
| - private:
|
| - void Init(const gfx::Point& pivot, InterpolatedTransform* transform);
|
| -
|
| - scoped_ptr<InterpolatedTransform> transform_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(InterpolatedTransformAboutPivot);
|
| -};
|
| -
|
| -class GFX_EXPORT InterpolatedMatrixTransform : public InterpolatedTransform {
|
| - public:
|
| - InterpolatedMatrixTransform(const gfx::Transform& start_transform,
|
| - const gfx::Transform& end_transform);
|
| -
|
| - InterpolatedMatrixTransform(const gfx::Transform& start_transform,
|
| - const gfx::Transform& end_transform,
|
| - float start_time,
|
| - float end_time);
|
| -
|
| - ~InterpolatedMatrixTransform() override;
|
| -
|
| - protected:
|
| - gfx::Transform InterpolateButDoNotCompose(float t) const override;
|
| -
|
| - private:
|
| - void Init(const gfx::Transform& start_transform,
|
| - const gfx::Transform& end_transform);
|
| -
|
| - gfx::DecomposedTransform start_decomp_;
|
| - gfx::DecomposedTransform end_decomp_;
|
| -};
|
| -
|
| -} // namespace ui
|
| -
|
| -#endif // UI_GFX_INTERPOLATED_TRANSFORM_H_
|
|
|