deleteFaceVertices (face, absorbingFace) {
    const faceVertices = this.removeAllVerticesFromFace(face)
    if (faceVertices) {
      if (!absorbingFace) {
        // mark the vertices to be reassigned to some other face
        this.unclaimed.addAll(faceVertices)
      } else {
        // if there's an absorbing face try to assign as many vertices
        // as possible to it

        // the reference `vertex.next` might be destroyed on
        // `this.addVertexToFace` (see VertexList#add), nextVertex is a
        // reference to it
        let nextVertex
        for (let vertex = faceVertices; vertex; vertex = nextVertex) {
          nextVertex = vertex.next
          const distance = absorbingFace.distanceToPlane(vertex.point)

          // check if `vertex` is able to see `absorbingFace`
          if (distance > this.tolerance) {
            this.addVertexToFace(vertex, absorbingFace)
          } else {
            this.unclaimed.add(vertex)
          }
        }
      }
    }
  }
Removes all the visible vertices that `face` is able to see, additionally
checking the following:

If `absorbingFace` doesn't exist then all the removed vertices will be
added to the `unclaimed` vertex list

If `absorbingFace` exists then this method will assign all the vertices of
`face` that can see `absorbingFace`, if a vertex cannot see `absorbingFace`
it's added to the `unclaimed` vertex list

@param {Face} face
@param {Face} [absorbingFace]