forked from ulfgri/gdsii-toolbox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
144 lines (95 loc) · 4.94 KB
/
TODO
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
- make toolbox work with Unicode strings (requires replacing mxGetString)
- base path --> boundary conversion functions on polygon offsetting.
- clean up the C code for reading and writing element data.
There is too much code duplication.
- detect unresolved structure references in functions that
operate on the structure tree (e.g. 'treeview'). In other
words: check that leaf nodes do not contain reference elements.
- remove bugs on 64 bit Windows. Make sure everything works
with future MATLAB versions (all 64 bit integers)
- 'flatten' method for libraries to replace all sref and aref elements
with the contents of the referenced structures (removes hierarchy).
Does anyone really need this ?
- mitering of paths with acute angles in 'poly_path.m'
- make it possible to 'invert' a layout, i.e. subtract it from its
bounding box (difficult without support by the clipper library).
- more scripts: gdsextract: extract structures from gds libraries
gdswindow: extract data in a window
gdsfilter: extract data by layer
gdsrename: rename structures in a gds
gdsflatten: flatten the hierarchy in a gds file
- fix gdsmerge so that it can handle duplicate structure names.
- filter function to copy e.g. individual layers or elements of a
specified type
----------------------------------------------------------
- method to remove a structure from a library and all references to
it. DONE
- delete_list: has a bug: NULL is not returned correctly. DONE
- calculate bounding boxes of elements, structures and libraries
(bbox methods) DONE
- update '@gds_element/poly_text.m' method to allow rendering of text
elements with either boundary or path elements. (DONE)
- Define logical operators & and |, etc. for the gds_element class
to perform Boolean algebra. (DONE)
- how to handle external libraries ? (NOT NEEDED)
- new Clipper library 5.0.x (DONE)
- Fix: PLEX heads are not identified when reading a plex; must be
made negative when bit 24 is set. (DONE)
- low level mex functions gds_read_element and gds_write_element to
speed reading and writing of library files. The new I/O functions are
about a factor of 5 faster than the previous ones. Should be good for
libraries with 100 million elements or so. (DONE)
- make the xy property of boundary and path elements always a cell array
internally, because it simplifies the methods of the gds_element
class. (DONE)
- srename method for the gds_library class to rename a structure and
all sref and aref elements that reference the structure. (DONE)
- support the FORMAT and MASK related record types (NO, too archaic and
makes no sense for this toolbox.)
- there is still a bug: elements can have more than one property
record. (DONE)
- use a sparse matrix for the adjacency matrix. (DONE)
The adjacency matrix of structure graphs with thousands of
structures no longer consumes too much memory.
- rename layerstat --> layerinfo (DONE)
- use 'ismember' in adjmatrix.m (DONE)
- in adjmatrix.m, @(x)sname(x) --> @sname (DONE)
- poly_convert method for libraries (DONE)
- improve poly_convert for structures - always convert all elements to
boundaries (PARTLY DONE - text and node elements are ignored)
- methods to calculate and change boundary orientation (DONE)
- better tutorial especially on working with structures/libraries
(partly DONE)
- speed up library reading. (DONE - as much as possible in pure Octave/MATLAB)
- tree view of structures in a library (DONE)
- don't discard record dates (DONE)
- subtree method to copy a structure and all dependent children
from a library (DONE)
- new methods: (DONE)
* add_struct for structures (adds an sref
* add_element for structures
* add_struct for libraries
these make a hierarchical design syntactically more obvious
- update polygon font to a complete font based on the DEPLOF font (DONE)
- methods for elements
* poly_box
* poly_text
* poly_path
convert the respective elements into boundary elements (DONE)
- support for path type 4, if I can figure out what it is. (DONE)
- make 'gds_structure' more flexible by allowing to pass structures
and cell arrays of structures. This will result in creation of 'sref'
elements for each structure that is passed as an argument. (DOESN'T work,
because it is not possible to add parameters of the sref's.)
- make 'write_gds_library' check if all structures are referenced and
print a warning if not. NOT NECESSARY; it can be checked
immediately by inspecting the layout - only slows down writing
of files, especially when there are many structures.
- integrate polygon clipper into the gdsii library. (DONE)
- a method for creating compound elements from simple boundary,
path, and sref elements. (Use '+' operator ??) (DONE)
- better directory structure (DONE)
- rewrite all higher level functions to use object oriented
functions.(DONE)
- method for gds_library to summarize structure and element statistics
(DONE)