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 #include "SkOpCoincidence.h" | 7 #include "SkOpCoincidence.h" |
8 #include "SkOpContour.h" | 8 #include "SkOpContour.h" |
9 #include "SkOpSegment.h" | 9 #include "SkOpSegment.h" |
10 #include "SkPathWriter.h" | 10 #include "SkPathWriter.h" |
(...skipping 894 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
905 } | 905 } |
906 | 906 |
907 void SkOpSegment::init(SkPoint pts[], SkScalar weight, SkOpContour* contour, SkP
ath::Verb verb) { | 907 void SkOpSegment::init(SkPoint pts[], SkScalar weight, SkOpContour* contour, SkP
ath::Verb verb) { |
908 fContour = contour; | 908 fContour = contour; |
909 fNext = nullptr; | 909 fNext = nullptr; |
910 fOriginal[0] = pts[0]; | 910 fOriginal[0] = pts[0]; |
911 fOriginal[1] = pts[SkPathOpsVerbToPoints(verb)]; | 911 fOriginal[1] = pts[SkPathOpsVerbToPoints(verb)]; |
912 fPts = pts; | 912 fPts = pts; |
913 fWeight = weight; | 913 fWeight = weight; |
914 fVerb = verb; | 914 fVerb = verb; |
915 fCubicType = SkDCubic::kUnsplit_SkDCubicType; | |
916 fCount = 0; | 915 fCount = 0; |
917 fDoneCount = 0; | 916 fDoneCount = 0; |
918 fTopsFound = false; | |
919 fVisited = false; | 917 fVisited = false; |
920 SkOpSpan* zeroSpan = &fHead; | 918 SkOpSpan* zeroSpan = &fHead; |
921 zeroSpan->init(this, nullptr, 0, fPts[0]); | 919 zeroSpan->init(this, nullptr, 0, fPts[0]); |
922 SkOpSpanBase* oneSpan = &fTail; | 920 SkOpSpanBase* oneSpan = &fTail; |
923 zeroSpan->setNext(oneSpan); | 921 zeroSpan->setNext(oneSpan); |
924 oneSpan->initBase(this, zeroSpan, 1, fPts[SkPathOpsVerbToPoints(fVerb)]); | 922 oneSpan->initBase(this, zeroSpan, 1, fPts[SkPathOpsVerbToPoints(fVerb)]); |
925 SkDEBUGCODE(fID = globalState()->nextSegmentID()); | 923 SkDEBUGCODE(fID = globalState()->nextSegmentID()); |
926 } | 924 } |
927 | 925 |
928 bool SkOpSegment::isClose(double t, const SkOpSegment* opp) const { | 926 bool SkOpSegment::isClose(double t, const SkOpSegment* opp) const { |
(...skipping 847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1776 int absOut = SkTAbs(outerWinding); | 1774 int absOut = SkTAbs(outerWinding); |
1777 int absIn = SkTAbs(innerWinding); | 1775 int absIn = SkTAbs(innerWinding); |
1778 bool result = absOut == absIn ? outerWinding < 0 : absOut < absIn; | 1776 bool result = absOut == absIn ? outerWinding < 0 : absOut < absIn; |
1779 return result; | 1777 return result; |
1780 } | 1778 } |
1781 | 1779 |
1782 int SkOpSegment::windSum(const SkOpAngle* angle) const { | 1780 int SkOpSegment::windSum(const SkOpAngle* angle) const { |
1783 const SkOpSpan* minSpan = angle->start()->starter(angle->end()); | 1781 const SkOpSpan* minSpan = angle->start()->starter(angle->end()); |
1784 return minSpan->windSum(); | 1782 return minSpan->windSum(); |
1785 } | 1783 } |
OLD | NEW |