RenderStack 11.06.1
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Properties
RenderStack.Math.Vector4 Struct Reference
Inheritance diagram for RenderStack.Math.Vector4:
RenderStack.Math.ILinear

List of all members.

Public Member Functions

 Vector4 (float x, float y, float z, float w)
 Vector4 (Vector3 v, float w)
 Vector4 (Vector2 v, float z, float w)
override string ToString ()
ILinear PlusWeightTimesOther (float weight, ILinear other)
bool Equals (Vector4 other)
override int GetHashCode ()
override bool Equals (object o)

Static Public Member Functions

static Vector4 operator- (Vector4 vec)
static Vector4 operator- (Vector4 left, Vector4 right)
static Vector4 operator* (float scale, Vector4 vec)
static Vector4 operator* (Vector4 vec, float scale)
static Vector4 operator* (Vector4 left, Vector4 right)
static Vector4 operator/ (Vector4 vec, float scale)
static Vector4 operator+ (Vector4 left, Vector4 right)
static Vector4 Min (Vector4 a, Vector4 b)
static Vector4 Max (Vector4 a, Vector4 b)
static Vector4 Mix (Vector4 a, Vector4 b, float t)
static Vector4 BaryCentric (Vector4 a, Vector4 b, Vector4 c, float u, float v)
static Vector4 Clamp (Vector4 v, float min, float max)
static Vector4 Clamp (Vector4 vec, Vector4 min, Vector4 max)
static Vector4 Floor (Vector4 v)
static Vector4 Normalize (Vector4 v)
static Vector3 Homogenize (Vector4 v)
static float Dot (Vector4 left, Vector4 right)
static Vector4 Cross (Vector4 x, Vector4 y, Vector4 z)
static bool operator== (Vector4 a, Vector4 b)
static bool operator!= (Vector4 a, Vector4 b)

Public Attributes

float X
float Y
float Z
float W

Static Public Attributes

static Vector4 Zero = new Vector4(0, 0, 0, 0)
static readonly Vector4 One = new Vector4(1, 1, 1, 1)
static Vector4 UnitX = new Vector4(1, 0, 0, 0)
static Vector4 UnitY = new Vector4(0, 1, 0, 0)
static Vector4 UnitZ = new Vector4(0, 0, 1, 0)
static Vector4 UnitW = new Vector4(0, 0, 0, 1)

Properties

Vector3 Xyz [get]
Vector2 Xy [get]
float Length [get]
float LengthSquared [get]

Detailed Description

Definition at line 29 of file Vector4.cs.


Constructor & Destructor Documentation

RenderStack.Math.Vector4.Vector4 ( float  x,
float  y,
float  z,
float  w 
)

Definition at line 43 of file Vector4.cs.

        {
            X = x;
            Y = y;
            Z = z;
            W = w;
        }
RenderStack.Math.Vector4.Vector4 ( Vector3  v,
float  w 
)

Definition at line 50 of file Vector4.cs.

References RenderStack.Math.Vector3.X, RenderStack.Math.Vector3.Y, and RenderStack.Math.Vector3.Z.

        {
            X = v.X;
            Y = v.Y;
            Z = v.Z;
            W = w;
        }
RenderStack.Math.Vector4.Vector4 ( Vector2  v,
float  z,
float  w 
)

Definition at line 57 of file Vector4.cs.

References RenderStack.Math.Vector2.X, and RenderStack.Math.Vector2.Y.

        {
            X = v.X;
            Y = v.Y;
            Z = z;
            W = w;
        }

Member Function Documentation

static Vector4 RenderStack.Math.Vector4.operator- ( Vector4  vec) [static]

Definition at line 94 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(-vec.X, -vec.Y, -vec.Z, -vec.W);
        }
static Vector4 RenderStack.Math.Vector4.operator- ( Vector4  left,
Vector4  right 
) [static]

Definition at line 98 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(left.X - right.X, left.Y - right.Y, left.Z - right.Z, left.W - right.W);
        }
static Vector4 RenderStack.Math.Vector4.operator* ( float  scale,
Vector4  vec 
) [static]

Definition at line 102 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(scale * vec.X, scale * vec.Y, scale * vec.Z, scale * vec.W);
        }
static Vector4 RenderStack.Math.Vector4.operator* ( Vector4  vec,
float  scale 
) [static]

Definition at line 106 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(scale * vec.X, scale * vec.Y, scale * vec.Z, scale * vec.W);
        }
static Vector4 RenderStack.Math.Vector4.operator* ( Vector4  left,
Vector4  right 
) [static]

Definition at line 110 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(left.X * right.X, left.Y * right.Y, left.Z * right.Z, left.W * right.W);
        }
static Vector4 RenderStack.Math.Vector4.operator/ ( Vector4  vec,
float  scale 
) [static]

Definition at line 114 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(vec.X / scale, vec.Y / scale, vec.Z / scale, vec.W / scale);
        }
static Vector4 RenderStack.Math.Vector4.operator+ ( Vector4  left,
Vector4  right 
) [static]

Definition at line 118 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(left.X + right.X, left.Y + right.Y, left.Z + right.Z, left.W + right.W);
        }
static Vector4 RenderStack.Math.Vector4.Min ( Vector4  a,
Vector4  b 
) [static]

Definition at line 123 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(
                a.X < b.X ? a.X : b.X,
                a.Y < b.Y ? a.Y : b.Y,
                a.Z < b.Z ? a.Z : b.Z,
                a.W < b.W ? a.W : b.W
            );
        }
static Vector4 RenderStack.Math.Vector4.Max ( Vector4  a,
Vector4  b 
) [static]

Definition at line 132 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(
                a.X > b.X ? a.X : b.X,
                a.Y > b.Y ? a.Y : b.Y,
                a.Z > b.Z ? a.Z : b.Z,
                a.W > b.W ? a.W : b.W
            );
        }
static Vector4 RenderStack.Math.Vector4.Mix ( Vector4  a,
Vector4  b,
float  t 
) [static]

Definition at line 141 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(
                t * (b.X - a.X) + a.X,
                t * (b.Y - a.Y) + a.Y,
                t * (b.Z - a.Z) + a.Z,
                t * (b.W - a.W) + a.W
            );
        }
static Vector4 RenderStack.Math.Vector4.BaryCentric ( Vector4  a,
Vector4  b,
Vector4  c,
float  u,
float  v 
) [static]

Definition at line 150 of file Vector4.cs.

        {
            return a + u * (b - a) + v * (c - a);
        }
static Vector4 RenderStack.Math.Vector4.Clamp ( Vector4  v,
float  min,
float  max 
) [static]

Definition at line 154 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            if(v.X < min) v.X = min;
            if(v.X > max) v.X = max;
            if(v.Y < min) v.Y = min;
            if(v.Y > max) v.Y = max;
            if(v.Z < min) v.Z = min;
            if(v.Z > max) v.Z = max;
            if(v.W < min) v.W = min;
            if(v.W > max) v.W = max;
            return v;
        }
static Vector4 RenderStack.Math.Vector4.Clamp ( Vector4  vec,
Vector4  min,
Vector4  max 
) [static]

Definition at line 166 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            vec.X = vec.X < min.X ? min.X : vec.X > max.X ? max.X : vec.X;
            vec.Y = vec.Y < min.Y ? min.Y : vec.Y > max.Y ? max.Y : vec.Y;
            vec.Z = vec.Z < min.Z ? min.Z : vec.Z > max.Z ? max.Z : vec.Z;
            vec.W = vec.W < min.W ? min.W : vec.W > max.W ? max.W : vec.W;
            return vec;
        }
static Vector4 RenderStack.Math.Vector4.Floor ( Vector4  v) [static]

Definition at line 174 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(
                (float)System.Math.Floor(v.X),
                (float)System.Math.Floor(v.Y),
                (float)System.Math.Floor(v.Z),
                (float)System.Math.Floor(v.W)
            );
        }
static Vector4 RenderStack.Math.Vector4.Normalize ( Vector4  v) [static]

Definition at line 191 of file Vector4.cs.

References RenderStack.Math.Vector4.Length, RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            float length = v.Length;
            return new Vector4(v.X / length, v.Y / length, v.Z / length, v.W / length);
        }
static Vector3 RenderStack.Math.Vector4.Homogenize ( Vector4  v) [static]

Definition at line 196 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

Referenced by RenderStack.Math.Matrix4.ProjectToScreenSpace().

        {
            return new Vector3(v.X / v.W, v.Y / v.W, v.Z / v.W);
        }
static float RenderStack.Math.Vector4.Dot ( Vector4  left,
Vector4  right 
) [static]

Definition at line 200 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return left.X * right.X + left.Y * right.Y + left.Z * right.Z + left.W * right.W;
        }
static Vector4 RenderStack.Math.Vector4.Cross ( Vector4  x,
Vector4  y,
Vector4  z 
) [static]

Definition at line 204 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return new Vector4(
                x.Y * y.Z * z.W + x.Z * y.W * z.Y + x.W * y.Y * z.Z - x.Y * y.W * z.Z - x.Z * y.Y * z.W - x.W * y.Z * z.Y,
                x.X * y.W * z.Z + x.Z * y.X * z.W + x.W * y.Z * z.X - x.X * y.Z * z.W - x.Z * y.W * z.X - x.W * y.X * z.Z,
                x.X * y.Y * z.W + x.Y * y.W * z.X + x.W * y.X * z.Y - x.X * y.W * z.Y - x.Y * y.X * z.W - x.W * y.Y * z.X,
                x.X * y.Z * z.Y + x.Y * y.X * z.Z + x.Z * y.Y * z.X - x.X * y.Y * z.Z - x.Y * y.Z * z.X - x.Z * y.X * z.Y
            );
        }
override string RenderStack.Math.Vector4.ToString ( )

Definition at line 214 of file Vector4.cs.

        {
            return String.Format("({0}, {1}, {2}, {3})", X, Y, Z, W);
        }
ILinear RenderStack.Math.Vector4.PlusWeightTimesOther ( float  weight,
ILinear  other 
)

Implements RenderStack.Math.ILinear.

Definition at line 219 of file Vector4.cs.

        {
            this += weight * (Vector4)other;
            return this;
        }
static bool RenderStack.Math.Vector4.operator== ( Vector4  a,
Vector4  b 
) [static]

Definition at line 225 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return
                (a.X == b.X) &&
                (a.Y == b.Y) &&
                (a.Z == b.Z) &&
                (a.W == b.W);
        }
static bool RenderStack.Math.Vector4.operator!= ( Vector4  a,
Vector4  b 
) [static]

Definition at line 233 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return
                (a.X != b.X) ||
                (a.Y != b.Y) ||
                (a.Z != b.Z) ||
                (a.W != b.W);
        }
bool RenderStack.Math.Vector4.Equals ( Vector4  other)

Definition at line 241 of file Vector4.cs.

References RenderStack.Math.Vector4.W, RenderStack.Math.Vector4.X, RenderStack.Math.Vector4.Y, and RenderStack.Math.Vector4.Z.

        {
            return
                (X == other.X) &&
                (Y == other.Y) &&
                (Z == other.Z) &&
                (W == other.W);
        }
override int RenderStack.Math.Vector4.GetHashCode ( )

Definition at line 250 of file Vector4.cs.

        {
            return X.GetHashCode() ^ Y.GetHashCode() ^ Z.GetHashCode() ^ W.GetHashCode();
        }
override bool RenderStack.Math.Vector4.Equals ( object  o)

Definition at line 254 of file Vector4.cs.

        {
            if(o is Vector4)
            {
                Vector4 c = (Vector4)o;
                return this == c;
            }
            return false;
        }

Member Data Documentation

Vector4 RenderStack.Math.Vector4.Zero = new Vector4(0, 0, 0, 0) [static]

Definition at line 36 of file Vector4.cs.

Referenced by RenderStack.Geometry.Corner.SmoothAverage().

readonly Vector4 RenderStack.Math.Vector4.One = new Vector4(1, 1, 1, 1) [static]

Definition at line 37 of file Vector4.cs.

Vector4 RenderStack.Math.Vector4.UnitX = new Vector4(1, 0, 0, 0) [static]

Definition at line 38 of file Vector4.cs.

Vector4 RenderStack.Math.Vector4.UnitY = new Vector4(0, 1, 0, 0) [static]

Definition at line 39 of file Vector4.cs.

Vector4 RenderStack.Math.Vector4.UnitZ = new Vector4(0, 0, 1, 0) [static]

Definition at line 40 of file Vector4.cs.

Vector4 RenderStack.Math.Vector4.UnitW = new Vector4(0, 0, 0, 1) [static]

Definition at line 41 of file Vector4.cs.


Property Documentation

Vector3 RenderStack.Math.Vector4.Xyz [get]

Definition at line 66 of file Vector4.cs.

Vector2 RenderStack.Math.Vector4.Xy [get]

Definition at line 73 of file Vector4.cs.

float RenderStack.Math.Vector4.Length [get]

Definition at line 80 of file Vector4.cs.

Referenced by RenderStack.Math.Vector4.Normalize().

float RenderStack.Math.Vector4.LengthSquared [get]

Definition at line 87 of file Vector4.cs.


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