# Namespace OpenTK.Mathematics

### Classes

#### Argb

Alpha, red, green, blue colorspace.

#### Color3

Companion type for conversion between color types.

#### Color4

Companion type for conversion between color types.

#### Hsl

Hue, saturation, light colorspace.

#### Hsla

Hue, saturation, light, alpha colorspace.

#### Hsv

Hue, saturation, value colorspace.

#### Hsva

Hue, saturation, value, alpha colorspace.

#### MathHelper

Contains common mathematical functions and constants.

#### Rgb

Red, green, blue colorspace.

#### Rgba

Red, green, blue, alpha colorspace.

### Structs

#### BezierCurve

Represents a bezier curve with as many points as you want.

#### BezierCurveCubic

Represents a cubic bezier curve with two anchor and two control points.

#### BezierCurveQuadric

Represents a quadric bezier curve with two anchor and one control point.

#### Box2

Defines an axis-aligned 2d box (rectangle).

#### Box2d

Defines an axis-aligned 2d box (rectangle).

#### Box2i

Defines an axis-aligned 2d box (rectangle).

#### Box3

Defines an axis-aligned 3d box (rectangular prism).

#### Box3d

Defines an axis-aligned 3d box (rectangular prism).

#### Box3i

Defines an axis-aligned 3d box (rectangular prism).

#### Color3<T>

To provide type-safety between different color spaces and allow extension by users to include additional and future color spaces, colors are marked with a special *phantom* type parameter that indicates their color space.
Typically these are four-letter abbreviations that indicate the components of the colors, such as Rgb or Hsv.

In any of these cases, letters in the color space correspond to the order of the components in the color vector. For example, color<RGB> maps as follows:

X -> R

Y -> G

Z -> B.

#### Color4<T>

To provide type-safety between different color spaces and allow extension by users to include additional and future color spaces, colors are marked with a special *phantom* type parameter that indicates their color space.

Typically these are four-letter abbreviations that indicate the components of the colors, such as Rgba or Hsva.

In any of these cases, letters in the color space correspond to the order of the components in the color vector. For example, color Rgba maps as follows:

X -> R

Y -> G

Z -> B

W -> A.

#### Matrix2

Represents a 2x2 matrix.

#### Matrix2d

Represents a 2x2 matrix.

#### Matrix2x3

Represents a 2x3 matrix.

#### Matrix2x3d

Represents a 2x3 matrix.

#### Matrix2x4

Represents a 2x4 matrix.

#### Matrix2x4d

Represents a 2x4 matrix.

#### Matrix3

Represents a 3x3 matrix containing 3D rotation and scale.

#### Matrix3d

Represents a 3x3 matrix containing 3D rotation and scale with double-precision components.

#### Matrix3x2

Represents a 3x2 matrix.

#### Matrix3x2d

Represents a 3x2 matrix.

#### Matrix3x4

Represents a 3x4 Matrix.

#### Matrix3x4d

Represents a 3x4 Matrix.

#### Matrix4

Represents a 4x4 matrix containing 3D rotation, scale, transform, and projection.

#### Matrix4d

Represents a 4x4 matrix containing 3D rotation, scale, transform, and projection with double-precision components.

#### Matrix4x2

Represents a 4x2 matrix.

#### Matrix4x2d

Represents a 4x2 matrix.

#### Matrix4x3

Represents a 3x4 matrix.

#### Matrix4x3d

Represents a 3x4 matrix.

#### Quaternion

Represents a Quaternion.

#### Quaterniond

Represents a double-precision Quaternion.

#### Vector2

Represents a 2D vector using two single-precision floating-point numbers.

#### Vector2d

Represents a 2D vector using two double-precision floating-point numbers.

#### Vector2h

2-component Vector of the Half type. Occupies 4 Byte total.

#### Vector2i

Represents a 2D vector using two 32-bit integer numbers.

#### Vector3

Represents a 3D vector using three single-precision floating-point numbers.

#### Vector3d

Represents a 3D vector using three double-precision floating-point numbers.

#### Vector3h

3-component Vector of the Half type. Occupies 6 Byte total.

#### Vector3i

Represents a 3D vector using three 32-bit integer numbers.

#### Vector4

Represents a 4D vector using four single-precision floating-point numbers.

#### Vector4d

Represents a 4D vector using four double-precision floating-point numbers.

#### Vector4h

4-component Vector of the Half type. Occupies 8 Byte total.

#### Vector4i

Represents a 4D vector using four 32-bit integer numbers.

### Interfaces

#### IColorSpace3

Interface for ColorSpace phantom types with 3 elements.

#### IColorSpace4

Interface for ColorSpace phantom types with 4 elements.