- v0.5.1
- Support for julia 1.0+ versions. Removed REQUIRE file and created Project.toml
- v0.5.0
- Rewrite some line/ray/line-segment intersection code.
adjust!has been renamedreconcile!- For many array-like methods on paths, there is now a keyword argument that lets you specify whether you want to reconcile the path immediately or defer. This is useful when speed is a concern and you are chaining operations.
- Implement code to automatically handle path intersections:
Paths.intersect! - Path termination:
Paths.terminate! - Style translation:
Paths.pinandPaths.translate. - Node/segment/style splitting:
Paths.split. - Add some default colors: 21--29 is a red gradient, 31--39 is green, 41--49 is blue.
- v0.4.0
- Julia 1.0 compatibility.
Rectangles.isproperhas a slightly different definition. Rectangles are considered proper if they have non-zero area now.flattennow has a keyword argumentnameinstead of an optional argument. It now also has adepthkeyword argument that can be used to control how far down the cell hierarchy to flatten.flatten!also has thedepthkeyword argument.- Fixed a bug where rotations would be corrupted when loading GDS files.
- Fixed a bug where x-reflections could be corrupted when loading GDS files.
- Added some basic interactive display for use with the Juno IDE.
- Can now save a variety of graphics formats reliably (png, eps, pdf, svg).
- v0.3.0
- Last release to support Julia 0.6.
- Added
TaperTrace,TaperCPW, etc. - Fix annoying "absolute angle" bug which caused weird rotations when viewing pattern output in some GDS viewers.
- Other bug fixes, improved rendering output, etc.
- v0.2.0
LCDFontsmodule added. Try outlcdstring!for your text rendering needs.- Redesign rendering pipeline.
- It is no longer allowed to pass keyword arguments to
RectangleorPolygonconstructors. These no longer include metadata; they are just geometry. - GDS-II layer and datatype are captured by a
GDSMetaobject. This is passed torender!when rendering polygons, paths, etc. to a cell. render!must receive aMetaobject.
- It is no longer allowed to pass keyword arguments to
- Rectangles are no longer mutable, so
centered!has been removed. - Polygons are no longer mutable.
- Bug fixes: closed issues 11, 13, 16, 17, 18, 19, 21.
- Bug fix:
Cell(::AbstractString, ::Unitful.LengthUnits)method was broken. - Bug fix:
meander!works again, method signature changed a bit. - Bug fix: in
CompoundSegment(such as obtained usingsimplify!), there was a bug with generating the simplified path function (fieldfof aCompoundSegment). For inputs tofgreater than the path (or segment) length, the expected behavior is to continue in a straight line at the angle obtained at the end of the path (or segment). NoRender(x)can take a parameter specifying a fake "width" for attachments.- Fixed promotion logic with
Rectangles.Undercutwhen different units were passed in. - Loosened signature of a
CellArrayconstructor method. - Path
style0keyword not supported anymore. You must specify a style the first time you callstraight!orturn!on a path. - Performance improvements.
- v0.1.0
- Breaking change:
attach!expects a value from zero to the segment length, not 0 to 1. This will also be true for functions passed toPaths.CPWorPaths.Trace. - Breaking change:
minimumandmaximumno longer defined for polygons; uselowerleftandupperrightinstead. - Breaking change: some of the methods in
src/tags.jlmay have had changes to their method signatures. - Breaking change:
flattenalways returns aCell, never an array ofPolygons. The behavior offlatten!(which modifies aCell) is unchanged. - Implement our own rendering algorithms. This enables continuous integration testing and
gives finer control on the output.
- Dependency on gdspy for rendering has been removed.
- Begin using
ContextUnitsfrom Unitful.jl 0.2 for better unit handling. Devices.jl now defines its own length units which you can access withusing Devices.PreferMicronsorusing Devices.PreferNanometers. The following length units are defined:fm,pm,nm,μm,mm,cm,dm,m. - Angle units
°,radare exported by default. - Switch over to the registered Clipper.jl package now that the necessary changes have been made upstream.
- Turn on automatic doc builds. Documentation improved and features auto-generated graphics.
- QR code functionality has been removed to avoid dependency on pyqrcode. It could appear again in a separate package if desired.
- Rename
SimpleCornerStyletoSimpleTraceCorner. - Added a convenience method to
attach!for using ranges. - Experimental SVG export. Cells preview in the Plots pane using the SVG renderer if using Juno in Atom.
- Breaking change:
- v0.0.5
- Added some options to
interdigit. extentis now exported from the Paths module.- Bug fix: replaced old
tformrotatewithRotation. - Bug fix: attachments now render according to the documentation when using
attach!withwhere=0. - Bug fix: update to adapt to changes in StaticArrays.jl.
- Added
NoRenderstyle. - Allow GDS importing without units.
- Modify signature of
pecbasedosemethod.
- Added some options to
- v0.0.4
- Bug fixes:
CellReferenceandCellArraywere copying their referenced cells instead of retaining a reference to the original object.flattenfor CellArrays was not using the calculated coordinate shifts. uniquenamemoved to Cells module and exported for users.
- Bug fixes:
- v0.0.3
- Bug fixes.
- Added
XReflectionandYReflectiontransformations.
- v0.0.2
- Introduced GDS-II import capability. After
using FileIO,loadwill return a dictionary with string keys (names of cells) and Cell values. - Introduced sharp bends in paths via
corner!. - Added unit support.
- Made constructors for
CellArrayandCellReferencemore intuitive and easier to use. The syntax has changes slightly; more things are keyword arguments now, with synonyms accepted so you don't have to remember exactly what the keyword argument was called. - When rectangles have integer coordinates, it is not always the case that they can be centered.
Since
center!implies that an object will be modified, andcenteris expected to return the center of a rectangle, we disambiguated by makingcenteredandcentered!. The former will return a centered copy of the rectangle, possibly with floating-point coordinates if it could not be centered with integer coordinates. The latter will attempt to center the provided rectangle and throw anInexactError()if it was not possible.centerwill still return the center of a rectangle, which may have floating-point coordinates even if the rectangle itself had integer coordinates. - Made clipping and offsetting more reliable (and documented them).
- Switched from
AffineTransforms.jltoCoordinateTransformations.jl. See the documentation (under Abstract polygons) for usage instructions, the syntax has changed. - Switched from
FixedSizeArrays.jltoStaticArrays.jlfor ourPointimplementation. Syntax should remain largely the same. This switch was made for compatibility with Julia 0.5 and is an improvement. - Rotations are now consistently specified in radians if no unit is given. Units may however be provided if you want to use degrees.
- Introduced GDS-II import capability. After
- v0.0.1
- Initial release used to generate our first qubit.