Vector3Type

public protocol Vector3Type : VectorTakeable where Self == Self.SubVector3, Self.TakeDimensions == Vector3TakeDimensions

Protocol for types that can represent 3D vectors.

  • Declaration

    Swift

    associatedtype SubVector3 = Self
  • x

    The X coordinate of this 3D vector.

    Declaration

    Swift

    var x: Scalar { get set }
  • y

    The Y coordinate of this 3D vector.

    Declaration

    Swift

    var y: Scalar { get set }
  • z

    The Z coordinate of this 3D vector.

    Declaration

    Swift

    var z: Scalar { get set }
  • Initializes this vector type with the given coordinates.

    Declaration

    Swift

    init(x: Scalar, y: Scalar, z: Scalar)
  • init(_:z:) Default implementation

    Creates a new vector with the coordinates of a given Vector2Type, along with a new value for the z axis.

    Default Implementation

    Declaration

    Swift

    init<V>(_ vec: V, z: Scalar) where V : Vector2Type, Self.Scalar == V.Scalar
  • init(_:) Default implementation

    Initializes a new instance of this Vector3Type type by copying the coordinates of another Vector3Type of matching scalar type.

    Default Implementation

    Declaration

    Swift

    init<Vector>(_ vector: Vector) where Vector : Vector3Type, Self.Scalar == Vector.Scalar
  • scalarCount Extension method

    The number of scalars in the vector.

    For 3D vectors, this value is always 3.

    Declaration

    Swift

    var scalarCount: Int { get }
  • subscript(_:) Extension method

    Accesses the scalar at the specified position.

    • index 0: x
    • index 1: y
    • index 2: z

    Precondition

    index >= 0 && index < 3

    Declaration

    Swift

    @inlinable
    subscript(index: Int) -> Scalar { get set }

Available where Self: VectorComparable

  • maximalComponentIndex Extension method

    Returns the index of the component of this vector that has the greatest value.

    Vector3D(x: -3.0, y: 2.5, z: 0).maximalComponentIndex // Returns 1
    

    Declaration

    Swift

    var maximalComponentIndex: Int { get }
  • minimalComponentIndex Extension method

    Returns the index of the component of this vector that has the least value.

    Vector3D(x: -3.0, y: 2.5, z: 0).minimalComponentIndex // Returns 0
    

    Declaration

    Swift

    var minimalComponentIndex: Int { get }
  • maximalComponent Extension method

    Returns the greatest scalar component between x, y, z in this vector

    Vector3D(x: -3.0, y: 2.5, z: 0).maximalComponent // Returns 2.5
    

    Declaration

    Swift

    var maximalComponent: Scalar { get }
  • minimalComponent Extension method

    Returns the least scalar component between x, y, z in this vector

    Vector3D(x: -3.0, y: 2.5, z: 0).minimalComponent // Returns -3.0
    

    Declaration

    Swift

    var minimalComponent: Scalar { get }