-
-
Notifications
You must be signed in to change notification settings - Fork 43
Fast polygon scanning with active edge list #96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
107 commits
Select commit
Hold shift + click to select a range
907df3e
hack dev inner loop as usual
antonfirsov e20fa94
_IntersectionExperiments
antonfirsov 7765409
ScanTests + infrastructure
antonfirsov 053a907
TessellatedMultiPolygon works
antonfirsov abbe94d
EdgeData skeleton
antonfirsov 5ee8e1c
ScanEdgeCollection tests
antonfirsov 6de0e46
SimplePolygon_AllEmitCases works
antonfirsov 4c493fd
cleanup + more tests
antonfirsov a077f4e
use Sign2 to determine polygon orientation
antonfirsov 37d6d02
SortHelper
antonfirsov 2deaeff
QuicSort, SortHelper -> SortUtility
antonfirsov c4e5001
started implementing PolygonScanner
antonfirsov cb38780
ScanEdge.GetX
antonfirsov 2b68483
VertexCategoriesAndEmitRules.jpg
antonfirsov 6697127
Some docs about VertexCategory rules
antonfirsov dbb7bdd
Move types
antonfirsov 7fc5f82
ActiveEdgeList skeleton
antonfirsov 254827b
NumericCornerCases
antonfirsov 5bb6933
better VertexCategory rules
antonfirsov 1fb0578
robust rules for categorizing horizontal edges
antonfirsov ef3992c
RoundToPositiveInfinity
antonfirsov 3bd5e94
+1 corner case
antonfirsov 48ce7cc
some progress with PolygonScanner
antonfirsov 99d7052
some tests pass
antonfirsov ea57b49
even more tests passing
antonfirsov 722e57f
FuzzyFloat
antonfirsov a2296be
distort lines according to rounding rules
antonfirsov b6859e9
comment on SelfIntersecting01
antonfirsov b634dea
remove TolerantComparer
antonfirsov d3d1fe7
FillPolygon_Solid_Basic
antonfirsov da87b79
ClassicPolygonScanner (for safer refactor path)
antonfirsov 78a9b3e
trying to utilize ClassicPolygonScanner
antonfirsov a4edef4
ClassicPolygonScanner works
antonfirsov b7a145e
update PolygonScanner API
antonfirsov 7e61da4
FillRegionProcessor + PolygonScanner
antonfirsov cd2517b
add GeoJson test
antonfirsov 87daad2
allow selecting implementations with ShapeOptions
antonfirsov d50474f
Mississippi
antonfirsov 38cc13c
minimal repro for numeric issues
antonfirsov e2091ef
Missisippi_Skia
antonfirsov 1615360
simple trick to shave hair from Mississippi
antonfirsov 90243a2
simplify the centered line equation
antonfirsov 069055a
use doubles
antonfirsov c8a1524
Revert "use doubles"
antonfirsov ae8a0f8
benchmarks
antonfirsov c10e957
LargeGeoJson_Fill
antonfirsov 3e3d18e
more benchmarks
antonfirsov de699cd
fix FillPolygonSmall
antonfirsov 2e061bb
DefaultSubpixelCount = 8, replace half of test output
antonfirsov 6986e5e
replace part of FillPolygonTests output + optimize PNG
antonfirsov ca2bb3d
replace SolidBezierTests output
antonfirsov adfa0f3
FillPolygon_Solid_Rgba32_White_A1_NoAntialias
antonfirsov 05e87b0
update FillPolygon_Solid_Basic
antonfirsov ad3a203
delete _IntersectionExperiments
antonfirsov 1950f1e
first attempt to handle nonzero rule
antonfirsov c73a016
nonzero case WIP
antonfirsov a364fbc
Nonzero intersections implemented
antonfirsov d74183a
drop FillRegionProcessorTests.MinimumAntialiasSubpixelDepth
antonfirsov 3b70d78
DrawCircleOutsideBoundsDrawingArea
antonfirsov 6a19722
SkipEdgesBeforeMinY
antonfirsov 3d4c644
FillOutsideBoundsTests
antonfirsov 12c4326
handle empty PolygonScanner in SkipEdgesBeforeMinY
antonfirsov 64f76ef
started refactoring DrawTextProcessor
antonfirsov 7705809
ClassicPolygonScanner renders nicely
antonfirsov d714eef
some shapes are lost
antonfirsov d60f5e4
i
antonfirsov 4c178a8
do not re-orient font shapes
antonfirsov 8e1ee25
update reference output
antonfirsov 2e30745
OrientationHandling
antonfirsov 247506f
add tests for reverse polygon scanning
antonfirsov ee0ea20
fix reverse Nonzero scanning
antonfirsov 871cb1c
update DrawTextOnImageTests reference image
antonfirsov ab3677b
fix TessellatedMultipolygonTests.Create_FromComplexPolygon
antonfirsov dc754f8
change default orientation handling to ForcePositiveOrientationOnSimp…
antonfirsov 5e372ce
refactor
antonfirsov e87e876
ScanCurrentSubpixelLineInto
antonfirsov 5327707
ScanCurrentPixelLineInto
antonfirsov e94ab3b
always use PolygonScanner
antonfirsov 41a415c
fix benchmarks
antonfirsov c5309d5
update DrawText benchmark
antonfirsov d1f7c9d
profiling
antonfirsov 5380e54
some optimization
antonfirsov 9b74e78
remove ClassicPolygonScanner and Region.Scan
antonfirsov 9edc0e2
make StyleCop happy
antonfirsov a39afa7
put a comment about GeoJson test "image"
antonfirsov d33fd4a
remove MathF.Ceiling in rasterization
antonfirsov 46ca49f
add optipng.exe
antonfirsov 882fae6
update ReferenceOutput
antonfirsov 14c5897
cleanup + add regression testing in DrawingRobustnessTests
antonfirsov 0946c10
Revert "hack dev inner loop as usual"
antonfirsov cdeafe3
fix build errors against old targets
antonfirsov 3e1715e
relax comparison on .NET Framework
antonfirsov f873ce7
Merge branch 'master' into af/polygon-lab
antonfirsov 9cca58a
NumberUtilities + NumericExtensions = NumericUtilities, some SIMD
antonfirsov 55829c1
skip DrawingProfilingBenchmarks
antonfirsov 8798c4a
fix bug, improve bencmharks
antonfirsov 25a8e1a
PoygonScanning.MD
antonfirsov df263a9
undo hack in Benchmarks
antonfirsov e2e1ef6
improve PolygonScanning.MD
antonfirsov 7bbb5af
improvve PolygonScanning.MD and add benchmark results
antonfirsov 1eccfb8
simplify PolygonScanner factory method
antonfirsov 6d1e7a1
use latest stable versions of Fonts and ImageSharp
antonfirsov 47f5e8e
dedupe EdgeData creation code
antonfirsov 3ff3e59
remove OrientationHandling customization
antonfirsov c221b81
remove OrientationHandling
antonfirsov 4ac3523
more sophisticated way to "argue" with StyleCop
antonfirsov 722ea9f
do not DebugDraw on CI
antonfirsov File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.