add polygons
add functions nPointToDir and pDirToPoint
add seat logic