not applying snap_to_grid to all vectors

This commit is contained in:
Bin wu 2016-11-20 11:06:53 -08:00
parent 905f5cf28e
commit 8c4b97753a
2 changed files with 17 additions and 12 deletions

View File

@ -36,7 +36,7 @@ class instance(geometry):
self.mod = mod self.mod = mod
self.gds = mod.gds self.gds = mod.gds
self.rotate = rotate self.rotate = rotate
self.offset = vector(offset) self.offset = vector(offset).snap_to_grid()
self.mirror = mirror self.mirror = mirror
@ -70,7 +70,7 @@ class path(geometry):
self.name = "path" self.name = "path"
self.layerNumber = layerNumber self.layerNumber = layerNumber
self.coordinates = map(lambda x: [x[0], x[1]], coordinates) self.coordinates = map(lambda x: [x[0], x[1]], coordinates)
self.coordinates = vector(self.coordinates) self.coordinates = vector(self.coordinates).snap_to_grid()
self.path_width = path_width self.path_width = path_width
# FIXME figure out the width/height. This type of path is not # FIXME figure out the width/height. This type of path is not
@ -103,7 +103,7 @@ class label(geometry):
self.name = "label" self.name = "label"
self.text = text self.text = text
self.layerNumber = layerNumber self.layerNumber = layerNumber
self.offset = vector(offset) self.offset = vector(offset).snap_to_grid()
self.zoom = zoom self.zoom = zoom
self.size = 0 self.size = 0
@ -133,10 +133,10 @@ class rectangle(geometry):
geometry.__init__(self) geometry.__init__(self)
self.name = "rect" self.name = "rect"
self.layerNumber = layerNumber self.layerNumber = layerNumber
self.offset = vector(offset) self.offset = vector(offset).snap_to_grid()
self.size = vector([width, height]) self.size = vector(width, height).snap_to_grid()
self.width = self.size[0] self.width = self.size.x
self.height = self.size[1] self.height = self.size.y
def gds_write_file(self, newLayout): def gds_write_file(self, newLayout):
"""Writes the rectangular shape to GDS""" """Writes the rectangular shape to GDS"""

View File

@ -15,12 +15,12 @@ class vector():
""" init function support two init method""" """ init function support two init method"""
# will take single input as a coordinate # will take single input as a coordinate
if y==None: if y==None:
self.x = self.snap_to_grid(x[0]) self.x = x[0]
self.y = self.snap_to_grid(x[1]) self.y = x[1]
#will take two inputs as the values of a coordinate #will take two inputs as the values of a coordinate
else: else:
self.x = self.snap_to_grid(x) self.x = x
self.y = self.snap_to_grid(y) self.y = y
def __str__(self): def __str__(self):
""" override print function output """ """ override print function output """
@ -83,7 +83,12 @@ class vector():
""" """
return vector(other[0]- self.x, other[1] - self.y) return vector(other[0]- self.x, other[1] - self.y)
def snap_to_grid(self, offset): def snap_to_grid(self):
self.x = self.snap_offset_to_grid(self.x)
self.y = self.snap_offset_to_grid(self.y)
return self
def snap_offset_to_grid(self, offset):
""" """
Changes the coodrinate to match the grid settings Changes the coodrinate to match the grid settings
""" """