# SCNVector3 Struct

## Definition

A 3-component vector.

``````[System.Serializable]
public struct SCNVector3 : IEquatable<SceneKit.SCNVector3>``````
``type SCNVector3 = struct``
Inheritance
SCNVector3
Attributes
Implements

## Fields

 A vector whose components are each 1. The size in bytes of the vector. A unit vector in the X direction. A unit vector in the Y direction. A unit vector in the Z direction. Gets or sets the X component. Gets or sets the Y component. Gets or sets the Z component. The Zero vector.

## Properties

 Gets the length of the vector. Gets the approximate length of the vector by using an approximation of the square root operation. Gets the sum of the squares of the components of the vector. Gets or sets the X and Y components.

## Methods

 Adds `b` to `a`. Adds `b` to `a`, and puts the result in `result`. Interpolates `a`, `b`, and `c`, by using the barycentric coordinates `u` and `v`. Interpolates `a`, `b`, and `c`, by using the barycentric coordinates `u` and `v`, and stores the result in `result`. Calculates the angle, in radians, between the `first` and `second` vectors. Calculates the angle, in radians, between the `first` and `second` vectors and stores the result in `result`. Clamps the components of `vec` to be between `min` and `max`. Clamps the components of `vec` to be between `min` and `max` and stores the result in `result`. Returns a vector whose components are the componentwise maxima of `a` and `b`. Calculates the vector whose components are the componentwise maxima of `a` and `b` and stores the result in `result`. Returns a vector whose components are the componentwise minima of `a` and `b` and stores the result in `result`. Calculates the vector whose components are the componentwise minima of `a` and `b` and stores the result in `result`. Returns the cross product of `left` and `right`. the cross product of `left` and `right` and stores the result in `result`. Returns the componentwise division of `vector` by `scale`. Performs the componentwise division of `vector` by `scale` and stores the result in `result`. Divides the components of `vector` by the scalar `scale`. Divides the components of `vector` by the scalar `scale` and stores the result in `result`. Returns the dot product of `left` with `right`. Sets `result` to the dot product of `left` with `right`. Returns `true` if `other` is a Vector3 and is identical to this vector. Returns `true` if `other` is identical to this vector. Returns the hashcode for this instance. Returns the linear interpolation from `a` to `b` by the factor `blend`. Returns the linear interpolation from `a` to `b` by the factor `blend`, and stores the result in `result`. Returns the vector with the larger magnitude. Returns the vector with the smaller magnitude. Multiplies the components of `vector` by the components of `scale`. Multiplies the components of `vector` by the components of `scale` and stores the result in `result`. Multiplies `vector` by the scalar `scale`. Multiplies `vector` by the scalar `scale` and stores the result in `result`. Scales this instance to unit length. Scales `vec` to unit length. Scales `vec` to unit length and stores the result in `result`. Scales this vector to approximately unit length. Scales `vec` to approximately unit length. Scales `vec` to approximately unit length and stores the result in `result`. Subtracts `b` from `a`. Subtracts `b` from `a` and stores the result in `result`. Returns a string representation of this instance. Returns the transformation of `vec` by `mat`. Calulates the transformation of `vec` by `mat` and stores the result in `result`. Applies the tranformation that is represented by `mat` to `norm`. Applies the tranformation that is represented by `mat` to `norm`, and stores the result in `result`. Applies the inverse of the tranformation that is represented by `invMat` to `norm`. Applies the inverse of the tranformation that is represented by `invMat` to `norm`, and stores the result in `result`. Applies the tranformation that is represented by `mat` to `vec`. Applies the tranformation that is represented by `mat` to `vec`, and stores the result in `result`. Applies the tranformation that is represented by `mat` to `vec`. Applies the tranformation that is represented by `mat` to `pos`, and stores the result in `result` Applies the tranformation that is represented by `mat` to `vec`. Applies the tranformation that is represented by `mat` to `vec`, and stores the result in `result`.