Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: Source/platform/transforms/RotateTransformOperation.h

Issue 1196913005: Implement animations for Independent CSS Transform Properties (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix rotate-interpolation test Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 static bool shareSameAxis(const RotateTransformOperation* fromRotation, cons t RotateTransformOperation* toRotation, FloatPoint3D* axis, double* fromAngle, d ouble* toAngle); 50 static bool shareSameAxis(const RotateTransformOperation* fromRotation, cons t RotateTransformOperation* toRotation, FloatPoint3D* axis, double* fromAngle, d ouble* toAngle);
51 51
52 virtual bool canBlendWith(const TransformOperation& other) const; 52 virtual bool canBlendWith(const TransformOperation& other) const;
53 virtual OperationType type() const override { return m_type; } 53 virtual OperationType type() const override { return m_type; }
54 54
55 virtual void apply(TransformationMatrix& transform, const FloatSize& /*borde rBoxSize*/) const override 55 virtual void apply(TransformationMatrix& transform, const FloatSize& /*borde rBoxSize*/) const override
56 { 56 {
57 transform.rotate3d(m_x, m_y, m_z, m_angle); 57 transform.rotate3d(m_x, m_y, m_z, m_angle);
58 } 58 }
59 59
60 static bool isMatchingOperationType(OperationType type) { return type == Rot ate || type == RotateX || type == RotateY || type == RotateZ || type == Rotate3D ; }
61
60 private: 62 private:
61 virtual bool operator==(const TransformOperation& o) const override 63 virtual bool operator==(const TransformOperation& o) const override
62 { 64 {
63 if (!isSameType(o)) 65 if (!isSameType(o))
64 return false; 66 return false;
65 const RotateTransformOperation* r = static_cast<const RotateTransformOpe ration*>(&o); 67 const RotateTransformOperation* r = static_cast<const RotateTransformOpe ration*>(&o);
66 return m_x == r->m_x && m_y == r->m_y && m_z == r->m_z && m_angle == r-> m_angle; 68 return m_x == r->m_x && m_y == r->m_y && m_z == r->m_z && m_angle == r-> m_angle;
67 } 69 }
68 70
69 virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false) override; 71 virtual PassRefPtr<TransformOperation> blend(const TransformOperation* from, double progress, bool blendToIdentity = false) override;
70 72
71 RotateTransformOperation(double x, double y, double z, double angle, Operati onType type) 73 RotateTransformOperation(double x, double y, double z, double angle, Operati onType type)
72 : m_x(x) 74 : m_x(x)
73 , m_y(y) 75 , m_y(y)
74 , m_z(z) 76 , m_z(z)
75 , m_angle(angle) 77 , m_angle(angle)
76 , m_type(type) 78 , m_type(type)
77 { 79 {
78 ASSERT(type == RotateX || type == RotateY || type == RotateZ || type == Rotate3D); 80 ASSERT(isMatchingOperationType(type));
79 } 81 }
80 82
81 double m_x; 83 double m_x;
82 double m_y; 84 double m_y;
83 double m_z; 85 double m_z;
84 double m_angle; 86 double m_angle;
85 OperationType m_type; 87 OperationType m_type;
86 }; 88 };
87 89
90 DEFINE_TRANSFORM_TYPE_CASTS(RotateTransformOperation);
91
88 } // namespace blink 92 } // namespace blink
89 93
90 #endif // RotateTransformOperation_h 94 #endif // RotateTransformOperation_h
OLDNEW
« no previous file with comments | « Source/core/css/resolver/AnimatedStyleBuilder.cpp ('k') | Source/platform/transforms/ScaleTransformOperation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698