## Types in MathNet.Spatial.Euclidean

Type UnitVector3D

Namespace MathNet.Spatial.Euclidean

Parent ValueType

Interfaces IXmlSerializable, IEquatable<UnitVector3D>, IEquatable<Vector3D>, IFormattable

A unit vector, this is used to describe a direction in 3D

### Public Static Functions

#### UnitVector3DCreate(double x, double y, double z, double tolerance)

Initializes a new instance of the UnitVector3D struct. The provided values are scaled to L2 norm == 1
##### Parameters

The x component.

The y component.

The z component.

###### `double` tolerance

The allowed deviation from 1 for the L2-norm of x,y,z

The UnitVector3D

#### UnitVector3DOfVector(Vector<double> vector)

Create a new UnitVector3D from a Math.NET Numerics vector of length 3.
##### Parameters
###### `Vector<double>` vector

A vector with length 2 to populate the created instance with.

#### UnitVector3DParse(string value, IFormatProvider formatProvider, double tolerance)

Attempts to convert a string of the form x,y,z into a vector
##### Parameters
###### `string` value

The string to be converted

###### `double` tolerance

The tolerance for how big deviation from Length = 1 is accepted

##### Return
###### `UnitVector3D`

A point at the coordinates specified

Creates an UnitVector3D from an XmlReader.

### Public Methods

#### AngleAngleTo(UnitVector3D v)

Compute the angle between this vector and a unit vector using the arccosine of the dot product.

The other vector

##### Return
###### `Angle`

The angle between the vectors, with a range between 0° and 180°

#### AngleAngleTo(Vector3D v)

The nearest angle between the vectors

The other vector

The angle

#### Vector3DCrossProduct(Vector3D other)

Returns the cross product of this vector and a unit vector

A vector

##### Return
###### `Vector3D`

A new vector with the cross product result

#### UnitVector3DCrossProduct(UnitVector3D other)

Returns the cross product of this vector and a vector

A vector

##### Return
###### `UnitVector3D`

A new vector with the cross product result

#### doubleDotProduct(UnitVector3D v)

Returns the dot product of two vectors.
##### Parameters
###### `UnitVector3D` v

The second vector.

The dot product.

#### doubleDotProduct(Vector3D v)

Returns the dot product of two vectors.
##### Parameters
###### `Vector3D` v

The second vector.

The dot product.

#### boolEquals(Vector3D other, double tolerance)

Returns a value to indicate if a pair of vectors are equal
##### Parameters
###### `Vector3D` other

The vector to compare against.

###### `double` tolerance

A tolerance (epsilon) to adjust for floating point error

##### Return
###### `bool`

True if the vectors are equal; otherwise false

#### boolEquals(UnitVector3D other, double tolerance)

Returns a value to indicate if a pair of vectors are equal
##### Parameters
###### `UnitVector3D` other

The vector to compare against.

###### `double` tolerance

A tolerance (epsilon) to adjust for floating point error

##### Return
###### `bool`

True if the vectors are equal; otherwise false

#### Matrix<double>GetUnitTensorProduct()

Returns a dense Matrix with the unit tensor product

a dense matrix

#### boolIsParallelTo(Vector3D otherVector, Angle angleTolerance)

Determine whether or not this vector is parallel to a unit vector within a given angle tolerance.
##### Parameters
###### `Vector3D` otherVector

The other UnitVector3D

###### `Angle` angleTolerance

The tolerance for when the vectors are considered parallel.

##### Return
###### `bool`

true if the vectors are parallel within the angle tolerance, false if they are not

#### boolIsParallelTo(UnitVector3D otherVector, Angle angleTolerance)

Determine whether or not this vector is parallel to another vector within a given angle tolerance.
##### Parameters
###### `UnitVector3D` otherVector

The other Vector3D

###### `Angle` angleTolerance

The tolerance for when the vectors are considered parallel.

##### Return
###### `bool`

true if the vectors are parallel within the angle tolerance, false if they are not

#### boolIsParallelTo(UnitVector3D otherVector, double tolerance)

Computes whether or not this vector is parallel to a unit vector using the dot product method and comparing it to within a specified tolerance.
##### Parameters
###### `UnitVector3D` otherVector

The other UnitVector3D

###### `double` tolerance

A tolerance value for the dot product method. Values below 2*Precision.DoublePrecision may cause issues.

##### Return
###### `bool`

true if the vector dot product is within the given tolerance of unity, false if not

#### boolIsParallelTo(Vector3D otherVector, double tolerance)

Computes whether or not this vector is parallel to another vector using the dot product method and comparing it to within a specified tolerance.
##### Parameters
###### `Vector3D` otherVector

The other Vector3D

###### `double` tolerance

A tolerance value for the dot product method. Values below 2*Precision.DoublePrecision may cause issues.

##### Return
###### `bool`

true if the vector dot product is within the given tolerance of unity, false if it is not

#### boolIsPerpendicularTo(Vector3D othervector, double tolerance)

Computes whether or not this vector is perpendicular to another vector using the dot product method and comparing it to within a specified tolerance
##### Parameters
###### `Vector3D` othervector

The other Vector3D

###### `double` tolerance

A tolerance value for the dot product method. Values below 2*Precision.DoublePrecision may cause issues.

##### Return
###### `bool`

true if the vector dot product is within the given tolerance of zero, false if not

#### boolIsPerpendicularTo(UnitVector3D othervector, double tolerance)

Computes whether or not this vector is perpendicular to another vector using the dot product method and comparing it to within a specified tolerance
##### Parameters
###### `UnitVector3D` othervector

The other UnitVector3D

###### `double` tolerance

A tolerance value for the dot product method. Values below 2*Precision.DoublePrecision may cause issues.

##### Return
###### `bool`

true if the vector dot product is within the given tolerance of zero, false if not

#### UnitVector3DNegate()

Inverses the direction of the vector, equivalent to multiplying by -1
##### Return
###### `UnitVector3D`

A Vector3D pointing in the opposite direction.

#### Ray3DProjectOn(Plane plane)

Project this instance onto the plane
##### Parameters
###### `Plane` plane

The plane to project on.

##### Return
###### `Ray3D`

The projected Ray3D

#### Vector3DProjectOn(UnitVector3D uv)

Returns the Dot product of the current vector and a unit vector

A unit vector

##### Return
###### `Vector3D`

Returns a new vector

Returns a vector that is this vector rotated the signed angle around the about vector
##### Parameters
###### `UnitVector3D` about

The vector to rotate around.

###### `Angle` angle

The angle positive according to right hand rule.

##### Return
###### `UnitVector3D`

A rotated vector.

#### Vector3DScaleBy(double factor)

Scale this instance by factor
##### Parameters
###### `double` factor

The plane to project on.

##### Return
###### `Vector3D`

The projected Ray3D

Returns signed angle
##### Parameters
###### `Vector3D` v

The vector to calculate the signed angle to

###### `UnitVector3D` about

The vector around which to rotate to get the correct sign

##### Return
###### `Angle`

A signed Angle

Returns signed angle
##### Parameters
###### `UnitVector3D` v

The vector to calculate the signed angle to

###### `UnitVector3D` about

The vector around which to rotate to get the correct sign

A signed Angle

#### Point3DToPoint3D()

Returns a point equivalent to the vector

A point

#### stringToString(IFormatProvider provider)

Returns a string representation of this instance using the provided IFormatProvider
##### Return
###### `string`

The string representation of this instance.

#### Vector<double>ToVector()

Convert to a Math.NET Numerics dense vector of length 3.

A dense vector

#### Vector3DToVector3D()

Returns a Vector3D equivalent to this unit vector

A vector

#### Vector3DTransformBy(CoordinateSystem coordinateSystem)

Transforms the vector by a coordinate system and returns the transformed.
##### Parameters
###### `CoordinateSystem` coordinateSystem

A coordinate system

##### Return
###### `Vector3D`

A new transformed vector

#### Vector3DTransformBy(Matrix<double> m)

Transforms a vector by multiplying it against a provided matrix
##### Parameters
###### `Matrix<double>` m

The matrix to multiply

##### Return
###### `Vector3D`

A new transformed vector

### Public Properties

#### doubleLength get;

Gets the length of the vector not the count of elements

#### UnitVector3DOrthogonal get;

Gets a vector orthogonal to this

Gets the X axis

Gets the Y axis

Gets the z Axis

### Public fields

#### double X

The x component.
 `return double`

#### double Y

The y component.
 `return double`

#### double Z

The z component.
 `return double`