Header menu logo Rhino.Scripting.Fsharp

AutoOpenVector3d Module

When Rhino.Scripting.FSharp is opened this module will be auto-opened. It only contains extension members for type Vector3d.

Type extensions

Type extension Description

this.AngleDiamondInXYTo

Full Usage: this.AngleDiamondInXYTo

Parameters:
Returns: float
Modifiers: inline

Returns positive angle for rotating Counter-Clockwise from this Vector3d to Vector3d 'b' . In Diamond Angle. Using only proportion of X to Y components. Range of 0.0 to 4.0 (for 360 Degrees) It is the fastest angle calculation since it does not involve Cosine or ArcTangent functions. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

b : Vector3d
Returns: float

this.AsString

Full Usage: this.AsString

Parameters:
    () : unit

Returns: string

Extended Type: Vector3d

() : unit
Returns: string

this.Direction180InXY

Full Usage: this.Direction180InXY

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the angle in Degrees from X-axis, Ignores orientation. Range 0.0 to 180. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

() : unit
Returns: float

this.Direction2PiInXY

Full Usage: this.Direction2PiInXY

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the angle in Radians from X-axis, Going Counter-Clockwise till two Pi. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

() : unit
Returns: float

this.Direction360InXY

Full Usage: this.Direction360InXY

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the angle in Degrees from X-axis. Going Counter-Clockwise till 360. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

() : unit
Returns: float

this.DirectionDiamondInXY

Full Usage: this.DirectionDiamondInXY

Parameters:
    () : unit

Returns: float
Modifiers: inline

The diamond angle. Calculates the proportion of X to Y component. It is always positive and in the range of 0.0 to 4.0 (for 360 Degrees) 0.0 = Xaxis, going Counter-Clockwise. It is the fastest angle calculation since it does not involve Cosine or ArcTangent functions. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

() : unit
Returns: float

this.DirectionPiInXY

Full Usage: this.DirectionPiInXY

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the angle in Radians from X-axis, Ignores orientation. Range 0.0 to Pi. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

() : unit
Returns: float

this.Half

Full Usage: this.Half

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d with half the length.

Extended Type: Vector3d

() : unit
Returns: Vector3d

this.IsHorizontal

Full Usage: this.IsHorizontal

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Checks if 3D Vector3d is horizontal (Z component is almost zero). The absolute deviation tolerance along Z axis is 1e-9. Fails on Vector3d shorter than 1e-6.

Extended Type: Vector3d

() : unit
Returns: bool

this.IsNotZero

Full Usage: this.IsNotZero

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Returns a boolean indicating if any of X, Y and Z is not exactly 0.0.

Extended Type: Vector3d

() : unit
Returns: bool

this.IsOppositeOrientation

Full Usage: this.IsOppositeOrientation

Parameters:
Returns: bool
Modifiers: inline

Checks if the angle between the two 3D Vector3d is more than 180 degrees. Calculates the dot product of two 3D Vector3d. Then checks if it is smaller than minus 1e-12. Fails if any of the two Vector3d is shorter than zeroLengthTolerance (1e-12).

Extended Type: Vector3d

other : Vector3d
Returns: bool

this.IsParallelAndOrientedTo

Full Usage: this.IsParallelAndOrientedTo

Parameters:
Returns: bool
Modifiers: inline

Checks if two 3D Vector3d are parallel. Takes the line orientation into account too. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Rhino.Scripting.FSharp.Cosine module. Fails on Vector3d shorter than zeroLengthTolerance (1e-12).

Extended Type: Vector3d

other : Vector3d
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool

this.IsParallelTo

Full Usage: this.IsParallelTo

Parameters:
Returns: bool
Modifiers: inline

Checks if two 3D Vector3d are parallel. Ignores the line orientation. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Rhino.Scripting.FSharp.Cosine module. Fails on Vector3d shorter than zeroLengthTolerance (1e-12).

Extended Type: Vector3d

other : Vector3d
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool

this.IsPerpendicularTo

Full Usage: this.IsPerpendicularTo

Parameters:
Returns: bool
Modifiers: inline

Checks if two 3D Vector3d are perpendicular to each other. The default angle tolerance is 89.75 to 90.25 degrees. This tolerance can be customized by an optional minium cosine value. The default cosine is 0.0043633 ( = 89.75 deg) See Rhino.Scripting.FSharp.Cosine module. Fails on Vector3d shorter than zeroLengthTolerance (1e-12).

Extended Type: Vector3d

other : Vector3d
maxCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool

this.IsTiny

Full Usage: this.IsTiny

Parameters:
    tol : float

Returns: bool
Modifiers: inline

Check if the 3D Vector3d is shorter than the tolerance. Also checks if any component is a NaN.

Extended Type: Vector3d

tol : float
Returns: bool

this.IsTinySq

Full Usage: this.IsTinySq

Parameters:
    tol : float

Returns: bool
Modifiers: inline

Check if the 3D Vector3d square length is shorter than the squared tolerance. Also checks if any component is a NaN.

Extended Type: Vector3d

tol : float
Returns: bool

this.IsUnit

Full Usage: this.IsUnit

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Test if the 3D Vector3d is a unit-Vector3d. Test if the Vector3d square length is within 6 float steps of 1.0 So between 0.99999964 and 1.000000715.

Extended Type: Vector3d

() : unit
Returns: bool

this.IsVertical

Full Usage: this.IsVertical

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world Z axis. Ignoring orientation. The absolute deviation tolerance along X and Y axis is 1e-9. Fails on Vector3d shorter than 1e-6. Same as v.IsZAligned

Extended Type: Vector3d

() : unit
Returns: bool

this.IsXAligned

Full Usage: this.IsXAligned

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world X axis. Ignoring orientation. The absolute deviation tolerance along Y and Z axis is 1e-9. Fails on Vector3d shorter than 1e-6.

Extended Type: Vector3d

() : unit
Returns: bool

this.IsYAligned

Full Usage: this.IsYAligned

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world Y axis. Ignoring orientation. The absolute deviation tolerance along X and Z axis is 1e-9. Fails on Vector3d shorter than 1e-6.

Extended Type: Vector3d

() : unit
Returns: bool

this.IsZAligned

Full Usage: this.IsZAligned

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world Z axis. Ignoring orientation. The absolute deviation tolerance along X and Y axis is 1e-9. Fails on Vector3d shorter than 1e-6. Same as v.IsVertical

Extended Type: Vector3d

() : unit
Returns: bool

this.IsZero

Full Usage: this.IsZero

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Returns a boolean indicating whether X, Y and Z are all exactly 0.0.

Extended Type: Vector3d

() : unit
Returns: bool

this.LengthInXY

Full Usage: this.LengthInXY

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the length of the 3D Vector3d projected into World X-Y plane.

Extended Type: Vector3d

() : unit
Returns: float

this.LengthSq

Full Usage: this.LengthSq

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the squared length of the 3D vector. The square length is faster to calculate and often good enough for use cases such as sorting vectors by length.

Extended Type: Vector3d

() : unit
Returns: float

this.LengthSqInXY

Full Usage: this.LengthSqInXY

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the squared length of the 3D Vector3d projected into World X-Y plane. The square length is faster to calculate and often good enough for use cases such as sorting Vector3d by length.

Extended Type: Vector3d

() : unit
Returns: float

this.MatchesOrientation

Full Usage: this.MatchesOrientation

Parameters:
Returns: bool
Modifiers: inline

Checks if the angle between the two 3D Vector3d is less than 180 degrees. Calculates the dot product of two 3D Vector3d. Then checks if it is bigger than 1e-12. Fails if any of the two Vector3d is shorter than zeroLengthTolerance (1e-12).

Extended Type: Vector3d

other : Vector3d
Returns: bool

this.PerpendicularInXY

Full Usage: this.PerpendicularInXY

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

Returns a perpendicular horizontal Vector3d. Rotated counterclockwise. Or Vector3d.Zero if input is vertical. Just does Vector3d(-v.Y, v.X, 0.0)

Extended Type: Vector3d

() : unit
Returns: Vector3d

this.RotateOnZ90CCW

Full Usage: this.RotateOnZ90CCW

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

90 Degree rotation Counter-Clockwise around Z-axis.

Extended Type: Vector3d

() : unit
Returns: Vector3d

this.RotateOnZ90CW

Full Usage: this.RotateOnZ90CW

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

90 Degree rotation clockwise around Z-axis.

Extended Type: Vector3d

() : unit
Returns: Vector3d

this.ToVector3d

Full Usage: this.ToVector3d

Parameters:
    () : unit

Returns: Vector3d

To convert a Vector3f (as it is used in Mesh normals) to a Vector3d (as it is used in most other Rhino Geometries)

Extended Type: Vector3f

() : unit
Returns: Vector3d

this.ToVector3f

Full Usage: this.ToVector3f

Parameters:
    () : unit

Returns: Vector3f

To convert Vector3d (as it is used in most other Rhino Geometries) to a Vector3f (as it is used in Mesh normals)

Extended Type: Vector3d

() : unit
Returns: Vector3f

this.Unitized

Full Usage: this.Unitized

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d unitized. Fails with RhinoScriptingFSharpException if the length of the Vector3d is too small (1e-16) to unitize.

Extended Type: Vector3d

() : unit
Returns: Vector3d

this.WithLength

Full Usage: this.WithLength

Parameters:
    desiredLength : float

Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d scaled to the desired length. Same as Vector3d.withLength.

Extended Type: Vector3d

desiredLength : float
Returns: Vector3d

this.WithX

Full Usage: this.WithX

Parameters:
    x : float

Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d with new X coordinate, Y and Z stay the same.

Extended Type: Vector3d

x : float
Returns: Vector3d

this.WithY

Full Usage: this.WithY

Parameters:
    y : float

Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d with new y coordinate, X and Z stay the same.

Extended Type: Vector3d

y : float
Returns: Vector3d

this.WithZ

Full Usage: this.WithZ

Parameters:
    z : float

Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d with new z coordinate, X and Y stay the same.

Extended Type: Vector3d

z : float
Returns: Vector3d

Vector3d.Xaxis()

Full Usage: Vector3d.Xaxis()

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

Returns the World X-axis with length one: Vector3d(1, 0, 0)

Extended Type: Vector3d

() : unit
Returns: Vector3d

Vector3d.Yaxis()

Full Usage: Vector3d.Yaxis()

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

Returns the World Y-axis with length one: Vector3d(0, 1, 0)

Extended Type: Vector3d

() : unit
Returns: Vector3d

Vector3d.Zaxis()

Full Usage: Vector3d.Zaxis()

Parameters:
    () : unit

Returns: Vector3d
Modifiers: inline

Returns the World Z-axis with length one: Vector3d(0, 0, 1)

Extended Type: Vector3d

() : unit
Returns: Vector3d

Vector3d.add a b

Full Usage: Vector3d.add a b

Parameters:
Returns: Vector3d
Modifiers: inline

Add two 3D Vector3d together. Returns a new 3D Vector3d.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: Vector3d

Vector3d.angle180 a b

Full Usage: Vector3d.angle180 a b

Parameters:
Returns: float

Returns positive angle between two 3D Vector3d in Degrees. Takes Vector3d orientation into account, Range 0 to 180 Degrees.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.angle2PiInXY (a, b)

Full Usage: Vector3d.angle2PiInXY (a, b)

Parameters:
Returns: float
Modifiers: inline

Returns positive angle from Vector3d 'a' to Vector3d 'b' projected in X-Y plane. In Radians. Considering Counter-Clockwise rotation round the World Zaxis. Range: 0.0 to 2 Pi ( = 0 to 360 Degrees)

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.angle360InXY (a, b)

Full Usage: Vector3d.angle360InXY (a, b)

Parameters:
Returns: float
Modifiers: inline

Returns positive angle of two 3D Vector3d projected in X-Y plane. In Degrees. Considering positive rotation round the World Z-axis. Range: 0 to 360 Degrees.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.angle90 a b

Full Usage: Vector3d.angle90 a b

Parameters:
Returns: float

Returns positive angle between two 3D Vector3d in Degrees. Ignores Vector3d orientation, Range: 0 to 90 Degrees.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.angleDiamondInXY (a, b)

Full Usage: Vector3d.angleDiamondInXY (a, b)

Parameters:
Returns: float
Modifiers: inline

Returns positive angle for rotating Counter-Clockwise from Vector3d 'a' to Vector3d 'b' . In Diamond Angle. Using only proportion of X to Y components. Range of 0.0 to 4.0 (for 360 Degrees) It is the fastest angle calculation since it does not involve Cosine or ArcTangent functions. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.angleHalfPi a b

Full Usage: Vector3d.angleHalfPi a b

Parameters:
Returns: float

Returns positive angle between two 3D Vector3d in Radians. Ignores Vector3d orientation, Range: 0.0 to Pi/2 ( = 0 to 90 Degrees)

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.anglePi a b

Full Usage: Vector3d.anglePi a b

Parameters:
Returns: float

Returns positive angle between two 3D Vector3d in Radians. Takes Vector3d orientation into account, Range 0.0 to Pi( = 0 to 180 Degree).

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.areParallel other v

Full Usage: Vector3d.areParallel other v

Parameters:
Returns: int
Modifiers: inline

Checks if Angle between two Vector3d is Below 0.25 Degree. Ignores Vector3d orientation. Fails on zero length Vector3d, tolerance 1e-12.

Extended Type: Vector3d

other : Vector3d
v : Vector3d
Returns: int

Vector3d.areParallelAndMatchOrientation other v

Full Usage: Vector3d.areParallelAndMatchOrientation other v

Parameters:
Returns: bool
Modifiers: inline

Checks if Angle between two Vector3d is less than 0.25 Degree and orientation matches. Fails on zero length Vector3d, tolerance 1e-12.

Extended Type: Vector3d

other : Vector3d
v : Vector3d
Returns: bool

Vector3d.arePerpendicular other v

Full Usage: Vector3d.arePerpendicular other v

Parameters:
Returns: bool
Modifiers: inline

Checks if Angle between two Vector3d is between 98.75 and 90.25 Degree. Ignores Vector3d orientation. Fails on zero length Vector3d, tolerance 1e-12.

Extended Type: Vector3d

other : Vector3d
v : Vector3d
Returns: bool

Vector3d.bisector a b

Full Usage: Vector3d.bisector a b

Parameters:
Returns: Vector3d
Modifiers: inline

Returns a (not unitized) bisector Vector3d in the middle direction. Code : a.Unitized + b.Unitized.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: Vector3d

Vector3d.create (x, y, z)

Full Usage: Vector3d.create (x, y, z)

Parameters:
    x : float
    y : float
    z : float

Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d from X, Y and Z parts.

Extended Type: Vector3d

x : float
y : float
z : float
Returns: Vector3d

Vector3d.createFromMembersXYZ pt

Full Usage: Vector3d.createFromMembersXYZ pt

Parameters:
    pt : ^T

Returns: Vector3d
Modifiers: inline
Type parameters: ^T, ^a, ^b, ^c

Accepts any type that has a X, Y and Z (UPPERCASE) member that can be converted to a float. Internally this is not using reflection at runtime but F# Statically Resolved Type Parameters at compile time.

Extended Type: Vector3d

pt : ^T
Returns: Vector3d

Vector3f.createFromMembersXYZ pt

Full Usage: Vector3f.createFromMembersXYZ pt

Parameters:
    pt : ^T

Returns: Vector3f
Modifiers: inline
Type parameters: ^T, ^a, ^b, ^c

Accepts any type that has a X, Y and Z (UPPERCASE) member that can be converted to a float32. Internally this is not using reflection at runtime but F# Statically Resolved Type Parameters at compile time.

Extended Type: Vector3f

pt : ^T
Returns: Vector3f

Vector3d.createFromMembersxyz pt

Full Usage: Vector3d.createFromMembersxyz pt

Parameters:
    pt : ^T

Returns: Vector3d
Modifiers: inline
Type parameters: ^T, ^a, ^b, ^c

Accepts any type that has a x, y and z (lowercase) member that can be converted to a float. Internally this is not using reflection at runtime but F# Statically Resolved Type Parameters at compile time.

Extended Type: Vector3d

pt : ^T
Returns: Vector3d

Vector3f.createFromMembersxyz pt

Full Usage: Vector3f.createFromMembersxyz pt

Parameters:
    pt : ^T

Returns: Vector3f
Modifiers: inline
Type parameters: ^T, ^a, ^b, ^c

Accepts any type that has a x, y and z (lowercase) member that can be converted to a float32. Internally this is not using reflection at runtime but F# Statically Resolved Type Parameters at compile time.

Extended Type: Vector3f

pt : ^T
Returns: Vector3f

Vector3d.cross (a, b)

Full Usage: Vector3d.cross (a, b)

Parameters:
Returns: Vector3d
Modifiers: inline

Cross product, of two 3D vectors. The resulting vector is perpendicular to both input vectors. Its length is the area of the parallelogram spanned by the input vectors. Its direction follows the right-hand rule. A x B = |A| * |B| * sin(angle)

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: Vector3d

Vector3d.determinant (u, v, w)

Full Usage: Vector3d.determinant (u, v, w)

Parameters:
Returns: float
Modifiers: inline

Returns three Vector3d's Determinant. This is also the signed volume of the Parallelepiped defined by these three Vector3d. Also called scalar triple product, mixed product, Box product, or in German: Spatprodukt. It is defined as the dot product of one of the Vector3d with the cross product of the other two.

Extended Type: Vector3d

u : Vector3d
v : Vector3d
w : Vector3d
Returns: float

Vector3d.difference a b

Full Usage: Vector3d.difference a b

Parameters:
Returns: float
Modifiers: inline

Returns the distance between the tips of two 3D Vector3d.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.differenceSq a b

Full Usage: Vector3d.differenceSq a b

Parameters:
Returns: float
Modifiers: inline

Returns the squared distance between the tips of two 3D Vector3d. This operation is slightly faster than Vector3d.difference and sufficient for many algorithms like finding closest Vector3d.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.direction2PiInXY v

Full Usage: Vector3d.direction2PiInXY v

Parameters:
Returns: float
Modifiers: inline

Returns positive angle of 3D Vector3d in World X-Y plane. Counter-Clockwise from X-axis. In Radians. Range: 0.0 to 2 Pi ( = 0 to 360 Degrees) For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.direction360InXY v

Full Usage: Vector3d.direction360InXY v

Parameters:
Returns: float
Modifiers: inline

Returns positive angle of 3D Vector3d in World X-Y plane. Counter-Clockwise from X-axis. In Degree. Range: 0.0 to 2 Pi ( = 0 to 360 Degrees) For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.directionDiamondInXY v

Full Usage: Vector3d.directionDiamondInXY v

Parameters:
Returns: float
Modifiers: inline

The diamond angle. Returns positive angle of 3D Vector3d in World X-Y plane. Calculates the proportion of X to Y component. It is always positive and in the range of 0.0 to 4.0 (for 360 Degrees) 0.0 = Xaxis, going Counter-Clockwise. It is the fastest angle calculation since it does not involve Cosine or ArcTangent functions. For World X-Y plane. Considers only the X and Y components of the Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.dot (a, b)

Full Usage: Vector3d.dot (a, b)

Parameters:
Returns: float
Modifiers: inline

Dot product, or scalar product of two 3D vectors. Returns a float.

Extended Type: Vector3d

a : Vector3d
b : Vector3d
Returns: float

Vector3d.equals tol a b

Full Usage: Vector3d.equals tol a b

Parameters:
Returns: bool
Modifiers: inline

Checks if two 3D Vector3d are equal within tolerance. Identical Vector3d in opposite directions are not considered equal. Use a tolerance of 0.0 to check for an exact match.

Extended Type: Vector3d

tol : float
a : Vector3d
b : Vector3d
Returns: bool

Vector3d.flip v

Full Usage: Vector3d.flip v

Parameters:
Returns: Vector3d
Modifiers: inline

Negate or inverse a 3D Vector3d. Returns a new 3D Vector3d. Same as Vector3d.reverse.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.flipToPointUp v

Full Usage: Vector3d.flipToPointUp v

Parameters:
Returns: Vector3d
Modifiers: inline

Flips the Vector3d if Z part is smaller than 0.0

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.getX v

Full Usage: Vector3d.getX v

Parameters:
Returns: float
Modifiers: inline

Gets the X part of this 3D Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.getY v

Full Usage: Vector3d.getY v

Parameters:
Returns: float
Modifiers: inline

Gets the Y part of this 3D Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.getZ v

Full Usage: Vector3d.getZ v

Parameters:
Returns: float
Modifiers: inline

Gets the Z part of this 3D Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.intersection (ptA, ptB, vA, vB, tooShortTolerance, relAngleDiscriminant)

Full Usage: Vector3d.intersection (ptA, ptB, vA, vB, tooShortTolerance, relAngleDiscriminant)

Parameters:
    ptA : Point3d - The start point of the first line.
    ptB : Point3d - The start point of the second line.
    vA : Vector3d - The Vector3d of the first line.
    vB : Vector3d - The Vector3d of the second line.
    tooShortTolerance : float - Is an optional length tolerance. 1e-6 by default. If one or both Vector3d are shorter than this ValueNone is returned.
    relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>> - This is an optional tolerance for the internally calculated relative Angle Discriminant. The default value corresponds to approx 0.25 degree. Below this angle Vector3d are considered parallel. Use the module Rhino.Scripting.FSharp.RelAngleDiscriminant to set another tolerance here.

Returns: ValueOption<float * float> For (almost) zero length or (almost) parallel Vector3d: ValueNone Else ValueSome with a tuple of the parameters at which the two infinite 2D lines intersect to each other. The tuple's order corresponds to the input order.

Intersects two infinite 3D lines. The lines are defined by a start point and a Vector3d. 'ValueNone' is returned, if the angle between the Vector3d is less than 0.25 degrees or any of them is shorter than 1e-6. These tolerances can be adjusted with optional parameters.

Extended Type: Vector3d

ptA : Point3d

The start point of the first line.

ptB : Point3d

The start point of the second line.

vA : Vector3d

The Vector3d of the first line.

vB : Vector3d

The Vector3d of the second line.

tooShortTolerance : float

Is an optional length tolerance. 1e-6 by default. If one or both Vector3d are shorter than this ValueNone is returned.

relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>>

This is an optional tolerance for the internally calculated relative Angle Discriminant. The default value corresponds to approx 0.25 degree. Below this angle Vector3d are considered parallel. Use the module Rhino.Scripting.FSharp.RelAngleDiscriminant to set another tolerance here.

Returns: ValueOption<float * float>

For (almost) zero length or (almost) parallel Vector3d: ValueNone Else ValueSome with a tuple of the parameters at which the two infinite 2D lines intersect to each other. The tuple's order corresponds to the input order.

Vector3d.isAngle180Above cosineValue a b

Full Usage: Vector3d.isAngle180Above cosineValue a b

Parameters:
Returns: bool
Modifiers: inline

Checks if Angle between two Vector3d is more than given Cosine. Does not ignore Vector3d orientation. The angle between two Vector3d can be 0 to 180 degrees. Use the Rhino.Scripting.FSharp.Cosine module to get some precomputed cosine values. Fails on zero length Vector3d, tolerance 1e-12.

Extended Type: Vector3d

cosineValue : float<MeasureProduct<cosine, MeasureOne>>
a : Vector3d
b : Vector3d
Returns: bool

Vector3d.isAngle180Below cosineValue a b

Full Usage: Vector3d.isAngle180Below cosineValue a b

Parameters:
Returns: bool
Modifiers: inline

Checks if Angle between two Vector3d is less than given Cosine. Does not ignore Vector3d orientation. The angle between two Vector3d can be 0 to 180 degrees. Use the Rhino.Scripting.FSharp.Cosine module to get some precomputed cosine values Fails on zero length Vector3d, tolerance 1e-12.

Extended Type: Vector3d

cosineValue : float<MeasureProduct<cosine, MeasureOne>>
a : Vector3d
b : Vector3d
Returns: bool

Vector3d.isAngle90Above cosineValue a b

Full Usage: Vector3d.isAngle90Above cosineValue a b

Parameters:
Returns: bool
Modifiers: inline

Checks if Angle between two Vector3d is more than given Cosine. Ignores Vector3d orientation. The angle between two Vector3d can be 0 to 90 degrees ignoring their direction. Use the Rhino.Scripting.FSharp.Cosine module to get some precomputed cosine values. Fails on zero length Vector3d, tolerance 1e-12.

Extended Type: Vector3d

cosineValue : float<MeasureProduct<cosine, MeasureOne>>
a : Vector3d
b : Vector3d
Returns: bool

Vector3d.isAngle90Below cosineValue a b

Full Usage: Vector3d.isAngle90Below cosineValue a b

Parameters:
Returns: bool
Modifiers: inline

Checks if Angle between two Vector3d is less than given Cosine. Ignores Vector3d orientation. The angle between two Vector3d can be 0 to 90 degrees ignoring their direction. Use the Rhino.Scripting.FSharp.Cosine module to get some precomputed cosine values Fails on zero length Vector3d, tolerance 1e-12.

Extended Type: Vector3d

cosineValue : float<MeasureProduct<cosine, MeasureOne>>
a : Vector3d
b : Vector3d
Returns: bool

Vector3d.isHorizontal v

Full Usage: Vector3d.isHorizontal v

Parameters:
Returns: bool
Modifiers: inline

Checks if line is horizontal (Z component is almost zero). Tolerance is 1e-6. Fails on lines shorter than 1e-6.

Extended Type: Vector3d

v : Vector3d
Returns: bool

Vector3d.isOppositeOrientation v other

Full Usage: Vector3d.isOppositeOrientation v other

Parameters:
Returns: bool
Modifiers: inline

Checks if the angle between the two 3D Vector3d is more than 180 degrees. Calculates the dot product of two 3D Vector3d. Then checks if it is smaller than minus 1e-12. If any of the two Vector3d is zero length returns false.

Extended Type: Vector3d

v : Vector3d
other : Vector3d
Returns: bool

Vector3d.isTiny tol v

Full Usage: Vector3d.isTiny tol v

Parameters:
Returns: bool
Modifiers: inline

Check if the 3D Vector3d is shorter than the tolerance. Also checks if any component is a NaN.

Extended Type: Vector3d

tol : float
v : Vector3d
Returns: bool

Vector3d.isTinySq tol v

Full Usage: Vector3d.isTinySq tol v

Parameters:
Returns: bool
Modifiers: inline

Check if the 3D Vector3d square length is shorter than the squared tolerance. Also checks if any component is a NaN.

Extended Type: Vector3d

tol : float
v : Vector3d
Returns: bool

Vector3d.isVertical v

Full Usage: Vector3d.isVertical v

Parameters:
Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world Z axis. Ignoring orientation. Tolerance is 1e-6. Fails on Vector3d shorter than 1e-6. Same as ln.IsZAligned

Extended Type: Vector3d

v : Vector3d
Returns: bool

Vector3d.isXAligned v

Full Usage: Vector3d.isXAligned v

Parameters:
Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world X axis. Ignoring orientation. Tolerance is 1e-6. Fails on Vector3d shorter than 1e-6.

Extended Type: Vector3d

v : Vector3d
Returns: bool

Vector3d.isYAligned v

Full Usage: Vector3d.isYAligned v

Parameters:
Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world Y axis. Ignoring orientation. Tolerance is 1e-6. Fails on Vector3d shorter than 1e-6.

Extended Type: Vector3d

v : Vector3d
Returns: bool

Vector3d.isZAligned v

Full Usage: Vector3d.isZAligned v

Parameters:
Returns: bool
Modifiers: inline

Checks if 3D Vector3d is parallel to the world Z axis. Ignoring orientation. Tolerance is 1e-6. Fails on Vector3d shorter than 1e-6. Same as ln.IsVertical

Extended Type: Vector3d

v : Vector3d
Returns: bool

Vector3d.length v

Full Usage: Vector3d.length v

Parameters:
Returns: float
Modifiers: inline

Returns the length of the 3D Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.lengthInXY v

Full Usage: Vector3d.lengthInXY v

Parameters:
Returns: float
Modifiers: inline

Returns the Vector3d length projected into X Y Plane. sqrt(v.X * v.X + v.Y * v.Y)

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.lengthSq v

Full Usage: Vector3d.lengthSq v

Parameters:
Returns: float
Modifiers: inline

Returns the squared length of the 3D Vector3d. The square length is faster to calculate and often good enough for use cases such as sorting Vector3d by length.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.lerp (start, ende, rel)

Full Usage: Vector3d.lerp (start, ende, rel)

Parameters:
Returns: Vector3d

Linearly interpolates between two Vector3d. e.g. rel=0.5 will return the middle Vector3d, rel=1.0 the end Vector3d, rel=1.5 a Vector3d half the distance beyond the end Vector3d.

Extended Type: Vector3d

start : Vector3d
ende : Vector3d
rel : float
Returns: Vector3d

Vector3d.matchOrientation orientationToMatch vec

Full Usage: Vector3d.matchOrientation orientationToMatch vec

Parameters:
Returns: Vector3d
Modifiers: inline

Ensure that the 3D Vector3d has a positive dot product with given 3D orientation Vector3d.

Extended Type: Vector3d

orientationToMatch : Vector3d
vec : Vector3d
Returns: Vector3d

Vector3d.matchesOrientation v other

Full Usage: Vector3d.matchesOrientation v other

Parameters:
Returns: bool
Modifiers: inline

Checks if the angle between the two 3D Vector3d is less than 180 degrees. Calculates the dot product of two 3D Vector3d. Then checks if it is bigger than 1e-12. If any of the two Vector3d is zero length returns false.

Extended Type: Vector3d

v : Vector3d
other : Vector3d
Returns: bool

Vector3d.moveX x v

Full Usage: Vector3d.moveX x v

Parameters:
Returns: Vector3d
Modifiers: inline

Add to the X part of this 3D Vector3d together. Returns a new 3D Vector3d.

Extended Type: Vector3d

x : float
v : Vector3d
Returns: Vector3d

Vector3d.moveY y v

Full Usage: Vector3d.moveY y v

Parameters:
Returns: Vector3d
Modifiers: inline

Add to the Y part of this 3D Vector3d together. Returns a new 3D Vector3d.

Extended Type: Vector3d

y : float
v : Vector3d
Returns: Vector3d

Vector3d.moveZ z v

Full Usage: Vector3d.moveZ z v

Parameters:
Returns: Vector3d
Modifiers: inline

Add to the Z part of this 3D Vector3d together. Returns a new 3D Vector3d.

Extended Type: Vector3d

z : float
v : Vector3d
Returns: Vector3d

Vector3d.orientDown v

Full Usage: Vector3d.orientDown v

Parameters:
Returns: Vector3d
Modifiers: inline

Reverse Vector3d if Z part is bigger than 0.0

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.orientUp v

Full Usage: Vector3d.orientUp v

Parameters:
Returns: Vector3d
Modifiers: inline

Reverse Vector3d if Z part is smaller than 0.0

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.perpendicularInVerticalPlane v

Full Usage: Vector3d.perpendicularInVerticalPlane v

Parameters:
Returns: Vector3d
Modifiers: inline

Returns a Vector3d that is perpendicular to the given Vector3d and in the same vertical Plane. Projected into the X-Y plane input and output Vector3d are parallel and of same orientation. Not of same length, not unitized. On vertical input Vector3d resulting Vector3d if of zero length.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.perpendicularInXY v

Full Usage: Vector3d.perpendicularInXY v

Parameters:
Returns: Vector3d
Modifiers: inline

Returns a perpendicular horizontal Vector3d. Rotated counterclockwise. Just does Vector3d(-v.Y, v.X, 0.0) On vertical input Vector3d resulting Vector3d if of zero length.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.projectToLine ln v pt

Full Usage: Vector3d.projectToLine ln v pt

Parameters:
Returns: Point3d

Project point onto a finite line in direction of v Fails if line is missed by tolerance 1e-6

Extended Type: Vector3d

ln : Line
v : Vector3d
pt : Point3d
Returns: Point3d

Vector3d.projectToPlane pl v

Full Usage: Vector3d.projectToPlane pl v

Parameters:
Returns: Vector3d

Project vector to Plane Fails if resulting vector is of almost zero length (RhinoMath.SqrtEpsilon)

Extended Type: Vector3d

pl : Plane
v : Vector3d
Returns: Vector3d

Vector3d.projectToXYPlane v

Full Usage: Vector3d.projectToXYPlane v

Parameters:
Returns: Vector3d
Modifiers: inline

Project Vector3d to World X-Y plane. Use Vc.ofVector3d to convert to a 2D Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.reverse v

Full Usage: Vector3d.reverse v

Parameters:
Returns: Vector3d
Modifiers: inline

Negate or inverse a 3D Vector3d. Returns a new 3D Vector3d. Same as Vector3d.flip.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.rotateOnZ90CCW v

Full Usage: Vector3d.rotateOnZ90CCW v

Parameters:
Returns: Vector3d
Modifiers: inline

90 Degree rotation Counter-Clockwise around Z-axis.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.rotateOnZ90CW v

Full Usage: Vector3d.rotateOnZ90CW v

Parameters:
Returns: Vector3d
Modifiers: inline

90 Degree rotation clockwise around Z-axis.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.scale f v

Full Usage: Vector3d.scale f v

Parameters:
Returns: Vector3d
Modifiers: inline

Multiplies a 3D Vector3d with a scalar, also called scaling a Vector3d. Returns a new 3D Vector3d.

Extended Type: Vector3d

f : float
v : Vector3d
Returns: Vector3d

Vector3d.slerp (start, ende, rel)

Full Usage: Vector3d.slerp (start, ende, rel)

Parameters:
Returns: Vector3d

Spherically interpolates between start and end by amount rel (0.0 to 1.0). The difference between this and linear interpolation (aka, "lerp") is that the Vector3d are treated as directions rather than points in space. The direction of the returned Vector3d is interpolated by the angle and its magnitude is interpolated between the magnitudes of start and end. Interpolation continues before and after the range of 0.0 and 0.1

Extended Type: Vector3d

start : Vector3d
ende : Vector3d
rel : float
Returns: Vector3d

Vector3d.slopeDegrees v

Full Usage: Vector3d.slopeDegrees v

Parameters:
Returns: float
Modifiers: inline

Returns positive or negative slope of a Vector3d in Degrees. In relation to X-Y plane. Range -90 to +90 Degrees.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.slopePercent v

Full Usage: Vector3d.slopePercent v

Parameters:
Returns: float
Modifiers: inline

Returns positive or negative slope of a Vector3d in Percent. In relation to X-Y plane. 100% = 45 Degrees. Returns positive (or negative) Infinity if line is vertical or input has length zero.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.slopeRadians v

Full Usage: Vector3d.slopeRadians v

Parameters:
Returns: float
Modifiers: inline

Returns positive or negative slope of a Vector3d in Radians. In relation to X-Y plane. Range -1.57 to +1.57 Radians.

Extended Type: Vector3d

v : Vector3d
Returns: float

Vector3d.unitize v

Full Usage: Vector3d.unitize v

Parameters:
Returns: Vector3d
Modifiers: inline

Returns 3D Vector3d unitized, fails on zero length Vector3d.

Extended Type: Vector3d

v : Vector3d
Returns: Vector3d

Vector3d.unitizeOrDefault defaultUnitVector3dtor v

Full Usage: Vector3d.unitizeOrDefault defaultUnitVector3dtor v

Parameters:
Returns: Vector3d
Modifiers: inline

Unitize 3D Vector3d, if input Vector3d is shorter than 1e-6 the default unit-Vector3d is returned.

Extended Type: Vector3d

defaultUnitVector3dtor : Vector3d
v : Vector3d
Returns: Vector3d

Vector3d.withLength desiredLength v

Full Usage: Vector3d.withLength desiredLength v

Parameters:
Returns: Vector3d
Modifiers: inline

Returns a new 3D Vector3d scaled to the desired length. Same as Vector3d.WithLength. Returns a new 3D Vector3d.

Extended Type: Vector3d

desiredLength : float
v : Vector3d
Returns: Vector3d

Vector3d.withX x v

Full Usage: Vector3d.withX x v

Parameters:
Returns: Vector3d
Modifiers: inline

Returns new 3D Vector3d with new X value, Y and Z stay the same.

Extended Type: Vector3d

x : float
v : Vector3d
Returns: Vector3d

Vector3d.withY y v

Full Usage: Vector3d.withY y v

Parameters:
Returns: Vector3d
Modifiers: inline

Returns new 3D Vector3d with new Y value, X and Z stay the same.

Extended Type: Vector3d

y : float
v : Vector3d
Returns: Vector3d

Vector3d.withZ z v

Full Usage: Vector3d.withZ z v

Parameters:
Returns: Vector3d
Modifiers: inline

Returns new 3D Vector3d with new z value, X and Y stay the same.

Extended Type: Vector3d

z : float
v : Vector3d
Returns: Vector3d

Type something to start searching.