code: def set_vertices_and_codes(self, vertices, codes):
      offset = 1.0 / self.num_rows
      shape_vertices = self.shape_vertices * offset * self.size
      if not self.filled:
          inner_vertices = shape_vertices[::-1] * 0.9
      shape_codes = self.shape_codes
      shape_size = len(shape_vertices)
  
      cursor = 0
      for row in xrange(self.num_rows + 1):
          if row % 2 == 0:
              cols = np.linspace(0.0, 1.0, self.num_rows + 1, True)
          else:
              cols = np.linspace(
                  offset / 2.0, 1.0 - offset / 2.0, self.num_rows, True
              )
          row_pos = row * offset
          for col_pos in cols:
              vertices[
                  cursor : cursor + shape_size
              ] = shape_vertices + (col_pos, row_pos)
              codes[cursor : cursor + shape_size] = shape_codes
              cursor += shape_size
              if not self.filled:
                  vertices[
                      cursor : cursor + shape_size
                  ] = inner_vertices + (col_pos, row_pos)
                  codes[cursor : cursor + shape_size] = shape_codes
                  cursor += shape_size
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import six
  from six.moves import xrange
  import numpy
  from matplotlib.path import Path
label_desc: Use image node_id 2 for calling the Shapes obj's underlying member method code with example usage: obj.set_vertices_and_codes(vertices, codes) without return types