make Coord a template
use floats for catmull-rom
use Coord2D template instead of new type for intersections