# AvoidPath (Kernel)

`AvoidPath`(x y polygon)

  Important

  SCI1.1 only.

  Determines if a point is inside the given polygon.

  Parameters: | x (number) – The x coordinate of the point. y (number) – The y coordinate of the point. polygon (heapPtr) – An instance of `Polygon`.
  Returns: | TRUE if the point is inside the polygon, otherwise FALSE.

`AvoidPath`(xStart yStart xEnd yEnd polygons polyCount [options])

  Calculates a path between two points given the polygon obstacles. Returns a memory address pointing to an array of points. The memory address returned must be freed with Memory(memFREE).

  The returned array consists of (x, y) pairs of points, followed by a sentinel ending point ($7777, $7777).

  Parameters: | xStart (number) – The x coordinate of the starting point. yStart (number) – The y coordinate of the starting point. xEnd (number) – The x coordinate of the destination. yEnd (number) – The y coordinate of the destination. polygons (k_list) – A list of polygons. polyCount (number) – The number of polygons in the list. options (number) – Optimization levels. Optimization level 0 is for keyboard support, and changes some of the polygons.
  Returns: | A list of points comprising the path, or NULL on failure. The points should be freed by Memory(memFREE).