Complete GJK implementation