OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) | 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 int fromSize = from.operations().size(); | 275 int fromSize = from.operations().size(); |
276 int toSize = operations().size(); | 276 int toSize = operations().size(); |
277 int size = std::max(fromSize, toSize); | 277 int size = std::max(fromSize, toSize); |
278 | 278 |
279 *bounds = box; | 279 *bounds = box; |
280 for (int i = size - 1; i >= 0; i--) { | 280 for (int i = size - 1; i >= 0; i--) { |
281 RefPtr<TransformOperation> fromOperation = | 281 RefPtr<TransformOperation> fromOperation = |
282 (i < fromSize) ? from.operations()[i] : nullptr; | 282 (i < fromSize) ? from.operations()[i] : nullptr; |
283 RefPtr<TransformOperation> toOperation = | 283 RefPtr<TransformOperation> toOperation = |
284 (i < toSize) ? operations()[i] : nullptr; | 284 (i < toSize) ? operations()[i] : nullptr; |
285 if (fromOperation && fromOperation->type() == TransformOperation::None) | |
286 fromOperation = nullptr; | |
287 | 285 |
288 if (toOperation && toOperation->type() == TransformOperation::None) | 286 DCHECK(fromOperation || toOperation); |
289 toOperation = nullptr; | |
290 | |
291 TransformOperation::OperationType interpolationType = | 287 TransformOperation::OperationType interpolationType = |
292 toOperation | 288 toOperation ? toOperation->type() : fromOperation->type(); |
293 ? toOperation->type() | |
294 : fromOperation ? fromOperation->type() : TransformOperation::None; | |
295 if (fromOperation && toOperation && | 289 if (fromOperation && toOperation && |
296 !fromOperation->canBlendWith(*toOperation.get())) | 290 !fromOperation->canBlendWith(*toOperation.get())) |
297 return false; | 291 return false; |
298 | 292 |
299 switch (interpolationType) { | 293 switch (interpolationType) { |
300 case TransformOperation::Identity: | 294 case TransformOperation::Identity: |
301 bounds->expandTo(box); | 295 bounds->expandTo(box); |
302 continue; | 296 continue; |
303 case TransformOperation::Translate: | 297 case TransformOperation::Translate: |
304 case TransformOperation::TranslateX: | 298 case TransformOperation::TranslateX: |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
400 *bounds = boundsForArc; | 394 *bounds = boundsForArc; |
401 first = false; | 395 first = false; |
402 } else { | 396 } else { |
403 bounds->expandTo(boundsForArc); | 397 bounds->expandTo(boundsForArc); |
404 } | 398 } |
405 } | 399 } |
406 } | 400 } |
407 } | 401 } |
408 } | 402 } |
409 continue; | 403 continue; |
410 case TransformOperation::None: | |
411 continue; | |
412 case TransformOperation::Matrix: | 404 case TransformOperation::Matrix: |
413 case TransformOperation::Matrix3D: | 405 case TransformOperation::Matrix3D: |
414 case TransformOperation::Interpolated: | 406 case TransformOperation::Interpolated: |
415 case TransformOperation::RotateAroundOrigin: | 407 case TransformOperation::RotateAroundOrigin: |
416 return false; | 408 return false; |
417 } | 409 } |
418 } | 410 } |
419 | 411 |
420 return true; | 412 return true; |
421 } | 413 } |
422 | 414 |
423 TransformOperations TransformOperations::add( | 415 TransformOperations TransformOperations::add( |
424 const TransformOperations& addend) const { | 416 const TransformOperations& addend) const { |
425 TransformOperations result; | 417 TransformOperations result; |
426 result.m_operations = operations(); | 418 result.m_operations = operations(); |
427 result.m_operations.appendVector(addend.operations()); | 419 result.m_operations.appendVector(addend.operations()); |
428 return result; | 420 return result; |
429 } | 421 } |
430 | 422 |
431 TransformOperations TransformOperations::zoom(double factor) const { | 423 TransformOperations TransformOperations::zoom(double factor) const { |
432 TransformOperations result; | 424 TransformOperations result; |
433 for (auto& transformOperation : m_operations) | 425 for (auto& transformOperation : m_operations) |
434 result.m_operations.append(transformOperation->zoom(factor)); | 426 result.m_operations.append(transformOperation->zoom(factor)); |
435 return result; | 427 return result; |
436 } | 428 } |
437 | 429 |
438 } // namespace blink | 430 } // namespace blink |
OLD | NEW |