Vector3f Structure 
Namespace: Rhino.Geometry
The Vector3f type exposes the following members.
Name  Description  

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.

Name  Description  

Add(Point3f, Vector3f) 
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)  
Add(Vector3f, Vector3f) 
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  (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.)  
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. 
Name  Description  

Addition(Point3f, Vector3f) 
Sums up a point and a vector, and returns a new point.
 
Addition(Vector3f, Vector3f) 
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 doubleprecision vector in a singleprecision 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.
