docs: def signed_cell_areas(self):
          """Signed area of a triangle in 2D.
          """
          # http://mathworld.wolfram.com/TriangleArea.html
          assert (
              self.node_coords.shape[1] == 2
          ), "Signed areas only make sense for triangles in 2D."
  
          if self._signed_cell_areas is None:
              # One could make p contiguous by adding a copy(), but that's not
              # really worth it here.
              p = self.node_coords[self.cells["nodes"]].T
              # <https://stackoverflow.com/q/50411583/353337>
              self._signed_cell_areas = (
                  +p[0][2] * (p[1][0] - p[1][1])
                  + p[0][0] * (p[1][1] - p[1][2])
                  + p[0][1] * (p[1][2] - p[1][0])
              ) / 2
          return self._signed_cell_areas