# Path: inter/inter.py
# def cleanup_js(inter):
#   def _remove_constructor(item):
# def add_names(inter):
#   def generate_ints():
#   def _c(x):
# def get_meta(inter):
# def prepare_for_display(inter, filter_out):
#   def _sort(x1, x2):
#   def convert(x):
# def bounding_box(inter):
#   def oget(m, k, d):
#   def fget(m, k, d = 0.0):
#   def circle(shape):
#   def disc(shape):
#   def label(shape):
#   def vertex(shape):
#   def polygon(shape):
#   def octagon(shape):
#   def rect(shape):
#   def unknown(shape):
# def size(inter):
# def sort_by_type(inter):
#   def _sort(x1, x2):
# def _count_num_values(pads, param):
# def _equidistant(pads, direction):
# def _all_equal(pads, direction):
# def _sort_by_field(pads, field, reverse=False):
#   def _sort_by(a, b):
# def _clone_pad(pad_in, remove):
# def _make_mods(skip, pad, pads):
# def _check_single(orig_pads, horizontal):
# def _split_dual(pads, direction):
# def _one_by_one_equal(r1, r2, direction):
# def _check_dual_alt(r1, r2):
# def _check_dual(orig_pads, horizontal):
# def _split_quad(pads):
# def _check_quad(orig_pads):
# def _check_sequential(pads):
# def _find_pad_patterns(pads):
# def find_pad_patterns(inter):
# def import_footprint(importer, footprint_name):


import glob, math, os.path
import sexpdata
from sexpdata import Symbol
from mutil.mutil import *
from inter import inter
      width = get_single_element_sub(x, 'width')
      shape = { 'shape': 'polygon'}
      shape['w'] = width
      shape['type'] = get_layer_sub(x, 'silk')
      shape['v'] = []
      for p in get_list_sub(x, 'pts')[0:-1]:
        v = { 'shape':'vertex' }
        v['x1'] = p[1]
        v['y1'] = -p[2]
        shape['v'].append(v)
      l = len(shape['v'])
      for i in range(0, l):
        shape['v'][i]['x2'] = shape['v'][i-l+1]['x1']
        shape['v'][i]['y2'] = shape['v'][i-l+1]['y1']
      return shape

    # (fp_text reference MYCONN3 (at 0 -2.54) (layer F.SilkS)
    #   (effects (font (size 1.00076 1.00076) (thickness 0.25146)))
    # )
    # (fp_text value SMD (at 0 2.54) (layer F.SilkS) hide
    #   (effects (font (size 1.00076 1.00076) (thickness 0.25146)))
    # )
    def fp_text(x):
      shape = { 'shape': 'label', 'type': 'silk', 'value': '' }
      shape['value'] = _convert_sexp_symbol_to_string(x[2])
      shape['type'] = get_layer_sub(x, 'silk')
      
      if (_convert_sexp_symbol_to_string(x[1]) == "reference"):
        shape['value'] = 'NAME' # Override "NAME" field text
      elif (_convert_sexp_symbol_to_string(x[1]) == "value"):

# Path: inter/inter.py
# def cleanup_js(inter):
#   def _remove_constructor(item):
# def add_names(inter):
#   def generate_ints():
#   def _c(x):
# def get_meta(inter):
# def prepare_for_display(inter, filter_out):
#   def _sort(x1, x2):
#   def convert(x):
# def bounding_box(inter):
#   def oget(m, k, d):
#   def fget(m, k, d = 0.0):
#   def circle(shape):
#   def disc(shape):
#   def label(shape):
#   def vertex(shape):
#   def polygon(shape):
#   def octagon(shape):
#   def rect(shape):
#   def unknown(shape):
# def size(inter):
# def sort_by_type(inter):
#   def _sort(x1, x2):
# def _count_num_values(pads, param):
# def _equidistant(pads, direction):
# def _all_equal(pads, direction):
# def _sort_by_field(pads, field, reverse=False):
#   def _sort_by(a, b):
# def _clone_pad(pad_in, remove):
# def _make_mods(skip, pad, pads):
# def _check_single(orig_pads, horizontal):
# def _split_dual(pads, direction):
# def _one_by_one_equal(r1, r2, direction):
# def _check_dual_alt(r1, r2):
# def _check_dual(orig_pads, horizontal):
# def _split_quad(pads):
# def _check_quad(orig_pads):
# def _check_sequential(pads):
# def _find_pad_patterns(pads):
# def find_pad_patterns(inter):
# def import_footprint(importer, footprint_name):


# Path: export/kicad.py
import glob, math, os.path
import sexpdata
from sexpdata import Symbol
from mutil.mutil import *
from inter import inter

      width = get_single_element_sub(x, 'width')
      shape = { 'shape': 'polygon'}
      shape['w'] = width
      shape['type'] = get_layer_sub(x, 'silk')
      shape['v'] = []
      for p in get_list_sub(x, 'pts')[0:-1]:
        v = { 'shape':'vertex' }
        v['x1'] = p[1]
        v['y1'] = -p[2]
        shape['v'].append(v)
      l = len(shape['v'])
      for i in range(0, l):
        shape['v'][i]['x2'] = shape['v'][i-l+1]['x1']
        shape['v'][i]['y2'] = shape['v'][i-l+1]['y1']
      return shape

    # (fp_text reference MYCONN3 (at 0 -2.54) (layer F.SilkS)
    #   (effects (font (size 1.00076 1.00076) (thickness 0.25146)))
    # )
    # (fp_text value SMD (at 0 2.54) (layer F.SilkS) hide
    #   (effects (font (size 1.00076 1.00076) (thickness 0.25146)))
    # )
    def fp_text(x):
      shape = { 'shape': 'label', 'type': 'silk', 'value': '' }
      shape['value'] = _convert_sexp_symbol_to_string(x[2])
      shape['type'] = get_layer_sub(x, 'silk')
      
      if (_convert_sexp_symbol_to_string(x[1]) == "reference"):
        shape['value'] = 'NAME' # Override "NAME" field text
      elif (_convert_sexp_symbol_to_string(x[1]) == "value"):

        shape['value'] = 'VALUE' # Override "VALUE" field text