# Math::Vector

This is the Math::Vector class.

Represents a vector of any dimension.

## Initializer

```\$v = Vector()
```

Creates a vector with the given components.

### Arguments

• optional items: Num... Variable number of arguments.

## Methods

### dimension

```\$v.dimension
```

Computed property. Dimension of the vector.

### dimensionHR

```\$v.dimensionHR
```

Computed property. Human-readable dimension of the vector.

### magnitude

```\$v.magnitude
```

Computed property. Magnitude of the vector.

### unitVector

```\$v.unitVector
```

Computed property. Unit vector in the direction of this vector.

### axisUnitVector

```\$v.axisUnitVector(\$axis: VectorAxis)
```

Returns the unit vector in the direction of the given axis.

#### Arguments

• axis: VectorAxis - Axis number or letter, starting at 1 or "i".

### x

```\$v.x
```

Computed property. For a >=1D vector, the first comonent.

### y

```\$v.y
```

Computed property. For a >=2D vector, the second component.

### z

```\$v.z
```

Computed property. For a >=3D vector, the third component.

### direction

```\$v.direction
```

Computed property. For a 2D vector, its direction, measured in radians.

```\$v + (\$ehs: Vector)
```

### Subtraction operator (-)

```\$v - (\$lhs: Num)
```

Allows you to take the opposite vector `-\$u`.

### Subtraction operator (-)

```\$v - (\$rhs: Vector)
```

Subtraction of a vector from another.

### Multiplication operator (*)

```\$v * (\$ehs: Num)
```

Scalar multiplication of the vector.

### Division operator (/)

```\$v / (\$rhs: Num)
```

Scalar division of the vector.

### Multiplication operator (*)

```\$v * (\$ehs: Vector)
```

Dot product of two vectors.

### Equality operator (==)

```\$v == (\$ehs: Vector)
```

Vector equality.

### dot

```\$v.dot(\$ehs: Vector)
```

Dot product of this vector and another of the same dimension.

• ehs: Vector

### cross

```\$v.cross(\$ehs: Vector)
```

Cross product of two 3D vectors.

• ehs: Vector

### angleBetween

```\$v.angleBetween(\$ehs: Vector)
```

Angle between this vector and another of the same dimension, measured in radians.

• ehs: Vector

### orthogonalTo

```\$v.orthogonalTo(\$ehs: Vector)
```

True if this vector is orthogonal to another of the same dimension.

• ehs: Vector

### parallelTo

```\$v.parallelTo(\$ehs: Vector)
```

True if this vector is parallel to another of the same dimension.

• ehs: Vector

### getValue

```\$v.getValue(\$index: Num)
```

Fetches the component at the given index. Allows Vector to conform to IndexedRead such that `\$vector[N]` is the N+1th component.

### copy

```\$v.copy()
```

Returns a copy of the vector.

## Class functions

### zeroVector

```Vector.zeroVector(\$dimension: Num)
```

Returns the zero vector in the given dimension.

#### Arguments

• dimension: Num

### axisUnitVector

```Vector.axisUnitVector(\$dimension: Num, \$axis: VectorAxis)
```

Returns the unit vector for the given dimension and axis.

#### Arguments

• dimension: Num

• axis: VectorAxis - Axis number or letter, starting at 1 or "i".

## Type interfaces

### VectorAxis

An interface which accepts an axis letter starting at "i" or number starting at 1. For instance, a 3D vector is represented by axes i, j, and k, which correspond to the numbers 1, 2, and 3, respectively.

#### Restraints and transforms

In order to comply, the object must satisfy the following condition.

End of the Math::Vector class.

This file was generated automatically by the Ferret compiler from Vector.frt.