Struct Vector3
Represent a three component vector of double precision.
Implements
Inherited Members
Namespace: netDxf
Assembly: CADability.dll
Syntax
public struct Vector3 : IEquatable<Vector3>
Constructors
| Improve this Doc View SourceVector3(Double)
Initializes a new instance of Vector3.
Declaration
public Vector3(double value)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | value | X, Y, Z component. |
Vector3(Double, Double, Double)
Initializes a new instance of Vector3.
Declaration
public Vector3(double x, double y, double z)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | x | X component. |
| System.Double | y | Y component. |
| System.Double | z | Z component. |
Vector3(Double[])
Initializes a new instance of Vector3.
Declaration
public Vector3(double[] array)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double[] | array | Array of three elements that represents the vector. |
Properties
| Improve this Doc View SourceIsNormalized
Gets if the vector has been normalized.
Declaration
public bool IsNormalized { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Item[Int32]
Gets or sets a vector element defined by its index.
Declaration
public double this[int index] { get; set; }
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | index | Index of the element. |
Property Value
| Type | Description |
|---|---|
| System.Double |
NaN
Represents a vector with not a number components.
Declaration
public static Vector3 NaN { get; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
UnitX
Unit X vector.
Declaration
public static Vector3 UnitX { get; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
UnitY
Unit Y vector.
Declaration
public static Vector3 UnitY { get; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
UnitZ
Unit Z vector.
Declaration
public static Vector3 UnitZ { get; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
X
Gets or sets the X component.
Declaration
public double X { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Y
Gets or sets the Y component.
Declaration
public double Y { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Z
Gets or sets the Z component.
Declaration
public double Z { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Double |
Zero
Zero vector.
Declaration
public static Vector3 Zero { get; }
Property Value
| Type | Description |
|---|---|
| Vector3 |
Methods
| Improve this Doc View SourceAdd(Vector3, Vector3)
Adds two vectors.
Declaration
public static Vector3 Add(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The addition of u plus v. |
AngleBetween(Vector3, Vector3)
Obtains the angle between two vectors.
Declaration
public static double AngleBetween(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Double | Angle in radians. |
AreParallel(Vector3, Vector3)
Checks if two vectors are parallel.
Declaration
public static bool AreParallel(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if are parallel or false in any other case. |
AreParallel(Vector3, Vector3, Double)
Checks if two vectors are parallel.
Declaration
public static bool AreParallel(Vector3 u, Vector3 v, double threshold)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
| System.Double | threshold | Tolerance used. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if are parallel or false in any other case. |
ArePerpendicular(Vector3, Vector3)
Checks if two vectors are perpendicular.
Declaration
public static bool ArePerpendicular(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if are perpendicular or false in any other case. |
ArePerpendicular(Vector3, Vector3, Double)
Checks if two vectors are perpendicular.
Declaration
public static bool ArePerpendicular(Vector3 u, Vector3 v, double threshold)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
| System.Double | threshold | Tolerance used. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if are perpendicular or false in any other case. |
CrossProduct(Vector3, Vector3)
Obtains the cross product of two vectors.
Declaration
public static Vector3 CrossProduct(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | Vector3. |
Distance(Vector3, Vector3)
Obtains the distance between two points.
Declaration
public static double Distance(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Double | Distance. |
Divide(Vector3, Vector3)
Divides two vectors component by component.
Declaration
public static Vector3 Divide(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times v. |
Divide(Vector3, Double)
Divides a vector with an scalar.
Declaration
public static Vector3 Divide(Vector3 u, double a)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| System.Double | a | Scalar. |
Returns
| Type | Description |
|---|---|
| Vector3 | The division of u times a. |
DotProduct(Vector3, Vector3)
Obtains the dot product of two vectors.
Declaration
public static double DotProduct(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Double | The dot product. |
Equals(Vector3)
Check if the components of two vectors are approximate equal.
Declaration
public bool Equals(Vector3 other)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | other | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the three components are almost equal or false in any other case. |
Equals(Vector3, Vector3)
Check if the components of two vectors are approximate equal.
Declaration
public static bool Equals(Vector3 a, Vector3 b)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | a | Vector3. |
| Vector3 | b | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the three components are almost equal or false in any other case. |
Equals(Vector3, Vector3, Double)
Check if the components of two vectors are approximate equal.
Declaration
public static bool Equals(Vector3 a, Vector3 b, double threshold)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | a | Vector3. |
| Vector3 | b | Vector3. |
| System.Double | threshold | Maximum tolerance. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the three components are almost equal or false in any other case. |
Equals(Vector3, Double)
Check if the components of two vectors are approximate equal.
Declaration
public bool Equals(Vector3 other, double threshold)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | other | Vector3. |
| System.Double | threshold | Maximum tolerance. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the three components are almost equal or false in any other case. |
Equals(Object)
Indicates whether this instance and a specified object are equal.
Declaration
public override bool Equals(object other)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Object | other | Another object to compare to. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if obj and this instance are the same type and represent the same value; otherwise, false. |
Overrides
GetHashCode()
Returns the hash code for this instance.
Declaration
public override int GetHashCode()
Returns
| Type | Description |
|---|---|
| System.Int32 | A 32-bit signed integer that is the hash code for this instance. |
Overrides
IsNaN(Vector3)
Returns a value indicating if any component of the specified vector evaluates to a value that is not a number System.Double.NaN.
Declaration
public static bool IsNaN(Vector3 u)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Boolean | Returns true if any component of the specified vector evaluates to System.Double.NaN; otherwise, false. |
MidPoint(Vector3, Vector3)
Obtains the midpoint.
Declaration
public static Vector3 MidPoint(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | Vector3. |
Modulus()
Obtains the modulus of the vector.
Declaration
public double Modulus()
Returns
| Type | Description |
|---|---|
| System.Double | Vector modulus. |
Multiply(Vector3, Vector3)
Multiplies two vectors component by component.
Declaration
public static Vector3 Multiply(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times v. |
Multiply(Vector3, Double)
Multiplies a vector with an scalar (same as a*u, commutative property).
Declaration
public static Vector3 Multiply(Vector3 u, double a)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| System.Double | a | Scalar. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times a. |
Multiply(Double, Vector3)
Multiplies a scalar with a vector (same as u*a, commutative property).
Declaration
public static Vector3 Multiply(double a, Vector3 u)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | a | Scalar. |
| Vector3 | u | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times a. |
Negate(Vector3)
Negates a vector.
Declaration
public static Vector3 Negate(Vector3 u)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The negative vector of u. |
Normalize()
Normalizes the current vector.
Declaration
public void Normalize()
Normalize(Vector3)
Normalizes the vector.
Declaration
public static Vector3 Normalize(Vector3 u)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector to normalize |
Returns
| Type | Description |
|---|---|
| Vector3 | A normalized vector. |
Round(Vector3, Int32)
Rounds the components of a vector.
Declaration
public static Vector3 Round(Vector3 u, int numDigits)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector to round. |
| System.Int32 | numDigits | Number of decimal places in the return value. |
Returns
| Type | Description |
|---|---|
| Vector3 | The rounded vector. |
SquareDistance(Vector3, Vector3)
Obtains the square distance between two points.
Declaration
public static double SquareDistance(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Double | Square distance. |
Subtract(Vector3, Vector3)
Subtracts two vectors.
Declaration
public static Vector3 Subtract(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The subtraction of u minus v. |
ToArray()
Returns an array that represents the vector.
Declaration
public double[] ToArray()
Returns
| Type | Description |
|---|---|
| System.Double[] | Array. |
ToString()
Obtains a string that represents the vector.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| System.String | A string text. |
Overrides
ToString(IFormatProvider)
Obtains a string that represents the vector.
Declaration
public string ToString(IFormatProvider provider)
Parameters
| Type | Name | Description |
|---|---|---|
| System.IFormatProvider | provider | An IFormatProvider interface implementation that supplies culture-specific formatting information. |
Returns
| Type | Description |
|---|---|
| System.String | A string text. |
Operators
| Improve this Doc View SourceAddition(Vector3, Vector3)
Adds two vectors.
Declaration
public static Vector3 operator +(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The addition of u plus v. |
Division(Vector3, Vector3)
Divides two vectors component by component.
Declaration
public static Vector3 operator /(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times v. |
Division(Vector3, Double)
Divides an scalar with a vector.
Declaration
public static Vector3 operator /(Vector3 u, double a)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| System.Double | a | Scalar. |
Returns
| Type | Description |
|---|---|
| Vector3 | The division of u times a. |
Equality(Vector3, Vector3)
Check if the components of two vectors are equal.
Declaration
public static bool operator ==(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the three components are equal or false in any other case. |
Inequality(Vector3, Vector3)
Check if the components of two vectors are different.
Declaration
public static bool operator !=(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| System.Boolean | True if the three components are different or false in any other case. |
Multiply(Vector3, Vector3)
Multiplies two vectors component by component.
Declaration
public static Vector3 operator *(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times v. |
Multiply(Vector3, Double)
Multiplies a vector with an scalar (same as a*u, commutative property).
Declaration
public static Vector3 operator *(Vector3 u, double a)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| System.Double | a | Scalar. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times a. |
Multiply(Double, Vector3)
Multiplies a scalar with a vector (same as u*a, commutative property).
Declaration
public static Vector3 operator *(double a, Vector3 u)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Double | a | Scalar. |
| Vector3 | u | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The multiplication of u times a. |
Subtraction(Vector3, Vector3)
Subtracts two vectors.
Declaration
public static Vector3 operator -(Vector3 u, Vector3 v)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
| Vector3 | v | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The subtraction of u minus v. |
UnaryNegation(Vector3)
Negates a vector.
Declaration
public static Vector3 operator -(Vector3 u)
Parameters
| Type | Name | Description |
|---|---|---|
| Vector3 | u | Vector3. |
Returns
| Type | Description |
|---|---|
| Vector3 | The negative vector of u. |