# Implementation of module {contact_hp}
# Last edited on 2021-05-31 14:19:57 by jstolfi

import contact_hp

import contact
import block
import path
import move
import sys

def side_block(ct, i):
  return ct.blocks[i]
  # ----------------------------------------------------------------------
 
def set_side_block(ct, i, bc):
  ct.blocks[i] = bc
  return
  # ----------------------------------------------------------------------

# PATHS CONTAINING SIDES OF CONTACT

def set_side_path(ct, i, oph):
  assert isinstance(ct, contact.Contact)
  if oph == None:
    ph = None
  else:
    ph, dr = path.unpack(oph)
    # Check that {ph} contains side {i} of {ct}:
    mv = contact.side(ct, i)
    assert path.find_move(ph, mv) != None
  ct.paths[i] = ph
  return
  # ----------------------------------------------------------------------

def side_path(ct, i):
  assert isinstance(ct, contact.Contact)
  return ct.paths[i]
  # ----------------------------------------------------------------------

# ELIS

def get_raster_links(ct):
  return ct.rl
  # ----------------------------------------------------------------------

def set_raster_links(ct, rl0, rl1):
  ct.rl = (rl0, rl1)
  return
  # ----------------------------------------------------------------------



