public bool Contains(S2Cell cell) { // If the cap does not contain all cell vertices, return false. // We check the vertices before taking the Complement() because we can't // accurately represent the complement of a very small cap (a height // of 2-epsilon is rounded off to 2). var vertices = new S2Point[4]; for (var k = 0; k < 4; ++k) { vertices[k] = cell.GetVertex(k); if (!Contains(vertices[k])) { return(false); } } // Otherwise, return true if the complement of the cap does not intersect // the cell. (This test is slightly conservative, because technically we // want Complement().InteriorIntersects() here.) return(!Complement.Intersects(cell, vertices)); }