Skip to content

Commit

Permalink
perf: Don't buffer twice to find the thermal offset
Browse files Browse the repository at this point in the history
Probably an unmesureably small speed-up.
  • Loading branch information
eyal0 committed Feb 5, 2021
1 parent 71ac38f commit bcb2fda
Show file tree
Hide file tree
Showing 7 changed files with 173 additions and 173 deletions.
8 changes: 4 additions & 4 deletions surface_vectorial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -950,12 +950,12 @@ vector<multi_polygon_type_fp> Surface_vectorial::offset_polygon(
coordinate_type_fp offset) const {
// The polygons to add to the PNG debugging output files.
// Mask the polygon that we need to mill.
multi_polygon_type_fp milling_poly;
milling_poly.push_back(do_voronoi ? voronoi_polygon : *input); // Milling voronoi or trace?
multi_polygon_type_fp milling_poly{do_voronoi ? voronoi_polygon : *input}; // Milling voronoi or trace?
coordinate_type_fp thermal_offset = 0;
if (!input) {
// This means that we are milling a thermal so we need to move inward
// slightly to accommodate the thickness of the millbit.
milling_poly = bg_helpers::buffer(milling_poly, -diameter/2 - offset);
thermal_offset = -diameter/2 - offset;
}
// This is the area that the milling must not cross so that it
// doesn't dig into the trace. We only need this if there is an
Expand Down Expand Up @@ -1008,7 +1008,7 @@ vector<multi_polygon_type_fp> Surface_vectorial::offset_polygon(
expand_by = (diameter - overlap) * factor;
}

multi_polygon_type_fp buffered_milling_poly = bg_helpers::buffer(milling_poly, expand_by + offset);
multi_polygon_type_fp buffered_milling_poly = bg_helpers::buffer(milling_poly, expand_by + offset + thermal_offset);
if (expand_by + offset != 0) {
if (!do_voronoi) {
buffered_milling_poly = buffered_milling_poly & voronoi_polygon;
Expand Down
206 changes: 103 additions & 103 deletions testing/gerbv_example/am-test-voronoi-extra-passes/expected/back.ngc
Original file line number Diff line number Diff line change
Expand Up @@ -2152,105 +2152,105 @@ G01 X-8.93229 Y5.38402
G01 X-8.85393 Y5.36155
G01 X-8.78194 Y5.32328
G01 X-8.76221 Y5.30672
G01 X-8.77630 Y5.30549
G01 X-8.78756 Y5.31494
G01 X-8.85770 Y5.35223
G01 X-8.93404 Y5.37412
G01 X-8.77629 Y5.30549
G01 X-8.78757 Y5.31495
G01 X-8.85769 Y5.35222
G01 X-8.93403 Y5.37411
G01 X-9.01326 Y5.37966
G01 X-9.09191 Y5.36860
G01 X-9.16653 Y5.34144
G01 X-9.23388 Y5.29936
G01 X-9.27292 Y5.26165
G01 X-9.01918 Y5.04873
G01 X-9.01717 Y5.04957
G01 X-9.01420 Y5.05050
G01 X-9.00756 Y5.05188
G01 X-9.00446 Y5.05230
G01 X-8.99554 Y5.05230
G01 X-8.99244 Y5.05188
G01 X-9.09190 Y5.36861
G01 X-9.16653 Y5.34145
G01 X-9.23388 Y5.29935
G01 X-9.27293 Y5.26165
G01 X-9.01919 Y5.04873
G01 X-9.01420 Y5.05051
G01 X-9.00755 Y5.05188
G01 X-9.00340 Y5.05236
G01 X-8.99660 Y5.05235
G01 X-8.99245 Y5.05188
G01 X-8.98961 Y5.05128
G01 X-8.77630 Y5.30549
G01 X-8.79039 Y5.30426
G01 X-8.77629 Y5.30549
G01 X-8.79038 Y5.30426
G01 X-8.79319 Y5.30661
G01 X-8.86146 Y5.34290
G01 X-8.93578 Y5.36421
G01 X-9.01291 Y5.36961
G01 X-9.08947 Y5.35885
G01 X-9.16212 Y5.33240
G01 X-9.16212 Y5.33241
G01 X-9.22769 Y5.29143
G01 X-9.25799 Y5.26217
G01 X-9.01709 Y5.06004
G01 X-9.01706 Y5.06000
G01 X-9.00963 Y5.06166
G01 X-9.00551 Y5.06226
G01 X-9.00340 Y5.06237
G01 X-8.99660 Y5.06232
G01 X-8.99357 Y5.06211
G01 X-8.79039 Y5.30426
G01 X-8.99366 Y5.06201
G01 X-8.79038 Y5.30426
G01 X-8.80548 Y5.30182
G01 X-8.86523 Y5.33358
G01 X-8.86522 Y5.33358
G01 X-8.93753 Y5.35431
G01 X-9.01256 Y5.35956
G01 X-9.08704 Y5.34909
G01 X-9.15772 Y5.32337
G01 X-9.22150 Y5.28351
G01 X-9.24305 Y5.26269
G01 X-9.01444 Y5.07087
G01 X-9.01171 Y5.07144
G01 X-9.00656 Y5.07218
G01 X-9.01445 Y5.07087
G01 X-9.01171 Y5.07145
G01 X-9.00340 Y5.07234
G01 X-8.99806 Y5.07232
G01 X-8.80548 Y5.30182
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
G00 Z0.08000 ( retract )

G00 X-9.07097 Y4.98543 ( rapid move to begin. )
G00 X-9.07083 Y4.98558 ( rapid move to begin. )
G01 F3.00000
( Mill infeed pass 1/1 )
G01 Z-0.00800
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
G01 F6.00000
G01 X-9.07097 Y4.98543
G01 X-9.07157 Y4.98907
G01 X-9.07230 Y4.99582
G01 X-9.07240 Y5.00201
G01 X-9.07083 Y4.98558
G01 X-9.07157 Y4.98906
G01 X-9.07231 Y4.99582
G01 X-9.07228 Y5.00191
G01 X-9.30091 Y5.19375
G01 X-9.31766 Y5.16891
G01 X-9.34583 Y5.09916
G01 X-9.31767 Y5.16891
G01 X-9.34584 Y5.09916
G01 X-9.35891 Y5.02509
G01 X-9.35628 Y4.94993
G01 X-9.33808 Y4.87695
G01 X-9.30511 Y4.80934
G01 X-9.26346 Y4.75603
G01 X-9.07097 Y4.98543
G01 X-9.07083 Y4.98558
G01 X-9.05999 Y4.98295
G01 X-9.26324 Y4.74073
G01 X-9.26323 Y4.74074
G01 X-9.26604 Y4.74309
G01 X-9.31363 Y4.80402
G01 X-9.31364 Y4.80401
G01 X-9.34753 Y4.87351
G01 X-9.36623 Y4.94853
G01 X-9.36894 Y5.02580
G01 X-9.36624 Y4.94853
G01 X-9.36894 Y5.02579
G01 X-9.35550 Y5.10194
G01 X-9.32654 Y5.17363
G01 X-9.30299 Y5.20855
G01 X-9.06200 Y5.00634
G01 X-9.06245 Y5.00104
G01 X-9.06237 Y4.99687
G01 X-9.06132 Y4.98800
G01 X-9.06200 Y5.00633
G01 X-9.06233 Y5.00313
G01 X-9.06236 Y4.99686
G01 X-9.06164 Y4.99010
G01 X-9.05999 Y4.98295
G01 X-9.04877 Y4.98077
G01 X-9.04876 Y4.98077
G01 X-9.26200 Y4.72665
G01 X-9.27328 Y4.73610
G01 X-9.32216 Y4.79869
G01 X-9.27327 Y4.73611
G01 X-9.32217 Y4.79869
G01 X-9.35698 Y4.87007
G01 X-9.37619 Y4.94713
G01 X-9.37897 Y5.02650
G01 X-9.36516 Y5.10471
G01 X-9.36517 Y5.10471
G01 X-9.33542 Y5.17835
G01 X-9.30507 Y5.22335
G01 X-9.05139 Y5.01049
G01 X-9.05240 Y5.00208
G01 X-9.05244 Y4.99791
G01 X-9.05155 Y4.99009
G01 X-9.05134 Y5.01044
G01 X-9.05168 Y5.00885
G01 X-9.05239 Y5.00209
G01 X-9.05243 Y4.99791
G01 X-9.05171 Y4.99114
G01 X-9.05081 Y4.98706
G01 X-9.04877 Y4.98077
G01 X-9.04876 Y4.98077
G01 X-9.03693 Y4.97932
G01 X-9.26077 Y4.71256
G01 X-9.28051 Y4.72912
Expand All @@ -2274,55 +2274,56 @@ G01 X-9.03693 Y4.97932
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
G00 Z0.08000 ( retract )

G00 X-8.64109 Y4.97490 ( rapid move to begin. )
G00 X-8.64109 Y4.97491 ( rapid move to begin. )
G01 F3.00000
( Mill infeed pass 1/1 )
G01 Z-0.00800
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
G01 F6.00000
G01 X-8.64109 Y4.97490
G01 X-8.64372 Y5.05007
G01 X-8.66192 Y5.12305
G01 X-8.69489 Y5.19065
G01 X-8.73654 Y5.24397
G01 X-8.92903 Y5.01457
G01 X-8.92842 Y5.01093
G01 X-8.92770 Y5.00417
G01 X-8.92760 Y4.99799
G01 X-8.64109 Y4.97491
G01 X-8.65416 Y4.90084
G01 X-8.68233 Y4.83109
G01 X-8.69909 Y4.80625
G01 X-8.68234 Y4.83109
G01 X-8.65417 Y4.90083
G01 X-8.64109 Y4.97490
G01 X-8.63106 Y4.97420
G01 X-8.92772 Y4.99809
G01 X-8.92769 Y5.00418
G01 X-8.92843 Y5.01094
G01 X-8.92917 Y5.01441
G01 X-8.73654 Y5.24397
G01 X-8.69489 Y5.19065
G01 X-8.66191 Y5.12305
G01 X-8.64372 Y5.05007
G01 X-8.64109 Y4.97491
G01 X-8.63106 Y4.97421
G01 X-8.64450 Y4.89806
G01 X-8.67346 Y4.82637
G01 X-8.69701 Y4.79145
G01 X-8.93800 Y4.99366
G01 X-8.93755 Y4.99896
G01 X-8.93763 Y5.00313
G01 X-8.93868 Y5.01200
G01 X-8.93766 Y4.99687
G01 X-8.93764 Y5.00313
G01 X-8.93836 Y5.00990
G01 X-8.94001 Y5.01705
G01 X-8.73676 Y5.25927
G01 X-8.73677 Y5.25926
G01 X-8.73396 Y5.25691
G01 X-8.68636 Y5.19598
G01 X-8.65247 Y5.12649
G01 X-8.63376 Y5.05147
G01 X-8.63106 Y4.97420
G01 X-8.63106 Y4.97421
G01 X-8.62103 Y4.97350
G01 X-8.63484 Y4.89529
G01 X-8.63483 Y4.89529
G01 X-8.66458 Y4.82165
G01 X-8.69493 Y4.77665
G01 X-8.94861 Y4.98951
G01 X-8.94760 Y4.99791
G01 X-8.94866 Y4.98955
G01 X-8.94832 Y4.99115
G01 X-8.94761 Y4.99791
G01 X-8.94756 Y5.00209
G01 X-8.94844 Y5.00991
G01 X-8.94828 Y5.00885
G01 X-8.94919 Y5.01294
G01 X-8.95123 Y5.01923
G01 X-8.73800 Y5.27335
G01 X-8.72672 Y5.26389
G01 X-8.67784 Y5.20131
G01 X-8.72673 Y5.26389
G01 X-8.67783 Y5.20131
G01 X-8.64302 Y5.12993
G01 X-8.62381 Y5.05287
G01 X-8.62380 Y5.05287
G01 X-8.62103 Y4.97350
G01 X-8.61100 Y4.97280
G01 X-8.62517 Y4.89252
Expand Down Expand Up @@ -2373,51 +2374,50 @@ G01 X-8.82906 Y4.64952
G01 X-8.75993 Y4.69272
G01 X-8.71214 Y4.73887
G01 X-8.72707 Y4.73835
G01 X-8.76612 Y4.70064
G01 X-8.83347 Y4.65856
G01 X-8.90809 Y4.63140
G01 X-8.76612 Y4.70065
G01 X-8.83347 Y4.65855
G01 X-8.90809 Y4.63139
G01 X-8.98674 Y4.62034
G01 X-9.06596 Y4.62588
G01 X-9.14230 Y4.64777
G01 X-9.21244 Y4.68506
G01 X-9.06597 Y4.62588
G01 X-9.14231 Y4.64778
G01 X-9.21243 Y4.68505
G01 X-9.22370 Y4.69451
G01 X-9.01039 Y4.94872
G01 X-9.00756 Y4.94812
G01 X-9.00445 Y4.94770
G01 X-8.99554 Y4.94769
G01 X-8.99244 Y4.94812
G01 X-8.98579 Y4.94950
G01 X-8.98282 Y4.95043
G01 X-8.98082 Y4.95127
G01 X-9.00755 Y4.94812
G01 X-9.00340 Y4.94765
G01 X-8.99660 Y4.94764
G01 X-8.99245 Y4.94812
G01 X-8.98580 Y4.94949
G01 X-8.98081 Y4.95127
G01 X-8.72707 Y4.73835
G01 X-8.74201 Y4.73783
G01 X-8.77231 Y4.70857
G01 X-8.83788 Y4.66759
G01 X-8.91052 Y4.64115
G01 X-8.83787 Y4.66759
G01 X-8.91053 Y4.64115
G01 X-8.98709 Y4.63039
G01 X-9.06422 Y4.63578
G01 X-9.06422 Y4.63579
G01 X-9.13854 Y4.65710
G01 X-9.20681 Y4.69339
G01 X-9.20961 Y4.69574
G01 X-9.00643 Y4.93789
G01 X-9.20962 Y4.69574
G01 X-9.00634 Y4.93799
G01 X-9.00340 Y4.93768
G01 X-8.99449 Y4.93774
G01 X-8.99037 Y4.93834
G01 X-8.98291 Y4.93996
G01 X-8.99660 Y4.93763
G01 X-8.99037 Y4.93833
G01 X-8.98294 Y4.94000
G01 X-8.74201 Y4.73783
G01 X-8.75695 Y4.73731
G01 X-8.75694 Y4.73731
G01 X-8.77850 Y4.71649
G01 X-8.84228 Y4.67663
G01 X-8.91296 Y4.65091
G01 X-8.91296 Y4.65090
G01 X-8.98744 Y4.64044
G01 X-9.06247 Y4.64569
G01 X-9.13477 Y4.66642
G01 X-9.19452 Y4.69818
G01 X-9.00194 Y4.92768
G01 X-8.99344 Y4.92782
G01 X-8.99660 Y4.92766
G01 X-8.98829 Y4.92855
G01 X-8.98556 Y4.92913
G01 X-8.75695 Y4.73731
G01 X-8.98555 Y4.92913
G01 X-8.75694 Y4.73731
G04 P0 ( dwell for no time -- G64 should not smooth over this point )
G00 Z0.08000 ( retract )

Expand Down

0 comments on commit bcb2fda

Please sign in to comment.