import numpy as np
from sigmaepsilon.mesh import grid
from sigmaepsilon.mesh.utils.topology.tr import Q4_to_T3
from sigmaepsilon.mesh import triangulate
from sigmaepsilon.mesh.plotting.mpl.triplot import triplot_mpl_data

gridparams = {
    "size": (1200, 600),
    "shape": (30, 15),
    "eshape": (2, 2),
}
coordsQ4, topoQ4 = grid(**gridparams)
points, triangles = Q4_to_T3(coordsQ4, topoQ4, path="grid")
triobj = triangulate(points=points[:, :2], triangles=triangles)[-1]

# Data defined over the triangles
data = np.random.rand(len(triangles))
triplot_mpl_data(triobj, data=data)

# Data defined over the points
data = np.random.rand(len(points))
triplot_mpl_data(
    triobj, data=data, cmap="jet", nlevels=10, refine=True, draw_contours=True
)