Vector3
public struct Vector3<Scalar> : Vector3Type
extension Vector3: Equatable where Scalar: Equatable
extension Vector3: Hashable where Scalar: Hashable
extension Vector3: Encodable where Scalar: Encodable
extension Vector3: Decodable where Scalar: Decodable
extension Vector3: VectorComparable where Scalar: Comparable
extension Vector3: AdditiveArithmetic where Scalar: AdditiveArithmetic
extension Vector3: VectorAdditive where Scalar: AdditiveArithmetic
extension Vector3: VectorMultiplicative where Scalar: Numeric
extension Vector3: Vector3Additive where Scalar: AdditiveArithmetic
extension Vector3: Vector3Multiplicative where Scalar: Numeric
extension Vector3: VectorSigned where Scalar: SignedNumeric & Comparable
extension Vector3: VectorDivisible where Scalar: DivisibleArithmetic
extension Vector3: VectorFloatingPoint where Scalar: DivisibleArithmetic & FloatingPoint
extension Vector3: SignedDistanceMeasurableType where Scalar: DivisibleArithmetic & FloatingPoint
extension Vector3: Vector3FloatingPoint where Scalar: DivisibleArithmetic & FloatingPoint
extension Vector3: VectorReal where Scalar: DivisibleArithmetic & Real
extension Vector3: Vector3Real where Scalar: DivisibleArithmetic & Real
A three-component vector type
-
X coordinate of this vector
Declaration
Swift
public var x: Scalar
-
Y coordinate of this vector
Declaration
Swift
public var y: Scalar
-
Z coordinate of this vector
Declaration
Swift
public var z: Scalar
-
Textual representation of this
Vector3
Declaration
Swift
public var description: String { get }
-
Declaration
Swift
public init(x: Scalar, y: Scalar, z: Scalar)
-
Declaration
Swift
public init(repeating scalar: Scalar)
-
Initializes this
Vector3
with the values from a given tuple.Declaration
Swift
public init(_ tuple: (Scalar, Scalar, Scalar))
-
Returns the pointwise minimal Vector where each component is the minimal scalar value at each index for both vectors.
Declaration
Swift
public static func pointwiseMin(_ lhs: `Self`, _ rhs: `Self`) -> Vector3<Scalar>
-
Returns the pointwise maximal Vector where each component is the maximal scalar value at each index for both vectors.
Declaration
Swift
public static func pointwiseMax(_ lhs: `Self`, _ rhs: `Self`) -> Vector3<Scalar>
-
Compares two vectors and returns
true
if all components oflhs
are greater thanrhs
.Performs
lhs.x > rhs.x && lhs.y > rhs.y && lhs.z > rhs.z
Declaration
Swift
public static func > (lhs: `Self`, rhs: `Self`) -> Bool
-
Compares two vectors and returns
true
if all components oflhs
are greater than or equal torhs
.Performs
lhs.x >= rhs.x && lhs.y >= rhs.y && lhs.z >= rhs.z
Declaration
Swift
public static func >= (lhs: `Self`, rhs: `Self`) -> Bool
-
Compares two vectors and returns
true
if all components oflhs
are less thanrhs
.Performs
lhs.x < rhs.x && lhs.y < rhs.y && lhs.z < rhs.z
Declaration
Swift
public static func < (lhs: `Self`, rhs: `Self`) -> Bool
-
Compares two vectors and returns
true
if all components oflhs
are less than or equal torhs
.Performs
lhs.x <= rhs.x && lhs.y <= rhs.y && lhs.z <= rhs.z
Declaration
Swift
public static func <= (lhs: `Self`, rhs: `Self`) -> Bool
-
A zero-value
Vector3
value where each component corresponds to its representation of0
.Declaration
Swift
public static var zero: `Self` { get }
-
Declaration
Swift
@inlinable public var nonZeroScalarCount: Int { get }
-
Declaration
Swift
public static func + (lhs: `Self`, rhs: `Self`) -> Vector3<Scalar>
-
Declaration
Swift
public static func - (lhs: `Self`, rhs: `Self`) -> Vector3<Scalar>
-
Declaration
Swift
public static func + (lhs: `Self`, rhs: Scalar) -> Vector3<Scalar>
-
Declaration
Swift
public static func - (lhs: `Self`, rhs: Scalar) -> Vector3<Scalar>
-
A unit-value
Vector3Type
value where each component corresponds to its representation of1
.Declaration
Swift
public static var one: `Self` { get }
-
Calculates the dot product between this and another provided
Vector3Type
Declaration
Swift
public func dot(_ other: `Self`) -> Scalar
-
Declaration
Swift
public static func * (lhs: `Self`, rhs: `Self`) -> Vector3<Scalar>
-
Declaration
Swift
public static func * (lhs: `Self`, rhs: Scalar) -> Vector3<Scalar>
-
Declaration
Swift
public static func * (lhs: Scalar, rhs: `Self`) -> Vector3<Scalar>
-
Returns a
Vector3
where each component is the absolute value of the components of thisVector3
.Declaration
Swift
public var absolute: `Self` { get }
-
Declaration
Swift
public var sign: `Self` { get }
-
Negates this Vector
Declaration
Swift
public prefix static func - (lhs: `Self`) -> Vector3<Scalar>
-
Declaration
Swift
public static func / (lhs: `Self`, rhs: `Self`) -> Vector3<Scalar>
-
Declaration
Swift
public static func / (lhs: `Self`, rhs: Scalar) -> Vector3<Scalar>
-
Declaration
Swift
public static func / (lhs: Scalar, rhs: `Self`) -> Vector3<Scalar>
-
Returns the result of adding the product of the two given vectors to this vector, computed without intermediate rounding.
This method is equivalent to calling C
fma
function on each component.Declaration
Swift
public func addingProduct(_ a: `Self`, _ b: `Self`) -> Vector3<Scalar>
Parameters
lhs
One of the vectors to multiply before adding to this vector.
rhs
The other vector to multiply.
Return Value
The product of
lhs
andrhs
, added to this vector. -
Returns the result of adding the product of the given scalar and vector to this vector, computed without intermediate rounding.
This method is equivalent to calling C
fma
function on each component.Declaration
Swift
public func addingProduct(_ a: Scalar, _ b: `Self`) -> Vector3<Scalar>
Parameters
lhs
A scalar to multiply before adding to this vector.
rhs
A vector to multiply.
Return Value
The product of
lhs
andrhs
, added to this vector. -
Returns the result of adding the product of the given vector and scalar to this vector, computed without intermediate rounding.
This method is equivalent to calling C
fma
function on each component.Declaration
Swift
public func addingProduct(_ a: `Self`, _ b: Scalar) -> Vector3<Scalar>
Parameters
lhs
A vector to multiply before adding to this vector.
rhs
A scalar to multiply.
Return Value
The product of
lhs
andrhs
, added to this vector. -
Rounds the components of this
Vector3Type
using a givenFloatingPointRoundingRule
.Declaration
Swift
public func rounded(_ rule: FloatingPointRoundingRule) -> Vector3<Scalar>
-
Rounds the components of this
Vector3Type
using a givenFloatingPointRoundingRule.toNearestOrAwayFromZero
.Equivalent to calling C’s round() function on each component.
Declaration
Swift
public func rounded() -> Vector3<Scalar>
-
Rounds the components of this
Vector3Type
using a givenFloatingPointRoundingRule.up
.Equivalent to calling C’s ceil() function on each component.
Declaration
Swift
public func ceil() -> Vector3<Scalar>
-
Rounds the components of this
Vector3Type
using a givenFloatingPointRoundingRule.down
.Equivalent to calling C’s floor() function on each component.
Declaration
Swift
public func floor() -> Vector3<Scalar>
-
Declaration
Swift
public static func % (lhs: `Self`, rhs: `Self`) -> Vector3<Scalar>
-
Declaration
Swift
public static func % (lhs: `Self`, rhs: Scalar) -> Vector3<Scalar>
-
Declaration
Swift
public func signedDistance(to other: `Self`) -> Scalar
-
Declaration
Swift
public init<V>(_ vec: V) where V : Vector3Type, V.Scalar : BinaryInteger
-
Declaration
Swift
public static func pow(_ vec: `Self`, _ exponent: Int) -> Vector3<Scalar>
-
Declaration
Swift
public static func pow(_ vec: `Self`, _ exponent: `Self`) -> Vector3<Scalar>
-
The XY-plane angle of this vector
Declaration
Swift
public var azimuth: Scalar { get }
-
The elevation angle of this vector, or the angle between the XY plane and the vector.
Returns zero, if the vector’s length is zero.
Declaration
Swift
@inlinable public var elevation: Scalar { get }