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

Side by Side Diff: tests/PathOpsSkpTest.cpp

Issue 1407003016: Reland of path ops: fix conic weight and partial coincidence (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 1 month 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
« no previous file with comments | « src/pathops/SkPathOpsWinding.cpp ('k') | tests/PathOpsTSectDebug.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "PathOpsExtendedTest.h" 7 #include "PathOpsExtendedTest.h"
8 8
9 #define TEST(name) { name, #name } 9 #define TEST(name) { name, #name }
10 10
(...skipping 3768 matching lines...) Expand 10 before | Expand all | Expand 10 after
3779 path.moveTo(SkBits2Float(0x4446861c), SkBits2Float(0x455cdb8d)); // 794.095f, 3 533.72f 3779 path.moveTo(SkBits2Float(0x4446861c), SkBits2Float(0x455cdb8d)); // 794.095f, 3 533.72f
3780 path.cubicTo(SkBits2Float(0x4446a0d8), SkBits2Float(0x455cefbb), SkBits2Float(0x 444727a5), SkBits2Float(0x455d055d), SkBits2Float(0x444727a5), SkBits2Float(0x45 5d055d)); // 794.513f, 3534.98f, 796.619f, 3536.34f, 796.619f, 3536.34f 3780 path.cubicTo(SkBits2Float(0x4446a0d8), SkBits2Float(0x455cefbb), SkBits2Float(0x 444727a5), SkBits2Float(0x455d055d), SkBits2Float(0x444727a5), SkBits2Float(0x45 5d055d)); // 794.513f, 3534.98f, 796.619f, 3536.34f, 796.619f, 3536.34f
3781 path.cubicTo(SkBits2Float(0x4446c5b0), SkBits2Float(0x455cf8a4), SkBits2Float(0x 444693af), SkBits2Float(0x455cedad), SkBits2Float(0x44467c1b), SkBits2Float(0x45 5ce4b8)); // 795.089f, 3535.54f, 794.308f, 3534.85f, 793.939f, 3534.29f 3781 path.cubicTo(SkBits2Float(0x4446c5b0), SkBits2Float(0x455cf8a4), SkBits2Float(0x 444693af), SkBits2Float(0x455cedad), SkBits2Float(0x44467c1b), SkBits2Float(0x45 5ce4b8)); // 795.089f, 3535.54f, 794.308f, 3534.85f, 793.939f, 3534.29f
3782 path.lineTo(SkBits2Float(0x44467d70), SkBits2Float(0x455ce016)); // 793.96f, 35 34.01f 3782 path.lineTo(SkBits2Float(0x44467d70), SkBits2Float(0x455ce016)); // 793.96f, 35 34.01f
3783 path.cubicTo(SkBits2Float(0x44467fa9), SkBits2Float(0x455cde82), SkBits2Float(0x 444682b5), SkBits2Float(0x455cdd03), SkBits2Float(0x4446861c), SkBits2Float(0x45 5cdb8d)); // 793.995f, 3533.91f, 794.042f, 3533.81f, 794.095f, 3533.72f 3783 path.cubicTo(SkBits2Float(0x44467fa9), SkBits2Float(0x455cde82), SkBits2Float(0x 444682b5), SkBits2Float(0x455cdd03), SkBits2Float(0x4446861c), SkBits2Float(0x45 5cdb8d)); // 793.995f, 3533.91f, 794.042f, 3533.81f, 794.095f, 3533.72f
3784 SkPath path2(path); 3784 SkPath path2(path);
3785 testPathOp(reporter, path1, path2, (SkPathOp) 1, filename); 3785 testPathOp(reporter, path1, path2, (SkPathOp) 1, filename);
3786 } 3786 }
3787 3787
3788 static void skpwww_gorcraft_ru_1(skiatest::Reporter* reporter, const char* filen ame) { 3788 static void skpwww_gorcraft_ru_1(skiatest::Reporter* reporter, const char* filen ame) {
3789 return; // FIXME : triggers conic/conic sort error
3790 SkPath path; 3789 SkPath path;
3791 path.setFillType((SkPath::FillType) 1); 3790 path.setFillType((SkPath::FillType) 1);
3792 path.moveTo(SkBits2Float(0x44924000), SkBits2Float(0x458e7800)); // 1170, 4559 3791 path.moveTo(SkBits2Float(0x44924000), SkBits2Float(0x458e7800)); // 1170, 4559
3793 path.conicTo(SkBits2Float(0x44930000), SkBits2Float(0x458e7800), SkBits2Float(0x 44930000), SkBits2Float(0x458ea800), SkBits2Float(0x3f3504f3)); // 1176, 4559, 1176, 4565, 0.707107f 3792 path.conicTo(SkBits2Float(0x44930000), SkBits2Float(0x458e7800), SkBits2Float(0x 44930000), SkBits2Float(0x458ea800), SkBits2Float(0x3f3504f3)); // 1176, 4559, 1176, 4565, 0.707107f
3794 path.lineTo(SkBits2Float(0x44930000), SkBits2Float(0x458f7000)); // 1176, 4590 3793 path.lineTo(SkBits2Float(0x44930000), SkBits2Float(0x458f7000)); // 1176, 4590
3795 path.conicTo(SkBits2Float(0x44930000), SkBits2Float(0x458f9800), SkBits2Float(0x 44926000), SkBits2Float(0x458f9800), SkBits2Float(0x3f3504f3)); // 1176, 4595, 1171, 4595, 0.707107f 3794 path.conicTo(SkBits2Float(0x44930000), SkBits2Float(0x458f9800), SkBits2Float(0x 44926000), SkBits2Float(0x458f9800), SkBits2Float(0x3f3504f3)); // 1176, 4595, 1171, 4595, 0.707107f
3796 path.lineTo(SkBits2Float(0x42a60000), SkBits2Float(0x458f9800)); // 83, 4595 3795 path.lineTo(SkBits2Float(0x42a60000), SkBits2Float(0x458f9800)); // 83, 4595
3797 path.conicTo(SkBits2Float(0x429c0471), SkBits2Float(0x458f9800), SkBits2Float(0x 429c0000), SkBits2Float(0x458f700c), SkBits2Float(0x3f352d2d)); // 78.0087f, 45 95, 78, 4590.01f, 0.707721f 3796 path.conicTo(SkBits2Float(0x429c0471), SkBits2Float(0x458f9800), SkBits2Float(0x 429c0000), SkBits2Float(0x458f700c), SkBits2Float(0x3f352d2d)); // 78.0087f, 45 95, 78, 4590.01f, 0.707721f
3798 path.lineTo(SkBits2Float(0x429c0000), SkBits2Float(0x458ea800)); // 78, 4565 3797 path.lineTo(SkBits2Float(0x429c0000), SkBits2Float(0x458ea800)); // 78, 4565
3799 path.conicTo(SkBits2Float(0x429c0000), SkBits2Float(0x458e7800), SkBits2Float(0x 42a80000), SkBits2Float(0x458e7800), SkBits2Float(0x3f3504f3)); // 78, 4559, 84 , 4559, 0.707107f 3798 path.conicTo(SkBits2Float(0x429c0000), SkBits2Float(0x458e7800), SkBits2Float(0x 42a80000), SkBits2Float(0x458e7800), SkBits2Float(0x3f3504f3)); // 78, 4559, 84 , 4559, 0.707107f
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
3967 path.lineTo(73.531f, 26.317f); 3966 path.lineTo(73.531f, 26.317f);
3968 path.cubicTo(74.144f, 26.547f, 74.619f, 26.741f, 74.957f, 26.898f); 3967 path.cubicTo(74.144f, 26.547f, 74.619f, 26.741f, 74.957f, 26.898f);
3969 path.cubicTo(74.475f, 27.113f, 73.993f, 27.329f, 73.511f, 27.544f); 3968 path.cubicTo(74.475f, 27.113f, 73.993f, 27.329f, 73.511f, 27.544f);
3970 path.cubicTo(73.993f, 27.329f, 74.475f, 27.114f, 74.957f, 26.898f); 3969 path.cubicTo(73.993f, 27.329f, 74.475f, 27.114f, 74.957f, 26.898f);
3971 path.cubicTo(75.252f, 27.034f, 75.442f, 27.142f, 75.529f, 27.222f); 3970 path.cubicTo(75.252f, 27.034f, 75.442f, 27.142f, 75.529f, 27.222f);
3972 path.cubicTo(75.713f, 27.393f, 75.83f, 27.61f, 75.88f, 27.873f); 3971 path.cubicTo(75.713f, 27.393f, 75.83f, 27.61f, 75.88f, 27.873f);
3973 SkPath path2(path); 3972 SkPath path2(path);
3974 testPathOp(reporter, path1, path2, kIntersect_SkPathOp, filename); 3973 testPathOp(reporter, path1, path2, kIntersect_SkPathOp, filename);
3975 } 3974 }
3976 3975
3976 static void http___www_emuleteca_cl_26(skiatest::Reporter* reporter, const char* filename) {
3977 SkPath path;
3978 path.setFillType((SkPath::FillType) 1);
3979 path.moveTo(SkBits2Float(0x3f800000), SkBits2Float(0x44370000)); // 1, 732
3980 path.conicTo(SkBits2Float(0x3f800000), SkBits2Float(0x4428c000), SkBits2Float(0x 42680000), SkBits2Float(0x4428c000), SkBits2Float(0x3f3504f3)); // 1, 675, 58, 675, 0.707107f
3981 path.conicTo(SkBits2Float(0x40400000), SkBits2Float(0x4428c000), SkBits2Float(0x 40400000), SkBits2Float(0x44370000), SkBits2Float(0x3f3504f3)); // 3, 675, 3, 7 32, 0.707107f
3982 path.conicTo(SkBits2Float(0x40400000), SkBits2Float(0x44444000), SkBits2Float(0x 42680000), SkBits2Float(0x44444000), SkBits2Float(0x3f3504f3)); // 3, 785, 58, 785, 0.707107f
3983 path.lineTo(SkBits2Float(0x446d0000), SkBits2Float(0x44444000)); // 948, 785
3984 path.conicTo(SkBits2Float(0x447ac000), SkBits2Float(0x44444000), SkBits2Float(0x 447ac000), SkBits2Float(0x44370000), SkBits2Float(0x3f3504f3)); // 1003, 785, 1 003, 732, 0.707107f
3985 path.conicTo(SkBits2Float(0x447ac000), SkBits2Float(0x4428c000), SkBits2Float(0x 446d0000), SkBits2Float(0x4428c000), SkBits2Float(0x3f3504f3)); // 1003, 675, 9 48, 675, 0.707107f
3986 path.conicTo(SkBits2Float(0x447b4000), SkBits2Float(0x4428c000), SkBits2Float(0x 447b4000), SkBits2Float(0x44370000), SkBits2Float(0x3f3504f3)); // 1005, 675, 1 005, 732, 0.707107f
3987 path.conicTo(SkBits2Float(0x447b4000), SkBits2Float(0x44454000), SkBits2Float(0x 446d0000), SkBits2Float(0x44454000), SkBits2Float(0x3f3504f3)); // 1005, 789, 9 48, 789, 0.707107f
3988 path.lineTo(SkBits2Float(0x42680000), SkBits2Float(0x44454000)); // 58, 789
3989 path.conicTo(SkBits2Float(0x3f800000), SkBits2Float(0x44454000), SkBits2Float(0x 3f800000), SkBits2Float(0x44370000), SkBits2Float(0x3f3504f3)); // 1, 789, 1, 7 32, 0.707107f
3990 path.close();
3991
3992 SkPath path1(path);
3993 path.reset();
3994 path.setFillType((SkPath::FillType) 0);
3995 path.moveTo(SkBits2Float(0x3f800000), SkBits2Float(0x4428c000)); // 1, 675
3996 path.lineTo(SkBits2Float(0x42680000), SkBits2Float(0x4428c000)); // 58, 675
3997 path.lineTo(SkBits2Float(0x3fc8f676), SkBits2Float(0x44454000)); // 1.57002f, 7 89
3998 path.lineTo(SkBits2Float(0x3f800000), SkBits2Float(0x44454000)); // 1, 789
3999
4000 SkPath path2(path);
4001 testPathOp(reporter, path1, path2, (SkPathOp) 1, filename);
4002 }
4003
4004 static void http___www_emuleteca_cl_27(skiatest::Reporter* reporter, const char* filename) {
4005 SkPath path;
4006 path.setFillType((SkPath::FillType) 1);
4007 path.moveTo(SkBits2Float(0x42680000), SkBits2Float(0x4428c000)); // 58, 675
4008 path.conicTo(SkBits2Float(0x3f800000), SkBits2Float(0x4428c000), SkBits2Float(0x 3f800000), SkBits2Float(0x44370000), SkBits2Float(0x3f3504f3)); // 1, 675, 1, 7 32, 0.707107f
4009 path.conicTo(SkBits2Float(0x3f800000), SkBits2Float(0x443bd045), SkBits2Float(0x 414acf56), SkBits2Float(0x443fa420), SkBits2Float(0x3f778612)); // 1, 751.254f, 12.6756f, 766.564f, 0.96689f
4010 path.lineTo(SkBits2Float(0x41606e3d), SkBits2Float(0x443ef569)); // 14.0269f, 7 63.835f
4011 path.conicTo(SkBits2Float(0x40400000), SkBits2Float(0x443b6c34), SkBits2Float(0x 40400000), SkBits2Float(0x44370000), SkBits2Float(0x3f77ac46)); // 3, 749.691f, 3, 732, 0.967472f
4012 path.conicTo(SkBits2Float(0x40400000), SkBits2Float(0x4428c000), SkBits2Float(0x 42680000), SkBits2Float(0x4428c000), SkBits2Float(0x3f3504f3)); // 3, 675, 58, 675, 0.707107f
4013 path.close();
4014
4015 SkPath path1(path);
4016 path.reset();
4017 path.setFillType((SkPath::FillType) 0);
4018 path.moveTo(SkBits2Float(0x3f800000), SkBits2Float(0x4428c000)); // 1, 675
4019 path.lineTo(SkBits2Float(0x4c4a3de6), SkBits2Float(0xccca3d89)); // 5.30165e+07 f, -1.06032e+08f
4020 path.lineTo(SkBits2Float(0x41a71147), SkBits2Float(0x443b4eec)); // 20.8834f, 7 49.233f
4021 path.lineTo(SkBits2Float(0x3f800000), SkBits2Float(0x44454000)); // 1, 789
4022
4023 SkPath path2(path);
4024 testPathOp(reporter, path1, path2, (SkPathOp) 1, filename);
4025 }
4026
4027 static void http___www_emuleteca_cl_28(skiatest::Reporter* reporter, const char* filename) {
4028 SkPath path;
4029 path.setFillType(SkPath::kEvenOdd_FillType);
4030
4031 SkPath path1(path);
4032 path.reset();
4033 path.setFillType(SkPath::kWinding_FillType);
4034 path.moveTo(SkBits2Float(0x3f800000), SkBits2Float(0x4428c000)); // 1, 675
4035 path.lineTo(SkBits2Float(0x4c4a3de6), SkBits2Float(0xccca3d89)); // 5.30165e+07 f, -1.06032e+08f
4036 path.lineTo(SkBits2Float(0x41a71147), SkBits2Float(0x443b4eec)); // 20.8834f, 7 49.233f
4037 path.lineTo(SkBits2Float(0x3f800000), SkBits2Float(0x44454000)); // 1, 789
4038 SkPath path2(path);
4039 testPathOp(reporter, path1, path2, kIntersect_SkPathOp, filename);
4040 }
4041
4042 static void http___www_project2061_org(skiatest::Reporter* reporter, const char* filename) {
4043 SkPath path;
4044 path.setFillType(SkPath::kEvenOdd_FillType);
4045 path.moveTo(751, 62);
4046 path.lineTo(497, 62);
4047 path.lineTo(497, 138);
4048 path.lineTo(751, 138);
4049 path.lineTo(751, 62);
4050 path.close();
4051 SkPath path1(path);
4052 path.reset();
4053 path.setFillType(SkPath::kWinding_FillType);
4054 path.moveTo(699.889f, 115.29f);
4055 path.cubicTo(699.889f, 114.913f, 699.627f, 114.723f, 699.111f, 114.723f);
4056 path.cubicTo(698.604f, 114.723f, 697.843f, 114.671f, 697.096f, 114.423f);
4057 path.cubicTo(695.94f, 114.094f, 694.53f, 113.168f, 692.746f, 108.775f);
4058 path.cubicTo(690.469f, 103.12f, 685.644f, 90.563f, 682.761f, 83.061f);
4059 path.lineTo(680.541f, 77.301f);
4060 path.cubicTo(679.927f, 75.721f, 679.67f, 75.261f, 679.151f, 75.261f);
4061 path.cubicTo(678.636f, 75.261f, 678.392f, 75.73f, 677.759f, 77.464f);
4062 path.lineTo(665.868f, 109.881f);
4063 path.cubicTo(664.861f, 112.669f, 663.852f, 114.339f, 661.675f, 114.622f);
4064 path.cubicTo(661.675f, 114.622f, 661.551f, 114.631f, 661.378f, 114.642f);
4065 path.cubicTo(661.072f, 114.597f, 660.75f, 114.531f, 660.427f, 114.424f);
4066 path.cubicTo(659.272f, 114.095f, 657.861f, 113.169f, 656.078f, 108.776f);
4067 path.cubicTo(653.797f, 103.112f, 648.967f, 90.541f, 646.08f, 83.029f);
4068 path.lineTo(643.873f, 77.302f);
4069 path.cubicTo(643.259f, 75.722f, 643.002f, 75.262f, 642.484f, 75.262f);
4070 path.cubicTo(641.968f, 75.262f, 641.724f, 75.731f, 641.092f, 77.465f);
4071 path.lineTo(629.2f, 109.879f);
4072 path.cubicTo(628.193f, 112.667f, 627.184f, 114.337f, 625.007f, 114.62f);
4073 path.cubicTo(625.007f, 114.62f, 624.884f, 114.629f, 624.71f, 114.64f);
4074 path.cubicTo(624.404f, 114.595f, 624.081f, 114.529f, 623.759f, 114.422f);
4075 path.cubicTo(622.603f, 114.093f, 621.193f, 113.167f, 619.409f, 108.774f);
4076 path.cubicTo(617.132f, 103.119f, 612.307f, 90.562f, 609.424f, 83.06f);
4077 path.lineTo(607.204f, 77.3f);
4078 path.cubicTo(606.59f, 75.72f, 606.333f, 75.26f, 605.815f, 75.26f);
4079 path.cubicTo(605.3f, 75.26f, 605.055f, 75.729f, 604.423f, 77.463f);
4080 path.lineTo(592.531f, 109.879f);
4081 path.cubicTo(591.524f, 112.667f, 590.514f, 114.337f, 588.338f, 114.62f);
4082 path.cubicTo(588.337f, 114.62f, 586.852f, 114.722f, 586.852f, 114.722f);
4083 path.cubicTo(586.418f, 114.722f, 586.126f, 114.95f, 586.126f, 115.289f);
4084 path.cubicTo(586.126f, 115.96f, 586.97f, 115.96f, 587.376f, 115.96f);
4085 path.lineTo(592.101f, 115.843f);
4086 path.lineTo(593.295f, 115.804f);
4087 path.lineTo(594.624f, 115.86f);
4088 path.lineTo(597.381f, 115.961f);
4089 path.cubicTo(598.241f, 115.961f, 598.422f, 115.596f, 598.422f, 115.29f);
4090 path.cubicTo(598.422f, 115.078f, 598.321f, 114.723f, 597.643f, 114.723f);
4091 path.lineTo(597.119f, 114.723f);
4092 path.cubicTo(596.448f, 114.723f, 595.383f, 114.381f, 595.383f, 113.463f);
4093 path.cubicTo(595.383f, 112.545f, 595.638f, 111.334f, 596.101f, 110.052f);
4094 path.cubicTo(596.103f, 110.048f, 599.246f, 100.809f, 599.246f, 100.809f);
4095 path.cubicTo(599.337f, 100.583f, 599.435f, 100.564f, 599.528f, 100.564f);
4096 path.lineTo(610.791f, 100.564f);
4097 path.cubicTo(610.929f, 100.564f, 610.958f, 100.585f, 611.035f, 100.737f);
4098 path.cubicTo(611.035f, 100.741f, 615.896f, 113.554f, 615.896f, 113.554f);
4099 path.cubicTo(615.972f, 113.754f, 616.01f, 113.942f, 616.01f, 114.105f);
4100 path.cubicTo(616.01f, 114.228f, 615.988f, 114.338f, 615.945f, 114.429f);
4101 path.cubicTo(615.876f, 114.573f, 615.779f, 114.619f, 615.741f, 114.631f);
4102 path.cubicTo(615.272f, 114.748f, 615.2f, 115.061f, 615.2f, 115.237f);
4103 path.cubicTo(615.2f, 115.766f, 615.792f, 115.796f, 616.772f, 115.844f);
4104 path.lineTo(617.012f, 115.857f);
4105 path.cubicTo(618.978f, 115.913f, 621.359f, 115.948f, 623.835f, 115.958f);
4106 path.cubicTo(623.912f, 115.961f, 623.984f, 115.961f, 624.045f, 115.961f);
4107 path.lineTo(624.118f, 115.959f);
4108 path.cubicTo(624.494f, 115.961f, 624.871f, 115.961f, 625.25f, 115.961f);
4109 path.cubicTo(625.47f, 115.961f, 625.662f, 115.946f, 625.827f, 115.917f);
4110 path.lineTo(628.77f, 115.844f);
4111 path.lineTo(629.965f, 115.805f);
4112 path.lineTo(631.293f, 115.861f);
4113 path.lineTo(634.051f, 115.962f);
4114 path.cubicTo(634.911f, 115.962f, 635.092f, 115.597f, 635.092f, 115.291f);
4115 path.cubicTo(635.092f, 115.079f, 634.991f, 114.724f, 634.313f, 114.724f);
4116 path.lineTo(633.789f, 114.724f);
4117 path.cubicTo(633.118f, 114.724f, 632.053f, 114.382f, 632.053f, 113.464f);
4118 path.cubicTo(632.053f, 112.546f, 632.308f, 111.335f, 632.771f, 110.053f);
4119 path.cubicTo(632.773f, 110.049f, 635.916f, 100.81f, 635.916f, 100.81f);
4120 path.cubicTo(636.007f, 100.584f, 636.105f, 100.565f, 636.198f, 100.565f);
4121 path.lineTo(647.46f, 100.565f);
4122 path.cubicTo(647.598f, 100.565f, 647.627f, 100.586f, 647.704f, 100.737f);
4123 path.cubicTo(647.704f, 100.741f, 652.565f, 113.554f, 652.565f, 113.554f);
4124 path.cubicTo(652.641f, 113.754f, 652.679f, 113.942f, 652.679f, 114.105f);
4125 path.cubicTo(652.679f, 114.228f, 652.657f, 114.338f, 652.613f, 114.43f);
4126 path.cubicTo(652.544f, 114.574f, 652.447f, 114.619f, 652.409f, 114.632f);
4127 path.cubicTo(651.94f, 114.749f, 651.868f, 115.062f, 651.868f, 115.238f);
4128 path.cubicTo(651.868f, 115.767f, 652.46f, 115.797f, 653.44f, 115.845f);
4129 path.lineTo(653.681f, 115.858f);
4130 path.cubicTo(655.647f, 115.914f, 658.028f, 115.949f, 660.503f, 115.959f);
4131 path.cubicTo(660.58f, 115.962f, 660.652f, 115.962f, 660.713f, 115.962f);
4132 path.lineTo(660.787f, 115.96f);
4133 path.cubicTo(661.162f, 115.962f, 661.54f, 115.962f, 661.918f, 115.962f);
4134 path.cubicTo(662.139f, 115.962f, 662.33f, 115.947f, 662.496f, 115.918f);
4135 path.lineTo(665.439f, 115.845f);
4136 path.lineTo(666.633f, 115.806f);
4137 path.lineTo(667.962f, 115.862f);
4138 path.lineTo(670.719f, 115.963f);
4139 path.cubicTo(671.579f, 115.963f, 671.76f, 115.598f, 671.76f, 115.292f);
4140 path.cubicTo(671.76f, 115.08f, 671.659f, 114.725f, 670.981f, 114.725f);
4141 path.lineTo(670.457f, 114.725f);
4142 path.cubicTo(669.786f, 114.725f, 668.721f, 114.383f, 668.721f, 113.465f);
4143 path.cubicTo(668.721f, 112.547f, 668.976f, 111.336f, 669.439f, 110.054f);
4144 path.cubicTo(669.441f, 110.05f, 672.584f, 100.811f, 672.584f, 100.811f);
4145 path.cubicTo(672.675f, 100.585f, 672.773f, 100.566f, 672.866f, 100.566f);
4146 path.lineTo(684.128f, 100.566f);
4147 path.cubicTo(684.266f, 100.566f, 684.295f, 100.587f, 684.372f, 100.739f);
4148 path.cubicTo(684.372f, 100.743f, 689.233f, 113.556f, 689.233f, 113.556f);
4149 path.cubicTo(689.309f, 113.756f, 689.347f, 113.944f, 689.347f, 114.107f);
4150 path.cubicTo(689.347f, 114.23f, 689.325f, 114.34f, 689.281f, 114.431f);
4151 path.cubicTo(689.212f, 114.575f, 689.115f, 114.621f, 689.077f, 114.633f);
4152 path.cubicTo(688.608f, 114.75f, 688.536f, 115.063f, 688.536f, 115.239f);
4153 path.cubicTo(688.536f, 115.768f, 689.128f, 115.798f, 690.108f, 115.846f);
4154 path.lineTo(690.348f, 115.859f);
4155 path.cubicTo(692.687f, 115.926f, 695.611f, 115.963f, 698.586f, 115.963f);
4156 path.cubicTo(699.451f, 115.961f, 699.889f, 115.735f, 699.889f, 115.29f);
4157 path.close();
4158 path.moveTo(600.18f, 98.176f);
4159 path.cubicTo(600.181f, 98.171f, 600.185f, 98.158f, 600.185f, 98.158f);
4160 path.cubicTo(600.191f, 98.142f, 604.801f, 84.049f, 604.801f, 84.049f);
4161 path.cubicTo(604.865f, 83.857f, 604.915f, 83.756f, 604.951f, 83.697f);
4162 path.cubicTo(604.987f, 83.756f, 605.037f, 83.858f, 605.102f, 84.051f);
4163 path.cubicTo(605.103f, 84.054f, 610.08f, 98.149f, 610.08f, 98.149f);
4164 path.cubicTo(610.079f, 98.145f, 610.079f, 98.145f, 610.079f, 98.147f);
4165 path.cubicTo(610.079f, 98.149f, 610.081f, 98.164f, 610.083f, 98.176f);
4166 path.lineTo(600.18f, 98.176f);
4167 path.close();
4168 path.moveTo(636.849f, 98.176f);
4169 path.cubicTo(636.851f, 98.171f, 636.854f, 98.158f, 636.854f, 98.158f);
4170 path.cubicTo(636.859f, 98.142f, 641.469f, 84.049f, 641.469f, 84.049f);
4171 path.cubicTo(641.533f, 83.857f, 641.584f, 83.756f, 641.62f, 83.697f);
4172 path.cubicTo(641.656f, 83.756f, 641.706f, 83.857f, 641.771f, 84.051f);
4173 path.cubicTo(641.773f, 84.054f, 646.749f, 98.149f, 646.749f, 98.149f);
4174 path.cubicTo(646.749f, 98.145f, 646.748f, 98.145f, 646.748f, 98.147f);
4175 path.cubicTo(646.748f, 98.15f, 646.75f, 98.165f, 646.751f, 98.176f);
4176 path.lineTo(636.849f, 98.176f);
4177 path.close();
4178 path.moveTo(673.517f, 98.176f);
4179 path.cubicTo(673.519f, 98.171f, 673.522f, 98.158f, 673.522f, 98.158f);
4180 path.cubicTo(673.528f, 98.142f, 678.138f, 84.049f, 678.138f, 84.049f);
4181 path.cubicTo(678.202f, 83.857f, 678.252f, 83.756f, 678.288f, 83.697f);
4182 path.cubicTo(678.324f, 83.756f, 678.375f, 83.858f, 678.439f, 84.051f);
4183 path.cubicTo(678.44f, 84.054f, 683.417f, 98.149f, 683.417f, 98.149f);
4184 path.cubicTo(683.416f, 98.145f, 683.416f, 98.145f, 683.416f, 98.147f);
4185 path.cubicTo(683.416f, 98.149f, 683.418f, 98.164f, 683.42f, 98.176f);
4186 path.lineTo(673.517f, 98.176f);
4187 path.close();
4188 path.moveTo(702.086f, 115.256f);
4189 path.lineTo(702.089f, 115.257f);
4190 path.cubicTo(704.075f, 116.223f, 706.408f, 116.692f, 709.22f, 116.692f);
4191 path.cubicTo(712.384f, 116.692f, 715.17f, 115.918f, 717.275f, 114.454f);
4192 path.cubicTo(720.639f, 112.074f, 721.837f, 108.31f, 721.837f, 105.581f);
4193 path.cubicTo(721.837f, 101.538f, 720.57f, 98.203f, 714.092f, 93.115f);
4194 path.lineTo(712.625f, 91.966f);
4195 path.cubicTo(707.567f, 87.838f, 706.331f, 86.155f, 706.331f, 83.396f);
4196 path.cubicTo(706.331f, 79.927f, 708.819f, 77.595f, 712.519f, 77.595f);
4197 path.cubicTo(716.925f, 77.595f, 718.41f, 79.437f, 718.843f, 80.229f);
4198 path.cubicTo(719.131f, 80.754f, 719.442f, 82.122f, 719.494f, 82.739f);
4199 path.cubicTo(719.543f, 83.13f, 719.608f, 83.65f, 720.167f, 83.65f);
4200 path.cubicTo(720.789f, 83.65f, 720.789f, 82.704f, 720.789f, 82.195f);
4201 path.cubicTo(720.789f, 79.413f, 720.918f, 77.758f, 720.973f, 77.052f);
4202 path.lineTo(720.998f, 76.662f);
4203 path.cubicTo(720.998f, 76.113f, 720.581f, 76.043f, 720.219f, 76.043f);
4204 path.cubicTo(719.847f, 76.043f, 719.469f, 76.003f, 718.438f, 75.788f);
4205 path.cubicTo(716.936f, 75.428f, 715.369f, 75.26f, 713.514f, 75.26f);
4206 path.cubicTo(706.771f, 75.26f, 702.415f, 79.048f, 702.415f, 84.91f);
4207 path.cubicTo(702.415f, 88.438f, 703.589f, 91.748f, 709.319f, 96.434f);
4208 path.lineTo(711.676f, 98.365f);
4209 path.cubicTo(716.332f, 102.196f, 717.607f, 104.172f, 717.607f, 107.564f);
4210 path.cubicTo(717.607f, 110.888f, 715.121f, 114.253f, 710.371f, 114.253f);
4211 path.cubicTo(708.428f, 114.253f, 703.808f, 113.754f, 702.868f, 109.132f);
4212 path.cubicTo(702.716f, 108.424f, 702.716f, 107.718f, 702.716f, 107.25f);
4213 path.cubicTo(702.716f, 106.94f, 702.716f, 106.422f, 702.094f, 106.422f);
4214 path.cubicTo(701.519f, 106.422f, 701.455f, 107.116f, 701.421f, 107.488f);
4215 path.cubicTo(701.421f, 107.495f, 701.375f, 108.117f, 701.375f, 108.117f);
4216 path.cubicTo(701.293f, 109.171f, 701.158f, 110.933f, 701.158f, 113.044f);
4217 path.cubicTo(701.16f, 114.432f, 701.197f, 114.813f, 702.086f, 115.256f);
4218 path.close();
4219 path.moveTo(501.274f, 129.973f);
4220 path.lineTo(498.058f, 136.963f);
4221 path.lineTo(498.62f, 136.963f);
4222 path.lineTo(499.723f, 134.561f);
4223 path.lineTo(503.124f, 134.561f);
4224 path.lineTo(504.227f, 136.963f);
4225 path.lineTo(504.788f, 136.963f);
4226 path.lineTo(501.571f, 129.973f);
4227 path.lineTo(501.274f, 129.973f);
4228 path.close();
4229 path.moveTo(499.926f, 134.114f);
4230 path.lineTo(501.417f, 130.848f);
4231 path.lineTo(502.918f, 134.114f);
4232 path.lineTo(499.926f, 134.114f);
4233 path.close();
4234 path.moveTo(510.117f, 130.023f);
4235 path.lineTo(507.677f, 130.023f);
4236 path.lineTo(507.677f, 136.963f);
4237 path.lineTo(510.209f, 136.963f);
4238 path.cubicTo(512.966f, 136.963f, 513.916f, 135.101f, 513.916f, 133.493f);
4239 path.cubicTo(513.916f, 131.967f, 513.078f, 130.023f, 510.117f, 130.023f);
4240 path.close();
4241 path.moveTo(510.178f, 136.515f);
4242 path.lineTo(508.217f, 136.515f);
4243 path.lineTo(508.217f, 130.471f);
4244 path.lineTo(510.147f, 130.471f);
4245 path.cubicTo(512.036f, 130.471f, 513.333f, 131.712f, 513.333f, 133.493f);
4246 path.cubicTo(513.333f, 135.447f, 511.853f, 136.515f, 510.178f, 136.515f);
4247 path.close();
4248 path.moveTo(519.105f, 135.894f);
4249 path.lineTo(516.634f, 130.023f);
4250 path.lineTo(516.093f, 130.023f);
4251 path.lineTo(519.024f, 137.034f);
4252 path.lineTo(519.177f, 137.034f);
4253 path.lineTo(522.098f, 130.023f);
4254 path.lineTo(521.557f, 130.023f);
4255 path.lineTo(519.105f, 135.894f);
4256 path.close();
4257 path.moveTo(526.817f, 129.973f);
4258 path.lineTo(523.601f, 136.963f);
4259 path.lineTo(524.162f, 136.963f);
4260 path.lineTo(525.265f, 134.561f);
4261 path.lineTo(528.665f, 134.561f);
4262 path.lineTo(529.768f, 136.963f);
4263 path.lineTo(530.33f, 136.963f);
4264 path.lineTo(527.113f, 129.973f);
4265 path.lineTo(526.817f, 129.973f);
4266 path.close();
4267 path.moveTo(525.469f, 134.114f);
4268 path.lineTo(526.96f, 130.848f);
4269 path.lineTo(528.461f, 134.114f);
4270 path.lineTo(525.469f, 134.114f);
4271 path.close();
4272 path.moveTo(538.947f, 136.088f);
4273 path.lineTo(533.668f, 130.024f);
4274 path.lineTo(533.208f, 130.024f);
4275 path.lineTo(533.208f, 136.964f);
4276 path.lineTo(533.749f, 136.964f);
4277 path.lineTo(533.749f, 130.899f);
4278 path.lineTo(539.038f, 136.964f);
4279 path.lineTo(539.487f, 136.964f);
4280 path.lineTo(539.487f, 130.024f);
4281 path.lineTo(538.946f, 130.024f);
4282 path.lineTo(538.946f, 136.088f);
4283 path.lineTo(538.947f, 136.088f);
4284 path.close();
4285 path.moveTo(543.41f, 133.503f);
4286 path.cubicTo(543.41f, 131.743f, 544.717f, 130.43f, 546.453f, 130.43f);
4287 path.cubicTo(547.28f, 130.43f, 548.067f, 130.644f, 548.934f, 131.102f);
4288 path.lineTo(548.934f, 130.512f);
4289 path.cubicTo(548.087f, 130.125f, 547.26f, 129.932f, 546.483f, 129.932f);
4290 path.cubicTo(544.574f, 129.932f, 542.828f, 131.377f, 542.828f, 133.503f);
4291 path.cubicTo(542.828f, 135.538f, 544.411f, 137.054f, 546.534f, 137.054f);
4292 path.cubicTo(547.341f, 137.054f, 548.198f, 136.83f, 549.005f, 136.402f);
4293 path.lineTo(549.005f, 135.843f);
4294 path.cubicTo(548.055f, 136.341f, 547.31f, 136.555f, 546.523f, 136.555f);
4295 path.cubicTo(544.707f, 136.556f, 543.41f, 135.294f, 543.41f, 133.503f);
4296 path.close();
4297 path.moveTo(552.079f, 136.963f);
4298 path.lineTo(552.62f, 136.963f);
4299 path.lineTo(552.62f, 130.023f);
4300 path.lineTo(552.079f, 130.023f);
4301 path.lineTo(552.079f, 136.963f);
4302 path.close();
4303 path.moveTo(561.984f, 136.088f);
4304 path.lineTo(556.705f, 130.024f);
4305 path.lineTo(556.245f, 130.024f);
4306 path.lineTo(556.245f, 136.964f);
4307 path.lineTo(556.786f, 136.964f);
4308 path.lineTo(556.786f, 130.899f);
4309 path.lineTo(562.075f, 136.964f);
4310 path.lineTo(562.524f, 136.964f);
4311 path.lineTo(562.524f, 130.024f);
4312 path.lineTo(561.983f, 130.024f);
4313 path.lineTo(561.983f, 136.088f);
4314 path.lineTo(561.984f, 136.088f);
4315 path.close();
4316 path.moveTo(570.122f, 134.257f);
4317 path.lineTo(571.592f, 134.257f);
4318 path.lineTo(571.592f, 136.129f);
4319 path.cubicTo(571.041f, 136.403f, 570.489f, 136.556f, 569.683f, 136.556f);
4320 path.cubicTo(567.488f, 136.556f, 566.456f, 135.05f, 566.456f, 133.493f);
4321 path.cubicTo(566.456f, 131.733f, 567.763f, 130.43f, 569.529f, 130.43f);
4322 path.cubicTo(570.366f, 130.43f, 571.153f, 130.654f, 572, 131.132f);
4323 path.lineTo(572, 130.522f);
4324 path.cubicTo(571.02f, 130.084f, 570.397f, 129.932f, 569.61f, 129.932f);
4325 path.cubicTo(567.455f, 129.932f, 565.873f, 131.438f, 565.873f, 133.473f);
4326 path.cubicTo(565.873f, 135.529f, 567.496f, 137.055f, 569.661f, 137.055f);
4327 path.cubicTo(570.468f, 137.055f, 571.305f, 136.862f, 572.132f, 136.465f);
4328 path.lineTo(572.132f, 133.809f);
4329 path.lineTo(570.121f, 133.809f);
4330 path.lineTo(570.121f, 134.257f);
4331 path.lineTo(570.122f, 134.257f);
4332 path.close();
4333 path.moveTo(580.681f, 131.753f);
4334 path.cubicTo(580.681f, 131.001f, 581.314f, 130.43f, 582.151f, 130.43f);
4335 path.cubicTo(582.631f, 130.43f, 582.998f, 130.552f, 583.713f, 130.959f);
4336 path.lineTo(583.713f, 130.37f);
4337 path.cubicTo(583.172f, 130.075f, 582.641f, 129.933f, 582.099f, 129.933f);
4338 path.cubicTo(580.996f, 129.933f, 580.098f, 130.747f, 580.098f, 131.775f);
4339 path.cubicTo(580.098f, 134.065f, 583.417f, 133.2f, 583.417f, 135.173f);
4340 path.cubicTo(583.417f, 135.956f, 582.774f, 136.557f, 581.947f, 136.557f);
4341 path.cubicTo(581.406f, 136.557f, 580.966f, 136.374f, 580.191f, 135.814f);
4342 path.lineTo(580.191f, 136.445f);
4343 path.cubicTo(580.804f, 136.852f, 581.406f, 137.055f, 581.978f, 137.055f);
4344 path.cubicTo(583.111f, 137.055f, 584, 136.221f, 584, 135.152f);
4345 path.cubicTo(584, 132.72f, 580.681f, 133.605f, 580.681f, 131.753f);
4346 path.close();
4347 path.moveTo(587.543f, 133.503f);
4348 path.cubicTo(587.543f, 131.743f, 588.85f, 130.43f, 590.586f, 130.43f);
4349 path.cubicTo(591.413f, 130.43f, 592.199f, 130.644f, 593.067f, 131.102f);
4350 path.lineTo(593.067f, 130.512f);
4351 path.cubicTo(592.22f, 130.125f, 591.393f, 129.932f, 590.616f, 129.932f);
4352 path.cubicTo(588.707f, 129.932f, 586.96f, 131.377f, 586.96f, 133.503f);
4353 path.cubicTo(586.96f, 135.538f, 588.543f, 137.054f, 590.667f, 137.054f);
4354 path.cubicTo(591.473f, 137.054f, 592.331f, 136.83f, 593.138f, 136.402f);
4355 path.lineTo(593.138f, 135.843f);
4356 path.cubicTo(592.188f, 136.341f, 591.443f, 136.555f, 590.657f, 136.555f);
4357 path.cubicTo(588.84f, 136.556f, 587.543f, 135.294f, 587.543f, 133.503f);
4358 path.close();
4359 path.moveTo(596.212f, 136.963f);
4360 path.lineTo(596.753f, 136.963f);
4361 path.lineTo(596.753f, 130.023f);
4362 path.lineTo(596.212f, 130.023f);
4363 path.lineTo(596.212f, 136.963f);
4364 path.close();
4365 path.moveTo(600.94f, 133.697f);
4366 path.lineTo(604.116f, 133.697f);
4367 path.lineTo(604.116f, 133.25f);
4368 path.lineTo(600.94f, 133.25f);
4369 path.lineTo(600.94f, 130.472f);
4370 path.lineTo(604.198f, 130.472f);
4371 path.lineTo(604.198f, 130.024f);
4372 path.lineTo(600.399f, 130.024f);
4373 path.lineTo(600.399f, 136.964f);
4374 path.lineTo(604.279f, 136.964f);
4375 path.lineTo(604.279f, 136.516f);
4376 path.lineTo(600.94f, 136.516f);
4377 path.lineTo(600.94f, 133.697f);
4378 path.close();
4379 path.moveTo(613.163f, 136.088f);
4380 path.lineTo(607.884f, 130.024f);
4381 path.lineTo(607.424f, 130.024f);
4382 path.lineTo(607.424f, 136.964f);
4383 path.lineTo(607.965f, 136.964f);
4384 path.lineTo(607.965f, 130.899f);
4385 path.lineTo(613.254f, 136.964f);
4386 path.lineTo(613.703f, 136.964f);
4387 path.lineTo(613.703f, 130.024f);
4388 path.lineTo(613.162f, 130.024f);
4389 path.lineTo(613.162f, 136.088f);
4390 path.lineTo(613.163f, 136.088f);
4391 path.close();
4392 path.moveTo(617.625f, 133.503f);
4393 path.cubicTo(617.625f, 131.743f, 618.932f, 130.43f, 620.668f, 130.43f);
4394 path.cubicTo(621.495f, 130.43f, 622.281f, 130.644f, 623.149f, 131.102f);
4395 path.lineTo(623.149f, 130.512f);
4396 path.cubicTo(622.301f, 130.125f, 621.474f, 129.932f, 620.698f, 129.932f);
4397 path.cubicTo(618.789f, 129.932f, 617.042f, 131.377f, 617.042f, 133.503f);
4398 path.cubicTo(617.042f, 135.538f, 618.625f, 137.054f, 620.749f, 137.054f);
4399 path.cubicTo(621.556f, 137.054f, 622.413f, 136.83f, 623.22f, 136.402f);
4400 path.lineTo(623.22f, 135.843f);
4401 path.cubicTo(622.27f, 136.341f, 621.525f, 136.555f, 620.739f, 136.555f);
4402 path.cubicTo(618.922f, 136.556f, 617.625f, 135.294f, 617.625f, 133.503f);
4403 path.close();
4404 path.moveTo(626.856f, 133.697f);
4405 path.lineTo(630.032f, 133.697f);
4406 path.lineTo(630.032f, 133.25f);
4407 path.lineTo(626.856f, 133.25f);
4408 path.lineTo(626.856f, 130.472f);
4409 path.lineTo(630.114f, 130.472f);
4410 path.lineTo(630.114f, 130.024f);
4411 path.lineTo(626.316f, 130.024f);
4412 path.lineTo(626.316f, 136.964f);
4413 path.lineTo(630.196f, 136.964f);
4414 path.lineTo(630.196f, 136.516f);
4415 path.lineTo(626.857f, 136.516f);
4416 path.lineTo(626.857f, 133.697f);
4417 path.lineTo(626.856f, 133.697f);
4418 path.close();
4419 path.moveTo(633.115f, 136.963f);
4420 path.lineTo(633.33f, 136.963f);
4421 path.cubicTo(633.33f, 137.309f, 633.299f, 137.523f, 633.115f, 137.797f);
4422 path.lineTo(633.115f, 138.154f);
4423 path.cubicTo(633.565f, 137.828f, 633.779f, 137.269f, 633.779f, 136.75f);
4424 path.lineTo(633.779f, 135.976f);
4425 path.lineTo(633.115f, 135.976f);
4426 path.lineTo(633.115f, 136.963f);
4427 path.close();
4428 path.moveTo(641.511f, 131.753f);
4429 path.cubicTo(641.511f, 131.001f, 642.144f, 130.43f, 642.981f, 130.43f);
4430 path.cubicTo(643.461f, 130.43f, 643.828f, 130.552f, 644.544f, 130.959f);
4431 path.lineTo(644.544f, 130.37f);
4432 path.cubicTo(644.003f, 130.075f, 643.472f, 129.933f, 642.931f, 129.933f);
4433 path.cubicTo(641.828f, 129.933f, 640.929f, 130.747f, 640.929f, 131.775f);
4434 path.cubicTo(640.929f, 134.065f, 644.247f, 133.2f, 644.247f, 135.173f);
4435 path.cubicTo(644.247f, 135.956f, 643.604f, 136.557f, 642.777f, 136.557f);
4436 path.cubicTo(642.236f, 136.557f, 641.797f, 136.374f, 641.02f, 135.814f);
4437 path.lineTo(641.02f, 136.445f);
4438 path.cubicTo(641.633f, 136.852f, 642.235f, 137.055f, 642.807f, 137.055f);
4439 path.cubicTo(643.941f, 137.055f, 644.829f, 136.221f, 644.829f, 135.152f);
4440 path.cubicTo(644.829f, 132.72f, 641.511f, 133.605f, 641.511f, 131.753f);
4441 path.close();
4442 path.moveTo(648.649f, 133.697f);
4443 path.lineTo(651.824f, 133.697f);
4444 path.lineTo(651.824f, 133.25f);
4445 path.lineTo(648.649f, 133.25f);
4446 path.lineTo(648.649f, 130.472f);
4447 path.lineTo(651.906f, 130.472f);
4448 path.lineTo(651.906f, 130.024f);
4449 path.lineTo(648.107f, 130.024f);
4450 path.lineTo(648.107f, 136.964f);
4451 path.lineTo(651.988f, 136.964f);
4452 path.lineTo(651.988f, 136.516f);
4453 path.lineTo(648.649f, 136.516f);
4454 path.lineTo(648.649f, 133.697f);
4455 path.close();
4456 path.moveTo(657.91f, 133.503f);
4457 path.cubicTo(658.799f, 133.177f, 659.237f, 132.618f, 659.237f, 131.814f);
4458 path.cubicTo(659.237f, 130.888f, 658.635f, 130.023f, 656.929f, 130.023f);
4459 path.lineTo(655.142f, 130.023f);
4460 path.lineTo(655.142f, 136.963f);
4461 path.lineTo(655.683f, 136.963f);
4462 path.lineTo(655.683f, 133.635f);
4463 path.lineTo(656.623f, 133.635f);
4464 path.cubicTo(657.46f, 133.635f, 657.726f, 133.747f, 658.563f, 135.06f);
4465 path.lineTo(659.778f, 136.963f);
4466 path.lineTo(660.411f, 136.963f);
4467 path.lineTo(658.838f, 134.561f);
4468 path.cubicTo(658.513f, 134.073f, 658.237f, 133.676f, 657.91f, 133.503f);
4469 path.close();
4470 path.moveTo(656.838f, 133.188f);
4471 path.lineTo(655.684f, 133.188f);
4472 path.lineTo(655.684f, 130.472f);
4473 path.lineTo(656.817f, 130.472f);
4474 path.cubicTo(658.094f, 130.472f, 658.655f, 131.041f, 658.655f, 131.825f);
4475 path.cubicTo(658.655f, 132.659f, 658.063f, 133.188f, 656.838f, 133.188f);
4476 path.close();
4477 path.moveTo(664.968f, 135.894f);
4478 path.lineTo(662.497f, 130.023f);
4479 path.lineTo(661.956f, 130.023f);
4480 path.lineTo(664.887f, 137.034f);
4481 path.lineTo(665.04f, 137.034f);
4482 path.lineTo(667.961f, 130.023f);
4483 path.lineTo(667.42f, 130.023f);
4484 path.lineTo(664.968f, 135.894f);
4485 path.close();
4486 path.moveTo(670.829f, 136.963f);
4487 path.lineTo(671.37f, 136.963f);
4488 path.lineTo(671.37f, 130.023f);
4489 path.lineTo(670.829f, 130.023f);
4490 path.lineTo(670.829f, 136.963f);
4491 path.close();
4492 path.moveTo(680.734f, 136.088f);
4493 path.lineTo(675.455f, 130.024f);
4494 path.lineTo(674.995f, 130.024f);
4495 path.lineTo(674.995f, 136.964f);
4496 path.lineTo(675.536f, 136.964f);
4497 path.lineTo(675.536f, 130.899f);
4498 path.lineTo(680.826f, 136.964f);
4499 path.lineTo(681.275f, 136.964f);
4500 path.lineTo(681.275f, 130.024f);
4501 path.lineTo(680.733f, 130.024f);
4502 path.lineTo(680.733f, 136.088f);
4503 path.lineTo(680.734f, 136.088f);
4504 path.close();
4505 path.moveTo(688.873f, 134.257f);
4506 path.lineTo(690.343f, 134.257f);
4507 path.lineTo(690.343f, 136.129f);
4508 path.cubicTo(689.791f, 136.403f, 689.24f, 136.556f, 688.433f, 136.556f);
4509 path.cubicTo(686.238f, 136.556f, 685.206f, 135.05f, 685.206f, 133.493f);
4510 path.cubicTo(685.206f, 131.733f, 686.514f, 130.43f, 688.28f, 130.43f);
4511 path.cubicTo(689.117f, 130.43f, 689.903f, 130.654f, 690.751f, 131.132f);
4512 path.lineTo(690.751f, 130.522f);
4513 path.cubicTo(689.771f, 130.084f, 689.148f, 129.932f, 688.362f, 129.932f);
4514 path.cubicTo(686.207f, 129.932f, 684.624f, 131.438f, 684.624f, 133.473f);
4515 path.cubicTo(684.624f, 135.529f, 686.247f, 137.055f, 688.413f, 137.055f);
4516 path.cubicTo(689.219f, 137.055f, 690.057f, 136.862f, 690.884f, 136.465f);
4517 path.lineTo(690.884f, 133.809f);
4518 path.lineTo(688.873f, 133.809f);
4519 path.lineTo(688.873f, 134.257f);
4520 path.close();
4521 path.moveTo(699.432f, 131.753f);
4522 path.cubicTo(699.432f, 131.001f, 700.065f, 130.43f, 700.902f, 130.43f);
4523 path.cubicTo(701.381f, 130.43f, 701.749f, 130.552f, 702.464f, 130.959f);
4524 path.lineTo(702.464f, 130.37f);
4525 path.cubicTo(701.923f, 130.075f, 701.391f, 129.933f, 700.85f, 129.933f);
4526 path.cubicTo(699.747f, 129.933f, 698.849f, 130.747f, 698.849f, 131.775f);
4527 path.cubicTo(698.849f, 134.065f, 702.168f, 133.2f, 702.168f, 135.173f);
4528 path.cubicTo(702.168f, 135.956f, 701.525f, 136.557f, 700.698f, 136.557f);
4529 path.cubicTo(700.156f, 136.557f, 699.718f, 136.374f, 698.941f, 135.814f);
4530 path.lineTo(698.941f, 136.445f);
4531 path.cubicTo(699.553f, 136.852f, 700.156f, 137.055f, 700.728f, 137.055f);
4532 path.cubicTo(701.862f, 137.055f, 702.75f, 136.221f, 702.75f, 135.152f);
4533 path.cubicTo(702.75f, 132.72f, 699.432f, 133.605f, 699.432f, 131.753f);
4534 path.close();
4535 path.moveTo(709.407f, 129.932f);
4536 path.cubicTo(707.345f, 129.932f, 705.731f, 131.499f, 705.731f, 133.493f);
4537 path.cubicTo(705.731f, 135.488f, 707.345f, 137.054f, 709.407f, 137.054f);
4538 path.cubicTo(711.48f, 137.054f, 713.104f, 135.487f, 713.104f, 133.493f);
4539 path.cubicTo(713.104f, 131.499f, 711.481f, 129.932f, 709.407f, 129.932f);
4540 path.close();
4541 path.moveTo(709.428f, 136.556f);
4542 path.cubicTo(707.683f, 136.556f, 706.314f, 135.223f, 706.314f, 133.493f);
4543 path.cubicTo(706.314f, 131.763f, 707.682f, 130.43f, 709.428f, 130.43f);
4544 path.cubicTo(711.175f, 130.43f, 712.523f, 131.763f, 712.523f, 133.493f);
4545 path.cubicTo(712.522f, 135.223f, 711.175f, 136.556f, 709.428f, 136.556f);
4546 path.close();
4547 path.moveTo(716.739f, 133.503f);
4548 path.cubicTo(716.739f, 131.743f, 718.046f, 130.43f, 719.782f, 130.43f);
4549 path.cubicTo(720.609f, 130.43f, 721.395f, 130.644f, 722.264f, 131.102f);
4550 path.lineTo(722.264f, 130.512f);
4551 path.cubicTo(721.416f, 130.125f, 720.589f, 129.932f, 719.813f, 129.932f);
4552 path.cubicTo(717.903f, 129.932f, 716.157f, 131.377f, 716.157f, 133.503f);
4553 path.cubicTo(716.157f, 135.538f, 717.74f, 137.054f, 719.863f, 137.054f);
4554 path.cubicTo(720.67f, 137.054f, 721.528f, 136.83f, 722.335f, 136.402f);
4555 path.lineTo(722.335f, 135.843f);
4556 path.cubicTo(721.385f, 136.341f, 720.64f, 136.555f, 719.854f, 136.555f);
4557 path.cubicTo(718.037f, 136.556f, 716.739f, 135.294f, 716.739f, 133.503f);
4558 path.close();
4559 path.moveTo(725.409f, 136.963f);
4560 path.lineTo(725.95f, 136.963f);
4561 path.lineTo(725.95f, 130.023f);
4562 path.lineTo(725.409f, 130.023f);
4563 path.lineTo(725.409f, 136.963f);
4564 path.close();
4565 path.moveTo(730.136f, 133.697f);
4566 path.lineTo(733.312f, 133.697f);
4567 path.lineTo(733.312f, 133.25f);
4568 path.lineTo(730.136f, 133.25f);
4569 path.lineTo(730.136f, 130.472f);
4570 path.lineTo(733.393f, 130.472f);
4571 path.lineTo(733.393f, 130.024f);
4572 path.lineTo(729.595f, 130.024f);
4573 path.lineTo(729.595f, 136.964f);
4574 path.lineTo(733.475f, 136.964f);
4575 path.lineTo(733.475f, 136.516f);
4576 path.lineTo(730.136f, 136.516f);
4577 path.lineTo(730.136f, 133.697f);
4578 path.close();
4579 path.moveTo(735.865f, 130.472f);
4580 path.lineTo(738.479f, 130.472f);
4581 path.lineTo(738.479f, 136.964f);
4582 path.lineTo(739.02f, 136.964f);
4583 path.lineTo(739.02f, 130.472f);
4584 path.lineTo(741.634f, 130.472f);
4585 path.lineTo(741.634f, 130.024f);
4586 path.lineTo(735.865f, 130.024f);
4587 path.lineTo(735.865f, 130.472f);
4588 path.close();
4589 path.moveTo(749.017f, 130.023f);
4590 path.lineTo(746.699f, 132.771f);
4591 path.lineTo(744.371f, 130.023f);
4592 path.lineTo(743.717f, 130.023f);
4593 path.lineTo(746.423f, 133.239f);
4594 path.lineTo(746.423f, 136.963f);
4595 path.lineTo(746.964f, 136.963f);
4596 path.lineTo(746.964f, 133.239f);
4597 path.lineTo(749.67f, 130.023f);
4598 path.lineTo(749.017f, 130.023f);
4599 path.close();
4600 path.moveTo(578.773f, 115.549f);
4601 path.lineTo(578.773f, 62.773f);
4602 path.lineTo(557.571f, 62.773f);
4603 path.cubicTo(562.752f, 67.658f, 575.797f, 106.652f, 578.773f, 115.549f);
4604 path.close();
4605 path.moveTo(544.754f, 62.861f);
4606 path.lineTo(524.496f, 62.861f);
4607 path.lineTo(524.496f, 115.55f);
4608 path.lineTo(524.934f, 115.55f);
4609 path.lineTo(544.544f, 64.169f);
4610 path.lineTo(528.157f, 115.549f);
4611 path.lineTo(528.682f, 115.549f);
4612 path.lineTo(546.557f, 67.658f);
4613 path.lineTo(531.675f, 115.548f);
4614 path.lineTo(532.376f, 115.548f);
4615 path.lineTo(548.57f, 71.846f);
4616 path.lineTo(535.293f, 115.507f);
4617 path.lineTo(535.906f, 115.507f);
4618 path.lineTo(544.281f, 97.58f);
4619 path.lineTo(542.267f, 97.58f);
4620 path.lineTo(550.409f, 76.033f);
4621 path.lineTo(544.281f, 97.578f);
4622 path.lineTo(546.119f, 97.578f);
4623 path.lineTo(538.678f, 115.551f);
4624 path.lineTo(565.029f, 115.551f);
4625 path.cubicTo(562.052f, 106.477f, 550.759f, 67.92f, 544.754f, 62.861f);
4626 path.close();
4627 SkPath path2(path);
4628 testPathOp(reporter, path1, path2, kIntersect_SkPathOp, filename);
4629 }
4630
3977 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0; 4631 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
3978 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; 4632 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
3979 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; 4633 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
3980 4634
3981 static struct TestDesc tests[] = { 4635 static struct TestDesc tests[] = {
3982 TEST(skpwww_gorcraft_ru_1), 4636 TEST(skpwww_gorcraft_ru_1),
4637 TEST(http___www_project2061_org),
4638 TEST(http___www_emuleteca_cl_27),
4639 TEST(http___www_emuleteca_cl_26),
4640 TEST(http___www_emuleteca_cl_28),
3983 TEST(skpwww_nimble_com_au_1), 4641 TEST(skpwww_nimble_com_au_1),
3984 TEST(skpwww_mybuilder_com_1), 4642 TEST(skpwww_mybuilder_com_1),
3985 TEST(skpwww_neda_net_2), // small coincident line segments (fixed) 4643 TEST(skpwww_neda_net_2),
3986 TEST(skpwww_woothemes_com_1), 4644 TEST(skpwww_woothemes_com_1),
3987 TEST(skpwww_neda_net_1), 4645 TEST(skpwww_neda_net_1),
3988 TEST(skpwww_tinytots_com_1), // completely coincident reversed cubics (dup ) 4646 TEST(skpwww_tinytots_com_1),
3989 TEST(skpwww_educationalcraft_com_4a), 4647 TEST(skpwww_educationalcraft_com_4a),
3990 TEST(skpwww_lptemp_com_3), 4648 TEST(skpwww_lptemp_com_3),
3991 TEST(skpwww_shinydemos_com_5), 4649 TEST(skpwww_shinydemos_com_5),
3992 TEST(skpwww_lptemp_com_5), 4650 TEST(skpwww_lptemp_com_5),
3993 TEST(skpwww_shinydemos_com_15), 4651 TEST(skpwww_shinydemos_com_15),
3994 TEST(skpwww_familysurvivalprotocol_wordpress_com_61), 4652 TEST(skpwww_familysurvivalprotocol_wordpress_com_61),
3995 TEST(skpwww_alamdi_com_3), 4653 TEST(skpwww_alamdi_com_3),
3996 TEST(skpwww_devbridge_com_22), 4654 TEST(skpwww_devbridge_com_22),
3997 TEST(skpwww_firstunitedbank_com_19), 4655 TEST(skpwww_firstunitedbank_com_19),
3998 TEST(skpwww_googleventures_com_32), 4656 TEST(skpwww_googleventures_com_32),
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
4106 static const size_t testCount = SK_ARRAY_COUNT(tests); 4764 static const size_t testCount = SK_ARRAY_COUNT(tests);
4107 4765
4108 static bool runReverse = false; 4766 static bool runReverse = false;
4109 4767
4110 DEF_TEST(PathOpsSkp, reporter) { 4768 DEF_TEST(PathOpsSkp, reporter) {
4111 #if DEBUG_SHOW_TEST_NAME 4769 #if DEBUG_SHOW_TEST_NAME
4112 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); 4770 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH);
4113 #endif 4771 #endif
4114 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse); 4772 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse);
4115 } 4773 }
OLDNEW
« no previous file with comments | « src/pathops/SkPathOpsWinding.cpp ('k') | tests/PathOpsTSectDebug.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698