Commit Graph

305 Commits (e2fdd5a347351b2ba55131bb4c726ab5294fbf52)

Author SHA1 Message Date
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