# shz_vec3_t

Source: https://sh4zam.com/api/vector/shz_vec3_t/

```c
typedef struct shz_vec3 {
    union {
        float e[3];              //!< <X, Y, Z> coordinates as an array
        struct {
            union {
                struct {
                    float x;     //!< X coordinate
                    float y;     //!< Y coordinate
                };
                shz_vec2_t xy;   //!< Inner 2D vector containing <X, Y> coords
            };
            float z;             //!< Z coordinate
        };
    };
} shz_vec3_t;
```

3D Vector type

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `e` | `float[3]` | \<X, Y, Z> coordinates as an array |
| `z` | `float` | Z coordinate. |
| `xy` | `shz_vec2_t` | Inner 2D vector containing \<X, Y> coords. |
| `x` | `float` | X coordinate. |
| `y` | `float` | Y coordinate. |

## Details

Structure for holding coordinates of a 3-dimensional vector.

## Availability

- **C++ equivalent:** [`shz::vec3`](https://sh4zam.com/api/cpp/vec3/)
- **Back-ends:** n/a (not a function)
- **Defined in:** [`sh4zam/shz_vector.h:57`](https://github.com/gyrovorbis/sh4zam/blob/ba1e30c88d49df0311870b229e1dd860ef26c477/include/sh4zam/shz_vector.h#L57)
- **Module:** [Vector](https://sh4zam.com/api/vector/), section "Types"

## See also

[`shz_vec2_t`](https://sh4zam.com/api/vector/shz_vec2_t/), [`shz_vec4_t`](https://sh4zam.com/api/vector/shz_vec4_t/)
