Click or drag to resize

Vector3d Structure

Represents the three components of a vector in three-dimensional space, using Double-precision floating point numbers.

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
[SerializableAttribute]
public struct Vector3d : ISerializable, IEquatable<Vector3d>, 
	IComparable<Vector3d>, IComparable, IEpsilonComparable<Vector3d>, 
	ICloneable, IFormattable

The Vector3d type exposes the following members.

Constructors
  NameDescription
Public methodVector3d(Point3d)
Initializes a new instance of a vector, copying the three components from the three coordinates of a point.
Public methodVector3d(Vector3d)
Initializes a new instance of a vector, copying the three components from a vector.
Public methodVector3d(Vector3f)
Initializes a new instance of a vector, copying the three components from a single-precision vector.
Public methodVector3d(Double, Double, Double)
Initializes a new instance of a vector, using its three components.
Top
Properties
  NameDescription
Public propertyIsUnitVector
Gets a value indicating whether or not this is a unit vector. A unit vector has length 1.
Public propertyIsValid
Gets a value indicating whether this vector is valid. A valid vector must be formed of valid component values for x, y and z.
Public propertyIsZero
Gets a value indicating whether the X, Y, and Z values are all equal to 0.0.
Public propertyItem
Gets or sets a vector component at the given index.
Public propertyLength
Computes the length (or magnitude, or size) of this vector. This is an application of Pythagoras' theorem. If this vector is invalid, its length is considered 0.
Public propertyMaximumCoordinate
Gets the largest (both positive and negative) component value in this vector.
Public propertyMinimumCoordinate
Gets the smallest (both positive and negative) component value in this vector.
Public propertySquareLength
Computes the squared length (or magnitude, or size) of this vector. This is an application of Pythagoras' theorem. While the Length property checks for input validity, this property does not. You should check validity in advance, if this vector can be invalid.
Public propertyStatic memberUnset
Gets the value of the vector with each component set to RhinoMath.UnsetValue.
Public propertyX
Gets or sets the X (first) component of the vector.
Public propertyStatic memberXAxis
Gets the value of the vector with components 1,0,0.
Public propertyY
Gets or sets the Y (second) component of the vector.
Public propertyStatic memberYAxis
Gets the value of the vector with components 0,1,0.
Public propertyZ
Gets or sets the Z (third) component of the vector.
Public propertyStatic memberZAxis
Gets the value of the vector with components 0,0,1.
Public propertyStatic memberZero
Gets the value of the vector with components 0,0,0.
Top
Methods
  NameDescription
Public methodStatic memberAdd
Sums up two vectors.

(Provided for languages that do not support operator overloading. You can use the + operator otherwise)

Public methodStatic memberAreOrthogonal
Test whether three vectors describe an orthogonal axis system. All vectors must be mutually perpendicular this to be the case.
Public methodStatic memberAreOrthonormal
Test whether three vectors describe an orthogonal, unit axis system. All vectors must be mutually perpendicular and have unit length for this to be the case.
Public methodStatic memberAreRighthanded
Test whether three vectors describe a right-handed, orthogonal, unit axis system. The vectors must be orthonormal and follow the right-hand ordering; index-finger=x, middle-finger=y, thumb=z.
Public methodCompareTo
Compares this Vector3d with another Vector3d.

Component evaluation priority is first X, then Y, then Z.

Public methodStatic memberCrossProduct
Computes the cross product (or vector product, or exterior product) of two vectors.

This operation is not commutative.

Public methodStatic memberDivide
Divides a Vector3d by a number, having the effect of shrinking it.

(Provided for languages that do not support operator overloading. You can use the / operator otherwise)

Public methodEpsilonEquals
Check that all values in other are within epsilon of the values in this
Public methodEquals(Object)
Determines whether the specified System.Object is a Vector3d and has the same values as the present vector.
(Overrides ValueTypeEquals(Object).)
Public methodEquals(Vector3d)
Determines whether the specified vector has the same value as the present vector.
Public methodGetHashCode
Computes the hash code for the current vector.
(Overrides ValueTypeGetHashCode.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodCode exampleIsParallelTo(Vector3d)
Determines whether this vector is parallel to another vector, within one degree (within Pi / 180).
Public methodIsParallelTo(Vector3d, Double)
Determines whether this vector is parallel to another vector, within a provided tolerance.
Public methodIsPerpendicularTo(Vector3d)
Test to see whether this vector is perpendicular to within one degree of another one.
Public methodIsPerpendicularTo(Vector3d, Double)
Determines whether this vector is perpendicular to another vector, within a provided angle tolerance.
Public methodIsTiny
Uses RhinoMath.ZeroTolerance for IsTiny calculation.
Public methodCode exampleIsTiny(Double)
Determines whether a vector is very short.
Public methodStatic memberMultiply(Double, Vector3d)
Multiplies a vector by a number, having the effect of scaling it.

(Provided for languages that do not support operator overloading. You can use the * operator otherwise)

Public methodStatic memberMultiply(Vector3d, Vector3d)
Multiplies two vectors together, returning the dot product (or inner product). This differs from the cross product.

(Provided for languages that do not support operator overloading. You can use the * operator otherwise)

Public methodStatic memberMultiply(Vector3d, Double)
Multiplies a vector by a number, having the effect of scaling it.

(Provided for languages that do not support operator overloading. You can use the * operator otherwise)

Public methodStatic memberNegate
Computes the reversed vector.

(Provided for languages that do not support operator overloading. You can use the - unary operator otherwise)

Public methodPerpendicularTo(Vector3d)
Sets this vector to be perpendicular to another vector. Result is not unitized.
Public methodPerpendicularTo(Point3d, Point3d, Point3d)
Set this vector to be perpendicular to a plane defined by 3 points.
Public methodReverse
Reverses this vector in place (reverses the direction).

If this vector is Invalid, no changes will occur and false will be returned.

Public methodRotate
Rotates this vector around a given axis.
Public methodStatic memberSubtract
Subtracts the second vector from the first one.

(Provided for languages that do not support operator overloading. You can use the - operator otherwise)

Public methodToString
Returns the string representation of the current vector, in the form X,Y,Z.
(Overrides ValueTypeToString.)
Public methodToString(String, IFormatProvider)
Formats the value of the current instance using the specified format.
Public methodTransform
Transforms the vector in place.

The transformation matrix acts on the left of the vector; i.e.,

result = transformation*vector

Public methodUnitize
Unitizes the vector in place. A unit vector has length 1 unit.

An invalid or zero length vector cannot be unitized.

Public methodStatic memberVectorAngle(Vector3d, Vector3d)
Compute the angle between two vectors.

This operation is commutative.

Public methodStatic memberVectorAngle(Vector3d, Vector3d, Plane)
Computes the angle on a plane between two vectors.
Public methodStatic memberVectorAngle(Vector3d, Vector3d, Vector3d)
Computes the angle of v1, v2 with a normal vector.
Top
Operators
  NameDescription
Public operatorStatic memberAddition
Sums up two vectors.
Public operatorStatic memberDivision
Divides a Vector3d by a number, having the effect of shrinking it.
Public operatorStatic memberEquality
Determines whether two vectors have the same value.
Public operatorStatic memberGreaterThan
Determines whether the first specified vector comes after (has superior sorting value than) the second vector.

Components evaluation priority is first X, then Y, then Z.

Public operatorStatic memberGreaterThanOrEqual
Determines whether the first specified vector comes after (has superior sorting value than) the second vector, or it is equal to it.

Components evaluation priority is first X, then Y, then Z.

Public operatorStatic member(Vector3f to Vector3d)
Converts a single-precision (float) vector in a double-precision vector, without needing casting.
Public operatorStatic memberInequality
Determines whether two vectors have different values.
Public operatorStatic memberLessThan
Determines whether the first specified vector comes before (has inferior sorting value than) the second vector.

Components evaluation priority is first X, then Y, then Z.

Public operatorStatic memberLessThanOrEqual
Determines whether the first specified vector comes before (has inferior sorting value than) the second vector, or it is equal to it.

Components evaluation priority is first X, then Y, then Z.

Public operatorStatic memberMultiply(Double, Vector3d)
Multiplies a vector by a number, having the effect of scaling it.
Public operatorStatic memberMultiply(Vector3d, Vector3d)
Multiplies two vectors together, returning the dot product (or inner product). This differs from the cross product.
Public operatorStatic memberMultiply(Vector3d, Double)
Multiplies a vector by a number, having the effect of scaling it.
Public operatorStatic memberSubtraction
Subtracts the second vector from the first one.
Public operatorStatic memberUnaryNegation
Computes the opposite vector.
Top
See Also