Jan Petykiewicz
2259e7987b
don't rename shape.to_polygons() args
5 years ago
Jan Petykiewicz
e5f28a7a92
Fix Pattern.get_bounds()
5 years ago
Jan Petykiewicz
6801ee7fc0
Account for rotation/mirror in Pattern.dfs()
5 years ago
Jan Petykiewicz
b5bd7cd9c8
Pattern.get_bounds() should return None if it's empty
...
s
5 years ago
Jan Petykiewicz
49982f1207
Add newlines to long log messages
5 years ago
jan
dcd8324eb4
Use to_polygons() for bounds calculation for simple path shapes
5 years ago
jan
2c9af3f63f
Simplify normalize_mirror
5 years ago
jan
0ab5674fb9
strans needs starting value (0)
5 years ago
Jan Petykiewicz
02c3d300e0
Wrap long lines (cosmetic)
5 years ago
Jan Petykiewicz
75b42f6b63
Use normalize_mirror for all 2d-to-1d mirroring
5 years ago
Jan Petykiewicz
194a90fe7a
Add Pattern.dfs()
...
Depth-first traversal with hierarchy and transform tracking
5 years ago
Jan Petykiewicz
76f213a7ce
use .identifier instead of the dynamically-created .ref_name
5 years ago
Jan Petykiewicz
ca80b14ee4
Fix text get_bounds
...
was addressing list using numpy slices
5 years ago
Jan Petykiewicz
67c9b510cb
Rename svg functions to reflect their gds counterparts
...
Backwards incompatible!
5 years ago
Jan Petykiewicz
503a77925e
Move away from __dict__ style save/load
...
Incompatible with previous versions, but necessary given the move to
__slots__.
Also use pickle.HIGHEST_PROTOCOL
5 years ago
Jan Petykiewicz
28084dfe45
Make name the first argument to Pattern() init
...
Major incompatibility with previous versions!!
5 years ago
Jan Petykiewicz
a154555902
Add TODO noting that polygon mirroring could be normalized
5 years ago
Jan Petykiewicz
f00d283c56
Add missing imports
5 years ago
Jan Petykiewicz
032c410b43
Add mirror_x to extrinsic properties
...
It's not implemented for Polygon shapes, since I haven't thought about
how to normalize those for reflection yet
5 years ago
Jan Petykiewicz
2e54cf1080
initialize identifier for text shapes
5 years ago
Jan Petykiewicz
16c6bfc70a
Cosmetic changes to argument lists
5 years ago
Jan Petykiewicz
58353b7884
Remove orphaned comment
5 years ago
Jan Petykiewicz
38f64f7c62
Use __slots__ for class members
...
Also use the other sort of type hints for instance variables
5 years ago
Jan Petykiewicz
0b962999b2
Add arbitrary identifier for labels and subpattern/repetition
5 years ago
Jan Petykiewicz
703c1aa6d8
Custom deepcopy for labels
5 years ago
Jan Petykiewicz
17451cd995
Force dose2dtype to accept only a list of patterns
...
Backwards incompatible, just like the rest of the gdsii rework
5 years ago
Jan Petykiewicz
1ef8518c60
Fix dose2dtype
...
Was broken during gdsii refactor
5 years ago
Jan Petykiewicz
a6a3ae797c
Fix Pattern.scale_by() for labels
...
Label offsets weren't being scaled.
5 years ago
Jan Petykiewicz
4bd5542ce9
Clarify warning when adding suffix
5 years ago
Jan Petykiewicz
3ff9a8a506
Shorten long names when writing
...
Maybe turn this into an option later?
5 years ago
Jan Petykiewicz
376cbcce26
Use buffered IO
...
free ~10% speedup on read, probably similar on write
5 years ago
Jan Petykiewicz
a461446059
Custom deepcopy() implementations to help speed things up
5 years ago
Jan Petykiewicz
94410dffc9
Fix clockwise (to-perp) path bends
5 years ago
Jan Petykiewicz
2909b25fd7
Missing args for commit bc43be48bc
(cap_extensions)
5 years ago
Jan Petykiewicz
a44a7c176e
Add type hints
5 years ago
Jan Petykiewicz
bc43be48bc
Implement SquareCustom end-caps and gds output
5 years ago
Jan Petykiewicz
d5665f54a7
Comment and type hint updates
5 years ago
Jan Petykiewicz
b8b848c28f
add Pattern.is_empty()
5 years ago
Jan Petykiewicz
0bbcf3823a
Fix .gz suffix detection
5 years ago
Jan Petykiewicz
347716ec6e
Give shapes unique path-like identifiers when flattening
5 years ago
Jan Petykiewicz
9ab1372c7b
Allow shapes to carry an arbitrary identifier (Tuple)
5 years ago
Jan Petykiewicz
380393dbc3
Fix mirror axis for arrays
5 years ago
Jan Petykiewicz
5741b38ca6
fixup remove_colinear_vertices
5 years ago
Jan Petykiewicz
ee6699a7de
fix alternate polygon constructors
5 years ago
Jan Petykiewicz
0018891200
handle defaults for path params
5 years ago
Jan Petykiewicz
485a7bc29d
General overhaul of gdsii read/write functions
...
- read() and write() now take streams instead of filenames
- readfile() and writefile() were added to handle filenames and can
detect and handle '.gz' suffixed/compressed files.
- write_dose2dtype() and and read_dtype2dose() were removed in favor of
read(use_dtype_as_dose=True) and dose2dtype()
5 years ago
Jan Petykiewicz
d6d26b4e46
Add modify_originals param and don't modify the pattern by default
5 years ago
Jan Petykiewicz
783c0c0844
Add support for gds paths
5 years ago
Jan Petykiewicz
d53c9487ff
Comment and error-checking fixes
5 years ago
Jan Petykiewicz
8fe8bbd655
Normalization-related fixes
5 years ago
Jan Petykiewicz
c6fac19fe0
Set standard constructor arg order and add `rotation` and `mirrored` args where reasonable
5 years ago
Jan Petykiewicz
8dfb6d4440
Move vertex-cleanup functions to utils and generalize for non-closed paths
5 years ago
Jan Petykiewicz
79c89b2a4b
Rename empty-named patterns on gdsii save
5 years ago
Jan Petykiewicz
9ecd34b2f7
Cast offsets to float
5 years ago
Jan Petykiewicz
8987cf8c44
mirror_signs are per-coordinate, not per-vector
5 years ago
Jan Petykiewicz
e3586a4574
fix variable names (manhattanize_fast fixes)
5 years ago
Jan Petykiewicz
c6830abe22
Fix corners in manhattanize_fast
5 years ago
Jan Petykiewicz
11bbf6aa0b
Fix auto-renaming for structures
5 years ago
Jan Petykiewicz
5e6485f410
allow setting library name
5 years ago
Jan Petykiewicz
3094aa4043
Automatically disambiguate repeated pattern names.
...
Also check for >32 char names
5 years ago
Jan Petykiewicz
3815069136
Fix out-of-range angles
5 years ago
Jan Petykiewicz
f7ce17c293
Fix mirroring
5 years ago
Jan Petykiewicz
bc723d96f3
Counts should be ints
5 years ago
Jan Petykiewicz
90a068da80
tabs-to-spaces
5 years ago
Jan Petykiewicz
628845ca4b
Bump version to 0.5
5 years ago
jan
bc557a54b7
fix typo in comment
5 years ago
jan
c50bd8e148
Add GridRepetition: a SubPattern-like object which implements regular spatial arrays.
...
Also rework masque.file.gdsii to consolidate write() and
write_dose2dtype()
5 years ago
jan
539198435c
Add .copy() and .deepcopy() convenience methods
5 years ago
jan
eb6a5d8e8c
Add shapes.Polygon.rect() for simpler construction of various axis-aligned rectangles
6 years ago
jan
ef305cbac9
Fix syntax
6 years ago
Jan Petykiewicz
3ebb87bfc7
fix location of svgwrite dependency
6 years ago
Jan Petykiewicz
5bce2005b6
Add docstring for manhattanize_fast
6 years ago
Jan Petykiewicz
ab483fc9d4
Remove pyclipper dependency; remove shape.cut()
6 years ago
Jan Petykiewicz
8dfd856e18
Subtattern .as_pattern() should deepcopy
6 years ago
Jan Petykiewicz
df5c61f1d4
Clarify that rectangle/square is centered on the origin
...
Eventually, should allow arbitrary limit combination (rather than center
+ width)
6 years ago
Jan Petykiewicz
b295c318a9
Fix arc bounding box calculation
6 years ago
Jan Petykiewicz
64cb1ced34
fix spacing (cosmetic)
6 years ago
jan
a064e74fc1
Merge branch 'master' of mpxd.net:jan/masque
6 years ago
jan
d17cf5b6be
label should have a list of 1 point
6 years ago
jan
f3115baabe
Add get_cap_edges()
6 years ago
jan
832e3b46fa
Add general angle-to-parameter helper function
...
and improve accuracy of to_polygons
6 years ago
Jan Petykiewicz
48b8087d0c
Make read output consistent with write args
6 years ago
Jan Petykiewicz
4323d81abd
Change default written library name
6 years ago
Jan Petykiewicz
7eda7ea873
Clarify docs -- read returns a dict
6 years ago
jan
f3aa27a7c4
add missing import
6 years ago
jan
4498990545
Move version string into __init__
6 years ago
jan
4fea49edef
Add missing file (support for labels)
6 years ago
jan
86068102d9
Clarify that layer can be a tuple
6 years ago
jan
6bafaaf4fc
Fix typo in arc docs
6 years ago
jan
108694551b
add support for labels (e.g. GDS TEXT)
6 years ago
jan
8623dbbeac
Put masque-layer to gds-layer conversion into a private function, and only call once per shape
6 years ago
jan
4840c321c5
rename param for do_subset
6 years ago
jan
6fda991700
Rewrite/fix apply() implementation
6 years ago
jan
082236b6fd
add missing arg
6 years ago
jan
cc35ff802e
clean up comments
6 years ago
jan
4c3250a2a1
add recursive option to subset
6 years ago
jan
f875ae89d7
make sure apply() only hits each pattern one
6 years ago
jan
52adb582dc
copy name when using Pattern.subset()
6 years ago
jan
e38a530dee
close paren in docstring
6 years ago
jan
1f17c07bef
remove errant print
6 years ago
jan
79ac6a59e4
Fix mirror axis in Pattern.mirror()
6 years ago
jan
70f3ea9304
Handle mirrored gds shapes
6 years ago
jan
f580e784f7
Add mirroring functions to patterns/subpatterns
6 years ago
jan
d5a255a9d7
Add mirror() to shapes
...
Might need to fix ordering on Text.to_polygons()
6 years ago
jan
358f45c5fd
Error out when we see absolute positioning in GDS
...
We don't support it (yet?)
6 years ago
jan
c14daf2e5e
Fix GDS AREF handling
6 years ago
jan
0170f45f75
GDS stores rotation in degrees
6 years ago
jan
04ff11d3cb
check for zero-length names
6 years ago
jan
37a55e0d9b
Add deepcopy() convenience method to Pattern
6 years ago
jan
e4545bfa30
use is_scalar for checking if layer is a tuple
6 years ago
jan
3e06214b7e
Add recursive "apply()" helper to pattern
6 years ago
jan
4c535e6564
return self from Text's scale_by and rotate
6 years ago
jan
eae57f7158
add set_bit
6 years ago
jan
3d7df45c2b
fix get_bit docs
6 years ago
jan
e2b05d7c86
add fast approximate manhattanization function
6 years ago
jan
2ca27b0792
fix typo
7 years ago
jan
0fd0e259aa
Merge branch 'master' of mpxd.net:jan/masque
7 years ago
jan
b7b0da7432
Allow writing a list of patterns to gds (multiple topcells)
7 years ago
jan
c451e93df0
Add option to check for invalid polygons when reading gds
7 years ago
jan
6aa1787ba0
add comment specifying what gdsii lib is used
7 years ago
Jan Petykiewicz
9308454ad4
allow cutting any shape, always require pyclipper
7 years ago
Jan Petykiewicz
87c2ef5948
use pyclipper for polygon cutting
7 years ago
Jan Petykiewicz
b3f99ee123
abs when thresholding raster for manhattanization
7 years ago
jan
83d163a102
fix typo
7 years ago
jan
f4b8f513d4
fix typos
7 years ago
jan
01395134ee
Also clean vertices before cutting
7 years ago
jan
a817bf6642
Remove debug code
7 years ago
jan
10cd0778b8
Add copy() method to Shape
7 years ago
jan
723944018e
add documentation to Polygon.cut()
7 years ago
jan
cea172e7f2
Make cut generate clean polygons
7 years ago
jan
4466198924
Add cut() function for polygon
7 years ago
jan
ffbaf8f4c4
Add manhattanization functionality
7 years ago
jan
3d52566016
Improve error handling
7 years ago
jan
934bfcd74e
Clean up type info
7 years ago
jan
ccfd0f7f4f
remove whitespace
7 years ago
jan
583dd7b018
allow caller to specify gdsii logical unit
7 years ago
jan
3b3ee216c2
add missing import
7 years ago
jan
3d89cd42a0
further fixes to ellipse bounding box
7 years ago
jan
85e2c662cc
fix incomplete commit
7 years ago
jan
8256a540dc
Use polar angle for ellipse bounds
7 years ago
jan
fdd18ca7d8
add functions for reading/writing tuple-valued layers to gds
7 years ago
jan
1127242aa0
fix typo
7 years ago
jan
dcf34536ad
Improve docs for gdsii output
7 years ago
jan
bf1cabe0b0
Let gdsii output handle list-specified errors
7 years ago
jan
b99509289a
Let layer be a tuple of ints (or just a single int like before)
7 years ago
jan
0a7c26bb08
No need to subclass 'object' in python3
7 years ago
jan
6cc6556e8a
typo fix
7 years ago
jan
434178c853
correctly preserve total arc angle during normalize
7 years ago
jan
2c159f2798
remove extra polygonize
7 years ago
Jan Petykiewicz
ff76626e21
fix multiple bugs in arc and ellipse
7 years ago
jan
d355d84f6d
fix gds name mangling in cases with fractional dose
8 years ago
jan
103e72628c
Remove extra spaces
8 years ago
jan
3a460a9296
Add Text shape
...
Rendered using freetype-py and matplotlib
Can eliminate the matplotlib dependency if I write my own bezier code,
but that's work (and I already use matplotlib...).
8 years ago
jan
2a20a540b9
remove extra spaces
8 years ago
jan
5bf486ac81
Add all files to repository
8 years ago