# AndroidXRRuntimeImageLibrary

Constructs a RuntimeReferenceImageLibrary which stores reference images

for Marker Tracking and QR Code tracking at Android XR devices.

## Summary

### Inheritance

Inherits from: `RuntimeReferenceImageLibrary`

| ### Constructors and Destructors ||
|---|---|
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#androidxrruntimeimagelibrary(XRReferenceImageLibrary library)` Constructs a [AndroidXRRuntimeImageLibrary](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#classGoogle_1_1XR_1_1Extensions_1_1AndroidXRRuntimeImageLibrary) from a given XRReferenceImageLibrary ||

| ### Public attributes ||
|---|---|
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#markerreferencecount => _markerReferenceCount` | `int` The number of marker references in the library. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#markerreferenceindex => _markerReferenceIndex` | `int` The index of the first marker reference in the library, or -1 if no marker was added. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#qrcodereference => _qrCodeReference` | `XRReferenceImage` The QR CodeXRReferenceImage, or `null` if it's not found from the library. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#qrcodereferencecount => _qrCodeReferenceCount` | `int` The number of QR Code references in the library. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#qrcodereferenceindex => _qrCodeReferenceIndex` | `int` The index of the QR Code reference in the library, or -1 if no QR Code was added. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#count => _qrCodeReferenceCount + _markerReferenceCount` | `override int` |

| ### Public static functions ||
|---|---|
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#ismarkerreference(XRReferenceImage image)` | `bool` Determine if the given reference image is a marker reference. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#isqrcodereference(XRReferenceImage image)` | `bool` Determine if the given reference image is a QR code reference. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#validatemarker(IReferenceImageLibrary imageLibrary)` | `void` Validate marker configuration with a given XRReferenceImageLibrary. |
| `https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#validateqrcode(IReferenceImageLibrary imageLibrary)` | `void` Validate QR code configuration with a given XRReferenceImageLibrary. |

## Public attributes

### MarkerReferenceCount

```c#
int MarkerReferenceCount => _markerReferenceCount
```
The number of marker references in the library.

It can be used to iterate all marker reference images starting from [MarkerReferenceIndex](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#markerreferenceindex).

### MarkerReferenceIndex

```c#
int MarkerReferenceIndex => _markerReferenceIndex
```
The index of the first marker reference in the library, or -1 if no marker was added.

### QRCodeReference

```c#
XRReferenceImage QRCodeReference => _qrCodeReference
```
The QR CodeXRReferenceImage, or `null` if it's not found from the library.

### QrCodeReferenceCount

```c#
int QrCodeReferenceCount => _qrCodeReferenceCount
```
The number of QR Code references in the library.

### QrCodeReferenceIndex

```c#
int QrCodeReferenceIndex => _qrCodeReferenceIndex
```
The index of the QR Code reference in the library, or -1 if no QR Code was added.

### count

```c#
override int count => _qrCodeReferenceCount + _markerReferenceCount
```

## Public functions

### AndroidXRRuntimeImageLibrary

```c#
 AndroidXRRuntimeImageLibrary(
  XRReferenceImageLibrary library
)
```
Constructs a [AndroidXRRuntimeImageLibrary](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/AndroidXRRuntimeImageLibrary#classGoogle_1_1XR_1_1Extensions_1_1AndroidXRRuntimeImageLibrary) from a given XRReferenceImageLibrary


Details Parameters `library` The XRReferenceImageLibrary to collect images from.

## Public static functions

### IsMarkerReference

```c#
bool IsMarkerReference(
  XRReferenceImage image
)
```
Determine if the given reference image is a marker reference.


Details Parameters `image` The reference image with marker name or generated from [XRMarkerDatabase](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRMarkerDatabase#classGoogle_1_1XR_1_1Extensions_1_1XRMarkerDatabase). **Returns** `true`, if it's a valid marker reference.

### IsQrCodeReference

```c#
bool IsQrCodeReference(
  XRReferenceImage image
)
```
Determine if the given reference image is a QR code reference.


Details Parameters `image` The reference image with QR code name. **Returns** `true`, if it's a valid QR code reference.

### ValidateMarker

```c#
void ValidateMarker(
  IReferenceImageLibrary imageLibrary
)
```
Validate marker configuration with a given XRReferenceImageLibrary.

It may be updated through [XRMarkerDatabase](https://developer.android.com/develop/xr/unity/reference/class/Google/XR/Extensions/XRMarkerDatabase#classGoogle_1_1XR_1_1Extensions_1_1XRMarkerDatabase) or manually added marker references where the XRReferenceImage.name matches format "{}-{markId}".


Details Parameters `imageLibrary`

### ValidateQrCode

```c#
void ValidateQrCode(
  IReferenceImageLibrary imageLibrary
)
```
Validate QR code configuration with a given XRReferenceImageLibrary.

Note: only one reference is needed for QR code tracking, where the XRReferenceImage.name starts with `QRCode`, case insensitive.


Details Parameters `imageLibrary` The XRReferenceImageLibrary with QR code reference in it.