# coarsepatch

Below is a demonstration of the features of the `coarsepatch` function

## Contents

```
clear; close all; clc;
```

## Syntax

`[F,V,Eb]=coarsepatch(F,V,f);`

## Description

This function can reduce the density of patch data defined by faces `F` and vertices `V`. The input `f` either defines a scaling factor between 0-1 or a desired number of faces. This function uses MATLAB's `[F,V] = reducepatch(F,V,f,'fast');`. However it also proceeds to clean up the mesh to avoid several reducepatch issues (collapsed triangles etc). The 3rd optional output consists of the boundary edges `Eb`. If the input does not have boundary edges then the coarsening operation introduced holes.

## Examples

## Specifying a scaling factor

```
[F1,V1]=graphicsModels(9);
f=1/3; %Scaling factor (if <=1) or new number of faces
[F2,V2]=coarsepatch(F1,V1,f);
```

cFigure; subplot(1,2,1); title(['Original: ',num2str(size(V1,1)),' vertices, ',num2str(size(F1,1)),' faces']); gpatch(F1,V1,'w','k'); axisGeom; camlight headlight; view(0,0); axis off; subplot(1,2,2); title(['Resampled: ',num2str(size(V2,1)),' vertices, ',num2str(size(F2,1)),' faces']); gpatch(F2,V2,'w','k'); axisGeom; camlight headlight; view(0,0); axis off; drawnow;

## Specifying desired number of faces

```
[F1,V1]=graphicsModels(9);
f=1500; %Scaling factor (if <=1) or new number of faces
[F2,V2]=coarsepatch(F1,V1,f);
```

cFigure; subplot(1,2,1); title(['Original: ',num2str(size(V1,1)),' vertices, ',num2str(size(F1,1)),' faces']); gpatch(F1,V1,'w','k'); axisGeom; camlight headlight; view(0,0); axis off; subplot(1,2,2); title(['Resampled: ',num2str(size(V2,1)),' vertices, ',num2str(size(F2,1)),' faces']); gpatch(F2,V2,'w','k'); axisGeom; camlight headlight; view(0,0); axis off; drawnow;

* GIBBON* www.gibboncode.org

*Kevin Mattheus Moerman*, gibbon.toolbox@gmail.com

**GIBBON footer text**

License: https://github.com/gibbonCode/GIBBON/blob/master/LICENSE

GIBBON: The Geometry and Image-based Bioengineering add-On. A toolbox for image segmentation, image-based modeling, meshing, and finite element analysis.

Copyright (C) 2019 Kevin Mattheus Moerman

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.