     # the two given ones in the given orientation, if any.
     third: (a, b) -> @triangulation__.third a, b
 
+    # The method `triangle` finds the unique oriented triangle with the two
+    # given pair of vertices in the order, if any.
+    triangle: (a, b) -> @triangulation__.triangle a, b
+
     # The method `sideOf` determines which side of the oriented line given by
     # the sites with indices `a` and `b` the point `p` (a `Point2d` instance)
     # lies on. A positive value means it is to the right, a negative value to

    # The method `toSeq` returns the triangles contained in the triangulation
    # as a lazy sequence.
    memo @, 'toSeq', ->
      good = seq.select @third__, ([[a,b],c]) ->
        a.toString() < b.toString() and a.toString() < c.toString()
      seq.map good, ([[a,b],c]) -> tri a, b, c

    # The method `third` finds the unique third vertex forming a triangle with
    # the two given ones in the given orientation, if any.
    third: (a, b) -> @third__.get [a, b]

    # The method `plus` returns a triangulation with the given triangle added
    # unless it is already present or creates an orientation mismatch. In the

      else if seq.find([[a, b], [b, c], [c, a]], ([p, q]) => @third p, q)
        throw new Error "Orientation mismatch."
      else
        t = tri a, b, c
        added = [[[a, b], [t, c]], [[b, c], [t, a]], [[c, a], [t, b]]]
        new Triangulation @third__.plusAll added

    # The method `minus` returns a triangulation with the given triangle
    # removed, if present.
