# components_ashape3d: Connected subsets computation In alphashape3d: Implementation of the 3D Alpha-Shape for the Reconstruction of 3D Sets from a Point Cloud

## Description

This function calculates and clusters the different connected components of the α-shape of a given sample of points in the three-dimensional space.

## Usage

 `1` ```components_ashape3d(as3d, indexAlpha = 1) ```

## Arguments

 `as3d` An object of class `"ashape3d"` that represents the α-shape of a given sample of points in the three-dimensional space, see `ashape3d`. `indexAlpha` A single value or vector with the indexes of `as3d\$alpha` that should be used for the computation, see Details.

## Details

The function `components_ashape3d` computes the connected components of the α-shape for each value of α in `as3d\$alpha[indexAlpha]` when `indexAlpha` is numeric.

If `indexAlpha="all"` or `indexAlpha="ALL"` then the function computes the connected components of the α-shape for all values of α in `as3d\$alpha`.

## Value

If `indexAlpha` is a single value then the function returns a vector `v` of length equal to the sample size. For each sample point `i`, `v[i]` represents the label of the connected component to which the point belongs (for isolated points, `v[i]=-1`). The labels of the connected components are ordered by size where the largest one (in number of vertices) gets the smallest label which is one.

Otherwise `components_ashape3d` returns a list of vectors describing the connected components of the α-shape for each selected value of α.

`ashape3d`, `plot.ashape3d`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17``` ```T1 <- rtorus(1000, 0.5, 2) T2 <- rtorus(1000, 0.5, 2, ct = c(2, 0, 0), rotx = pi/2) x <- rbind(T1, T2) alpha <- c(0.25, 2) ashape3d.obj <- ashape3d(x, alpha = alpha) plot(ashape3d.obj, indexAlpha = "all") # Connected components of the alpha-shape for both values of alpha comp <- components_ashape3d(ashape3d.obj, indexAlpha = "all") class(comp) # Number of components and points in each component for alpha=0.25 table(comp[[1]]) # Number of components and points in each component for alpha=2 table(comp[[2]]) # Plot the connected components for alpha=0.25 plot(ashape3d.obj, byComponents = TRUE, indexAlpha = 1) ```