-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSeries 3.txt
225 lines (175 loc) · 12.6 KB
/
Series 3.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
Changelog for Quilt. A pattern generator.
3.2.2
- NET 6.0 migration.
- GTK fix for UI scrollable from Eto.Forms project.
3.2.1
- Typo fixed that was preventing multithreading during project loading.
3.2b3
- Per user feedback, the scrolling was deemed excessive.
- As a compromise, the dimensions and offsets are now in a tabbed UI configuration.
- Reduces vertical height whilst grouping common properties together.
- The loss is an at-a-glance overview of all values, but the counterpoint is that the prior approach was too dense to review easily.
3.2b2
- Fixed crash bug for certain reference element usage patterns.
3.2b1
! Review cascading dimensional references....
- Bug fix for CSV on export to layout.
- Implemented option to allow dependents to take final dimension from reference in a pattern as their minimum value (length, offset).
- Implemented a screening check in the quilt build to resolve invalid subshape references and ensure consistency.
- Invalid subshape references can result from a change of shape type in an element, which can only be efficiently and reliably caught at the build stage.
3.2a2
- Implemented the ability to cancel layout loading and evaluation.
- Previous approach was not supported any more.
- The cancellation is also now supported in the rectangular decomposition library, making it ~instantaneous to cancel now.
! Still pending a subshape-related check for shape type change of elements being referenced.
- Reviewed the code for pattern element removal to check that related references are properly handled.
- Resolved value retrieval for forward/backward references from changes in a1 code.
- Tightened up the code for subshape query / index check / etc.
3.2a1
! Value retrieval is currently broken.
- Various clean-ups related to the new code.
- Reworked property set/get methods to also take subshape index values.
- This is a major change and requires a lot of QA.
- Refactored the source tree to make the expanded UI source more navigable.
- Implemented reference dimension inputs (e.g. tying subshape 1 min length to subshape 2 min length in a different element.)
- Only equivalent dimensions are linkable in this release (horizontal length from horizontal length), but the properties can come from a different subshape in the reference element.
- Required significant rework of the subshape UI to make the layout work. Currently, this brings a lot more vertical scrolling.
! Lots of testing required - this is quite a lot of new code and behaviors to review and adjust.
3.1
- Refactoring UI for shape inputs. Makes adjustments easier in future and reduces complexity of code.
3.1b3
- Refactored export pipeline to ease maintenance.
- Allow imported layer/datatype information to be carried through the tool pipeline to export.
- Fix to ensure text labels survive merging operation on output.
3.1b2
- DesignLibs fixes for resizing of box and text entities.
- DesignLibs workaround for not-yet-understood fail to register layer/datatype.
- Allow for export layer/datatype definition through 'LxxxDxxx' element naming.
3.1b1
- Improved handling of pre-keyholed geometry in decomposition pipeline.
- Bug fix for multi-entry decomposition, where relative transforms were incorrectly registered for subsequent decomp passes.
- Bug fix for merge handling of multi-island, same-layer, decomposition results.
3.1a3
- Various small fixes and upstream enhancements.
- Allow axis color to be changed.
- Allow viewport background color to be changed.
- Allow merge reference to be set on regular shapes.
- Exploit existing pipeline where decomposed geometry is recombined (if possible).
> Experimental dark UI mode for Windows.
- macOS already supports dark mode.
3.1a2
- Make use of error message reporting through DesignLibs for invalid layout files which previously silently failed, or worse, crashed the tool.
- Bug fix in GeoCore where wrong variable was used to access members of tmpCel.
- Targetting .NET 5.0.
- Yields a 10% performance boost.
- Enabled independent X and Y spacing variations for arrays.
3.1a1
- Run the keyholer before decomposition to enable loop handling.
- Rectangular decomposition enhancements to reduce surplus rectangles.
- Results are going to be different from 3.0 as a result.
- Decomposer and raycaster have become more robust at filtering rays and screening results, to avoid undesired results and failed intersections.
- Variable array definition support.
3.0
- Layout output enhancements.
- Support output to GZIP-compressed layout files.
- Expand the list of recognized file extensions.
- Layout input enhancements.
- Support GZIP-compressed layout files as input to layers.
- Expand the list of recognized file extensions.
- Quilt multithreading enablement (build directive was lost).
3.0b4
- Bug fix for dependent references when removing elements.
- Code now considers linked element references when removing pattern elements.
- For manual selection of 'layout' shape type, display guidance and tidy UI.
- Misc related bug fixes / checks and balances to avoid export fails.
- Prevent any export for no pattern elements.
- Viewport-based selection, using middle, or ctrl-left, mouse button to select pattern element by a proximity search to the click location.
- Search is multi-threaded.
- Added an option to set the dominant direction of the rectangular decomposition raycast.
- Layout will need to be reloaded to re-process the decomposition when this has been changed.
- More tooltips in UI.
(Backported select changes from 3.0 to 2.5)
3.0b3
- Viewport enhancements:
- Tooltip added.
- Context menu updated and now also provides hotkeys
- Implemented zoom-to-selected. This works in combination with the 'go to pattern' value to find the element in the given pattern and frame it in the viewport.
- Added 'background color' which is used in non-input mode, to mark polygons from the not-selected element.
- Lots of work on the nested / reference layout handling.
- Significant work in DesignLibs to more cleanly handle these complex scenarios and to support different situations.
- Nested arrays are fully resolved because each element can only be a single element (or an array of single elements).
- Fixed text entity handling for pattern definition from layout.
3.0b2
- Added context menu entries to duplicate pattern element.
- Strip colinear points from layout geometry being read in, using angular tolerance in the process.
- Initial handling of cellref arrays in the pattern-from-layout system.
- Track the array state through from DesignLibs to Quilt. Needs some careful QA for mixed situation cases.
! Recursive CellRefArray usage is not currently supported.
3.0b1
- Context menu added to the listbox.
- Added angular tolerance value to UI.
- This controls the tolerance for colinear vertex removal. Default value is 0.2, from experimentation. This is needed primarily on edges that are not axis-aligned.
- Misc optimizations and bug fixes:
- GeoCore had an issue in the circle check code. This hasn't been well used before and only with certain patterns in this new usage model was the problem apparent.
- Insufficient decoupling of the core preview shapes list during export processing was leading to some unexpected output behavior when recomposing geometry.
- Enhanced the GeoWrangler method for stripping colinear vertices to improve results in angled geometry exports.
- Storage improvements.
- Multi-threaded the loader, to massively improve performance loading extremely large patterns.
- Moved pattern-from-layout to background task and introduced indeterminate progress bar to indicate work is underway.
- Revisited non-orthogonal handling.
- Moved to coordinates rather than edge lengths. Coordinates can be changed, but these are not variation sources at the moment.
- Added support to save/load for non-orthogonal geometry.
- Resolved issues for mixed configurations (multi-layer, mix of ortho and non-ortho in various ways, including decomp)
- Fix for crash related to toggling filled polygon display.
- Fixed relative rotation regression from 2.x where reference element was in an array, but this was not array-relative.
- Regression introduced during the transformation pipeline overhaul. Showed in test case.
- Fixed duplicate patterns showing up for rotations in the Quilt.
- Added display of the quilt's pattern extent used for placement of patterns. This is not exported - it is purely a display element. Intent is to eliminate confusion about pattern placements in quilt.
- Configuration options (draw, color) added.
- Optimized the relative rotation evaluation.
- Deep hierarchies with relative rotations used to be extremely slow. Resolved by avoiding needless recalculation of midpoints, caching the midpoint for each element during build.
- Multiple serious issues identified and addressed with a rework of the positioning and transforms of input and final elements. QA ongoing. Backported fix to 2.x release given the serious issues identified.
3.0a5
- Bug fix for pattern placement, backported to 2.x
- Unify elements with same name during export.
3.0a4
- Minor UI adjustment.
- In export, the tool will track decomposed elements and unify them.
- Not quite as elegant as I would like, but it works and optimization can be done later.
- This diverges from the 'what you see is what you get' design, but decomposition is a tool approach to design definition, and reconstructing the output seems reasonable in this situation.
3.0a3
- Support renaming of pattern elements.
- Decomposed elements get relative positioning to the prior decomposed element. This may not be optimal, but is a general approach to try and retain general form during variations. User review will be required to adjust as-needed.
- Decomposed elements are ordered by ascending X,Y values of lower left point.
- Resolved issue with status label breaking layout if the content becomes large (seen primarily during testing of decomposition where many elements resulted).
- Implemented rectangular decomposition of orthogonal geometry in geoWrangler.
- Required changes to the raycaster so that it could be used for the same emitter and cutter, with appropriate ray direction.
- Recursively carves up arbitrary orthogonal geometry to provide minimal representation.
- Enable use of decomposed geometry in Quilt.
- Decomposed rectangles will show up as individual elements in the pattern.
- Geometry with more vertices than for a rectangle will show up as an edge list.
3.0a2
- Support text entries from layout.
- Replaced 'Layout' command in File menu with button and menu above the pattern list.
- Button will summon file dialog.
- Menu will show structure list from layout (when loaded). Changing structure will change the pattern.
- Unclamped subshape 1 horizontal and vertical offset min and increment values (similar to the X and Y positions).
- Unclamped X and Y position numeric inputs (min value and offset needed to be >= zero before).
- Still recommended to keep min placement values at 0, but layout patterns and other scenarios might make this useful.
- Working to try and avoid progress bar and status bar stretching in some situations.
- Complex pipeline overhauled.
3.0a1
- Unlock U subshape 2 horizontal offset.
- Prototyping work for loading in external layout for pattern construction:
- Can now load GDSII or Oasis using Layout option under File.
- Populate list of elements with polygons. Elements are type 'complex' by default in case characterization fails.
- Loading from layout will trigger a geometry evaluation to see whether polygons in the layout can be mapped to internal primitives (rectangle, L, T, X, S, U). In case evaluation fails (non-orthogonal or more complex transforms), a 'complex' primitive is used.
- Evaluation can be complex. Limited to orthogonal shapes, and grid-aligned transforms (90 degree rotation increments, flipping).
- For X-shapes, no transformation can be identified due to symmetry (rotation and limited clamping).
- For L-shapes, some combinations of flip and rotation provide indistinguishable shapes. Simplest transformation is chosen for the L constraints.
- For S-shapes, only 0 and 90 degree rotations can be distinguished.
- Geometry clean-up attempted during import (union of shapes, keyhole evaluation if required).
- For complex primitives, the workflow is pretty raw :
- UI shows edge length/increment/step values for each edge in the polygon, without awareness of how the edges might be related.
- Each polygon in a design layer leads to a new pattern element entry, with the LxDx name preserved.
- Validated that offset values construct new pattern elements, as expected.