Commit Graph

53 Commits

Author SHA1 Message Date
83b9af0cc3 Remove support for dose
Since there isn't GDS/OASIS level support for dose, this can be mostly
handled by using arbitrary layers/dtypes directly. Dose scaling isn't
handled as nicely that way, but it corresponds more directly to what
gets written to file.
2023-01-18 18:14:33 -08:00
ecb61c9174 get rid of "identifier" 2023-01-18 17:14:35 -08:00
jan
1741cfb755 wip again 2023-01-13 20:33:14 -08:00
jan
42c3a2b1e1 WIP: make libraries and names first-class! 2023-01-11 18:59:57 -08:00
jan
4cc824526b fix deepcopy for locked shapes 2022-04-17 19:04:18 -07:00
jan
a4fe3d9e2e Use ArrayLike and NDArray wherever possible. Some type fixes and some related corner cases 2022-02-23 15:47:38 -08:00
jan
89f327ba37 reformat some multiline arg lists and add missing 'None' return types 2022-02-23 15:16:25 -08:00
4796676a4e use ArrayLike when accepting pseudo-ndarrays 2021-06-22 18:59:13 -07:00
65466a5986 Force keyword args in more cases 2021-06-18 18:46:05 -07:00
21ef4207df Enable repetition arg for other Polygon constructors 2021-06-18 18:45:40 -07:00
6c4fe0e9e4 Add octagon constructor 2020-11-09 22:06:19 -08:00
f364970403 style and type fixes (per flake8)
could potentially fix some bugs in `Library` class and dxf reader
2020-10-16 19:00:50 -07:00
0e04633f61 Force use of keyword args on most constructors 2020-09-20 16:32:17 -07:00
49a3b4e322 add support for annotations
and other fixes
2020-09-20 16:32:17 -07:00
f57ccc073d add raw arg, which skips setter funcs 2020-09-20 16:32:17 -07:00
629a6a9ba2 enable per-shape repetitions 2020-09-20 16:32:16 -07:00
bab40474a0 Add repetitions and split up code into traits 2020-09-20 16:32:16 -07:00
d4fbdd8d27 add fast-path for 0-degree rotations 2020-08-11 01:19:15 -07:00
c236fdb81b Add __repr__ methods to most objects`
These are closer to what __str__ should be and will likely change in the
future.
2020-05-11 20:31:07 -07:00
c79eee2a8c Stricter locking (lock contained ndarrays and turn lists into tuples) 2020-05-11 19:29:00 -07:00
157df47884 Improve type annotations based on mypy errors 2020-05-11 19:09:35 -07:00
fa8fc52dd6 Improve consistency of ndarray members 2020-05-11 18:49:30 -07:00
334633662e Remove extra __author__ declarations 2020-05-11 18:41:13 -07:00
df179c9233 Improve type annotations for layer 2020-05-11 18:39:02 -07:00
jan
5adabfd25a Docstring format change
(new param and return format)
Also some minor code formatting fixes in utils
2020-02-17 21:02:53 -08:00
25c9e591cb shapes: unlock before modifying during deepcopy 2019-12-13 21:18:31 -08:00
e0db621595 allow locking of all objects 2019-12-13 21:18:31 -08:00
2259e7987b don't rename shape.to_polygons() args 2019-06-09 23:59:55 -07:00
a154555902 Add TODO noting that polygon mirroring could be normalized 2019-05-17 00:42:14 -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
16c6bfc70a Cosmetic changes to argument lists 2019-05-17 00:39:46 -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
a461446059 Custom deepcopy() implementations to help speed things up 2019-05-15 00:19:37 -07:00
ee6699a7de fix alternate polygon constructors 2019-04-20 15:44:45 -07:00
d53c9487ff Comment and error-checking fixes 2019-04-20 14:19:18 -07:00
c6fac19fe0 Set standard constructor arg order and add rotation and mirrored args where reasonable 2019-04-20 14:18:25 -07:00
8dfb6d4440 Move vertex-cleanup functions to utils and generalize for non-closed paths 2019-04-20 00:35:53 -07:00
jan
bc557a54b7 fix typo in comment 2019-03-31 20:57:18 -07:00
jan
eb6a5d8e8c Add shapes.Polygon.rect() for simpler construction of various axis-aligned rectangles 2018-11-23 18:31:56 -08:00
jan
ef305cbac9 Fix syntax 2018-11-23 18:09:14 -08:00
ab483fc9d4 Remove pyclipper dependency; remove shape.cut() 2018-11-13 23:32:26 -08:00
df5c61f1d4 Clarify that rectangle/square is centered on the origin
Eventually, should allow arbitrary limit combination (rather than center
+ width)
2018-10-28 13:34:09 -07:00
jan
d5a255a9d7 Add mirror() to shapes
Might need to fix ordering on Text.to_polygons()
2018-04-14 15:27:56 -07:00
9308454ad4 allow cutting any shape, always require pyclipper 2017-10-17 12:35:56 -07:00
87c2ef5948 use pyclipper for polygon cutting 2017-10-17 11:09:53 -07:00
jan
83d163a102 fix typo 2017-09-08 14:26:27 -07:00
jan
f4b8f513d4 fix typos 2017-09-08 10:30:56 -07:00
jan
01395134ee Also clean vertices before cutting 2017-09-07 21:59:44 -07:00
jan
723944018e add documentation to Polygon.cut() 2017-09-06 21:03:39 -07:00
jan
cea172e7f2 Make cut generate clean polygons 2017-09-06 21:03:23 -07:00