## Types in MathNet.Spatial.Euclidean

Type Vector3D

Namespace MathNet.Spatial.Euclidean

Parent ValueType

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

A struct representing a vector in 3D space

### Public Constructors

#### Vector3D(double x, double y, double z)

Initializes a new instance of the Vector3D struct.

The x component.

The y component.

The z component.

### Public Static Functions

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

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

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

#### Vector3DParse(string value, IFormatProvider formatProvider)

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

The string to be converted

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

A point at the coordinates specified

Creates an Vector3D 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)

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

The other vector

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

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

#### Vector3DCrossProduct(UnitVector3D other)

Returns the cross product of this vector and other

A vector

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

A new vector with the cross product result

#### Vector3DCrossProduct(Vector3D other)

Returns the cross product of this vector and other

A vector

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

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(UnitVector3D other, double tolerance)

Returns a value to indicate if this vector is equivalent to a given unit vector
##### Parameters
###### `UnitVector3D` other

The unit 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(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

#### Matrix<double>GetUnitTensorProduct()

Returns a dense Matrix with the unit tensor product [ux^2, ux*uy, ux*uz], [ux*uy, uy^2, uy*uz], [ux*uz, uy*uz, uz^2]

a dense matrix

#### boolIsParallelTo(UnitVector3D other, Angle tolerance)

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

The other UnitVector3D

###### `Angle` tolerance

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(Vector3D other, Angle tolerance)

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

The other Vector3D

###### `Angle` tolerance

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 other, 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` other

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 other, 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` other

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 other, 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` other

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 other, 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` other

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

#### Vector3DNegate()

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

A Vector3D pointing in the opposite direction.

#### UnitVector3DNormalize()

Compute and return a unit vector from this vector
##### Return
###### `UnitVector3D`

a normalized unit vector

#### Ray3DProjectOn(Plane planeToProjectOn)

Projects the vector onto a plane
##### Parameters
###### `Plane` planeToProjectOn

A geometric plane

A ray

#### 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

A signed angle

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

A rotated vector.

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

A unit vector to rotate about

A signed angle

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

A rotated vector.

#### Vector3DScaleBy(double scaleFactor)

Multiplies the current vector by a scalar

a scalar

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

A new scaled vector

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

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

A signed angle

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

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

#### 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 Euclidean Norm.

#### Vector3DNaN get;

Gets an invalid vector with no values

#### UnitVector3DOrthogonal get;

Gets a unit vector orthogonal to this

### Public fields

#### double X

The x component.
 `return double`

#### double Y

The y component.
 `return double`

#### double Z

The z component.
 `return double`