addAdjoiningFace (eyeVertex, horizonEdge) {
    // all the half edges are created in ccw order thus the face is always
    // pointing outside the hull
    // edges:
    //
    //                  eyeVertex.point
    //                       / \
    //                      /   \
    //                  1  /     \  0
    //                    /       \
    //                   /         \
    //                  /           \
    //          horizon.tail --- horizon.head
    //                        2
    //
    const face = Face.createTriangle(
      eyeVertex,
      horizonEdge.tail(),
      horizonEdge.head()
    )
    this.faces.push(face)
    // join face.getEdge(-1) with the horizon's opposite edge
    // face.getEdge(-1) = face.getEdge(2)
    face.getEdge(-1).setOpposite(horizonEdge.opposite)
    return face.getEdge(0)
  }
Creates a face with the points `eyeVertex.point`, `horizonEdge.tail` and
`horizonEdge.tail` in ccw order

@param {Vertex} eyeVertex
@param {HalfEdge} horizonEdge
@return {HalfEdge} The half edge whose vertex is the eyeVertex