summaryrefslogtreecommitdiff
path: root/lib/utils/geometry.py
AgeCommit message (Collapse)Author
2024-03-29Add "the tartan universe" (#2782)Kaalleen
2024-02-01Do not omit "multi_shapes" in geometry collections (#2708)Kaalleen
2024-01-25Second chance for invalid fill stitch graphs (#2643)Kaalleen
2023-12-26Contour fill: replace buffer with offset_curve (#2654)Kaalleen
2023-04-14new way betterer satin algo (#2178)Lex Neva
* significantly faster length calculation * way betterer satin algo
2023-02-20better smoothing algorithmLex Neva
2023-02-20avoid weird end of line after smoothingLex Neva
2023-02-20meander fill: more workLex Neva
2023-02-20add smoothness option for contour fillLex Neva
2023-02-20add smooth_pathLex Neva
2023-01-22Replace running stitch algorithm to give consistent stitch lengths.George Steel
2022-12-26use random oracle for randomized satin columns and redo split stitchesGeorge Steel
2022-11-27This and that (#1727)Kaalleen
* dont fail on satin with fill * fill stitch error message * convert to satin mac issue * auto_satin: add rung for two node old style satins * avoid divide by zero in intersect_region_with_grating * fix for incorrect stagger in guided fill * better rail sectioning algorithm * fix #1780 * fix #1816 Co-authored-by: Lex Neva
2022-06-30Fixes (#1703)Kaalleen
* guide line position * use direction from line to shape * optimize intersection detection * fix flapack elf * handle weird guide lines better * update starting point for self crossing (multiple) fills * ripple: fixes and non circular join style * avoid jumps in ripple stitch * fallback only necessary if shape does not intersect grating * make valid may return a polygon * add profiling * Stitch.__init__ didn't work right and was super slow * shrink or grow to multipolygon Co-authored-by: Lex Neva
2022-06-22guided fill stagger (#1700)Lex Neva
2022-06-10Guided ripple stitch (#1675)Kaalleen
Co-authored-by: @lexelby
2022-05-04wipLex Neva
2022-05-04remove redundant cut() functionLex Neva
2021-08-07Stitch + Stitch yields StitchLex Neva
2021-03-11add copyright headersLex Neva
2021-03-04Update for Inkscape 1.0 (#880)Kaalleen
* update for inkscape 1.0 * add about extension * Build improvements for the inkscape1.0 branch (#985) * zip: export real svg not stitch plan * #411 and #726 * Tools for Font Creators (#1018) * ignore very small holes in fills * remove embroider (#1026) * auto_fill: ignore shrink_or_grow if result is empty (#589) * break apart: do not ignore small fills Co-authored-by: Hagen Fritsch <rumpeltux-github@irgendwo.org> Co-authored-by: Lex Neva <github.com@lexneva.name>
2020-04-28electron simulator (#531)Lex Neva
2019-08-05add Troubleshoot extension (#465)Kaalleen
adds an extension to help you understand what's wrong with an object and how to fix it, e.g. "invalid" fill shapes
2018-12-19fix duplicate point handlingLex Neva
2018-10-30new extension: Auto-Route Satin Columns (#330)Lex Neva
**video demo:** https://www.youtube.com/watch?v=tbghtqziB1g This branch adds a new extension, Auto-Route Satin Columns, implementing #214! This is a huge new feature that opens the door wide for exciting stuff like lettering (#142). To use it, select some satin columns and run the extension. After a few seconds, it will replace your satins with a new set with a logical stitching order. Under-pathing and jump-stitches will be added as necessary, and satins will be broken to facilitate jumps. The resulting satins will retain all of the parameters you had set on the original satins, including underlay, zig-zag spacing, etc. By default, it will choose the left-most extreme as the starting point and the right-most extreme as the ending point (even if these occur partway through a satin such as the left edge of a letter "o"). You can override this by attaching the new "Auto-route satin stitch starting/ending position" commands. There's also an option to add trims instead of jump stitches. Any jump stitch over 1mm is trimmed. I might make this configurable in the future but in my tests it seems to do a good job. Trim commands are added to the SVG, so it's easy enough to modify/delete as you see fit.
2018-09-29new extension: split satin (#315)Lex Neva
This branch adds a new command to split a satin column at a specified point. The split happens at a stitch boundary to ensure that the two resulting satins sew just like the original. All parameters set on the original satin remain set on the two new satins, and all rungs are retained. If one of the satins would have no rungs left, a new rung is added. How to use: 1. Select a satin column (simple satin doesn't work) 2. Attach the "Satin split point" command using the "Attach commands to selected objects" extension. 3. Move the symbol (or just the connector line's endpoint) to point to the exact spot you want the satin to be split at. 4. Select the satin column again. 5. Run "Split Satin Column". 6. The split point command and connector line disappear, and nothing else appears to have happened. Select your satin and you'll see that it's been split. This extension is a by-product of my initial work on #214. Ink/Stitch will need the ability to split a satin at an arbitrary point, and I figured, why not go ahead and release that functionality as an extension while I'm at it? :)
2018-08-21pyflakes fixesLex Neva
2018-08-21autopep8Lex Neva
2018-08-09make cut() work properly even if the cut point is nearly at the endLex Neva
2018-07-25switch to pyembroidery for file generationLex Neva
2018-05-29first attempt at realistic renderingLex Neva
2018-05-01rename inkstitch/ to lib/Lex Neva
You can't have a module and a package named the same thing. PyInstaller wants to import the main script as if it were a module, and this doesn't work unless there's no directory of the same name with a __init__.py in it.