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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 int fromSize = from.operations().size(); | 276 int fromSize = from.operations().size(); |
277 int toSize = operations().size(); | 277 int toSize = operations().size(); |
278 int size = std::max(fromSize, toSize); | 278 int size = std::max(fromSize, toSize); |
279 | 279 |
280 *bounds = box; | 280 *bounds = box; |
281 for (int i = size - 1; i >= 0; i--) { | 281 for (int i = size - 1; i >= 0; i--) { |
282 RefPtr<TransformOperation> fromOperation = | 282 RefPtr<TransformOperation> fromOperation = |
283 (i < fromSize) ? from.operations()[i] : nullptr; | 283 (i < fromSize) ? from.operations()[i] : nullptr; |
284 RefPtr<TransformOperation> toOperation = | 284 RefPtr<TransformOperation> toOperation = |
285 (i < toSize) ? operations()[i] : nullptr; | 285 (i < toSize) ? operations()[i] : nullptr; |
286 if (fromOperation && fromOperation->type() == TransformOperation::None) | |
287 fromOperation = nullptr; | |
288 | 286 |
289 if (toOperation && toOperation->type() == TransformOperation::None) | 287 DCHECK(fromOperation || toOperation); |
290 toOperation = nullptr; | |
291 | |
292 TransformOperation::OperationType interpolationType = | 288 TransformOperation::OperationType interpolationType = |
293 toOperation | 289 toOperation ? toOperation->type() : fromOperation->type(); |
294 ? toOperation->type() | |
295 : fromOperation ? fromOperation->type() : TransformOperation::None; | |
296 if (fromOperation && toOperation && | 290 if (fromOperation && toOperation && |
297 !fromOperation->canBlendWith(*toOperation.get())) | 291 !fromOperation->canBlendWith(*toOperation.get())) |
298 return false; | 292 return false; |
299 | 293 |
300 switch (interpolationType) { | 294 switch (interpolationType) { |
301 case TransformOperation::Identity: | 295 case TransformOperation::Identity: |
302 bounds->expandTo(box); | 296 bounds->expandTo(box); |
303 continue; | 297 continue; |
304 case TransformOperation::Translate: | 298 case TransformOperation::Translate: |
305 case TransformOperation::TranslateX: | 299 case TransformOperation::TranslateX: |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 *bounds = boundsForArc; | 395 *bounds = boundsForArc; |
402 first = false; | 396 first = false; |
403 } else { | 397 } else { |
404 bounds->expandTo(boundsForArc); | 398 bounds->expandTo(boundsForArc); |
405 } | 399 } |
406 } | 400 } |
407 } | 401 } |
408 } | 402 } |
409 } | 403 } |
410 continue; | 404 continue; |
411 case TransformOperation::None: | |
412 continue; | |
413 case TransformOperation::Matrix: | 405 case TransformOperation::Matrix: |
414 case TransformOperation::Matrix3D: | 406 case TransformOperation::Matrix3D: |
415 case TransformOperation::Interpolated: | 407 case TransformOperation::Interpolated: |
416 case TransformOperation::RotateAroundOrigin: | 408 case TransformOperation::RotateAroundOrigin: |
417 return false; | 409 return false; |
418 } | 410 } |
419 } | 411 } |
420 | 412 |
421 return true; | 413 return true; |
422 } | 414 } |
423 | 415 |
424 TransformOperations TransformOperations::add( | 416 TransformOperations TransformOperations::add( |
425 const TransformOperations& addend) const { | 417 const TransformOperations& addend) const { |
426 TransformOperations result; | 418 TransformOperations result; |
427 result.m_operations = operations(); | 419 result.m_operations = operations(); |
428 result.m_operations.appendVector(addend.operations()); | 420 result.m_operations.appendVector(addend.operations()); |
429 return result; | 421 return result; |
430 } | 422 } |
431 | 423 |
432 TransformOperations TransformOperations::zoom(double factor) const { | 424 TransformOperations TransformOperations::zoom(double factor) const { |
433 TransformOperations result; | 425 TransformOperations result; |
434 for (auto& transformOperation : m_operations) | 426 for (auto& transformOperation : m_operations) |
435 result.m_operations.push_back(transformOperation->zoom(factor)); | 427 result.m_operations.push_back(transformOperation->zoom(factor)); |
436 return result; | 428 return result; |
437 } | 429 } |
438 | 430 |
439 } // namespace blink | 431 } // namespace blink |
OLD | NEW |