Show / Hide Table of Contents

Struct Vector3

Three element vector, typically used to describe a position, normal or euler rotation.

Namespace: ABB.Robotics.Math
Assembly: ABB.Robotics.Math.dll
Syntax
public struct Vector3

Constructors

View Source

Vector3(Axis)

Creates a unit vector from an axis

Declaration
public Vector3(Axis axis)
Parameters
Type Name Description
Axis axis

axis

Exceptions
Type Condition
ArgumentException

Invalid axis

View Source

Vector3(Vector4)

Creates a vector from a 4-vector, truncating the last element.

Declaration
public Vector3(Vector4 vec)
Parameters
Type Name Description
Vector4 vec
View Source

Vector3(Vector4, bool)

Creates a vector from a homogenous 4-vector.

Declaration
public Vector3(Vector4 vec, bool scale)
Parameters
Type Name Description
Vector4 vec
bool scale

Rescale from homegenous coordinates

View Source

Vector3(double, double, double)

Creates a vector from three doubles.

Declaration
public Vector3(double x0, double y0, double z0)
Parameters
Type Name Description
double x0
double y0
double z0
View Source

Vector3(double[])

Creates a vector from an array of doubles.

Declaration
public Vector3(double[] vec)
Parameters
Type Name Description
double[] vec

Fields

View Source

XVector

Unit vector in the x direction.

Declaration
public static readonly Vector3 XVector
Field Value
Type Description
Vector3
View Source

YVector

Unit vector in the y direction.

Declaration
public static readonly Vector3 YVector
Field Value
Type Description
Vector3
View Source

ZVector

Unit vector in the z direction.

Declaration
public static readonly Vector3 ZVector
Field Value
Type Description
Vector3
View Source

ZeroVector

Zero-length vector.

Declaration
public static readonly Vector3 ZeroVector
Field Value
Type Description
Vector3
View Source

x

x,y,z values.

Declaration
public double x
Field Value
Type Description
double
View Source

y

x,y,z values.

Declaration
public double y
Field Value
Type Description
double
View Source

z

x,y,z values.

Declaration
public double z
Field Value
Type Description
double

Properties

View Source

IsNaN

Returns a value indicating whether any elements evaluates to a value that is not a number (NaN).

Declaration
public bool IsNaN { get; }
Property Value
Type Description
bool
View Source

this[int]

Array access.

Declaration
public double this[int index] { get; set; }
Parameters
Type Name Description
int index
Property Value
Type Description
double

Methods

View Source

Add(Vector3)

Element-wise addition method.

Declaration
public Vector3 Add(Vector3 rhs)
Parameters
Type Name Description
Vector3 rhs
Returns
Type Description
Vector3
View Source

AlmostEquals(Vector3)

Comparison method for vectors with tolerance (EPS)

Declaration
public bool AlmostEquals(Vector3 vec)
Parameters
Type Name Description
Vector3 vec

Vector to compare with

Returns
Type Description
bool

true if equals within tolerance

View Source

AlmostEquals(Vector3, double)

Comparison method for vectors with tolerance

Declaration
public bool AlmostEquals(Vector3 vec, double tolerance)
Parameters
Type Name Description
Vector3 vec

Vector to compare with

double tolerance

Tolerance to use in the comparison

Returns
Type Description
bool

true if equals within tolerance

View Source

Angle(Vector3)

Angle between this and a vector.

Declaration
public double Angle(Vector3 vec)
Parameters
Type Name Description
Vector3 vec
Returns
Type Description
double

radians

View Source

Angle(Vector3, Vector3)

Angle betsween this and a vector signed depending on rotation direction.

Declaration
public double Angle(Vector3 vec, Vector3 refVec)
Parameters
Type Name Description
Vector3 vec
Vector3 refVec

Reference vector

Returns
Type Description
double

radians

Remarks

The sign positive if vec is rotated anti-clockwise when seen from the direction given by the reference vector.

View Source

Cross(Vector3)

Cross product.

Declaration
public Vector3 Cross(Vector3 vec)
Parameters
Type Name Description
Vector3 vec
Returns
Type Description
Vector3
View Source

Distance(Vector3)

Returns the distance between this and a vector.

Declaration
public double Distance(Vector3 vec)
Parameters
Type Name Description
Vector3 vec
Returns
Type Description
double
View Source

Divide(double)

Vector scalar division method.

Declaration
public Vector3 Divide(double rhs)
Parameters
Type Name Description
double rhs
Returns
Type Description
Vector3
View Source

Dot(Vector3)

Dot product.

Declaration
public double Dot(Vector3 vec)
Parameters
Type Name Description
Vector3 vec
Returns
Type Description
double
View Source

Equals(object)

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
object obj
Returns
Type Description
bool
Overrides
ValueType.Equals(object)
View Source

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
int
Overrides
ValueType.GetHashCode()
View Source

Length()

Returns the length of this.

Declaration
public double Length()
Returns
Type Description
double
View Source

LinearInterpolate(Vector3, double)

Linear interpolation between this and a vector.

Declaration
public Vector3 LinearInterpolate(Vector3 vec, double lerp)
Parameters
Type Name Description
Vector3 vec

Second vector

double lerp

Interpolation parameter

Returns
Type Description
Vector3

Interpolated vector

Remarks

Use for position vectors

View Source

Multiply(double)

Vector-scalar multiplication method.

Declaration
public Vector3 Multiply(double rhs)
Parameters
Type Name Description
double rhs
Returns
Type Description
Vector3
View Source

Normal()

Returns a unit vector normal to this

Declaration
public Vector3 Normal()
Returns
Type Description
Vector3
View Source

Normalize()

Ensures that the length of this is 1.

Declaration
public void Normalize()
View Source

Normalized()

Returns a vector with the same direction as this, but with length 1

Declaration
public Vector3 Normalized()
Returns
Type Description
Vector3
View Source

Parse(string)

Converts the string representation to its Vector3 equivalent.

Declaration
public static Vector3 Parse(string value)
Parameters
Type Name Description
string value
Returns
Type Description
Vector3
View Source

Parse(string, IFormatProvider)

Converts the string representation to its Vector3 equivalent.

Declaration
public static Vector3 Parse(string value, IFormatProvider formatProvider)
Parameters
Type Name Description
string value
IFormatProvider formatProvider
Returns
Type Description
Vector3
View Source

Rotate(Vector3, double)

Returns a vector that is this vector rotated around an axis.

Declaration
public Vector3 Rotate(Vector3 axis, double angle)
Parameters
Type Name Description
Vector3 axis

Rotation axis

double angle

Rotation angle

Returns
Type Description
Vector3

Rotated vector

View Source

SphericalInterpolate(Vector3, double)

Spherical interpolation between this and a vector.

Declaration
public Vector3 SphericalInterpolate(Vector3 vec, double lerp)
Parameters
Type Name Description
Vector3 vec

Second vector

double lerp

Interpolation parameter

Returns
Type Description
Vector3

Interpolated vector

Remarks

Use for direction vectors

View Source

SquareDistance(Vector3)

Returns the squared distance between this and a vector.

Declaration
public double SquareDistance(Vector3 vec)
Parameters
Type Name Description
Vector3 vec
Returns
Type Description
double
View Source

SquareLength()

Returns the squared length of this.

Declaration
public double SquareLength()
Returns
Type Description
double
View Source

Subtract(Vector3)

Element-wise subtraction method.

Declaration
public Vector3 Subtract(Vector3 rhs)
Parameters
Type Name Description
Vector3 rhs
Returns
Type Description
Vector3
View Source

ToArray()

Returns the elements (x,y,z) as an array

Declaration
public double[] ToArray()
Returns
Type Description
double[]
View Source

ToString()

Returns a string in the format
[x y z]

Declaration
public override string ToString()
Returns
Type Description
string
Overrides
ValueType.ToString()
View Source

ToString(IFormatProvider)

Returns a string in the format
[x y z]

Declaration
public string ToString(IFormatProvider formatProvider)
Parameters
Type Name Description
IFormatProvider formatProvider
Returns
Type Description
string
View Source

ToString(int, string)

Returns a string in the format x y z with a specified number of decimals and separator between the elements.

Declaration
public string ToString(int numDecimals, string separator)
Parameters
Type Name Description
int numDecimals
string separator
Returns
Type Description
string
View Source

ToString(int, string, IFormatProvider)

Returns a string in the format x y z with a specified number of decimals and separator between the elements.

Declaration
public string ToString(int numDecimals, string separator, IFormatProvider formatProvider)
Parameters
Type Name Description
int numDecimals
string separator
IFormatProvider formatProvider
Returns
Type Description
string
View Source

TransformPoint(Matrix4, Matrix4)

Transforms a point between coordinate systems.

Declaration
public Vector3 TransformPoint(Matrix4 from, Matrix4 to)
Parameters
Type Name Description
Matrix4 from
Matrix4 to
Returns
Type Description
Vector3

Point in the "to" system

View Source

TransformVector(Matrix4, Matrix4)

Transforms a vector between coordinate systems.

Declaration
public Vector3 TransformVector(Matrix4 from, Matrix4 to)
Parameters
Type Name Description
Matrix4 from
Matrix4 to
Returns
Type Description
Vector3

Vector in the "to" system

View Source

TryParse(string, out Vector3)

Converts the string representation to its Vector3 equivalent.

Declaration
public static bool TryParse(string value, out Vector3 result)
Parameters
Type Name Description
string value
Vector3 result
Returns
Type Description
bool

A value indicating whether the conversion succeeded

View Source

TryParse(string, IFormatProvider, out Vector3)

Converts the string representation to its Vector3 equivalent.

Declaration
public static bool TryParse(string value, IFormatProvider formatProvider, out Vector3 result)
Parameters
Type Name Description
string value
IFormatProvider formatProvider
Vector3 result
Returns
Type Description
bool

A value indicating whether the conversion succeeded

View Source

TryParse(string, IFormatProvider, string, out Vector3)

Converts the string representation to its Vector3 equivalent for a string with a specified separator between the elements.

Declaration
public static bool TryParse(string value, IFormatProvider formatProvider, string separator, out Vector3 result)
Parameters
Type Name Description
string value
IFormatProvider formatProvider
string separator
Vector3 result
Returns
Type Description
bool

A value indicating whether the conversion succeeded

View Source

WithX(double)

Creates a new vector from this with the x element set to a new value.

Declaration
public Vector3 WithX(double value)
Parameters
Type Name Description
double value
Returns
Type Description
Vector3
View Source

WithY(double)

Creates a new vector from this with the x element set to a new value.

Declaration
public Vector3 WithY(double value)
Parameters
Type Name Description
double value
Returns
Type Description
Vector3
View Source

WithZ(double)

Creates a new vector from this with the x element set to a new value.

Declaration
public Vector3 WithZ(double value)
Parameters
Type Name Description
double value
Returns
Type Description
Vector3

Operators

View Source

operator +(Vector3, Vector3)

Element-wise addition operator.

Declaration
public static Vector3 operator +(Vector3 lhs, Vector3 rhs)
Parameters
Type Name Description
Vector3 lhs
Vector3 rhs
Returns
Type Description
Vector3
View Source

operator /(Vector3, double)

Vector-scalar division operator.

Declaration
public static Vector3 operator /(Vector3 lhs, double rhs)
Parameters
Type Name Description
Vector3 lhs
double rhs
Returns
Type Description
Vector3
View Source

operator ==(Vector3, Vector3)

Equality operator

Declaration
public static bool operator ==(Vector3 lhs, Vector3 rhs)
Parameters
Type Name Description
Vector3 lhs
Vector3 rhs
Returns
Type Description
bool
View Source

explicit operator Vector3(double[])

Array to vector conversion.

Declaration
public static explicit operator Vector3(double[] arg)
Parameters
Type Name Description
double[] arg
Returns
Type Description
Vector3
View Source

operator !=(Vector3, Vector3)

Inequality operator

Declaration
public static bool operator !=(Vector3 lhs, Vector3 rhs)
Parameters
Type Name Description
Vector3 lhs
Vector3 rhs
Returns
Type Description
bool
View Source

operator *(Vector3, double)

Vector-scalar multiplication operator.

Declaration
public static Vector3 operator *(Vector3 lhs, double rhs)
Parameters
Type Name Description
Vector3 lhs
double rhs
Returns
Type Description
Vector3
View Source

operator *(double, Vector3)

Scalar-Vector multiplication operator.

Declaration
public static Vector3 operator *(double lhs, Vector3 rhs)
Parameters
Type Name Description
double lhs
Vector3 rhs
Returns
Type Description
Vector3
View Source

operator -(Vector3, Vector3)

Element-wise subtraction operator.

Declaration
public static Vector3 operator -(Vector3 lhs, Vector3 rhs)
Parameters
Type Name Description
Vector3 lhs
Vector3 rhs
Returns
Type Description
Vector3
View Source

operator -(Vector3)

Unary negation operator.

Declaration
public static Vector3 operator -(Vector3 arg)
Parameters
Type Name Description
Vector3 arg
Returns
Type Description
Vector3
  • View Source
In this article
Back to top Copyright © 2025 ABB