SPLITMESH Return the connected components of a mesh.
MESHES = splitMesh(VERTICES, FACES) returns the connected components of
the mesh defined by vertices and faces as a struct array with the
fields vertices and faces sorted by increasing vertex number
MESHES = splitMesh(MESH) with the vertices-faces-struct MESH is also
possible
... = splitMesh(..., 'mostVertices') returns only the component with
the most vertices. Other options are 'all' (default),
'maxBoundingBox' that returns the component with the largest bounding
box, and 'maxVolume' returns the component with the largest volume.
Example
[v1, f1] = boxToMesh([1 0 -1 0 -1 0]);
[v2, f2] = boxToMesh([-1 0 1 0 -1 0]);
[v3, f3] = createSoccerBall;
f1 = triangulateFaces(f1);
f2 = triangulateFaces(f2);
f3 = triangulateFaces(f3);
[vertices, faces] = concatenateMeshes(v1, f1, v3, f3, v2, f2);
meshes = splitMesh(vertices, faces);
figure('color','w'); view(3); axis equal
cmap=hsv(length(meshes));
for m=1:length(meshes)
drawMesh(meshes(m), cmap(m,:))
end
See also
concatenateMeshes
Source
Local functions are part of the gptoolbox of Alec Jacobson
https://github.com/alecjacobson/gptoolbox
---------
Author: oqilipo
Created: 2017-09-17
Copyright 2017
Package: matgeom