# UAndroidXRSpatialDepthRaycastSubsystem

`#include <AndroidXRSpatialDepthRaycastSubsystem.h>`

<br />

## Summary

### Inheritance

Inherits from: [`UAndroidXRSpatialEntitiesSubsystem`](https://developer.android.com/develop/xr/unreal/reference/class/UAndroidXRSpatialEntitiesSubsystem)

| ### Public functions ||
|---|---|
| `https://developer.android.com/develop/xr/unreal/reference/class/UAndroidXRSpatialDepthRaycastSubsystem#canperformdepthraycast() const ` | `bool` Checks if the depth raycast can be performed (if a previous depth raycast request is being processed, this will return false) |
| `https://developer.android.com/develop/xr/unreal/reference/class/UAndroidXRSpatialDepthRaycastSubsystem#depthraycastasync(const https://developer.android.com/develop/xr/unreal/reference/struct/FSpatialRaycastConfig#struct_f_spatial_raycast_config & RaycastConfig, TDelegate< void(const https://developer.android.com/develop/xr/unreal/reference/struct/FSpatialRaycastHitInfo#struct_f_spatial_raycast_hit_info &)> DepthRaycastCompletedCallback, TDelegate< void()> OnFailedCallback)` | `bool` Perform a depth raycast asynchronously. |
| `https://developer.android.com/develop/xr/unreal/reference/class/UAndroidXRSpatialDepthRaycastSubsystem#isdepthraycastsupported() const ` | `bool` Checks for depth raycast support. |

| ### Protected functions ||
|---|---|
| `https://developer.android.com/develop/xr/unreal/reference/class/UAndroidXRSpatialDepthRaycastSubsystem#getcapabilitymodule() override` | `virtual https://developer.android.com/develop/xr/unreal/reference/class/FAndroidXRSpatialCapabilityModule#class_f_android_x_r_spatial_capability_module *` |
| `https://developer.android.com/develop/xr/unreal/reference/class/UAndroidXRSpatialDepthRaycastSubsystem#getrequiredpermissions(TArray< FString > & Permissions) override` | `virtual void` |

## Public functions

### CanPerformDepthRaycast

```
bool CanPerformDepthRaycast() const 
```
Checks if the depth raycast can be performed (if a previous depth raycast request is being processed, this will return false)

<br />

| Details ||
|---|---|
| **Returns** | Returns true if the runtime can perform a depth raycast |

### DepthRaycastAsync

```
bool DepthRaycastAsync(
  const FSpatialRaycastConfig & RaycastConfig,
  TDelegate< void(const FSpatialRaycastHitInfo &)> DepthRaycastCompletedCallback,
  TDelegate< void()> OnFailedCallback
)
```
Perform a depth raycast asynchronously.

<br />

Details Parameters `The` raycast config to perform depth raycast with `The` callback to execute when the operation finishes `The` callback for when the operation fails **Returns** True if the underlying API call was successful

### IsDepthRaycastSupported

```
bool IsDepthRaycastSupported() const 
```
Checks for depth raycast support.

<br />

| Details ||
|---|---|
| **Returns** | Returns true if the runtime supports depth raycast |

## Protected functions

### GetCapabilityModule

```
virtual FAndroidXRSpatialCapabilityModule * GetCapabilityModule() override
```

### GetRequiredPermissions

```
virtual void GetRequiredPermissions(
  TArray< FString > & Permissions
) override
```