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

List of all members.

Public Member Functions

 Vector3 (float x, float y, float z)
 Vector3 (double x, double y, double z)
 Vector3 (Vector3 p)
 Vector3 (Vector2 xy, float z)
float Distance (Vector3 v)
float DistanceSquared (Vector3 v)
override string ToString ()
ILinear PlusWeightTimesOther (float weight, ILinear other)
override int GetHashCode ()
bool System.IEquatable< Vector3 >. Equals (Vector3 o)
override bool Equals (object o)

Static Public Member Functions

static Vector3 Vector3FromUint (uint i)
static uint UintFromVector3 (Vector3 v)
static float PointLineDistance (Vector3 x0, Vector3 x1, Vector3 x2)
static Vector3 operator- (Vector3 vec)
static Vector3 operator- (Vector3 left, Vector3 right)
static Vector3 operator* (float scale, Vector3 vec)
static Vector3 operator* (Vector3 vec, float scale)
static Vector3 operator* (Vector3 left, Vector3 right)
static Vector3 operator/ (Vector3 vec, float scale)
static Vector3 operator+ (Vector3 left, Vector3 right)
static Vector3 Min (Vector3 a, Vector3 b)
static Vector3 Max (Vector3 a, Vector3 b)
static Vector3 Mix (Vector3 a, Vector3 b, float t)
static Vector3 Clamp (Vector3 v, float min, float max)
static Vector3 Clamp (Vector3 vec, Vector3 min, Vector3 max)
static Vector3 Floor (Vector3 v)
static Vector3 Normalize (Vector3 v)
static float Dot (Vector3 left, Vector3 right)
static Vector3 Cross (Vector3 left, Vector3 right)
static bool operator== (Vector3 a, Vector3 b)
static bool operator!= (Vector3 a, Vector3 b)

Public Attributes

float X
float Y
float Z

Static Public Attributes

static Vector3 Zero = new Vector3(0, 0, 0)
static Vector3 One = new Vector3(1, 1, 1)
static Vector3 UnitX = new Vector3(1, 0, 0)
static Vector3 UnitY = new Vector3(0, 1, 0)
static Vector3 UnitZ = new Vector3(0, 0, 1)
static Vector3 MinValue = new Vector3(Single.MinValue, Single.MinValue, Single.MinValue)
static Vector3 MaxValue = new Vector3(Single.MaxValue, Single.MaxValue, Single.MaxValue)

Properties

Vector2 Xy [get]
float Length [get]
float LengthSquared [get]
Vector3 MaxAxis [get]
Vector3 MinAxis [get]

Detailed Description

Definition at line 29 of file Vector3.cs.


Constructor & Destructor Documentation

RenderStack.Math.Vector3.Vector3 ( float  x,
float  y,
float  z 
)

Definition at line 43 of file Vector3.cs.

        {
            X = x;
            Y = y;
            Z = z;
        }
RenderStack.Math.Vector3.Vector3 ( double  x,
double  y,
double  z 
)

Definition at line 50 of file Vector3.cs.

        {
            X = (float)(x);
            Y = (float)(y);
            Z = (float)(z);
        }
RenderStack.Math.Vector3.Vector3 ( Vector3  p)

Definition at line 57 of file Vector3.cs.

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

        {
            X = p.X;
            Y = p.Y;
            Z = p.Z;
        }
RenderStack.Math.Vector3.Vector3 ( Vector2  xy,
float  z 
)

Definition at line 64 of file Vector3.cs.

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

        {
            X = xy.X;
            Y = xy.Y;
            Z = z;
        }

Member Function Documentation

static Vector3 RenderStack.Math.Vector3.Vector3FromUint ( uint  i) [static]

Definition at line 94 of file Vector3.cs.

Referenced by RenderStack.Mesh.GeometryMesh.BuildMeshFromGeometry().

        {
            uint r = (i >> 16) & 0xff;
            uint g = (i >>  8) & 0xff;
            uint b = (i >>  0) & 0xff;

            return new Vector3(
                r / 255.0f,
                g / 255.0f,
                b / 255.0f
            );
        }
static uint RenderStack.Math.Vector3.UintFromVector3 ( Vector3  v) [static]

Definition at line 107 of file Vector3.cs.

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

        {
            float   rf  = v.X * 255.0f;
            float   gf  = v.Y * 255.0f;
            float   bf  = v.Z * 255.0f;
            uint    r   = (uint)System.Math.Round(rf) << 16;
            uint    g   = (uint)System.Math.Round(gf) <<  8;
            uint    b   = (uint)System.Math.Round(bf) <<  0;
            uint    i   = r | g | b;

            return i;
        }
float RenderStack.Math.Vector3.Distance ( Vector3  v)

Definition at line 120 of file Vector3.cs.

References RenderStack.Math.Vector3.Length.

        {
            Vector3 d = v - this;
            return d.Length;
        }
float RenderStack.Math.Vector3.DistanceSquared ( Vector3  v)
static float RenderStack.Math.Vector3.PointLineDistance ( Vector3  x0,
Vector3  x1,
Vector3  x2 
) [static]

Definition at line 130 of file Vector3.cs.

References RenderStack.Math.Vector3.Dot(), and RenderStack.Math.Vector3.LengthSquared.

        {
            Vector3 x1_x0   = x1 - x0;
            Vector3 x2_x1   = x2 - x1;

            float a   = x1_x0.LengthSquared * x2_x1.LengthSquared;
            float dot = Vector3.Dot(x1_x0, x2_x1);
            return (a - dot * dot) / x2_x1.LengthSquared;
        }
static Vector3 RenderStack.Math.Vector3.operator- ( Vector3  vec) [static]

Definition at line 139 of file Vector3.cs.

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

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

Definition at line 143 of file Vector3.cs.

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

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

Definition at line 147 of file Vector3.cs.

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

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

Definition at line 151 of file Vector3.cs.

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

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

Definition at line 155 of file Vector3.cs.

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

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

Definition at line 159 of file Vector3.cs.

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

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

Definition at line 163 of file Vector3.cs.

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

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

Definition at line 167 of file Vector3.cs.

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

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

Definition at line 175 of file Vector3.cs.

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

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

Definition at line 183 of file Vector3.cs.

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

        {
            return new Vector3(
                t * (b.X - a.X) + a.X,
                t * (b.Y - a.Y) + a.Y,
                t * (b.Z - a.Z) + a.Z
            );
        }
static Vector3 RenderStack.Math.Vector3.Clamp ( Vector3  v,
float  min,
float  max 
) [static]

Definition at line 191 of file Vector3.cs.

References RenderStack.Math.Vector3.X, RenderStack.Math.Vector3.Y, and RenderStack.Math.Vector3.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;
            return v;
        }
static Vector3 RenderStack.Math.Vector3.Clamp ( Vector3  vec,
Vector3  min,
Vector3  max 
) [static]

Definition at line 201 of file Vector3.cs.

References RenderStack.Math.Vector3.X, RenderStack.Math.Vector3.Y, and RenderStack.Math.Vector3.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;
            return vec;
        }
static Vector3 RenderStack.Math.Vector3.Floor ( Vector3  v) [static]

Definition at line 208 of file Vector3.cs.

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

        {
            return new Vector3(
                (float)System.Math.Floor(v.X),
                (float)System.Math.Floor(v.Y),
                (float)System.Math.Floor(v.Z)
            );
        }
static Vector3 RenderStack.Math.Vector3.Normalize ( Vector3  v) [static]
static float RenderStack.Math.Vector3.Dot ( Vector3  left,
Vector3  right 
) [static]
static Vector3 RenderStack.Math.Vector3.Cross ( Vector3  left,
Vector3  right 
) [static]
override string RenderStack.Math.Vector3.ToString ( )

Definition at line 264 of file Vector3.cs.

Referenced by RenderStack.Scene.Frame.Debug().

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

Implements RenderStack.Math.ILinear.

Definition at line 269 of file Vector3.cs.

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

Definition at line 275 of file Vector3.cs.

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

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

Definition at line 280 of file Vector3.cs.

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

        {
            return (a.X != b.X) || (a.Y != b.Y) || (a.Z != b.Z);
        }
override int RenderStack.Math.Vector3.GetHashCode ( )

Definition at line 285 of file Vector3.cs.

        {
            return X.GetHashCode() ^ Y.GetHashCode() ^ Z.GetHashCode();
        }
bool System.IEquatable<Vector3>. RenderStack.Math.Vector3.Equals ( Vector3  o)

Definition at line 290 of file Vector3.cs.

        {
            return this == o;
        }
override bool RenderStack.Math.Vector3.Equals ( object  o)

Definition at line 295 of file Vector3.cs.

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

Member Data Documentation

Definition at line 35 of file Vector3.cs.

Referenced by RenderStack.Scene.Frame.Debug().

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

Definition at line 36 of file Vector3.cs.

Definition at line 37 of file Vector3.cs.

Definition at line 38 of file Vector3.cs.

Referenced by RenderStack.Mesh.GeometryMesh.BuildMeshFromGeometry().

Vector3 RenderStack.Math.Vector3.MinValue = new Vector3(Single.MinValue, Single.MinValue, Single.MinValue) [static]

Definition at line 40 of file Vector3.cs.

Vector3 RenderStack.Math.Vector3.MaxValue = new Vector3(Single.MaxValue, Single.MaxValue, Single.MaxValue) [static]

Definition at line 41 of file Vector3.cs.


Property Documentation

Vector2 RenderStack.Math.Vector3.Xy [get]

Definition at line 72 of file Vector3.cs.

float RenderStack.Math.Vector3.Length [get]
float RenderStack.Math.Vector3.LengthSquared [get]
Vector3 RenderStack.Math.Vector3.MaxAxis [get]

Definition at line 234 of file Vector3.cs.

Vector3 RenderStack.Math.Vector3.MinAxis [get]

Definition at line 249 of file Vector3.cs.

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


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