hohlraum / gdsCAD

A simple but powerful Python package for creating photolithography masks in the GDSII format.
GNU General Public License v3.0
88 stars 52 forks source link

Fix Boundary creation for non-numpy coordinate lists #15

Closed mabl closed 10 years ago

mabl commented 10 years ago

Commit bf6c05df283 introduced a regression if the point list is not a numpy array.

One of my users just ran into this issue. Could you release this fix in the near future?

Best, Matthias

hohlraum commented 10 years ago

I encountered this myself yesterday. I've published a fix now in d65c5b609025f as v0.4.2.

The points list conversion on line 105 should remain as np.array(). Using asarray() means that if points is already a numpy array self._points would be a reference to the original points. Therefore any subsequent changes to points after instantiation will lead to changes in the Boundary geometry. I can imagine cases where this will lead to confusion for users.

In your case I know you use very large points lists. If this copying of the points array is too expensive we could add an optional argument to allow referencing. But I think the default behaviour should be to make a copy of the list.