TINMAN 3D / REALTIME TERRAIN
Software Development Kit - User Manual

struct Vec2D in Tinman.Core.Math.Vectors

A two-dimensional vector with 64-bit floating-point precision.

struct Vec2D implements IEquatable<Vec2D>

Remarks

/     \
|  X  |
|  Y  |
\     /

Public / Attributes

IsUndefined

Checks if this vector has an undefined value.

public property IsUndefined { get }
type bool
value true if this vector has an undefined value, false if not.

Remarks:

A vector is undefined if at least one component is NaN (not-a-number).

Length

Returns the length of this vector.

public property Length { get }
type float64
value [>=0] The vector length.

LengthSqr

Returns the squared length of this vector.

public property LengthSqr { get }
type float64
value [>=0] The squared vector length.

X

X-coordinate of vector.

public readonly field X
type float64

Y

Y-coordinate of vector.

public readonly field Y
type float64

Public / Constants

Undefined

A vector with undefined value.

public static readonly field Undefined
type Vec2D

Zero

The zero vector.

public static readonly field Zero
type Vec2D

Public / Constructors

Vec2D

Creates a new instance of Vec2D.

public constructor Vec2D (float64 x, float64 y)
params x X-coordinate of vector.
  y Y-coordinate of vector.

Public / Methods

Add

Adds this vector and the given one.

[Pure]
public method Add (Vec2D v)
type Vec2D
params v The vector.
returns The resulting vector.

Adds this vector and the given one.

[Pure]
public method Add (float64 x, float64 y)
type Vec2D
params x X-component of vector.
  y Y-component of vector.
returns The resulting vector.

Barycentric

Computes the barycentric coordinates of this vector in the given triangle.

[Pure]
public method Barycentric (Vec2D a, Vec2D b, Vec2D c)
type Vec3D
params a First vertex of triangle.
  b Second vertex of triangle.
  c Third vertex of triangle.
returns The barycentric coordinates of this vector, where X, Y and Z represent the weights for the triangle vertices a, b and c (in this order). This vector lies inside of the given triangle iff X, Y and Z are non-negative.

Ceiling

Computes the component-wise ceiling of this vector.

[Pure]
public method Ceiling ()
type Vec2D
returns The resulting vector.

Choose

Chooses a component of this vector.

[Pure]
public method Choose (int32 idx, float64 v = 0)
type float64
params idx The zero-based component index.
  v The value to return if idx is out of range. Defaults to 0.
returns The resulting vector.

Cross

Computes the cross product between this vector and the given one: this x other.

[Pure]
public method Cross (float64 z)
type Vec2D
params z Z-component of vector (X- and Y-components are zero).
returns The cross product vector.

Computes the cross product between this vector and the given one: this x other.

[Pure]
public method Cross (Vec2D v)
type float64
params v The other vector.
returns The Z-component of the cross product vector (X- and Y-components are zero).

Computes the cross product between this vector and the given one: this x other.

[Pure]
public method Cross (float64 x, float64 y)
type float64
params x X-component of vector.
  y Y-component of vector.
returns The Z-component of the cross product vector (X- and Y-components are zero).

Div

Divides this vector by the given scalar value.

[Pure]
public method Div (float64 v)
type Vec2D
params v The scalar value.
returns The resulting vector.

Dot

Computes the dot product between this vector and the given one.

[Pure]
public method Dot (Vec2D v)
type float64
params v The vector.
returns The resulting vector.

Computes the dot product between this vector and the given one.

[Pure]
public method Dot (float64 x, float64 y)
type float64
params x X-component of vector.
  y Y-component of vector.
returns The resulting vector.

Equals

Compares this object with the given one.

[Pure]
public method Equals (Vec2D other)
type bool
params other The object to compare to.
returns true if this object is equal to other, false if not.

Checks if this vector and the given one are equal.

[Pure]
public method Equals (float64 x, float64 y)
type bool
params x X-component of vector.
  y Y-component of vector.
returns true if both vectors are equal, false if they are not.

EqualsAlmost

Checks if this vector and the given one are similar but necessarily equal.

[Pure]
public method EqualsAlmost (Vec2D v)
type bool
params v The vector.
returns true if both vectors are similar, false if they are not.

See also:

Maths.Similar

Checks if this vector and the given one are similar but necessarily equal.

[Pure]
public method EqualsAlmost (float64 x, float64 y)
type bool
params x X-component of vector.
  y Y-component of vector.
returns true if both vectors are similar, false if they are not.

See also:

Maths.Similar

Floor

Computes the component-wise floor of this vector.

[Pure]
public method Floor ()
type Vec2D
returns The resulting vector.

GetHashCode

[Pure]
public override method GetHashCode ()
type int32

Max

Computes the component-wise maximum of this vector and the given one.

[Pure]
public method Max (Vec2D v)
type Vec2D
params v The vector.
returns The resulting vector.

Computes the component-wise maximum of this vector and the given one.

[Pure]
public method Max (float64 x, float64 y)
type Vec2D
params x X-component of vector.
  y Y-component of vector.
returns The resulting vector.

Min

Computes the component-wise minimum of this vector and the given one.

[Pure]
public method Min (Vec2D v)
type Vec2D
params v The vector.
returns The resulting vector.

Computes the component-wise minimum of this vector and the given one.

[Pure]
public method Min (float64 x, float64 y)
type Vec2D
params x X-component of vector.
  y Y-component of vector.
returns The resulting vector.

Mul

Multiplies this vector with the given one.

[Pure]
public method Mul (Vec2D v)
type Vec2D
params v The vector.
returns The resulting vector.

Multiplies this vector with the given scalar value.

[Pure]
public method Mul (float64 v)
type Vec2D
params v The scalar value.
returns The resulting vector.

Multiplies this vector with the given one.

[Pure]
public method Mul (float64 x, float64 y)
type Vec2D
params x X-component of vector.
  y Y-component of vector.
returns The resulting vector.

Neg

Negates this vector.

[Pure]
public method Neg ()
type Vec2D
returns The resulting vector.

Norm

Normalizes this vector to unit length.

[Pure]
public method Norm ()
type Vec2D
returns The resulting vector.

Sub

Subtracts the given vector from this one.

[Pure]
public method Sub (Vec2D v)
type Vec2D
params v The vector.
returns The resulting vector.

Subtracts the given vector from this one.

[Pure]
public method Sub (float64 x, float64 y)
type Vec2D
params x X-component of vector.
  y Y-component of vector.
returns The resulting vector.

ToString

[Pure]
public override method ToString ()
type string

Serialization

Serializer

The serialization helper object for values of Vec2D.

public static readonly field Serializer
type ITypeSerializerEx<Vec2D>