# SpatialAnnotationTrackingOptions.Builder

Artifact: [androidx.xr.arcore:arcore](https://developer.android.com/jetpack/androidx/releases/xr-arcore) [View Source](https://cs.android.com/search?q=file:androidx/xr/arcore/SpatialAnnotationTrackingOptions.kt+class:androidx.xr.arcore.SpatialAnnotationTrackingOptions.Builder) Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

*** ** * ** ***


```
public final class SpatialAnnotationTrackingOptions.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions`.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#Builder(java.nio.ByteBuffer,androidx.xr.runtime.math.IntSize2d,kotlin.Long)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/nio/ByteBuffer.html imageBuffer, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/runtime/math/IntSize2d imageSize, long timestampNanos )` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#build()()` Builds a new `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions` instance. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#setAlignment(androidx.xr.arcore.SpatialAnnotationQuadAlignment)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationQuadAlignment alignment)` Sets the physical alignment behavior of the resulting 3D quad. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#setFormat(androidx.xr.arcore.SpatialAnnotationImageFormat)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationImageFormat format)` Sets the pixel format encoding. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#setImageBuffer(java.nio.ByteBuffer)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/nio/ByteBuffer.html imageBuffer)` Sets the raw image byte buffer from the camera frame. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#setImageSize(androidx.xr.runtime.math.IntSize2d)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/runtime/math/IntSize2d imageSize)` Sets the 2D pixel dimensions of the image buffer. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#setQuads(kotlin.collections.Map)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationId, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/runtime/math/Quad> quads)` Sets the bounding quadrilaterals mapped to their unique tracking IDs. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#setRowStride(kotlin.Int)(int rowStride)` Sets the row stride (bytes per row) of the image buffer. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder` | `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions.Builder#setTimestampNanos(kotlin.Long)(long timestampNanos)` Sets the system timestamp in nanoseconds correlating to the camera frame, using the `https://developer.android.com/reference/java/lang/System.html#nanoTime()` clock base. |

## Public constructors

### Builder

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public Builder(
    @NonNull ByteBuffer imageBuffer,
    @NonNull IntSize2d imageSize,
    long timestampNanos
)
```

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/nio/ByteBuffer.html imageBuffer` | the raw image byte buffer from the camera frame |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/xr/runtime/math/IntSize2d imageSize` | the 2D pixel dimensions of the image buffer |
| `long timestampNanos` | the system timestamp in nanoseconds correlating to the camera frame, using the `https://developer.android.com/reference/java/lang/System.html#nanoTime()` clock base |

## Public methods

### build

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions build()
```

Builds a new `https://developer.android.com/reference/androidx/xr/arcore/SpatialAnnotationTrackingOptions` instance.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if required fields were not explicitly set |

### setAlignment

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions.Builder setAlignment(@NonNull SpatialAnnotationQuadAlignment alignment)
```

Sets the physical alignment behavior of the resulting 3D quad. Defaults to SCREEN.

### setFormat

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions.Builder setFormat(@NonNull SpatialAnnotationImageFormat format)
```

Sets the pixel format encoding. Defaults to RGBA.

### setImageBuffer

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions.Builder setImageBuffer(@NonNull ByteBuffer imageBuffer)
```

Sets the raw image byte buffer from the camera frame.

### setImageSize

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions.Builder setImageSize(@NonNull IntSize2d imageSize)
```

Sets the 2D pixel dimensions of the image buffer.

### setQuads

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions.Builder setQuads(@NonNull Map<@NonNull SpatialAnnotationId, @NonNull Quad> quads)
```

Sets the bounding quadrilaterals mapped to their unique tracking IDs.

### setRowStride

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions.Builder setRowStride(int rowStride)
```

Sets the row stride (bytes per row) of the image buffer.

### setTimestampNanos

Added in [1.1.0-alpha01](https://developer.android.com/jetpack/androidx/releases/xr-arcore#1.1.0-alpha01)

```
public final @NonNull SpatialAnnotationTrackingOptions.Builder setTimestampNanos(long timestampNanos)
```

Sets the system timestamp in nanoseconds correlating to the camera frame, using the `https://developer.android.com/reference/java/lang/System.html#nanoTime()` clock base.