# GARAugmentedFaceMesh

Object that holds face mesh and transform data for a detected face.

## Summary

### Inheritance

Inherits from: `NSObject`

| ### Properties ||
|---|---|
| `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#normals` | `const simd_float3 *` A buffer of 3D normals in `(x, y, z)` packing. |
| `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#texturecoordinates` | `const simd_float2 *` A float buffer of UV texture coordinates in `(u, v)` packing. |
| `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#trianglecount` | `NSUInteger` Number of triangles in the face mesh. |
| `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#triangleindices` | `const uint16_t *` A buffer of triangles' indices in consecutive `(i0, i1, i2)` triplets. |
| `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#vertexcount` | `NSUInteger` Number of vertices in the Augmented Faces mesh. |
| `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#vertices` | `const simd_float3 *` A float buffer of 3D vertex locations in `(x, y, z)` packing. |

## Properties

### normals

```
@property(nonatomic, readonly) const simd_float3 *https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#normals;
```
A buffer of 3D normals in `(x, y, z)` packing.

Each `(x, y, z)` is a unit vector of the normal to the surface at each vertex. There is exactly one normal vector for each vertex. These normals are relative to center transform of the face.

### textureCoordinates

```
@property(nonatomic, readonly) const simd_float2 *https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#texturecoordinates;
```
A float buffer of UV texture coordinates in `(u, v)` packing.

There is a pair of texture coordinates for each vertex. The `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#texturecoordinates` will not change.

### triangleCount

```
@property(nonatomic, readonly) NSUInteger https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#trianglecount;
```
Number of triangles in the face mesh.

This is equivalent to the number of elements in `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#triangleindices` divided by 3. The count will not change.

### triangleIndices

```
@property(nonatomic, readonly) const uint16_t *https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#triangleindices;
```
A buffer of triangles' indices in consecutive `(i0, i1, i2)` triplets.

Every three consecutive values are indices that represent a triangle. The front face of each triangle is defined by the face where the vertices are in counter clockwise winding order.

The `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#triangleindices` will not change.

### vertexCount

```
@property(nonatomic, readonly) NSUInteger https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#vertexcount;
```
Number of vertices in the Augmented Faces mesh.

The `https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#vertexcount` will not change. Currently, there are 468 vertices, although this might change in the future.

### vertices

```
@property(nonatomic, readonly) const simd_float3 *https://developers.google.com/ar/reference/ios/interface/GARAugmentedFaceMesh#vertices;
```
A float buffer of 3D vertex locations in `(x, y, z)` packing.

These vertices are relative to the center transform of the face. Units are in meters.