Put masque-layer to gds-layer conversion into a private function, and only call once per shape
This commit is contained in:
parent
4840c321c5
commit
8623dbbeac
@ -76,18 +76,10 @@ def write(patterns: Pattern or List[Pattern],
|
||||
|
||||
# Add a Boundary element for each shape
|
||||
for shape in pat.shapes:
|
||||
layer, data_type = _mlayer2gds(shape.layer)
|
||||
for polygon in shape.to_polygons():
|
||||
xy_open = numpy.round(polygon.vertices + polygon.offset).astype(int)
|
||||
xy_closed = numpy.vstack((xy_open, xy_open[0, :]))
|
||||
if is_scalar(polygon.layer):
|
||||
layer = polygon.layer
|
||||
data_type = 0
|
||||
else:
|
||||
layer = polygon.layer[0]
|
||||
if len(polygon.layer) > 1:
|
||||
data_type = polygon.layer[1]
|
||||
else:
|
||||
data_type = 0
|
||||
structure.append(gdsii.elements.Boundary(layer=layer,
|
||||
data_type=data_type,
|
||||
xy=xy_closed))
|
||||
@ -344,3 +336,16 @@ def read(filename: str,
|
||||
del sp.ref_name
|
||||
|
||||
return patterns_dict, library_info
|
||||
|
||||
|
||||
def _mlayer2gds(mlayer):
|
||||
if is_scalar(mlayer):
|
||||
layer = mlayer
|
||||
data_type = 0
|
||||
else:
|
||||
layer = mlayer[0]
|
||||
if len(mlayer) > 1:
|
||||
data_type = mlayer[1]
|
||||
else:
|
||||
data_type = 0
|
||||
return layer, data_type
|
||||
|
Loading…
Reference in New Issue
Block a user