Chunks
Moddable voxel sandbox for room-scale VR.
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
Chunks.Geometry.Vector Struct Reference

Represents a position or offset in 3D space. More...

Inheritance diagram for Chunks.Geometry.Vector:

Public Member Functions

 Vector (float x, float y)
 Constructs a new vector with the given X and Y components, with 0 for the Z component. More...
 
 Vector (float x, float y, float z)
 Constructs a new vector with the given X, Y, and Z components. More...
 
float Dot (Vector other)
 Finds the scalar product of this vector and another. More...
 
Vector Cross (Vector other)
 Finds the cross product of this vector and another. More...
 
bool Equals (Vector other)
 Tests for equality with another vector. More...
 
bool Equals (Vector other, float epsilon)
 Tests for equality with another vector within a given margin of error. More...
 
override bool Equals (object obj)
 Tests for equality with another object. More...
 
override int GetHashCode ()
 Returns the hash code for this vector. More...
 
IntVector FloorToInt ()
 
override string ToString ()
 Returns a string representation of this vector. More...
 

Static Public Member Functions

static implicit operator Vector (Vector2D a)
 
static operator Vector2D (Vector a)
 
static implicit operator Vector (IntVector vec)
 Casts an integer vector into a float vector. More...
 
static Vector operator+ (Vector a)
 
static Vector operator- (Vector a)
 Negates a vector. More...
 
static Vector operator+ (Vector a, Vector b)
 Adds two vectors together. More...
 
static Vector operator- (Vector a, Vector b)
 Subtracts a vector from another. More...
 
static Vector operator* (Vector a, Vector b)
 Multiplies two vectors together. More...
 
static Vector operator* (float scalar, Vector vec)
 Multiplies a vector by a scalar. More...
 
static Vector operator* (Vector vec, float scalar)
 Multiplies a vector by a scalar. More...
 
static Vector operator/ (Vector a, Vector b)
 Divides each component of a vector by the corresponding component of another. More...
 
static Vector operator/ (Vector vec, float denom)
 Divides a vector by a scalar. More...
 
static Vector Min (Vector a, Vector b)
 Finds the component-wise minimum of two vectors. More...
 
static Vector Max (Vector a, Vector b)
 Finds the component-wise maximum of two vectors. More...
 
static float Angle (Vector from, Vector to)
 Finds the smallest angle between two vectors. More...
 
static Vector Lerp (Vector from, Vector to, float t)
 Linearly interpolates between two vectors. More...
 
static Vector Slerp (Vector from, Vector to, float t)
 Spherically interpolates between two vectors. More...
 

Public Attributes

readonly float X
 X component of the vector. More...
 
readonly float Y
 Y component of the vector. More...
 
readonly float Z
 Z component of the vector. More...
 

Static Public Attributes

static readonly Vector Zero = new Vector(0, 0, 0)
 The zero vector with 0 for X, Y, and Z. More...
 
static readonly Vector One = new Vector(1, 1, 1)
 A vector with 1 for X, Y, and Z. More...
 
static readonly Vector UnitX = new Vector(1, 0, 0)
 A unit vector pointing along +X. More...
 
static readonly Vector UnitY = new Vector(0, 1, 0)
 A unit vector pointing along +Y. More...
 
static readonly Vector UnitZ = new Vector(0, 0, 1)
 A unit vector pointing along +Z. More...
 

Properties

float Length [get]
 Finds the length of the vector. More...
 
float LengthSquared [get]
 Finds the squared length of the vector. More...
 
Vector NormalizedSafe [get]
 Finds a unit vector pointing in the same direction as this one. If the original vector has approximately zero length, the zero vector is returned. More...
 
Vector Normalized [get]
 Finds a unit vector pointing in the same direction as this one. Use NormalizedSafe for vectors that may have zero length. More...
 
float this[int index] [get]
 Gets a component of the vector by indexl with 0 for X, 1 for Y, and 2 for Z. More...
 

Detailed Description

Represents a position or offset in 3D space.

Constructor & Destructor Documentation

Chunks.Geometry.Vector.Vector ( float  x,
float  y 
)

Constructs a new vector with the given X and Y components, with 0 for the Z component.

Parameters
xX component
yY component
Chunks.Geometry.Vector.Vector ( float  x,
float  y,
float  z 
)

Constructs a new vector with the given X, Y, and Z components.

Parameters
xX component
yY component
zZ component

Member Function Documentation

static float Chunks.Geometry.Vector.Angle ( Vector  from,
Vector  to 
)
static

Finds the smallest angle between two vectors.

Parameters
fromStarting vector
toEnding vector
Vector Chunks.Geometry.Vector.Cross ( Vector  other)

Finds the cross product of this vector and another.

Parameters
otherVector to find the cross product with
float Chunks.Geometry.Vector.Dot ( Vector  other)

Finds the scalar product of this vector and another.

Parameters
otherVector to find the scalar product with
bool Chunks.Geometry.Vector.Equals ( Vector  other)

Tests for equality with another vector.

Parameters
otherVector to test for equality with
bool Chunks.Geometry.Vector.Equals ( Vector  other,
float  epsilon 
)

Tests for equality with another vector within a given margin of error.

Parameters
otherVector to test for equality with
epsilonInclusive margin of error
override bool Chunks.Geometry.Vector.Equals ( object  obj)

Tests for equality with another object.

Parameters
objObject to test for equality with
IntVector Chunks.Geometry.Vector.FloorToInt ( )
override int Chunks.Geometry.Vector.GetHashCode ( )

Returns the hash code for this vector.

static Vector Chunks.Geometry.Vector.Lerp ( Vector  from,
Vector  to,
float  t 
)
static

Linearly interpolates between two vectors.

Parameters
fromStarting vector
toEnding vector
tInterpolation parameter
static Vector Chunks.Geometry.Vector.Max ( Vector  a,
Vector  b 
)
static

Finds the component-wise maximum of two vectors.

Parameters
aFirst vector to find the maximum of
bSecond vector to find the maximum of
static Vector Chunks.Geometry.Vector.Min ( Vector  a,
Vector  b 
)
static

Finds the component-wise minimum of two vectors.

Parameters
aFirst vector to find the minimum of
bSecond vector to find the minimum of
static implicit Chunks.Geometry.Vector.operator Vector ( Vector2D  a)
static
static implicit Chunks.Geometry.Vector.operator Vector ( IntVector  vec)
static

Casts an integer vector into a float vector.

Parameters
vecVector to cast
static Chunks.Geometry.Vector.operator Vector2D ( Vector  a)
explicitstatic
static Vector Chunks.Geometry.Vector.operator* ( Vector  a,
Vector  b 
)
static

Multiplies two vectors together.

Parameters
aFirst vector to multiply
bSecond vector to multiply
static Vector Chunks.Geometry.Vector.operator* ( float  scalar,
Vector  vec 
)
static

Multiplies a vector by a scalar.

Parameters
vecVector to multiply
scalarScalar value to multiply by
static Vector Chunks.Geometry.Vector.operator* ( Vector  vec,
float  scalar 
)
static

Multiplies a vector by a scalar.

Parameters
vecVector to multiply
scalarScalar value to multiply by
static Vector Chunks.Geometry.Vector.operator+ ( Vector  a)
static
static Vector Chunks.Geometry.Vector.operator+ ( Vector  a,
Vector  b 
)
static

Adds two vectors together.

Parameters
aFirst vector to add
bSecond vector to add
static Vector Chunks.Geometry.Vector.operator- ( Vector  a)
static

Negates a vector.

Parameters
aVector to negate
static Vector Chunks.Geometry.Vector.operator- ( Vector  a,
Vector  b 
)
static

Subtracts a vector from another.

Parameters
aVector to be subtracted from
bVector to subtract
static Vector Chunks.Geometry.Vector.operator/ ( Vector  a,
Vector  b 
)
static

Divides each component of a vector by the corresponding component of another.

Parameters
aNumerator vector
bDenomenator vector
static Vector Chunks.Geometry.Vector.operator/ ( Vector  vec,
float  denom 
)
static

Divides a vector by a scalar.

Parameters
vecVector to divide
denomScalar value to divide by
static Vector Chunks.Geometry.Vector.Slerp ( Vector  from,
Vector  to,
float  t 
)
static

Spherically interpolates between two vectors.

Parameters
fromStarting vector
toEnding vector
tInterpolation parameter
override string Chunks.Geometry.Vector.ToString ( )

Returns a string representation of this vector.

Member Data Documentation

readonly Vector Chunks.Geometry.Vector.One = new Vector(1, 1, 1)
static

A vector with 1 for X, Y, and Z.

readonly Vector Chunks.Geometry.Vector.UnitX = new Vector(1, 0, 0)
static

A unit vector pointing along +X.

readonly Vector Chunks.Geometry.Vector.UnitY = new Vector(0, 1, 0)
static

A unit vector pointing along +Y.

readonly Vector Chunks.Geometry.Vector.UnitZ = new Vector(0, 0, 1)
static

A unit vector pointing along +Z.

readonly float Chunks.Geometry.Vector.X

X component of the vector.

readonly float Chunks.Geometry.Vector.Y

Y component of the vector.

readonly float Chunks.Geometry.Vector.Z

Z component of the vector.

readonly Vector Chunks.Geometry.Vector.Zero = new Vector(0, 0, 0)
static

The zero vector with 0 for X, Y, and Z.

Property Documentation

float Chunks.Geometry.Vector.Length
get

Finds the length of the vector.

float Chunks.Geometry.Vector.LengthSquared
get

Finds the squared length of the vector.

Vector Chunks.Geometry.Vector.Normalized
get

Finds a unit vector pointing in the same direction as this one. Use NormalizedSafe for vectors that may have zero length.

Vector Chunks.Geometry.Vector.NormalizedSafe
get

Finds a unit vector pointing in the same direction as this one. If the original vector has approximately zero length, the zero vector is returned.

float Chunks.Geometry.Vector.this[int index]
get

Gets a component of the vector by indexl with 0 for X, 1 for Y, and 2 for Z.

Parameters
indexIndex of the component to get

The documentation for this struct was generated from the following file: