Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 #ifndef SkPathOpsTypes_DEFINED | 7 #ifndef SkPathOpsTypes_DEFINED |
| 8 #define SkPathOpsTypes_DEFINED | 8 #define SkPathOpsTypes_DEFINED |
| 9 | 9 |
| 10 #include <float.h> // for FLT_EPSILON | 10 #include <float.h> // for FLT_EPSILON |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 160 float fDebugWorstWeight[6]; | 160 float fDebugWorstWeight[6]; |
| 161 #endif | 161 #endif |
| 162 }; | 162 }; |
| 163 | 163 |
| 164 // Use Almost Equal when comparing coordinates. Use epsilon to compare T values. | 164 // Use Almost Equal when comparing coordinates. Use epsilon to compare T values. |
| 165 bool AlmostEqualUlps(float a, float b); | 165 bool AlmostEqualUlps(float a, float b); |
| 166 inline bool AlmostEqualUlps(double a, double b) { | 166 inline bool AlmostEqualUlps(double a, double b) { |
| 167 return AlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | 167 return AlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); |
| 168 } | 168 } |
| 169 | 169 |
| 170 bool AlmostEqualUlps_Pin(float a, float b); | |
|
reed1
2015/12/15 14:17:21
Pin didn't convey anything obvious to me when I sa
| |
| 171 inline bool AlmostEqualUlps_Pin(double a, double b) { | |
| 172 return AlmostEqualUlps_Pin(SkDoubleToScalar(a), SkDoubleToScalar(b)); | |
| 173 } | |
| 174 | |
| 170 // Use Almost Dequal when comparing should not special case denormalized values. | 175 // Use Almost Dequal when comparing should not special case denormalized values. |
| 171 bool AlmostDequalUlps(float a, float b); | 176 bool AlmostDequalUlps(float a, float b); |
| 172 bool AlmostDequalUlps(double a, double b); | 177 bool AlmostDequalUlps(double a, double b); |
| 173 | 178 |
| 174 bool NotAlmostEqualUlps(float a, float b); | 179 bool NotAlmostEqualUlps(float a, float b); |
| 175 inline bool NotAlmostEqualUlps(double a, double b) { | 180 inline bool NotAlmostEqualUlps(double a, double b) { |
| 176 return NotAlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | 181 return NotAlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); |
| 177 } | 182 } |
| 178 | 183 |
| 184 bool NotAlmostEqualUlps_Pin(float a, float b); | |
| 185 inline bool NotAlmostEqualUlps_Pin(double a, double b) { | |
| 186 return NotAlmostEqualUlps_Pin(SkDoubleToScalar(a), SkDoubleToScalar(b)); | |
| 187 } | |
| 188 | |
| 179 bool NotAlmostDequalUlps(float a, float b); | 189 bool NotAlmostDequalUlps(float a, float b); |
| 180 inline bool NotAlmostDequalUlps(double a, double b) { | 190 inline bool NotAlmostDequalUlps(double a, double b) { |
| 181 return NotAlmostDequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | 191 return NotAlmostDequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); |
| 182 } | 192 } |
| 183 | 193 |
| 184 // Use Almost Bequal when comparing coordinates in conjunction with between. | 194 // Use Almost Bequal when comparing coordinates in conjunction with between. |
| 185 bool AlmostBequalUlps(float a, float b); | 195 bool AlmostBequalUlps(float a, float b); |
| 186 inline bool AlmostBequalUlps(double a, double b) { | 196 inline bool AlmostBequalUlps(double a, double b) { |
| 187 return AlmostBequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | 197 return AlmostBequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); |
| 188 } | 198 } |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 526 */ | 536 */ |
| 527 inline int SkDSideBit(double x) { | 537 inline int SkDSideBit(double x) { |
| 528 return 1 << SKDSide(x); | 538 return 1 << SKDSide(x); |
| 529 } | 539 } |
| 530 | 540 |
| 531 inline double SkPinT(double t) { | 541 inline double SkPinT(double t) { |
| 532 return precisely_less_than_zero(t) ? 0 : precisely_greater_than_one(t) ? 1 : t; | 542 return precisely_less_than_zero(t) ? 0 : precisely_greater_than_one(t) ? 1 : t; |
| 533 } | 543 } |
| 534 | 544 |
| 535 #endif | 545 #endif |
| OLD | NEW |