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

Side by Side Diff: third_party/WebKit/Source/core/svg/SVGTransformDistance.cpp

Issue 2748223002: Replace ASSERT_NOT_REACHED with NOTREACHED in core/svg/ (Closed)
Patch Set: Created 3 years, 9 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) 2007 Eric Seidel <eric@webkit.org> 2 * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 29 matching lines...) Expand all
40 m_transform(transform) {} 40 m_transform(transform) {}
41 41
42 SVGTransformDistance::SVGTransformDistance(SVGTransform* fromSVGTransform, 42 SVGTransformDistance::SVGTransformDistance(SVGTransform* fromSVGTransform,
43 SVGTransform* toSVGTransform) 43 SVGTransform* toSVGTransform)
44 : m_angle(0), m_cx(0), m_cy(0) { 44 : m_angle(0), m_cx(0), m_cy(0) {
45 m_transformType = fromSVGTransform->transformType(); 45 m_transformType = fromSVGTransform->transformType();
46 ASSERT(m_transformType == toSVGTransform->transformType()); 46 ASSERT(m_transformType == toSVGTransform->transformType());
47 47
48 switch (m_transformType) { 48 switch (m_transformType) {
49 case kSvgTransformMatrix: 49 case kSvgTransformMatrix:
50 ASSERT_NOT_REACHED(); 50 NOTREACHED();
51 case kSvgTransformUnknown: 51 case kSvgTransformUnknown:
52 break; 52 break;
53 case kSvgTransformRotate: { 53 case kSvgTransformRotate: {
54 FloatSize centerDistance = 54 FloatSize centerDistance =
55 toSVGTransform->rotationCenter() - fromSVGTransform->rotationCenter(); 55 toSVGTransform->rotationCenter() - fromSVGTransform->rotationCenter();
56 m_angle = toSVGTransform->angle() - fromSVGTransform->angle(); 56 m_angle = toSVGTransform->angle() - fromSVGTransform->angle();
57 m_cx = centerDistance.width(); 57 m_cx = centerDistance.width();
58 m_cy = centerDistance.height(); 58 m_cy = centerDistance.height();
59 break; 59 break;
60 } 60 }
(...skipping 16 matching lines...) Expand all
77 case kSvgTransformSkewy: 77 case kSvgTransformSkewy:
78 m_angle = toSVGTransform->angle() - fromSVGTransform->angle(); 78 m_angle = toSVGTransform->angle() - fromSVGTransform->angle();
79 break; 79 break;
80 } 80 }
81 } 81 }
82 82
83 SVGTransformDistance SVGTransformDistance::scaledDistance( 83 SVGTransformDistance SVGTransformDistance::scaledDistance(
84 float scaleFactor) const { 84 float scaleFactor) const {
85 switch (m_transformType) { 85 switch (m_transformType) {
86 case kSvgTransformMatrix: 86 case kSvgTransformMatrix:
87 ASSERT_NOT_REACHED(); 87 NOTREACHED();
88 case kSvgTransformUnknown: 88 case kSvgTransformUnknown:
89 return SVGTransformDistance(); 89 return SVGTransformDistance();
90 case kSvgTransformRotate: 90 case kSvgTransformRotate:
91 return SVGTransformDistance(m_transformType, m_angle * scaleFactor, 91 return SVGTransformDistance(m_transformType, m_angle * scaleFactor,
92 m_cx * scaleFactor, m_cy * scaleFactor, 92 m_cx * scaleFactor, m_cy * scaleFactor,
93 AffineTransform()); 93 AffineTransform());
94 case kSvgTransformScale: 94 case kSvgTransformScale:
95 return SVGTransformDistance( 95 return SVGTransformDistance(
96 m_transformType, m_angle * scaleFactor, m_cx * scaleFactor, 96 m_transformType, m_angle * scaleFactor, m_cx * scaleFactor,
97 m_cy * scaleFactor, AffineTransform(m_transform).scale(scaleFactor)); 97 m_cy * scaleFactor, AffineTransform(m_transform).scale(scaleFactor));
98 case kSvgTransformTranslate: { 98 case kSvgTransformTranslate: {
99 AffineTransform newTransform(m_transform); 99 AffineTransform newTransform(m_transform);
100 newTransform.setE(m_transform.e() * scaleFactor); 100 newTransform.setE(m_transform.e() * scaleFactor);
101 newTransform.setF(m_transform.f() * scaleFactor); 101 newTransform.setF(m_transform.f() * scaleFactor);
102 return SVGTransformDistance(m_transformType, 0, 0, 0, newTransform); 102 return SVGTransformDistance(m_transformType, 0, 0, 0, newTransform);
103 } 103 }
104 case kSvgTransformSkewx: 104 case kSvgTransformSkewx:
105 case kSvgTransformSkewy: 105 case kSvgTransformSkewy:
106 return SVGTransformDistance(m_transformType, m_angle * scaleFactor, 106 return SVGTransformDistance(m_transformType, m_angle * scaleFactor,
107 m_cx * scaleFactor, m_cy * scaleFactor, 107 m_cx * scaleFactor, m_cy * scaleFactor,
108 AffineTransform()); 108 AffineTransform());
109 } 109 }
110 110
111 ASSERT_NOT_REACHED(); 111 NOTREACHED();
112 return SVGTransformDistance(); 112 return SVGTransformDistance();
113 } 113 }
114 114
115 SVGTransform* SVGTransformDistance::addSVGTransforms(SVGTransform* first, 115 SVGTransform* SVGTransformDistance::addSVGTransforms(SVGTransform* first,
116 SVGTransform* second, 116 SVGTransform* second,
117 unsigned repeatCount) { 117 unsigned repeatCount) {
118 ASSERT(first->transformType() == second->transformType()); 118 ASSERT(first->transformType() == second->transformType());
119 119
120 SVGTransform* transform = SVGTransform::create(); 120 SVGTransform* transform = SVGTransform::create();
121 121
122 switch (first->transformType()) { 122 switch (first->transformType()) {
123 case kSvgTransformMatrix: 123 case kSvgTransformMatrix:
124 ASSERT_NOT_REACHED(); 124 NOTREACHED();
125 case kSvgTransformUnknown: 125 case kSvgTransformUnknown:
126 return transform; 126 return transform;
127 case kSvgTransformRotate: { 127 case kSvgTransformRotate: {
128 transform->setRotate(first->angle() + second->angle() * repeatCount, 128 transform->setRotate(first->angle() + second->angle() * repeatCount,
129 first->rotationCenter().x() + 129 first->rotationCenter().x() +
130 second->rotationCenter().x() * repeatCount, 130 second->rotationCenter().x() * repeatCount,
131 first->rotationCenter().y() + 131 first->rotationCenter().y() +
132 second->rotationCenter().y() * repeatCount); 132 second->rotationCenter().y() * repeatCount);
133 return transform; 133 return transform;
134 } 134 }
(...skipping 10 matching lines...) Expand all
145 transform->setScale(scale.width(), scale.height()); 145 transform->setScale(scale.width(), scale.height());
146 return transform; 146 return transform;
147 } 147 }
148 case kSvgTransformSkewx: 148 case kSvgTransformSkewx:
149 transform->setSkewX(first->angle() + second->angle() * repeatCount); 149 transform->setSkewX(first->angle() + second->angle() * repeatCount);
150 return transform; 150 return transform;
151 case kSvgTransformSkewy: 151 case kSvgTransformSkewy:
152 transform->setSkewY(first->angle() + second->angle() * repeatCount); 152 transform->setSkewY(first->angle() + second->angle() * repeatCount);
153 return transform; 153 return transform;
154 } 154 }
155 ASSERT_NOT_REACHED(); 155 NOTREACHED();
156 return transform; 156 return transform;
157 } 157 }
158 158
159 SVGTransform* SVGTransformDistance::addToSVGTransform( 159 SVGTransform* SVGTransformDistance::addToSVGTransform(
160 SVGTransform* transform) const { 160 SVGTransform* transform) const {
161 DCHECK(m_transformType == transform->transformType() || 161 DCHECK(m_transformType == transform->transformType() ||
162 m_transformType == kSvgTransformUnknown); 162 m_transformType == kSvgTransformUnknown);
163 163
164 SVGTransform* newTransform = transform->clone(); 164 SVGTransform* newTransform = transform->clone();
165 165
166 switch (m_transformType) { 166 switch (m_transformType) {
167 case kSvgTransformMatrix: 167 case kSvgTransformMatrix:
168 ASSERT_NOT_REACHED(); 168 NOTREACHED();
169 case kSvgTransformUnknown: 169 case kSvgTransformUnknown:
170 return SVGTransform::create(); 170 return SVGTransform::create();
171 case kSvgTransformTranslate: { 171 case kSvgTransformTranslate: {
172 FloatPoint translation = transform->translate(); 172 FloatPoint translation = transform->translate();
173 translation += 173 translation +=
174 FloatSize::narrowPrecision(m_transform.e(), m_transform.f()); 174 FloatSize::narrowPrecision(m_transform.e(), m_transform.f());
175 newTransform->setTranslate(translation.x(), translation.y()); 175 newTransform->setTranslate(translation.x(), translation.y());
176 return newTransform; 176 return newTransform;
177 } 177 }
178 case kSvgTransformScale: { 178 case kSvgTransformScale: {
179 FloatSize scale = transform->scale(); 179 FloatSize scale = transform->scale();
180 scale += FloatSize::narrowPrecision(m_transform.a(), m_transform.d()); 180 scale += FloatSize::narrowPrecision(m_transform.a(), m_transform.d());
181 newTransform->setScale(scale.width(), scale.height()); 181 newTransform->setScale(scale.width(), scale.height());
182 return newTransform; 182 return newTransform;
183 } 183 }
184 case kSvgTransformRotate: { 184 case kSvgTransformRotate: {
185 FloatPoint center = transform->rotationCenter(); 185 FloatPoint center = transform->rotationCenter();
186 newTransform->setRotate(transform->angle() + m_angle, center.x() + m_cx, 186 newTransform->setRotate(transform->angle() + m_angle, center.x() + m_cx,
187 center.y() + m_cy); 187 center.y() + m_cy);
188 return newTransform; 188 return newTransform;
189 } 189 }
190 case kSvgTransformSkewx: 190 case kSvgTransformSkewx:
191 newTransform->setSkewX(transform->angle() + m_angle); 191 newTransform->setSkewX(transform->angle() + m_angle);
192 return newTransform; 192 return newTransform;
193 case kSvgTransformSkewy: 193 case kSvgTransformSkewy:
194 newTransform->setSkewY(transform->angle() + m_angle); 194 newTransform->setSkewY(transform->angle() + m_angle);
195 return newTransform; 195 return newTransform;
196 } 196 }
197 197
198 ASSERT_NOT_REACHED(); 198 NOTREACHED();
199 return newTransform; 199 return newTransform;
200 } 200 }
201 201
202 float SVGTransformDistance::distance() const { 202 float SVGTransformDistance::distance() const {
203 switch (m_transformType) { 203 switch (m_transformType) {
204 case kSvgTransformMatrix: 204 case kSvgTransformMatrix:
205 ASSERT_NOT_REACHED(); 205 NOTREACHED();
206 case kSvgTransformUnknown: 206 case kSvgTransformUnknown:
207 return 0; 207 return 0;
208 case kSvgTransformRotate: 208 case kSvgTransformRotate:
209 return sqrtf(m_angle * m_angle + m_cx * m_cx + m_cy * m_cy); 209 return sqrtf(m_angle * m_angle + m_cx * m_cx + m_cy * m_cy);
210 case kSvgTransformScale: 210 case kSvgTransformScale:
211 return static_cast<float>(sqrt(m_transform.a() * m_transform.a() + 211 return static_cast<float>(sqrt(m_transform.a() * m_transform.a() +
212 m_transform.d() * m_transform.d())); 212 m_transform.d() * m_transform.d()));
213 case kSvgTransformTranslate: 213 case kSvgTransformTranslate:
214 return static_cast<float>(sqrt(m_transform.e() * m_transform.e() + 214 return static_cast<float>(sqrt(m_transform.e() * m_transform.e() +
215 m_transform.f() * m_transform.f())); 215 m_transform.f() * m_transform.f()));
216 case kSvgTransformSkewx: 216 case kSvgTransformSkewx:
217 case kSvgTransformSkewy: 217 case kSvgTransformSkewy:
218 return m_angle; 218 return m_angle;
219 } 219 }
220 ASSERT_NOT_REACHED(); 220 NOTREACHED();
221 return 0; 221 return 0;
222 } 222 }
223 223
224 } // namespace blink 224 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/svg/SVGTransform.cpp ('k') | third_party/WebKit/Source/core/svg/SVGTransformList.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698