﻿Vector3f Structure

# Vector3f Structure

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

Namespace:  Rhino.Geometry
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
```[SerializableAttribute]
public struct Vector3f : IEquatable<Vector3f>,
IComparable<Vector3f>, IComparable, IEpsilonFComparable<Vector3f>,
IFormattable```

The Vector3f type exposes the following members.

Constructors
NameDescription
Vector3f
Constructs a new vector from 3 single precision numbers.
Top
Properties
NameDescription
IsUnitVector
Gets a value indicating whether or not this is a unit vector. A unit vector has length 1.
IsValid
Returns an indication regarding the validity of this vector.
IsZero
Gets a value indicating whether the X, Y, and Z values are all equal to 0.0.
Length
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.
SquareLength
Returns the square length of the vector. This property does not check for the validity of the inputs.
Unset
Gets the value of the vector with each component set to RhinoMath.UnsetValue.
X
Gets or sets the X (first) component of this vector.
XAxis
Gets the value of the vector with components 1,0,0.
Y
Gets or sets the Y (second) component of this vector.
YAxis
Gets the value of the vector with components 0,1,0.
Z
Gets or sets the Z (third) component of this vector.
ZAxis
Gets the value of the vector with components 0,0,1.
Zero
Gets the value of the vector with components 0,0,0.
Top
Methods
NameDescription
Sums up a point and a vector, and returns a new point.

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

Sums up two vectors.

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

CompareTo
Compares this Vector3f with another Vector3f.

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

CrossProduct
Computes the cross product (or vector product, or exterior product) of two vectors.

This operation is not commutative.

Divide(Vector3f, Double)
Divides a Vector3f by a number, having the effect of shrinking it, t times.

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

Divide(Vector3f, Single)
Divides a Vector3f by a number, having the effect of shrinking it, t times.

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

EpsilonEquals
Check that all values in other are withing epsilon of the values in this
Equals(Object)
Determines whether the specified System.Object is a Vector3f and has the same values as the present vector.
(Overrides ValueTypeEquals(Object).)
Equals(Vector3f)
Determines whether the specified vector has the same values as the present vector.
GetHashCode
Computes a hash number that represents the current vector.
(Overrides ValueTypeGetHashCode.)
GetType
Gets the Type of the current instance.
(Inherited from Object.)
Multiply(Single, Vector3f)
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)

Multiply(Vector3f, Vector3f)
Multiplies two Vector3f together, returning the dot (internal) product of the two. This is not the cross product.

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

Multiply(Vector3f, Single)
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)

Negate
Computes the reversed vector.

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

PerpendicularTo
Sets this vector to be perpendicular to another vector. Result is not unitized.
Reverse
Reverses this vector in place (reverses the direction).

If this vector contains RhinoMath.UnsetValue, the reverse will also be invalid and false will be returned.

Rotate
Rotates this vector around a given axis.
Subtract
Subtracts the second vector from the first one.

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

ToString
Constructs the string representation of the current vector.
(Overrides ValueTypeToString.)
ToString(String, IFormatProvider)
Formats the value of the current instance using the specified format.
Transform
Transforms the vector in place.

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

result = transformation*vector

Unitize
Unitizes the vector in place. A unit vector has length 1 unit.

An invalid or zero length vector cannot be unitized.

Top
Operators
NameDescription
Sums up a point and a vector, and returns a new point.
Sums up two vectors.
Division(Vector3f, Double)
Divides a Vector3f by a number, having the effect of shrinking it, t times.
Division(Vector3f, Single)
Divides a Vector3f by a number, having the effect of shrinking it, t times.
Equality
Determines whether two vectors have equal values.
(Vector3d to Vector3f)
Converts a double-precision vector in a single-precision vector. Needs explicit casting to help retain precision.
GreaterThan
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.

GreaterThanOrEqual
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.

Inequality
Determines whether two vectors have different values.
LessThan
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.

LessThanOrEqual
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.

Multiply(Single, Vector3f)
Multiplies a vector by a number, having the effect of scaling it.
Multiply(Vector3f, Vector3f)
Multiplies two Vector3f together, returning the dot (internal) product of the two. This is not the cross product.
Multiply(Vector3f, Single)
Multiplies a vector by a number, having the effect of scaling it.
Subtraction
Subtracts the second vector from the first one.
UnaryNegation
Computes the opposite vector.
Top