> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ntop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ray Cast

<CardGroup cols={2}>
  <Card title="Implicit Body, Point, Vector, Scalar, Scalar, Integer, 5.30.0" href="#implicit-body-point-vector-scalar-scalar-integer-5300" />

  <Card title="Voxel Grid, Point, Vector" href="#voxel-grid-point-vector" />
</CardGroup>

***

## About this Block

**What it does:** The **Ray Cast** block creates a vector from a defined point, and outputs the point where the vector intersects the inputted voxel grid.

**Common uses:**

* Project points on to a Voxel Grid

## Example File

Download Example:  [Ray Cast](https://storage.googleapis.com/files-learn/static/ExtendedBlockDocs/ray_cast.ntop)
![Ray Cast](https://storage.googleapis.com/files-learn/static/ExtendedBlockDocs/ray_cast.jpg)

***

<h2 id="implicit-body-point-vector-scalar-scalar-integer-5300">
  Implicit Body, Point, Vector, Scalar, Scalar, Integer, 5.30.0
</h2>

Computes the intersection between the zero-surface of an implicit and a ray via sphere tracing.

### Inputs

| Name            | Type                                                                 | Description                                                                       |
| --------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| Implicit body   | [Implicit Body](../../../../block-documentation/types/implicit-body) | Implicit Body to measure                                                          |
| Point           | [Point](../../../../block-documentation/types/point)                 | Point to shoot the ray from                                                       |
| Direction       | [Vector](../../../../block-documentation/types/vector)               | Direction in which to shoot the ray                                               |
| Tolerance       | [Scalar](../../../../block-documentation/types/scalar)               | Convergence threshold, needs to be smaller than the thickness you want to measure |
| Lipschitz       | [Scalar](../../../../block-documentation/types/scalar)               | Lipschitz constant of the implicit                                                |
| Max. iterations | [Integer](../../../../block-documentation/types/integer)             | Maximum number of sphere tracing iterations to perform.                           |

### Outputs

| Type                                                 |
| ---------------------------------------------------- |
| [Point](../../../../block-documentation/types/point) |

***

<h2 id="voxel-grid-point-vector">
  Voxel Grid, Point, Vector
</h2>

Cast a ray to a voxel grid.

### Inputs

| Name      | Type                                                           | Description                                                  |
| --------- | -------------------------------------------------------------- | ------------------------------------------------------------ |
| Grid      | [Voxel Grid](../../../../block-documentation/types/voxel-grid) | The voxel grid to ray cast.                                  |
| Point     | [Point](../../../../block-documentation/types/point)           | The origin of the ray to intersect with the voxel grid.      |
| Direction | [Vector](../../../../block-documentation/types/vector)         | The directions of the rays to intersect with the voxel grid. |

### Outputs

| Type                                                 |
| ---------------------------------------------------- |
| [Point](../../../../block-documentation/types/point) |
