| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Samsung Electronics. All rights reserved. | 2 * Copyright (C) 2013 Samsung Electronics. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 return 0; | 123 return 0; |
| 124 return AsPath().length(); | 124 return AsPath().length(); |
| 125 } | 125 } |
| 126 | 126 |
| 127 SVGPointTearOff* SVGGeometryElement::getPointAtLength(float length) { | 127 SVGPointTearOff* SVGGeometryElement::getPointAtLength(float length) { |
| 128 GetDocument().UpdateStyleAndLayoutIgnorePendingStylesheets(); | 128 GetDocument().UpdateStyleAndLayoutIgnorePendingStylesheets(); |
| 129 | 129 |
| 130 FloatPoint point; | 130 FloatPoint point; |
| 131 if (GetLayoutObject()) | 131 if (GetLayoutObject()) |
| 132 point = AsPath().PointAtLength(length); | 132 point = AsPath().PointAtLength(length); |
| 133 return SVGPointTearOff::Create(SVGPoint::Create(point), 0, | 133 return SVGPointTearOff::CreateDetached(point); |
| 134 kPropertyIsNotAnimVal); | |
| 135 } | 134 } |
| 136 | 135 |
| 137 float SVGGeometryElement::ComputePathLength() const { | 136 float SVGGeometryElement::ComputePathLength() const { |
| 138 return AsPath().length(); | 137 return AsPath().length(); |
| 139 } | 138 } |
| 140 | 139 |
| 141 float SVGGeometryElement::PathLengthScaleFactor() const { | 140 float SVGGeometryElement::PathLengthScaleFactor() const { |
| 142 if (!pathLength()->IsSpecified()) | 141 if (!pathLength()->IsSpecified()) |
| 143 return 1; | 142 return 1; |
| 144 float author_path_length = pathLength()->CurrentValue()->Value(); | 143 float author_path_length = pathLength()->CurrentValue()->Value(); |
| 145 if (author_path_length < 0) | 144 if (author_path_length < 0) |
| 146 return 1; | 145 return 1; |
| 147 if (!author_path_length) | 146 if (!author_path_length) |
| 148 return 0; | 147 return 0; |
| 149 DCHECK(GetLayoutObject()); | 148 DCHECK(GetLayoutObject()); |
| 150 float computed_path_length = ComputePathLength(); | 149 float computed_path_length = ComputePathLength(); |
| 151 if (!computed_path_length) | 150 if (!computed_path_length) |
| 152 return 1; | 151 return 1; |
| 153 return computed_path_length / author_path_length; | 152 return computed_path_length / author_path_length; |
| 154 } | 153 } |
| 155 | 154 |
| 156 LayoutObject* SVGGeometryElement::CreateLayoutObject(const ComputedStyle&) { | 155 LayoutObject* SVGGeometryElement::CreateLayoutObject(const ComputedStyle&) { |
| 157 // By default, any subclass is expected to do path-based drawing. | 156 // By default, any subclass is expected to do path-based drawing. |
| 158 return new LayoutSVGPath(this); | 157 return new LayoutSVGPath(this); |
| 159 } | 158 } |
| 160 | 159 |
| 161 } // namespace blink | 160 } // namespace blink |
| OLD | NEW |