Diamond function almost complete, need to handle even radius case yet.