---
title: SCNVector3
framework: scenekit
role: symbol
role_heading: Structure
path: scenekit/scnvector3
---

# SCNVector3

A representation of a three-component vector.

## Declaration

```swift
struct SCNVector3
```

## Overview

Overview SceneKit uses three-component vectors for a variety of purposes, such as describing node or vertex positions, surface normals, and scale or translation transforms. The different vector components should be interpreted based on the context in which the vector is being used. important: In macOS, the x, y, and z fields in this structure are CGFloat values. In iOS, tvOS, and watchOS, these fields are float values.

## Topics

### Components

- [x](scenekit/scnvector3/x.md)
- [y](scenekit/scnvector3/y.md)
- [z](scenekit/scnvector3/z.md)

### Creating Vectors

- [SCNVector3Make(_:_:_:)](scenekit/scnvector3make(_:_:_:).md)

### Converting Vector Types

- [SCNVector3FromGLKVector3(_:)](scenekit/scnvector3fromglkvector3(_:).md)
- [SCNVector3ToGLKVector3(_:)](scenekit/scnvector3toglkvector3(_:).md)

### Comparing Vectors

- [SCNVector3EqualToVector3(_:_:)](scenekit/scnvector3equaltovector3(_:_:).md)

### Zero Constant

- [SCNVector3Zero](scenekit/scnvector3zero.md)

### Initializers

- [init()](scenekit/scnvector3/init().md)
- [init(_:)](scenekit/scnvector3/init(_:)-10rap.md)
- [init(_:)](scenekit/scnvector3/init(_:)-9wg16.md)
- [init(_:_:_:)](scenekit/scnvector3/init(_:_:_:)-2hhr6.md)
- [init(_:_:_:)](scenekit/scnvector3/init(_:_:_:)-50jm7.md)
- [init(_:_:_:)](scenekit/scnvector3/init(_:_:_:)-7clbx.md)
- [init(_:_:_:)](scenekit/scnvector3/init(_:_:_:)-8cwh7.md)
- [init(x:y:z:)](scenekit/scnvector3/init(x:y:z:)-28n6q.md)
- [init(x:y:z:)](scenekit/scnvector3/init(x:y:z:)-mn27.md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Copyable](swift/copyable.md)
- [Escapable](swift/escapable.md)
- [Sendable](swift/sendable.md)

## See Also

### Vectors

- [SCNVector4](scenekit/scnvector4.md)
