Releases: heitzmann/gdstk
Release v0.8.1
Fixed
- Missing flag in OASIS bounding box property
- Bug in bounding box when using explicit repetitions
- Segfault when loading GDSII files with missing cells
Changed
- GdsWriter C++ API
- Safer initializers C++ API
Release v0.8.0
Added
Cell.get_polygons
,Cell.get_paths
, andCell.get_labels
return a copy of a cell’s polygons, paths or labels, including references, with the possibility of filtering by layer and typeLibrary.layers_and_datatypes
andLibrary.layers_and_texttypes
return tuples with the layer and data/text types found in the library.gdstk.gds_info
provide information about a GDSII file without fully loading it- Several
FlexPath
andRobustPath
attributes.
Fixed
- Label transforms in SVG output
- Label styling in SVG output
- Default label magnification when loading a GDSII file
- Bugs when loading some OASIS files
- Bug in OASIS output for some Manhattan geometry.
- Bug fix in Map::del
- Bounding box calculations take all repetitions into account
- Memory leaks
Changed
- Removed LAPACK dependency
- The implementation of layer and data/text type for shapes and labels use the type
Tag
in the C++ API - Style arguments renamed in
Cell.write_svg
Release v0.7.0
This version includes some breaking changes to the API. Most notably, the change in the gdstk.inside
function and the addition of the dedicated short-circuit versions gdstk.all_inside
and gdstk.any_inside
, plus methods Polygon.contain
, Polygon.contain_all
, and Polygon.contain_any
.
This version also introduces the new function gdstk.contour
for the parametric generation of geometries similarly to contour plots.
Added
contour
functionPolygon.transform
to apply a general transformation to the polygon verticesPolygon.contain
tests whether single points are inside the polygonPolygon.contain_all
andPolygon.contain_any
test multiple points with short circuitall_inside
andany_inside
test multiple points against multiple polygons with short circuit- Alternative function interfaces in the C++ API
Fixed
- Holes in boolean results could lead to incorrect geometry in specific cases
- Bug in boolean operations resulting in self-intersecting polygons
- Bug in boolean operations with clockwise-oriented polygons
- Unsupported reccords found when loading a library generate a warning, not an error.
Changed
inside
has changed to use the better interfaces: grouping has been removed, scaling is not necessary, and short-circuit is implemented inall_inside
andany_inside
Release v0.6.1
Minor bug fix release to fix the Library.read_oas
(in Python) and gdstk::read_oas
(in C++).
Release v0.6.0
Added
Library.replace
, used when adding cells with substitution of duplicate cell names- Added pyproject.toml (thanks Ben Gollmer for the fix)
Changed
Reference.cell
is now writable
Fixed
- Bug in Array::insert not incerasing the array count
Release v0.5.0
Added
- Argument
precision
inCell.write_svg
controls the maximum number of digits of coordinates in the SVG - Function
gds_timestamp
can be used to query or set the timestamp in a GDSII file - Better error handling in the C++ API and argument validation for the Python wrapper
Changed
oas_validate
returnsNone
if the file has no checksum informationLibrary.write_gds
andGdsWriter
accept a timestamp setting
Fixed
- Bend calculation for
FlexPath
correctly accounts for bending angle to make sure the bend fits - Missing files in the source distribution
Release v0.4.0
Besides the changes indicated in the CHANGELOG (copied below), this releases includes the documentation of the C++ API (all examples, a short introduction, and header files). However, the C++ API is not yet to be considered stable (neither is the Python wrapper, but there shouldn't be many braking changes there).
Added
Cell.filter
to remove elements by layer and data/text typeCell.convex_hull
andReference.convex_hull
FlexPath.path_spines()
andRobustPath.path_spines()
Library.unit
andLibrary.precision
- Shapes can be sorted in
Cell.write_svg
(sorting works within each cell, references remain on top)
Changed
- Bounding box calculations use convex hull for efficiency
- Bounding box and convex hull calculations cache intermediate results for efficiency
Fixed
Robustpath.parametric
docstring.- Accept
None
as a possible value for arguments in severalRobustPath
methods
Release v0.3.2
Fixed
- Build system fixes for conda recipe
Release v0.3.1
Fixed
- Missing constant definition
Release v0.3.0
0.3.0 - 2021-02-12
Added
- Support for OASIS files
- Repetition property for geometric objects, labels and references
- Library and cells can have properties
Changed
- Use cmake to properly install library
- More efficient bounding box calculation for rotations multiple of 90°
- Labels are now included in bounding box calculations
- Properties can be general or GDSII-specific. Only the latter are stored in gds files.
- Attribute
gdsii_path
renamed tosimple_path
inFlexPath
andRobustPath
.