deoverlap 3.2.0__tar.gz → 3.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {deoverlap-3.2.0/src/deoverlap.egg-info → deoverlap-3.2.1}/PKG-INFO +11 -9
- {deoverlap-3.2.0 → deoverlap-3.2.1}/README.md +10 -8
- {deoverlap-3.2.0 → deoverlap-3.2.1}/pyproject.toml +1 -1
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap/__init__.py +1 -1
- {deoverlap-3.2.0 → deoverlap-3.2.1/src/deoverlap.egg-info}/PKG-INFO +11 -9
- {deoverlap-3.2.0 → deoverlap-3.2.1}/LICENSE +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/setup.cfg +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap/deoverlap.py +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap/vpype_plugin.py +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap.egg-info/SOURCES.txt +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap.egg-info/dependency_links.txt +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap.egg-info/entry_points.txt +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap.egg-info/requires.txt +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/src/deoverlap.egg-info/top_level.txt +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/tests/test_deoverlap.py +0 -0
- {deoverlap-3.2.0 → deoverlap-3.2.1}/tests/test_vpype_plugin.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deoverlap
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.1
|
|
4
4
|
Summary: De-overlap Shapely geometries that sit within a tolerance of each other.
|
|
5
5
|
Author-email: Pietro Leoni <pietro.leoni@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -51,12 +51,14 @@ Dynamic: license-file
|
|
|
51
51
|
|
|
52
52
|
De-overlap Shapely geometries that sit within a tolerance of each other.
|
|
53
53
|
|
|
54
|
+
Source, examples and issues: [github.com/piLeoni/deoverlap](https://github.com/piLeoni/deoverlap)
|
|
55
|
+
|
|
54
56
|
The common case is pen-plotter work: two strokes closer than a pen width
|
|
55
57
|
visually merge on paper, so only one of them should keep the ink. Unlike
|
|
56
58
|
endpoint-only “deduplicate” tools, this library builds a **corridor** around
|
|
57
59
|
each kept stroke and crops (or drops) later strokes that fall inside it.
|
|
58
60
|
|
|
59
|
-

|
|
61
|
+

|
|
60
62
|
|
|
61
63
|
In every figure, blue is kept, red is removed and the thin orange outline is
|
|
62
64
|
the corridor mask. They are rendered by `examples/make_figures.py`.
|
|
@@ -96,7 +98,7 @@ When two corridors collide, priority is explicit:
|
|
|
96
98
|
| `longest` | Prefer the stroke that covers more ground |
|
|
97
99
|
| `shortest` | Prefer short marks / detail |
|
|
98
100
|
|
|
99
|
-

|
|
101
|
+

|
|
100
102
|
|
|
101
103
|
Original indices are preserved in `result.kept_parts` / `removed_parts` even
|
|
102
104
|
when processing order changes.
|
|
@@ -107,7 +109,7 @@ when processing order changes.
|
|
|
107
109
|
- `mode="drop"` — if more than `drop_fraction` (default 0.5) of a geometry’s
|
|
108
110
|
length is covered, discard the whole thing instead of leaving stubs.
|
|
109
111
|
|
|
110
|
-

|
|
112
|
+

|
|
111
113
|
|
|
112
114
|
`min_length=` drops lineal fragments shorter than that threshold after clipping
|
|
113
115
|
(points are never removed by it).
|
|
@@ -138,7 +140,7 @@ whatever direction its two ends point in.
|
|
|
138
140
|
Raising it to 45° or 60° trims steeper merges too. Crossings steeper than the
|
|
139
141
|
threshold are never cut.
|
|
140
142
|
|
|
141
|
-

|
|
143
|
+

|
|
142
144
|
|
|
143
145
|
## Groups — split pieces stay one object
|
|
144
146
|
|
|
@@ -157,7 +159,7 @@ result.kept_parts[1] # MultiLineString of both arcs
|
|
|
157
159
|
Set `group=False` for a flat list of primitive pieces (origins still recorded
|
|
158
160
|
in `kept_parts`).
|
|
159
161
|
|
|
160
|
-

|
|
162
|
+

|
|
161
163
|
|
|
162
164
|
This is the right model for layer-aware pipelines too: treat each input
|
|
163
165
|
geometry as a group, run deoverlap per layer, and never let one layer’s
|
|
@@ -280,7 +282,7 @@ Cutting leaves fragments; almost every piece under 1 mm on this card is one.
|
|
|
280
282
|
to 860 and the drawn length drops by 35%. For the more conservative default
|
|
281
283
|
(`--parallel-angle 30`, crossings left alone), the same card loses about 21%.
|
|
282
284
|
|
|
283
|
-

|
|
285
|
+

|
|
284
286
|
|
|
285
287
|
In the zoom, the ink panels are blended like real ink: every pass multiplies
|
|
286
288
|
the colour, so the darker the blue, the more times the pen went over the same
|
|
@@ -288,7 +290,7 @@ spot. Before, the dark bands are doubled carriageways and the dark dots are
|
|
|
288
290
|
junctions, where a round pen tip lands on ink that is already there. After,
|
|
289
291
|
the ink is one even layer.
|
|
290
292
|
|
|
291
|
-

|
|
293
|
+

|
|
292
294
|
|
|
293
295
|
To try another place (needs `pip install osmnx`):
|
|
294
296
|
|
|
@@ -320,7 +322,7 @@ its own corridor unit; opposite sides can suppress each other, while immediate
|
|
|
320
322
|
neighbours on the same chain (`--segment-adjacency`, default 1) stay intact so
|
|
321
323
|
joints are not nibbled.
|
|
322
324
|
|
|
323
|
-

|
|
325
|
+

|
|
324
326
|
|
|
325
327
|
```bash
|
|
326
328
|
vpype read map.svg deoverlap -t 0.15mm --keep longest --segments -l 1 write out.svg
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
De-overlap Shapely geometries that sit within a tolerance of each other.
|
|
4
4
|
|
|
5
|
+
Source, examples and issues: [github.com/piLeoni/deoverlap](https://github.com/piLeoni/deoverlap)
|
|
6
|
+
|
|
5
7
|
The common case is pen-plotter work: two strokes closer than a pen width
|
|
6
8
|
visually merge on paper, so only one of them should keep the ink. Unlike
|
|
7
9
|
endpoint-only “deduplicate” tools, this library builds a **corridor** around
|
|
8
10
|
each kept stroke and crops (or drops) later strokes that fall inside it.
|
|
9
11
|
|
|
10
|
-

|
|
12
|
+

|
|
11
13
|
|
|
12
14
|
In every figure, blue is kept, red is removed and the thin orange outline is
|
|
13
15
|
the corridor mask. They are rendered by `examples/make_figures.py`.
|
|
@@ -47,7 +49,7 @@ When two corridors collide, priority is explicit:
|
|
|
47
49
|
| `longest` | Prefer the stroke that covers more ground |
|
|
48
50
|
| `shortest` | Prefer short marks / detail |
|
|
49
51
|
|
|
50
|
-

|
|
52
|
+

|
|
51
53
|
|
|
52
54
|
Original indices are preserved in `result.kept_parts` / `removed_parts` even
|
|
53
55
|
when processing order changes.
|
|
@@ -58,7 +60,7 @@ when processing order changes.
|
|
|
58
60
|
- `mode="drop"` — if more than `drop_fraction` (default 0.5) of a geometry’s
|
|
59
61
|
length is covered, discard the whole thing instead of leaving stubs.
|
|
60
62
|
|
|
61
|
-

|
|
63
|
+

|
|
62
64
|
|
|
63
65
|
`min_length=` drops lineal fragments shorter than that threshold after clipping
|
|
64
66
|
(points are never removed by it).
|
|
@@ -89,7 +91,7 @@ whatever direction its two ends point in.
|
|
|
89
91
|
Raising it to 45° or 60° trims steeper merges too. Crossings steeper than the
|
|
90
92
|
threshold are never cut.
|
|
91
93
|
|
|
92
|
-

|
|
94
|
+

|
|
93
95
|
|
|
94
96
|
## Groups — split pieces stay one object
|
|
95
97
|
|
|
@@ -108,7 +110,7 @@ result.kept_parts[1] # MultiLineString of both arcs
|
|
|
108
110
|
Set `group=False` for a flat list of primitive pieces (origins still recorded
|
|
109
111
|
in `kept_parts`).
|
|
110
112
|
|
|
111
|
-

|
|
113
|
+

|
|
112
114
|
|
|
113
115
|
This is the right model for layer-aware pipelines too: treat each input
|
|
114
116
|
geometry as a group, run deoverlap per layer, and never let one layer’s
|
|
@@ -231,7 +233,7 @@ Cutting leaves fragments; almost every piece under 1 mm on this card is one.
|
|
|
231
233
|
to 860 and the drawn length drops by 35%. For the more conservative default
|
|
232
234
|
(`--parallel-angle 30`, crossings left alone), the same card loses about 21%.
|
|
233
235
|
|
|
234
|
-

|
|
236
|
+

|
|
235
237
|
|
|
236
238
|
In the zoom, the ink panels are blended like real ink: every pass multiplies
|
|
237
239
|
the colour, so the darker the blue, the more times the pen went over the same
|
|
@@ -239,7 +241,7 @@ spot. Before, the dark bands are doubled carriageways and the dark dots are
|
|
|
239
241
|
junctions, where a round pen tip lands on ink that is already there. After,
|
|
240
242
|
the ink is one even layer.
|
|
241
243
|
|
|
242
|
-

|
|
244
|
+

|
|
243
245
|
|
|
244
246
|
To try another place (needs `pip install osmnx`):
|
|
245
247
|
|
|
@@ -271,7 +273,7 @@ its own corridor unit; opposite sides can suppress each other, while immediate
|
|
|
271
273
|
neighbours on the same chain (`--segment-adjacency`, default 1) stay intact so
|
|
272
274
|
joints are not nibbled.
|
|
273
275
|
|
|
274
|
-

|
|
276
|
+

|
|
275
277
|
|
|
276
278
|
```bash
|
|
277
279
|
vpype read map.svg deoverlap -t 0.15mm --keep longest --segments -l 1 write out.svg
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deoverlap
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.1
|
|
4
4
|
Summary: De-overlap Shapely geometries that sit within a tolerance of each other.
|
|
5
5
|
Author-email: Pietro Leoni <pietro.leoni@gmail.com>
|
|
6
6
|
License: MIT License
|
|
@@ -51,12 +51,14 @@ Dynamic: license-file
|
|
|
51
51
|
|
|
52
52
|
De-overlap Shapely geometries that sit within a tolerance of each other.
|
|
53
53
|
|
|
54
|
+
Source, examples and issues: [github.com/piLeoni/deoverlap](https://github.com/piLeoni/deoverlap)
|
|
55
|
+
|
|
54
56
|
The common case is pen-plotter work: two strokes closer than a pen width
|
|
55
57
|
visually merge on paper, so only one of them should keep the ink. Unlike
|
|
56
58
|
endpoint-only “deduplicate” tools, this library builds a **corridor** around
|
|
57
59
|
each kept stroke and crops (or drops) later strokes that fall inside it.
|
|
58
60
|
|
|
59
|
-

|
|
61
|
+

|
|
60
62
|
|
|
61
63
|
In every figure, blue is kept, red is removed and the thin orange outline is
|
|
62
64
|
the corridor mask. They are rendered by `examples/make_figures.py`.
|
|
@@ -96,7 +98,7 @@ When two corridors collide, priority is explicit:
|
|
|
96
98
|
| `longest` | Prefer the stroke that covers more ground |
|
|
97
99
|
| `shortest` | Prefer short marks / detail |
|
|
98
100
|
|
|
99
|
-

|
|
101
|
+

|
|
100
102
|
|
|
101
103
|
Original indices are preserved in `result.kept_parts` / `removed_parts` even
|
|
102
104
|
when processing order changes.
|
|
@@ -107,7 +109,7 @@ when processing order changes.
|
|
|
107
109
|
- `mode="drop"` — if more than `drop_fraction` (default 0.5) of a geometry’s
|
|
108
110
|
length is covered, discard the whole thing instead of leaving stubs.
|
|
109
111
|
|
|
110
|
-

|
|
112
|
+

|
|
111
113
|
|
|
112
114
|
`min_length=` drops lineal fragments shorter than that threshold after clipping
|
|
113
115
|
(points are never removed by it).
|
|
@@ -138,7 +140,7 @@ whatever direction its two ends point in.
|
|
|
138
140
|
Raising it to 45° or 60° trims steeper merges too. Crossings steeper than the
|
|
139
141
|
threshold are never cut.
|
|
140
142
|
|
|
141
|
-

|
|
143
|
+

|
|
142
144
|
|
|
143
145
|
## Groups — split pieces stay one object
|
|
144
146
|
|
|
@@ -157,7 +159,7 @@ result.kept_parts[1] # MultiLineString of both arcs
|
|
|
157
159
|
Set `group=False` for a flat list of primitive pieces (origins still recorded
|
|
158
160
|
in `kept_parts`).
|
|
159
161
|
|
|
160
|
-

|
|
162
|
+

|
|
161
163
|
|
|
162
164
|
This is the right model for layer-aware pipelines too: treat each input
|
|
163
165
|
geometry as a group, run deoverlap per layer, and never let one layer’s
|
|
@@ -280,7 +282,7 @@ Cutting leaves fragments; almost every piece under 1 mm on this card is one.
|
|
|
280
282
|
to 860 and the drawn length drops by 35%. For the more conservative default
|
|
281
283
|
(`--parallel-angle 30`, crossings left alone), the same card loses about 21%.
|
|
282
284
|
|
|
283
|
-

|
|
285
|
+

|
|
284
286
|
|
|
285
287
|
In the zoom, the ink panels are blended like real ink: every pass multiplies
|
|
286
288
|
the colour, so the darker the blue, the more times the pen went over the same
|
|
@@ -288,7 +290,7 @@ spot. Before, the dark bands are doubled carriageways and the dark dots are
|
|
|
288
290
|
junctions, where a round pen tip lands on ink that is already there. After,
|
|
289
291
|
the ink is one even layer.
|
|
290
292
|
|
|
291
|
-

|
|
293
|
+

|
|
292
294
|
|
|
293
295
|
To try another place (needs `pip install osmnx`):
|
|
294
296
|
|
|
@@ -320,7 +322,7 @@ its own corridor unit; opposite sides can suppress each other, while immediate
|
|
|
320
322
|
neighbours on the same chain (`--segment-adjacency`, default 1) stay intact so
|
|
321
323
|
joints are not nibbled.
|
|
322
324
|
|
|
323
|
-

|
|
325
|
+

|
|
324
326
|
|
|
325
327
|
```bash
|
|
326
328
|
vpype read map.svg deoverlap -t 0.15mm --keep longest --segments -l 1 write out.svg
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|