code: def triangles(self):
          
          # use of advanced indexing on our tracked arrays will
          # trigger a change flag which means the MD5 will have to be
          # recomputed. We can escape this check by viewing the array.
          triangles = self.vertices.view(np.ndarray)[self.faces]
          # make triangles (which are derived from faces/vertices) not writeable
          triangles.flags.writeable = False
          return triangles
docs: Actual triangles of the mesh (points, not indexes)
  
          Returns
          ---------
          triangles : (n, 3, 3) float
            Points of triangle vertices