Commit Graph

197 Commits

Author SHA1 Message Date
0db70d2c50 Change GridRepetition rotation/mirrored/scale properties so that they consistently apply only to the individual instances; the rotate()/mirror()/scale_by() functions apply to the full array. Add *_elements() versions of the functions 2020-02-07 23:01:14 -08:00
64b8e4dec8 Fix duplicates in gds with multiple top-level cells
Since the different patterns we are handed might reference the same
Patterns, we have to deepcopy the entire list at once so that we
don't make multiple copies of them.
2020-01-07 22:17:00 -08:00
jan
5ba67af816 bump version to 1.1 2019-12-31 13:56:18 -08:00
25c9e591cb shapes: unlock before modifying during deepcopy 2019-12-13 21:18:31 -08:00
f2e6548d21 fix locking issue in __deepcopy__ 2019-12-13 21:18:31 -08:00
e0db621595 allow locking of all objects 2019-12-13 21:18:31 -08:00
09711116a7 allow more freedom in pattern names (e.g. names which violate spec, longer suffixes, filter warning, etc) 2019-12-12 01:48:36 -08:00
0118bf0eb3 update ellip_grating.py example to use new gdsii interface 2019-12-12 01:48:36 -08:00
df9c4b52f4 add some todos 2019-12-12 01:48:24 -08:00
fcc4770534 Mirroring fix for gdsii import 2019-12-11 21:16:31 -08:00
97b7eda21a Force repetition counts to be integers 2019-12-06 22:28:11 -08:00
f3669f2dfd fixup mirroring for subpatterns 2019-12-06 22:19:16 -08:00
4bc51f765f custom __copy__ for SubPattern and GridRepetition
the difference between copy/deepcopy should be whether a copy is made of
the contained pattern
2019-12-06 22:19:11 -08:00
7b0a567625 .mirrored should be an ndarray 2019-12-04 23:30:46 -08:00
bece3136be Bump version number to 1.0
Note MAJOR incompatibilities with previous version, including
- order of Pattern() args
- save format
- i/o functions
2019-09-30 23:54:21 -07:00
7fd64e0abf give better instructions for extras 2019-09-30 23:50:40 -07:00
7a3738bd0c update TODO list 2019-09-30 23:50:29 -07:00
f471374b68 Use separate VERSION file 2019-09-27 21:03:52 -07:00
2259e7987b don't rename shape.to_polygons() args 2019-06-09 23:59:55 -07:00
e5f28a7a92 Fix Pattern.get_bounds() 2019-06-09 23:57:54 -07:00
e057f6e4a2 Add binary files and vim buffers into gitignore 2019-05-25 12:46:17 -07:00
6801ee7fc0 Account for rotation/mirror in Pattern.dfs() 2019-05-25 12:41:51 -07:00
b5bd7cd9c8 Pattern.get_bounds() should return None if it's empty
s
2019-05-25 12:41:30 -07:00
49982f1207 Add newlines to long log messages 2019-05-25 12:40:17 -07:00
jan
dcd8324eb4 Use to_polygons() for bounds calculation for simple path shapes 2019-05-20 21:06:28 -07:00
jan
2c9af3f63f Simplify normalize_mirror 2019-05-20 21:04:31 -07:00
jan
0ab5674fb9 strans needs starting value (0) 2019-05-20 21:04:07 -07:00
02c3d300e0 Wrap long lines (cosmetic) 2019-05-18 15:05:38 -07:00
75b42f6b63 Use normalize_mirror for all 2d-to-1d mirroring 2019-05-18 15:05:30 -07:00
194a90fe7a Add Pattern.dfs()
Depth-first traversal with hierarchy and transform tracking
2019-05-18 15:05:05 -07:00
76f213a7ce use .identifier instead of the dynamically-created .ref_name 2019-05-17 20:51:53 -07:00
ca80b14ee4 Fix text get_bounds
was addressing list using numpy slices
2019-05-17 01:20:10 -07:00
67c9b510cb Rename svg functions to reflect their gds counterparts
Backwards incompatible!
2019-05-17 01:16:18 -07:00
503a77925e Move away from __dict__ style save/load
Incompatible with previous versions, but necessary given the move to
__slots__.

Also use pickle.HIGHEST_PROTOCOL
2019-05-17 00:44:10 -07:00
28084dfe45 Make name the first argument to Pattern() init
Major incompatibility with previous versions!!
2019-05-17 00:42:55 -07:00
a154555902 Add TODO noting that polygon mirroring could be normalized 2019-05-17 00:42:14 -07:00
f00d283c56 Add missing imports 2019-05-17 00:41:43 -07:00
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
2019-05-17 00:41:26 -07:00
2e54cf1080 initialize identifier for text shapes 2019-05-17 00:39:56 -07:00
16c6bfc70a Cosmetic changes to argument lists 2019-05-17 00:39:46 -07:00
58353b7884 Remove orphaned comment 2019-05-17 00:38:20 -07:00
38f64f7c62 Use __slots__ for class members
Also use the other sort of type hints for instance variables
2019-05-17 00:37:56 -07:00
0b962999b2 Add arbitrary identifier for labels and subpattern/repetition 2019-05-17 00:34:01 -07:00
703c1aa6d8 Custom deepcopy for labels 2019-05-17 00:32:51 -07:00
17451cd995 Force dose2dtype to accept only a list of patterns
Backwards incompatible, just like the rest of the gdsii rework
2019-05-17 00:30:32 -07:00
1ef8518c60 Fix dose2dtype
Was broken during gdsii refactor
2019-05-17 00:28:46 -07:00
a6a3ae797c Fix Pattern.scale_by() for labels
Label offsets weren't being scaled.
2019-05-15 23:51:51 -07:00
4bd5542ce9 Clarify warning when adding suffix 2019-05-15 23:51:17 -07:00
3ff9a8a506 Shorten long names when writing
Maybe turn this into an option later?
2019-05-15 23:51:00 -07:00
376cbcce26 Use buffered IO
free ~10% speedup on read, probably similar on write
2019-05-15 23:50:31 -07:00