Refinement

Meshes.refineFunction
refine(mesh, method)

Refine mesh with refinement method.

TriRefinement

Meshes.TriRefinementType
TriRefinement()

Refinement of polygonal meshes into triangles. A n-gon is subdivided into n-2 triangles.

grid = CartesianGrid(10, 10)

# refine three times
ref1 = refine(grid, TriRefinement())
ref2 = refine(ref1, TriRefinement())
ref3 = refine(ref2, TriRefinement())

fig = Mke.Figure(resolution = (800, 800))
viz(fig[1,1], grid, showfacets = true)
viz(fig[1,2], ref1, showfacets = true)
viz(fig[2,1], ref2, showfacets = true)
viz(fig[2,2], ref3, showfacets = true)
fig

QuadRefinement

Meshes.QuadRefinementType
QuadRefinement()

Refinement of polygonal meshes into quadrangles. A n-gon is subdivided into n quadrangles.

grid = CartesianGrid(10, 10)

# refine three times
ref1 = refine(grid, QuadRefinement())
ref2 = refine(ref1, QuadRefinement())
ref3 = refine(ref2, QuadRefinement())

fig = Mke.Figure(resolution = (800, 800))
viz(fig[1,1], grid, showfacets = true)
viz(fig[1,2], ref1, showfacets = true)
viz(fig[2,1], ref2, showfacets = true)
viz(fig[2,2], ref3, showfacets = true)
fig

Catmull-Clark

# define a cube in R^3
points = Point3[(0,0,0),(1,0,0),(1,1,0),(0,1,0),(0,0,1),(1,0,1),(1,1,1),(0,1,1)]
connec = connect.([(1,4,3,2),(5,6,7,8),(1,2,6,5),(3,4,8,7),(1,5,8,4),(2,3,7,6)])
mesh   = SimpleMesh(points, connec)

# refine three times
ref1 = refine(mesh, CatmullClark())
ref2 = refine(ref1, CatmullClark())
ref3 = refine(ref2, CatmullClark())

fig = Mke.Figure(resolution = (800, 800))
viz(fig[1,1], mesh, showfacets = true)
viz(fig[1,2], ref1, showfacets = true)
viz(fig[2,1], ref2, showfacets = true)
viz(fig[2,2], ref3, showfacets = true)
fig