SharpDX.Mathematics Represents a unit independent angle using a single-precision floating-point internal representation. A value that specifies the size of a single degree. A value that specifies the size of a single minute. A value that specifies the size of a single second. A value that specifies the size of a single radian. A value that specifies the size of a single milliradian. A value that specifies the size of a single gradian. The internal representation of the angle. Initializes a new instance of the SharpDX.AngleSingle structure with the given unit dependant angle and unit type. A unit dependant measure of the angle. The type of unit the angle argument is. Initializes a new instance of the SharpDX.AngleSingle structure using the arc length formula (θ = s/r). The measure of the arc. The radius of the circle. Wraps this SharpDX.AngleSingle to be in the range [π, -π]. Wraps this SharpDX.AngleSingle to be in the range [0, 2π). Gets or sets the total number of revolutions this SharpDX.AngleSingle represents. Gets or sets the total number of degrees this SharpDX.AngleSingle represents. Gets or sets the minutes component of the degrees this SharpDX.AngleSingle represents. When setting the minutes, if the value is in the range (-60, 60) the whole degrees are not changed; otherwise, the whole degrees may be changed. Fractional values may set the seconds component. Gets or sets the seconds of the degrees this SharpDX.AngleSingle represents. When setting the seconds, if the value is in the range (-60, 60) the whole minutes or whole degrees are not changed; otherwise, the whole minutes or whole degrees may be changed. Gets or sets the total number of radians this SharpDX.AngleSingle represents. Gets or sets the total number of milliradians this SharpDX.AngleSingle represents. One milliradian is equal to 1/(2000π). Gets or sets the total number of gradians this SharpDX.AngleSingle represents. Gets a System.Boolean that determines whether this SharpDX.Angle is a right angle (i.e. 90° or π/2). Gets a System.Boolean that determines whether this SharpDX.Angle is a straight angle (i.e. 180° or π). Gets a System.Boolean that determines whether this SharpDX.Angle is a full rotation angle (i.e. 360° or 2π). Gets a System.Boolean that determines whether this SharpDX.Angle is an oblique angle (i.e. is not 90° or a multiple of 90°). Gets a System.Boolean that determines whether this SharpDX.Angle is an acute angle (i.e. less than 90° but greater than 0°). Gets a System.Boolean that determines whether this SharpDX.Angle is an obtuse angle (i.e. greater than 90° but less than 180°). Gets a System.Boolean that determines whether this SharpDX.Angle is a reflex angle (i.e. greater than 180° but less than 360°). Gets a SharpDX.AngleSingle instance that complements this angle (i.e. the two angles add to 90°). Gets a SharpDX.AngleSingle instance that supplements this angle (i.e. the two angles add to 180°). Wraps the SharpDX.AngleSingle given in the value argument to be in the range [π, -π]. A SharpDX.AngleSingle to wrap. The SharpDX.AngleSingle that is wrapped. Wraps the SharpDX.AngleSingle given in the value argument to be in the range [0, 2π). A SharpDX.AngleSingle to wrap. The SharpDX.AngleSingle that is wrapped. Compares two SharpDX.AngleSingle instances and returns the smaller angle. The first SharpDX.AngleSingle instance to compare. The second SharpDX.AngleSingle instance to compare. The smaller of the two given SharpDX.AngleSingle instances. Compares two SharpDX.AngleSingle instances and returns the greater angle. The first SharpDX.AngleSingle instance to compare. The second SharpDX.AngleSingle instance to compare. The greater of the two given SharpDX.AngleSingle instances. Adds two SharpDX.AngleSingle objects and returns the result. The first object to add. The second object to add. The value of the two objects added together. Subtracts two SharpDX.AngleSingle objects and returns the result. The first object to subtract. The second object to subtract. The value of the two objects subtracted. Multiplies two SharpDX.AngleSingle objects and returns the result. The first object to multiply. The second object to multiply. The value of the two objects multiplied together. Divides two SharpDX.AngleSingle objects and returns the result. The numerator object. The denominator object. The value of the two objects divided. Gets a new SharpDX.AngleSingle instance that represents the zero angle (i.e. 0°). Gets a new SharpDX.AngleSingle instance that represents the right angle (i.e. 90° or π/2). Gets a new SharpDX.AngleSingle instance that represents the straight angle (i.e. 180° or π). Gets a new SharpDX.AngleSingle instance that represents the full rotation angle (i.e. 360° or 2π). Returns a System.Boolean that indicates whether the values of two SharpDX.Angle objects are equal. The first object to compare. The second object to compare. True if the left and right parameters have the same value; otherwise, false. Returns a System.Boolean that indicates whether the values of two SharpDX.Angle objects are not equal. The first object to compare. The second object to compare. True if the left and right parameters do not have the same value; otherwise, false. Returns a System.Boolean that indicates whether a SharpDX.Angle object is less than another SharpDX.AngleSingle object. The first object to compare. The second object to compare. True if left is less than right; otherwise, false. Returns a System.Boolean that indicates whether a SharpDX.Angle object is greater than another SharpDX.AngleSingle object. The first object to compare. The second object to compare. True if left is greater than right; otherwise, false. Returns a System.Boolean that indicates whether a SharpDX.Angle object is less than or equal to another SharpDX.AngleSingle object. The first object to compare. The second object to compare. True if left is less than or equal to right; otherwise, false. Returns a System.Boolean that indicates whether a SharpDX.Angle object is greater than or equal to another SharpDX.AngleSingle object. The first object to compare. The second object to compare. True if left is greater than or equal to right; otherwise, false. Returns the value of the SharpDX.AngleSingle operand. (The sign of the operand is unchanged.) A SharpDX.AngleSingle object. The value of the value parameter. Returns the the negated value of the SharpDX.AngleSingle operand. A SharpDX.AngleSingle object. The negated value of the value parameter. Adds two SharpDX.AngleSingle objects and returns the result. The first object to add. The second object to add. The value of the two objects added together. Subtracts two SharpDX.AngleSingle objects and returns the result. The first object to subtract The second object to subtract. The value of the two objects subtracted. Multiplies two SharpDX.AngleSingle objects and returns the result. The first object to multiply. The second object to multiply. The value of the two objects multiplied together. Divides two SharpDX.AngleSingle objects and returns the result. The numerator object. The denominator object. The value of the two objects divided. Compares this instance to a specified object and returns an integer that indicates whether the value of this instance is less than, equal to, or greater than the value of the specified object. The object to compare. A signed integer that indicates the relationship of the current instance to the obj parameter. If the value is less than zero, the current instance is less than the other. If the value is zero, the current instance is equal to the other. If the value is greater than zero, the current instance is greater than the other. Compares this instance to a second SharpDX.AngleSingle and returns an integer that indicates whether the value of this instance is less than, equal to, or greater than the value of the specified object. The object to compare. A signed integer that indicates the relationship of the current instance to the obj parameter. If the value is less than zero, the current instance is less than the other. If the value is zero, the current instance is equal to the other. If the value is greater than zero, the current instance is greater than the other. Returns a value that indicates whether the current instance and a specified SharpDX.AngleSingle object have the same value. The object to compare. Returns true if this SharpDX.AngleSingle object and another have the same value; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this SharpDX.AngleSingle instance. A 32-bit signed integer hash code. Returns a value that indicates whether the current instance and a specified object have the same value. The object to compare. Returns true if the obj parameter is a SharpDX.AngleSingle object or a type capable of implicit conversion to a SharpDX.AngleSingle value, and its value is equal to the value of the current SharpDX.Angle object; otherwise, false. The assembly is a managed Math API. The namespace provides managed Direct3D Compiler API. dd607340 Math Math Represents a four dimensional mathematical vector of bool (32 bits per bool value). The size of the type, in bytes. A with all of its components set to false. The X unit (true, 0, 0, 0). The Y unit (0, true, 0, 0). The Z unit (0, 0, true, 0). The W unit (0, 0, 0, true). A with all of its components set to true. The X component of the vector. The Y component of the vector. The Z component of the vector. The W component of the vector. The X component of the vector. The Y component of the vector. The Z component of the vector. The W component of the vector. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. Initial value for the X component of the vector. Initial value for the Y component of the vector. Initial value for the Z component of the vector. Initial value for the W component of the vector. Initializes a new instance of the struct. The values to assign to the X, Y, Z, and W components of the vector. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets or sets the component at the specified index. The value of the X, Y, Z, or W component, depending on the index. The index of the component to access. Use 0 for the X component, 1 for the Y component, 2 for the Z component, and 3 for the W component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Creates an array containing the elements of the vector. A four-element array containing the components of the vector. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from array to . The input. The result of the conversion. Performs an implicit conversion from to array. The input. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents an axis-aligned bounding box in three dimensional space. The minimum point of the box. The maximum point of the box. Initializes a new instance of the struct. The minimum vertex of the bounding box. The maximum vertex of the bounding box. Retrieves the eight corners of the bounding box. An array of points representing the eight corners of the bounding box. Retrieves the eight corners of the bounding box. An array of points representing the eight corners of the bounding box. Determines if there is an intersection between the current object and a . The ray to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The plane to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. Whether the two objects intersected. Determines whether the current objects contains a point. The point to test. The type of containment the two objects have. Determines whether the current objects contains a point. The point to test. The type of containment the two objects have. Determines whether the current objects contains a . The box to test. The type of containment the two objects have. Determines whether the current objects contains a . The box to test. The type of containment the two objects have. Determines whether the current objects contains a . The sphere to test. The type of containment the two objects have. Determines whether the current objects contains a . The sphere to test. The type of containment the two objects have. Constructs a that fully contains the given points. The points that will be contained by the box. When the method completes, contains the newly constructed bounding box. Thrown when is null. Constructs a that fully contains the given points. The points that will be contained by the box. The newly constructed bounding box. Thrown when is null. Constructs a from a given sphere. The sphere that will designate the extents of the box. When the method completes, contains the newly constructed bounding box. Constructs a from a given sphere. The sphere that will designate the extents of the box. The newly constructed bounding box. Constructs a that is as large as the total combined area of the two specified boxes. The first box to merge. The second box to merge. When the method completes, contains the newly constructed bounding box. Constructs a that is as large as the total combined area of the two specified boxes. The first box to merge. The second box to merge. The newly constructed bounding box. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Defines a frustum which can be used in frustum culling, zoom to Extents (zoom to fit) operations, (matrix, frustum, camera) interchange, and many kind of intersection testing. Gets or sets the Matrix that describes this bounding frustum. Gets the near plane of the BoundingFrustum. Gets the far plane of the BoundingFrustum. Gets the left plane of the BoundingFrustum. Gets the right plane of the BoundingFrustum. Gets the top plane of the BoundingFrustum. Gets the bottom plane of the BoundingFrustum. Creates a new instance of BoundingFrustum. Combined matrix that usually takes view × projection matrix. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Implements the operator ==. The left. The right. The result of the operator. Implements the operator !=. The left. The right. The result of the operator. Returns one of the 6 planes related to this frustum. Plane index where 0 fro Left, 1 for Right, 2 for Top, 3 for Bottom, 4 for Near, 5 for Far Creates a new frustum relaying on perspective camera parameters The camera pos. The look dir. Up dir. The fov. The znear. The zfar. The aspect. The bounding frustum calculated from perspective camera Creates a new frustum relaying on perspective camera parameters The camera params. The bounding frustum from camera params Returns the 8 corners of the frustum, element0 is Near1 (near right down corner) , element1 is Near2 (near right top corner) , element2 is Near3 (near Left top corner) , element3 is Near4 (near Left down corner) , element4 is Far1 (far right down corner) , element5 is Far2 (far right top corner) , element6 is Far3 (far left top corner) , element7 is Far4 (far left down corner) The 8 corners of the frustum Returns the 8 corners of the frustum, element0 is Near1 (near right down corner) , element1 is Near2 (near right top corner) , element2 is Near3 (near Left top corner) , element3 is Near4 (near Left down corner) , element4 is Far1 (far right down corner) , element5 is Far2 (far right top corner) , element6 is Far3 (far left top corner) , element7 is Far4 (far left down corner) The 8 corners of the frustum Extracts perspective camera parameters from the frustum, doesn't work with orthographic frustums. Perspective camera parameters from the frustum Checks whether a point lay inside, intersects or lay outside the frustum. The point. Type of the containment Checks whether a point lay inside, intersects or lay outside the frustum. The point. Type of the containment Checks whether a group of points lay totally inside the frustum (Contains), or lay partially inside the frustum (Intersects), or lay outside the frustum (Disjoint). The points. Type of the containment Checks whether a group of points lay totally inside the frustum (Contains), or lay partially inside the frustum (Intersects), or lay outside the frustum (Disjoint). The points. Type of the containment. Determines the intersection relationship between the frustum and a bounding box. The box. Type of the containment Determines the intersection relationship between the frustum and a bounding box. The box. Type of the containment Determines the intersection relationship between the frustum and a bounding box. The box. Type of the containment. Determines the intersection relationship between the frustum and a bounding sphere. The sphere. Type of the containment Determines the intersection relationship between the frustum and a bounding sphere. The sphere. Type of the containment Determines the intersection relationship between the frustum and a bounding sphere. The sphere. Type of the containment. Determines the intersection relationship between the frustum and another bounding frustum. The frustum. Type of the containment Determines the intersection relationship between the frustum and another bounding frustum. The frustum. Type of the containment Determines the intersection relationship between the frustum and another bounding frustum. The frustum. Type of the containment. Checks whether the current BoundingFrustum intersects a BoundingSphere. The sphere. Type of the containment Checks whether the current BoundingFrustum intersects a BoundingSphere. The sphere. Set to true if the current BoundingFrustum intersects a BoundingSphere. Checks whether the current BoundingFrustum intersects a BoundingBox. The box. true if the current BoundingFrustum intersects a BoundingSphere. Checks whether the current BoundingFrustum intersects a BoundingBox. The box. true if the current BoundingFrustum intersects a BoundingSphere. Checks whether the current BoundingFrustum intersects the specified Plane. The plane. Plane intersection type. Checks whether the current BoundingFrustum intersects the specified Plane. The plane. Plane intersection type. Get the width of the frustum at specified depth. the depth at which to calculate frustum width. With of the frustum at the specified depth Get the height of the frustum at specified depth. the depth at which to calculate frustum height. Height of the frustum at the specified depth Checks whether the current BoundingFrustum intersects the specified Ray. The ray. true if the current BoundingFrustum intersects the specified Ray. Checks whether the current BoundingFrustum intersects the specified Ray. The Ray to check for intersection with. The distance at which the ray enters the frustum if there is an intersection and the ray starts outside the frustum. The distance at which the ray exits the frustum if there is an intersection. true if the current BoundingFrustum intersects the specified Ray. Get the distance which when added to camera position along the lookat direction will do the effect of zoom to extents (zoom to fit) operation, so all the passed points will fit in the current view. if the returned value is positive, the camera will move toward the lookat direction (ZoomIn). if the returned value is negative, the camera will move in the reverse direction of the lookat direction (ZoomOut). The points. The zoom to fit distance Get the distance which when added to camera position along the lookat direction will do the effect of zoom to extents (zoom to fit) operation, so all the passed points will fit in the current view. if the returned value is positive, the camera will move toward the lookat direction (ZoomIn). if the returned value is negative, the camera will move in the reverse direction of the lookat direction (ZoomOut). The bounding box. The zoom to fit distance Get the vector shift which when added to camera position will do the effect of zoom to extents (zoom to fit) operation, so all the passed points will fit in the current view. The points. The zoom to fit vector Get the vector shift which when added to camera position will do the effect of zoom to extents (zoom to fit) operation, so all the passed points will fit in the current view. The bounding box. The zoom to fit vector Indicate whether the current BoundingFrustrum is Orthographic. true if the current BoundingFrustrum is Orthographic; otherwise, false. Represents a bounding sphere in three dimensional space. The center of the sphere in three dimensional space. The radius of the sphere. Initializes a new instance of the struct. The center of the sphere in three dimensional space. The radius of the sphere. Determines if there is an intersection between the current object and a . The ray to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The plane to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a triangle. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. Whether the two objects intersected. Determines whether the current objects contains a point. The point to test. The type of containment the two objects have. Determines whether the current objects contains a triangle. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. The type of containment the two objects have. Determines whether the current objects contains a . The box to test. The type of containment the two objects have. Determines whether the current objects contains a . The sphere to test. The type of containment the two objects have. Constructs a that fully contains the given points. The points that will be contained by the sphere. The start index from points array to start compute the bounding sphere. The count of points to process to compute the bounding sphere. When the method completes, contains the newly constructed bounding sphere. points start or count Constructs a that fully contains the given points. The points that will be contained by the sphere. When the method completes, contains the newly constructed bounding sphere. Constructs a that fully contains the given points. The points that will be contained by the sphere. The newly constructed bounding sphere. Constructs a from a given box. The box that will designate the extents of the sphere. When the method completes, the newly constructed bounding sphere. Constructs a from a given box. The box that will designate the extents of the sphere. The newly constructed bounding sphere. Constructs a that is the as large as the total combined area of the two specified spheres. The first sphere to merge. The second sphere to merge. When the method completes, contains the newly constructed bounding sphere. Constructs a that is the as large as the total combined area of the two specified spheres. The first sphere to merge. The second sphere to merge. The newly constructed bounding sphere. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Contains static methods to help in determining intersections, containment, etc. Determines the closest point between a point and a triangle. The point to test. The first vertex to test. The second vertex to test. The third vertex to test. When the method completes, contains the closest point between the two objects. Determines the closest point between a and a point. The plane to test. The point to test. When the method completes, contains the closest point between the two objects. Determines the closest point between a and a point. The box to test. The point to test. When the method completes, contains the closest point between the two objects. Determines the closest point between a and a point. The point to test. When the method completes, contains the closest point between the two objects; or, if the point is directly in the center of the sphere, contains . Determines the closest point between a and a . The first sphere to test. The second sphere to test. When the method completes, contains the closest point between the two objects; or, if the point is directly in the center of the sphere, contains . If the two spheres are overlapping, but not directly on top of each other, the closest point is the 'closest' point of intersection. This can also be considered is the deepest point of intersection. Determines the distance between a and a point. The plane to test. The point to test. The distance between the two objects. Determines the distance between a and a point. The box to test. The point to test. The distance between the two objects. Determines the distance between a and a . The first box to test. The second box to test. The distance between the two objects. Determines the distance between a and a point. The sphere to test. The point to test. The distance between the two objects. Determines the distance between a and a . The first sphere to test. The second sphere to test. The distance between the two objects. Determines whether there is an intersection between a and a point. The ray to test. The point to test. Whether the two objects intersect. Determines whether there is an intersection between a and a . The first ray to test. The second ray to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersect. This method performs a ray vs ray intersection test based on the following formula from Goldman. s = det([o_2 - o_1, d_2, d_1 x d_2]) / ||d_1 x d_2||^2 t = det([o_2 - o_1, d_1, d_1 x d_2]) / ||d_1 x d_2||^2 Where o_1 is the position of the first ray, o_2 is the position of the second ray, d_1 is the normalized direction of the first ray, d_2 is the normalized direction of the second ray, det denotes the determinant of a matrix, x denotes the cross product, [ ] denotes a matrix, and || || denotes the length or magnitude of a vector. Determines whether there is an intersection between a and a . The ray to test. The plane to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersect. Determines whether there is an intersection between a and a . The ray to test. The plane to test When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines whether there is an intersection between a and a triangle. The ray to test. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. This method tests if the ray intersects either the front or back of the triangle. If the ray is parallel to the triangle's plane, no intersection is assumed to have happened. If the intersection of the ray and the triangle is behind the origin of the ray, no intersection is assumed to have happened. In both cases of assumptions, this method returns false. Determines whether there is an intersection between a and a triangle. The ray to test. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines whether there is an intersection between a and a . The ray to test. The box to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines whether there is an intersection between a and a . The ray to test. The box to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines whether there is an intersection between a and a . The ray to test. The sphere to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines whether there is an intersection between a and a . The ray to test. The sphere to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines whether there is an intersection between a and a point. The plane to test. The point to test. Whether the two objects intersected. Determines whether there is an intersection between a and a . The first plane to test. The second plane to test. Whether the two objects intersected. Determines whether there is an intersection between a and a . The first plane to test. The second plane to test. When the method completes, contains the line of intersection as a , or a zero ray if there was no intersection. Whether the two objects intersected. Although a ray is set to have an origin, the ray returned by this method is really a line in three dimensions which has no real origin. The ray is considered valid when both the positive direction is used and when the negative direction is used. Determines whether there is an intersection between a and a triangle. The plane to test. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. Whether the two objects intersected. Determines whether there is an intersection between a and a . The plane to test. The box to test. Whether the two objects intersected. Determines whether there is an intersection between a and a . The plane to test. The sphere to test. Whether the two objects intersected. Determines whether there is an intersection between a and a . The first box to test. The second box to test. Whether the two objects intersected. Determines whether there is an intersection between a and a . The box to test. The sphere to test. Whether the two objects intersected. Determines whether there is an intersection between a and a triangle. The sphere to test. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. Whether the two objects intersected. Determines whether there is an intersection between a and a . First sphere to test. Second sphere to test. Whether the two objects intersected. Determines whether a contains a point. The box to test. The point to test. The type of containment the two objects have. Determines whether a contains a . The first box to test. The second box to test. The type of containment the two objects have. Determines whether a contains a . The box to test. The sphere to test. The type of containment the two objects have. Determines whether a contains a point. The sphere to test. The point to test. The type of containment the two objects have. Determines whether a contains a triangle. The sphere to test. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. The type of containment the two objects have. Determines whether a contains a . The sphere to test. The box to test. The type of containment the two objects have. Determines whether a contains a . The first sphere to test. The second sphere to test. The type of containment the two objects have. Represents a 32-bit color (4 bytes) in the form of RGBA (in byte order: R, G, B, A). List of predefined . The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color. Initializes a new instance of the struct. Alpha is set to 255. The red component of the color. The green component of the color. The blue component of the color. Initializes a new instance of the struct. Passed values are clamped within byte range. The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color Initializes a new instance of the struct. Alpha is set to 255. Passed values are clamped within byte range. The red component of the color. The green component of the color. The blue component of the color. Initializes a new instance of the struct. The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color. Initializes a new instance of the struct. Alpha is set to 255. The red component of the color. The green component of the color. The blue component of the color. Initializes a new instance of the struct. The red, green, blue, and alpha components of the color. Initializes a new instance of the struct. The red, green, and blue components of the color. The alpha component of the color. Initializes a new instance of the struct. Alpha is set to 255. The red, green, and blue components of the color. Initializes a new instance of the struct. A packed integer containing all four color components in RGBA order. Initializes a new instance of the struct. A packed integer containing all four color components in RGBA order. Initializes a new instance of the struct. The values to assign to the red, green, and blue, alpha components of the color. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Initializes a new instance of the struct. The values to assign to the alpha, red, green, and blue components of the color. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets or sets the component at the specified index. The value of the alpha, red, green, or blue component, depending on the index. The index of the component to access. Use 0 for the alpha component, 1 for the red component, 2 for the green component, and 3 for the blue component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a three component vector. A three component vector containing the red, green, and blue components of the color. Converts the color into a three component color. A three component color containing the red, green, and blue components of the color. Converts the color into a four component vector. A four component vector containing all four color components. Creates an array containing the elements of the color. A four-element array containing the components of the color in RGBA order. Gets the brightness. The Hue-Saturation-Brightness (HSB) brightness for this Gets the hue. The Hue-Saturation-Brightness (HSB) hue for this Gets the saturation. The Hue-Saturation-Brightness (HSB) saturation for this Adds two colors. The first color to add. The second color to add. When the method completes, completes the sum of the two colors. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract. WHen the method completes, contains the difference of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract The difference of the two colors. Modulates two colors. The first color to modulate. The second color to modulate. When the method completes, contains the modulated color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Scales a color. The color to scale. The amount by which to scale. When the method completes, contains the scaled color. Scales a color. The color to scale. The amount by which to scale. The scaled color. Negates a color. The color to negate. When the method completes, contains the negated color. Negates a color. The color to negate. The negated color. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Computes the premultiplied value of the provided color. The non-premultiplied value. The premultiplied result. Computes the premultiplied value of the provided color. The non-premultiplied value. The premultiplied result. Converts the color from a packed BGRA integer. A packed integer containing all four color components in BGRA order A color. Converts the color from a packed BGRA integer. A packed integer containing all four color components in BGRA order A color. Converts the color from a packed ABGR integer. A packed integer containing all four color components in ABGR order A color. Converts the color from a packed ABGR integer. A packed integer containing all four color components in ABGR order A color. Converts the color from a packed BGRA integer. A packed integer containing all four color components in RGBA order A color. Converts the color from a packed BGRA integer. A packed integer containing all four color components in RGBA order A color. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two colors. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. When the method completes, contains an new color composed of the largest components of the source colors. Returns a color containing the largest components of the specified colorss. The first source color. The second source color. A color containing the largest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. When the method completes, contains an new color composed of the smallest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. A color containing the smallest components of the source colors. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. When the method completes, contains the adjusted color. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. The adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. When the method completes, contains the adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. The adjusted color. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Assert a color (return it unchanged). The color to assert (unchanged). The asserted (unchanged) color. Subtracts two colors. The first color to subtract. The second color to subtract. The difference of the two colors. Negates a color. The color to negate. A negated color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Convert this instance to a The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to nullable . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format to apply to each channel element (byte). A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format to apply to each channel element (byte). The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Zero color. Transparent color. AliceBlue color. AntiqueWhite color. Aqua color. Aquamarine color. Azure color. Beige color. Bisque color. Black color. BlanchedAlmond color. Blue color. BlueViolet color. Brown color. BurlyWood color. CadetBlue color. Chartreuse color. Chocolate color. Coral color. CornflowerBlue color. Cornsilk color. Crimson color. Cyan color. DarkBlue color. DarkCyan color. DarkGoldenrod color. DarkGray color. DarkGreen color. DarkKhaki color. DarkMagenta color. DarkOliveGreen color. DarkOrange color. DarkOrchid color. DarkRed color. DarkSalmon color. DarkSeaGreen color. DarkSlateBlue color. DarkSlateGray color. DarkTurquoise color. DarkViolet color. DeepPink color. DeepSkyBlue color. DimGray color. DodgerBlue color. Firebrick color. FloralWhite color. ForestGreen color. Fuchsia color. Gainsboro color. GhostWhite color. Gold color. Goldenrod color. Gray color. Green color. GreenYellow color. Honeydew color. HotPink color. IndianRed color. Indigo color. Ivory color. Khaki color. Lavender color. LavenderBlush color. LawnGreen color. LemonChiffon color. LightBlue color. LightCoral color. LightCyan color. LightGoldenrodYellow color. LightGray color. LightGreen color. LightPink color. LightSalmon color. LightSeaGreen color. LightSkyBlue color. LightSlateGray color. LightSteelBlue color. LightYellow color. Lime color. LimeGreen color. Linen color. Magenta color. Maroon color. MediumAquamarine color. MediumBlue color. MediumOrchid color. MediumPurple color. MediumSeaGreen color. MediumSlateBlue color. MediumSpringGreen color. MediumTurquoise color. MediumVioletRed color. MidnightBlue color. MintCream color. MistyRose color. Moccasin color. NavajoWhite color. Navy color. OldLace color. Olive color. OliveDrab color. Orange color. OrangeRed color. Orchid color. PaleGoldenrod color. PaleGreen color. PaleTurquoise color. PaleVioletRed color. PapayaWhip color. PeachPuff color. Peru color. Pink color. Plum color. PowderBlue color. Purple color. Red color. RosyBrown color. RoyalBlue color. SaddleBrown color. Salmon color. SandyBrown color. SeaGreen color. SeaShell color. Sienna color. Silver color. SkyBlue color. SlateBlue color. SlateGray color. Snow color. SpringGreen color. SteelBlue color. Tan color. Teal color. Thistle color. Tomato color. Turquoise color. Violet color. Wheat color. White color. WhiteSmoke color. Yellow color. YellowGreen color. Represents a color in the form of rgb. The Black color (0, 0, 0). The White color (1, 1, 1, 1). The red component of the color. The green component of the color. The blue component of the color. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The red component of the color. The green component of the color. The blue component of the color. Initializes a new instance of the struct. The red, green, and blue components of the color. Initializes a new instance of the struct. A packed integer containing all three color components in RGB order. The alpha component is ignored. Initializes a new instance of the struct. The values to assign to the red, green, and blue components of the color. This must be an array with three elements. Thrown when is null. Thrown when contains more or less than four elements. Gets or sets the component at the specified index. The value of the red, green, or blue component, depending on the index. The index of the component to access. Use 0 for the red component, 1 for the green component, and 2 for the blue component. The value of the component at the specified index. Thrown when the is out of the range [0, 2]. Converts the color into a packed integer. A packed integer containing all three color components. The alpha channel is set to 255. Converts the color into a packed integer. A packed integer containing all three color components. The alpha channel is set to 255. Converts the color into a three component vector. A three component vector containing the red, green, and blue components of the color. Creates an array containing the elements of the color. A three-element array containing the components of the color. Adds two colors. The first color to add. The second color to add. When the method completes, completes the sum of the two colors. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract. WHen the method completes, contains the difference of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract The difference of the two colors. Modulates two colors. The first color to modulate. The second color to modulate. When the method completes, contains the modulated color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Scales a color. The color to scale. The amount by which to scale. When the method completes, contains the scaled color. Scales a color. The color to scale. The amount by which to scale. The scaled color. Negates a color. The color to negate. When the method completes, contains the negated color. Negates a color. The color to negate. The negated color. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two colors. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. When the method completes, contains an new color composed of the largest components of the source colors. Returns a color containing the largest components of the specified colors. The first source color. The second source color. A color containing the largest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. When the method completes, contains an new color composed of the smallest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. A color containing the smallest components of the source colors. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. When the method completes, contains the adjusted color. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. The adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. When the method completes, contains the adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. The adjusted color. Computes the premultiplied value of the provided color. The non-premultiplied value. The color alpha. The premultiplied result. Computes the premultiplied value of the provided color. The non-premultiplied value. The color alpha. The premultiplied color. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Assert a color (return it unchanged). The color to assert (unchanged). The asserted (unchanged) color. Subtracts two colors. The first color to subtract. The second color to subtract. The difference of the two colors. Negates a color. The color to negate. A negated color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format to apply to each channel element (float) A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format to apply to each channel element (float). The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents a color in the form of rgba. The Black color (0, 0, 0, 1). The White color (1, 1, 1, 1). The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color. Initializes a new instance of the struct. The red, green, blue, and alpha components of the color. Initializes a new instance of the struct. The red, green, and blue components of the color. The alpha component of the color. Initializes a new instance of the struct. A packed integer containing all four color components in RGBA order. Initializes a new instance of the struct. A packed integer containing all four color components in RGBA order. Initializes a new instance of the struct. The values to assign to the red, green, blue, and alpha components of the color. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Initializes a new instance of the struct. used to initialize the color. Initializes a new instance of the struct. used to initialize the color. The alpha component of the color. Gets or sets the component at the specified index. The value of the red, green, blue, and alpha components, depending on the index. The index of the component to access. Use 0 for the alpha component, 1 for the red component, 2 for the green component, and 3 for the blue component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a three component vector. A three component vector containing the red, green, and blue components of the color. Converts the color into a four component vector. A four component vector containing all four color components. Creates an array containing the elements of the color. A four-element array containing the components of the color. Adds two colors. The first color to add. The second color to add. When the method completes, completes the sum of the two colors. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract. WHen the method completes, contains the difference of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract The difference of the two colors. Modulates two colors. The first color to modulate. The second color to modulate. When the method completes, contains the modulated color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Scales a color. The color to scale. The amount by which to scale. When the method completes, contains the scaled color. Scales a color. The color to scale. The amount by which to scale. The scaled color. Negates a color. The color to negate. When the method completes, contains the negated color. Negates a color. The color to negate. The negated color. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two colors. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. When the method completes, contains an new color composed of the largest components of the source colors. Returns a color containing the largest components of the specified colors. The first source color. The second source color. A color containing the largest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. When the method completes, contains an new color composed of the smallest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. A color containing the smallest components of the source colors. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. When the method completes, contains the adjusted color. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. The adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. When the method completes, contains the adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. The adjusted color. Computes the premultiplied value of the provided color. The non-premultiplied value. The premultiplied result. Computes the premultiplied value of the provided color. The non-premultiplied value. The premultiplied result. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Assert a color (return it unchanged). The color to assert (unchanged). The asserted (unchanged) color. Subtracts two colors. The first color to subtract. The second color to subtract. The difference of the two colors. Negates a color. The color to negate. A negated color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format to apply to each channel (float). A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format to apply to each channel (float). The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents a 32-bit color (4 bytes) in the form of BGRA (in byte order: B, G, B, A). The blue component of the color. The green component of the color. The red component of the color. The alpha component of the color. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color. Initializes a new instance of the struct. The red component of the color. The green component of the color. The blue component of the color. The alpha component of the color. Initializes a new instance of the struct. The red, green, blue, and alpha components of the color. Initializes a new instance of the struct. The red, green, and blue components of the color. The alpha component of the color. Initializes a new instance of the struct. A packed integer containing all four color components in BGRA order. Initializes a new instance of the struct. A packed integer containing all four color components in BGRA. Initializes a new instance of the struct. The values to assign to the red, green, and blue, alpha components of the color. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Initializes a new instance of the struct. The values to assign to the red, green, and blue, alpha components of the color. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets or sets the component at the specified index. The value of the alpha, red, green, or blue component, depending on the index. The index of the component to access. Use 0 for the alpha component, 1 for the red component, 2 for the green component, and 3 for the blue component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a packed integer. A packed integer containing all four color components. Converts the color into a three component vector. A three component vector containing the red, green, and blue components of the color. Converts the color into a three component color. A three component color containing the red, green, and blue components of the color. Converts the color into a four component vector. A four component vector containing all four color components. Creates an array containing the elements of the color. A four-element array containing the components of the color in BGRA order. Gets the brightness. The Hue-Saturation-Brightness (HSB) saturation for this Gets the hue. The Hue-Saturation-Brightness (HSB) saturation for this Gets the saturation. The Hue-Saturation-Brightness (HSB) saturation for this Converts the color from a packed BGRA integer. A packed integer containing all four color components in BGRA order A color. Converts the color from a packed BGRA integer. A packed integer containing all four color components in BGRA order A color. Converts the color from a packed RGBA integer. A packed integer containing all four color components in RGBA order A color. Converts the color from a packed RGBA integer. A packed integer containing all four color components in RGBA order A color. Adds two colors. The first color to add. The second color to add. When the method completes, completes the sum of the two colors. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract. WHen the method completes, contains the difference of the two colors. Subtracts two colors. The first color to subtract. The second color to subtract The difference of the two colors. Modulates two colors. The first color to modulate. The second color to modulate. When the method completes, contains the modulated color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Scales a color. The color to scale. The amount by which to scale. When the method completes, contains the scaled color. Scales a color. The color to scale. The amount by which to scale. The scaled color. Negates a color. The color to negate. When the method completes, contains the negated color. Negates a color. The color to negate. The negated color. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The linear interpolation of the two colors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two colors. Performs a cubic interpolation between two colors. Start color. End color. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two colors. Returns a color containing the smallest components of the specified colorss. The first source color. The second source color. When the method completes, contains an new color composed of the largest components of the source colorss. Returns a color containing the largest components of the specified colorss. The first source color. The second source color. A color containing the largest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. When the method completes, contains an new color composed of the smallest components of the source colors. Returns a color containing the smallest components of the specified colors. The first source color. The second source color. A color containing the smallest components of the source colors. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. When the method completes, contains the adjusted color. Adjusts the contrast of a color. The color whose contrast is to be adjusted. The amount by which to adjust the contrast. The adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. When the method completes, contains the adjusted color. Adjusts the saturation of a color. The color whose saturation is to be adjusted. The amount by which to adjust the saturation. The adjusted color. Computes the premultiplied value of the provided color. The non-premultiplied value. The premultiplied result. Computes the premultiplied value of the provided color. The non-premultiplied value. The premultiplied result. Adds two colors. The first color to add. The second color to add. The sum of the two colors. Assert a color (return it unchanged). The color to assert (unchange). The asserted (unchanged) color. Subtracts two colors. The first color to subtract. The second color to subtract. The difference of the two colors. Negates a color. The color to negate. A negated color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Scales a color. The factor by which to scale the color. The color to scale. The scaled color. Modulates two colors. The first color to modulate. The second color to modulate. The modulated color. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format to apply to each channel (byte). A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format to apply to each channel (byte). The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Describes the type of angle. Specifies an angle measurement in revolutions. Specifies an angle measurement in degrees. Specifies an angle measurement in radians. Specifies an angle measurement in gradians. Describes how one bounding volume contains another. The two bounding volumes don't intersect at all. One bounding volume completely contains another. The two bounding volumes overlap. Describes the result of an intersection with a plane in three dimensions. The object is behind the plane. The object is in front of the plane. The object is intersecting the plane. Frustum camera parameters. Position of the camera. Looking at direction of the camera. Up direction. Field of view. Z near distance. Z far distance. Aspect ratio. A half precision (16 bit) floating point value. Number of decimal digits of precision. Number of bits in the mantissa. Maximum decimal exponent. Maximum binary exponent. Minimum decimal exponent. Minimum binary exponent. Exponent radix. Additional rounding. Smallest such that 1.0 + epsilon != 1.0 Maximum value of the number. Minimum value of the number. Initializes a new instance of the structure. The floating point value that should be stored in 16 bit format. Initializes a new instance of the structure. The floating point value that should be stored in 16 bit format. Gets or sets the raw 16 bit value used to back this half-float. Converts an array of half precision values into full precision values. The values to be converted. An array of converted values. Converts an array of full precision values into half precision values. The values to be converted. An array of converted values. Performs an explicit conversion from to . The value to be converted. The converted value. Performs an implicit conversion from to . The value to be converted. The converted value. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Converts the value of the object to its equivalent string representation. The string representation of the value of this instance. Returns the hash code for this instance. A 32-bit signed integer hash code. Determines whether the specified object instances are considered equal. true if is the same instance as or if both are null references or if value1.Equals(value2) returns true; otherwise, false. Returns a value that indicates whether the current instance is equal to the specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Returns a value that indicates whether the current instance is equal to a specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Defines a two component vector, using half precision floating point coordinates. Gets or sets the X component of the vector. The X component of the vector. Gets or sets the Y component of the vector. The Y component of the vector. Initializes a new instance of the structure. The X component. The Y component. Initializes a new instance of the structure. The X component. The Y component. Initializes a new instance of the structure. The X component. The Y component. Initializes a new instance of the structure. The value to set for both the X and Y components. Initializes a new instance of the structure. Value to initialize X and Y components with. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Determines whether the specified object instances are considered equal. true if is the same instance as or if both are null references or if value1.Equals(value2) returns true; otherwise, false. Returns a value that indicates whether the current instance is equal to the specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Returns a value that indicates whether the current instance is equal to a specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Defines a three component vector, using half precision floating point coordinates. Gets or sets the X component of the vector. The X component of the vector. Gets or sets the Y component of the vector. The Y component of the vector. Gets or sets the Z component of the vector. The Z component of the vector. Initializes a new instance of the structure. The X component. The Y component. The Z component. Initializes a new instance of the structure. The X component. The Y component. The Z component. Initializes a new instance of the structure. The X component. The Y component. The Z component. Initializes a new instance of the structure. The value to set for the X, Y, and Z components. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Determines whether the specified object instances are considered equal. true if is the same instance as or if both are null references or if value1.Equals(value2) returns true; otherwise, false. Returns a value that indicates whether the current instance is equal to the specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Returns a value that indicates whether the current instance is equal to a specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Defines a four component vector, using half precision floating point coordinates. Gets or sets the X component of the vector. The X component of the vector. Gets or sets the Y component of the vector. The Y component of the vector. Gets or sets the Z component of the vector. The Z component of the vector. Gets or sets the W component of the vector. The W component of the vector. Initializes a new instance of the structure. The X component. The Y component. The Z component. The W component. Initializes a new instance of the structure. The X component. The Y component. The Z component. The W component. Initializes a new instance of the structure. The X component. The Y component. The Z component. The W component. Initializes a new instance of the structure. The value to set for the X, Y, Z, and W components. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer hash code. Determines whether the specified object instances are considered equal. true if is the same instance as or if both are null references or if value1.Equals(value2) returns true; otherwise, false. Returns a value that indicates whether the current instance is equal to the specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Returns a value that indicates whether the current instance is equal to a specified object. Object to make the comparison with. true if the current instance is equal to the specified object; false otherwise. Helper class to perform Half/Float conversion. Code extract from paper : www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf by Jeroen van der Zijp Unpacks the specified h. The h. Packs the specified f. The f. Represents a three dimensional mathematical int vector. The size of the type, in bytes. A with all of its components set to zero. The X unit (1, 0, 0). The Y unit (0, 1, 0). The Z unit (0, 0, 1). A with all of its components set to one. The X component of the vector. The Y component of the vector. The Z component of the vector. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. Initial value for the X component of the vector. Initial value for the Y component of the vector. Initial value for the Z component of the vector. Initializes a new instance of the struct. The values to assign to the X, Y, Z, and W components of the vector. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets or sets the component at the specified index. The value of the X, Y, Z, or W component, depending on the index. The index of the component to access. Use 0 for the X component, 1 for the Y component, 2 for the Z component, and 3 for the W component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Creates an array containing the elements of the vector. A four-element array containing the components of the vector. Adds two vectors. The first vector to add. The second vector to add. When the method completes, contains the sum of the two vectors. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Subtracts two vectors. The first vector to subtract. The second vector to subtract. When the method completes, contains the difference of the two vectors. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Modulates a vector with another by performing component-wise multiplication. The first vector to modulate. The second vector to modulate. When the method completes, contains the modulated vector. Modulates a vector with another by performing component-wise multiplication. The first vector to modulate. The second vector to modulate. The modulated vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Reverses the direction of a given vector. The vector to negate. When the method completes, contains a vector facing in the opposite direction. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the largest components of the source vectors. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. A vector containing the largest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the smallest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. A vector containing the smallest components of the source vectors. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Assert a vector (return it unchanged). The vector to assert (unchanged). The asserted (unchanged) vector. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from array to . The input. The result of the conversion. Performs an implicit conversion from to array. The input. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents a four dimensional mathematical vector. The size of the type, in bytes. A with all of its components set to zero. The X unit (1, 0, 0, 0). The Y unit (0, 1, 0, 0). The Z unit (0, 0, 1, 0). The W unit (0, 0, 0, 1). A with all of its components set to one. The X component of the vector. The Y component of the vector. The Z component of the vector. The W component of the vector. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. Initial value for the X component of the vector. Initial value for the Y component of the vector. Initial value for the Z component of the vector. Initial value for the W component of the vector. Initializes a new instance of the struct. The values to assign to the X, Y, Z, and W components of the vector. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets or sets the component at the specified index. The value of the X, Y, Z, or W component, depending on the index. The index of the component to access. Use 0 for the X component, 1 for the Y component, 2 for the Z component, and 3 for the W component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Creates an array containing the elements of the vector. A four-element array containing the components of the vector. Adds two vectors. The first vector to add. The second vector to add. When the method completes, contains the sum of the two vectors. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Subtracts two vectors. The first vector to subtract. The second vector to subtract. When the method completes, contains the difference of the two vectors. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Modulates a vector with another by performing component-wise multiplication. The first vector to modulate. The second vector to modulate. When the method completes, contains the modulated vector. Modulates a vector with another by performing component-wise multiplication. The first vector to modulate. The second vector to modulate. The modulated vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Reverses the direction of a given vector. The vector to negate. When the method completes, contains a vector facing in the opposite direction. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the largest components of the source vectors. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. A vector containing the largest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the smallest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. A vector containing the smallest components of the source vectors. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Assert a vector (return it unchanged). The vector to assert (unchanged). The asserted (unchanged) vector. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from array to . The input. The result of the conversion. Performs an implicit conversion from to array. The input. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. The value for which all absolute numbers smaller than are considered equal to zero. A value specifying the approximation of π which is 180 degrees. A value specifying the approximation of 2π which is 360 degrees. A value specifying the approximation of π/2 which is 90 degrees. A value specifying the approximation of π/4 which is 45 degrees. Checks if a and b are almost equals, taking into account the magnitude of floating point numbers (unlike method). See Remarks. See remarks. The left value to compare. The right value to compare. true if a almost equal to b, false otherwise The code is using the technique described by Bruce Dawson in Comparing Floating point numbers 2012 edition. Determines whether the specified value is close to zero (0.0f). The floating value. true if the specified value is close to zero (0.0f); otherwise, false. Determines whether the specified value is close to one (1.0f). The floating value. true if the specified value is close to one (1.0f); otherwise, false. Checks if a - b are almost equals within a float epsilon. The left value to compare. The right value to compare. Epsilon value true if a almost equal to b within a float epsilon, false otherwise Converts revolutions to degrees. The value to convert. The converted value. Converts revolutions to radians. The value to convert. The converted value. Converts revolutions to gradians. The value to convert. The converted value. Converts degrees to revolutions. The value to convert. The converted value. Converts degrees to radians. The value to convert. The converted value. Converts radians to revolutions. The value to convert. The converted value. Converts radians to gradians. The value to convert. The converted value. Converts gradians to revolutions. The value to convert. The converted value. Converts gradians to degrees. The value to convert. The converted value. Converts gradians to radians. The value to convert. The converted value. Converts radians to degrees. The value to convert. The converted value. Clamps the specified value. The value. The min. The max. The result of clamping a value between min and max Clamps the specified value. The value. The min. The max. The result of clamping a value between min and max Interpolates between two values using a linear function by a given amount. See http://www.encyclopediaofmath.org/index.php/Linear_interpolation and http://fgiesen.wordpress.com/2012/08/15/linear-interpolation-past-present-and-future/ Value to interpolate from. Value to interpolate to. Interpolation amount. The result of linear interpolation of values based on the amount. Interpolates between two values using a linear function by a given amount. See http://www.encyclopediaofmath.org/index.php/Linear_interpolation and http://fgiesen.wordpress.com/2012/08/15/linear-interpolation-past-present-and-future/ Value to interpolate from. Value to interpolate to. Interpolation amount. The result of linear interpolation of values based on the amount. Interpolates between two values using a linear function by a given amount. See http://www.encyclopediaofmath.org/index.php/Linear_interpolation and http://fgiesen.wordpress.com/2012/08/15/linear-interpolation-past-present-and-future/ Value to interpolate from. Value to interpolate to. Interpolation amount. The result of linear interpolation of values based on the amount. Performs smooth (cubic Hermite) interpolation between 0 and 1. See https://en.wikipedia.org/wiki/Smoothstep Value between 0 and 1 indicating interpolation amount. Performs a smooth(er) interpolation between 0 and 1 with 1st and 2nd order derivatives of zero at endpoints. See https://en.wikipedia.org/wiki/Smoothstep Value between 0 and 1 indicating interpolation amount. Calculates the modulo of the specified value. The value. The modulo. The result of the modulo applied to value Calculates the modulo 2*PI of the specified value. The value. The result of the modulo applied to value Wraps the specified value into a range [min, max] The value to wrap. The min. The max. Result of the wrapping. Is thrown when is greater than . Wraps the specified value into a range [min, max[ The value. The min. The max. Result of the wrapping. Is thrown when is greater than . Gauss function. http://en.wikipedia.org/wiki/Gaussian_function#Two-dimensional_Gaussian_function Curve amplitude. Position X. Position Y Center X. Center Y. Curve sigma X. Curve sigma Y. The result of Gaussian function. Gauss function. http://en.wikipedia.org/wiki/Gaussian_function#Two-dimensional_Gaussian_function Curve amplitude. Position X. Position Y Center X. Center Y. Curve sigma X. Curve sigma Y. The result of Gaussian function. Represents a 4x4 mathematical matrix. The size of the type, in bytes. A with all of its components set to zero. The identity . Value at row 1 column 1 of the matrix. Value at row 1 column 2 of the matrix. Value at row 1 column 3 of the matrix. Value at row 1 column 4 of the matrix. Value at row 2 column 1 of the matrix. Value at row 2 column 2 of the matrix. Value at row 2 column 3 of the matrix. Value at row 2 column 4 of the matrix. Value at row 3 column 1 of the matrix. Value at row 3 column 2 of the matrix. Value at row 3 column 3 of the matrix. Value at row 3 column 4 of the matrix. Value at row 4 column 1 of the matrix. Value at row 4 column 2 of the matrix. Value at row 4 column 3 of the matrix. Value at row 4 column 4 of the matrix. Gets or sets the up of the matrix; that is M21, M22, and M23. Gets or sets the down of the matrix; that is -M21, -M22, and -M23. Gets or sets the right of the matrix; that is M11, M12, and M13. Gets or sets the left of the matrix; that is -M11, -M12, and -M13. Gets or sets the forward of the matrix; that is -M31, -M32, and -M33. Gets or sets the backward of the matrix; that is M31, M32, and M33. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The value to assign at row 1 column 1 of the matrix. The value to assign at row 1 column 2 of the matrix. The value to assign at row 1 column 3 of the matrix. The value to assign at row 1 column 4 of the matrix. The value to assign at row 2 column 1 of the matrix. The value to assign at row 2 column 2 of the matrix. The value to assign at row 2 column 3 of the matrix. The value to assign at row 2 column 4 of the matrix. The value to assign at row 3 column 1 of the matrix. The value to assign at row 3 column 2 of the matrix. The value to assign at row 3 column 3 of the matrix. The value to assign at row 3 column 4 of the matrix. The value to assign at row 4 column 1 of the matrix. The value to assign at row 4 column 2 of the matrix. The value to assign at row 4 column 3 of the matrix. The value to assign at row 4 column 4 of the matrix. Initializes a new instance of the struct. The values to assign to the components of the matrix. This must be an array with sixteen elements. Thrown when is null. Thrown when contains more or less than sixteen elements. Gets or sets the first row in the matrix; that is M11, M12, M13, and M14. Gets or sets the second row in the matrix; that is M21, M22, M23, and M24. Gets or sets the third row in the matrix; that is M31, M32, M33, and M34. Gets or sets the fourth row in the matrix; that is M41, M42, M43, and M44. Gets or sets the first column in the matrix; that is M11, M21, M31, and M41. Gets or sets the second column in the matrix; that is M12, M22, M32, and M42. Gets or sets the third column in the matrix; that is M13, M23, M33, and M43. Gets or sets the fourth column in the matrix; that is M14, M24, M34, and M44. Gets or sets the translation of the matrix; that is M41, M42, and M43. Gets or sets the scale of the matrix; that is M11, M22, and M33. Gets a value indicating whether this instance is an identity matrix. true if this instance is an identity matrix; otherwise, false. Gets or sets the component at the specified index. The value of the matrix component, depending on the index. The zero-based index of the component to access. The value of the component at the specified index. Thrown when the is out of the range [0, 15]. Gets or sets the component at the specified index. The value of the matrix component, depending on the index. The row of the matrix to access. The column of the matrix to access. The value of the component at the specified index. Thrown when the or is out of the range [0, 3]. Calculates the determinant of the matrix. The determinant of the matrix. Inverts the matrix. Transposes the matrix. Orthogonalizes the specified matrix. Orthogonalization is the process of making all rows orthogonal to each other. This means that any given row in the matrix will be orthogonal to any other given row in the matrix. Because this method uses the modified Gram-Schmidt process, the resulting matrix tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the matrix rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthonormalizes the specified matrix. Orthonormalization is the process of making all rows and columns orthogonal to each other and making all rows and columns of unit length. This means that any given row will be orthogonal to any other given row and any given column will be orthogonal to any other given column. Any given row will not be orthogonal to any given column. Every row and every column will be of unit length. Because this method uses the modified Gram-Schmidt process, the resulting matrix tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the matrix rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Decomposes a matrix into an orthonormalized matrix Q and a right triangular matrix R. When the method completes, contains the orthonormalized matrix of the decomposition. When the method completes, contains the right triangular matrix of the decomposition. Decomposes a matrix into a lower triangular matrix L and an orthonormalized matrix Q. When the method completes, contains the lower triangular matrix of the decomposition. When the method completes, contains the orthonormalized matrix of the decomposition. Decomposes a matrix into a scale, rotation, and translation. When the method completes, contains the scaling component of the decomposed matrix. When the method completes, contains the rotation component of the decomposed matrix. When the method completes, contains the translation component of the decomposed matrix. This method is designed to decompose an SRT transformation matrix only. Decomposes a uniform scale matrix into a scale, rotation, and translation. A uniform scale matrix has the same scale in every axis. When the method completes, contains the scaling component of the decomposed matrix. When the method completes, contains the rotation component of the decomposed matrix. When the method completes, contains the translation component of the decomposed matrix. This method is designed to decompose only an SRT transformation matrix that has the same scale in every axis. Exchanges two rows in the matrix. The first row to exchange. This is an index of the row starting at zero. The second row to exchange. This is an index of the row starting at zero. Exchanges two columns in the matrix. The first column to exchange. This is an index of the column starting at zero. The second column to exchange. This is an index of the column starting at zero. Creates an array containing the elements of the matrix. A sixteen-element array containing the components of the matrix. Determines the sum of two matrices. The first matrix to add. The second matrix to add. When the method completes, contains the sum of the two matrices. Determines the sum of two matrices. The first matrix to add. The second matrix to add. The sum of the two matrices. Determines the difference between two matrices. The first matrix to subtract. The second matrix to subtract. When the method completes, contains the difference between the two matrices. Determines the difference between two matrices. The first matrix to subtract. The second matrix to subtract. The difference between the two matrices. Scales a matrix by the given value. The matrix to scale. The amount by which to scale. When the method completes, contains the scaled matrix. Scales a matrix by the given value. The matrix to scale. The amount by which to scale. The scaled matrix. Determines the product of two matrices. The first matrix to multiply. The second matrix to multiply. The product of the two matrices. Determines the product of two matrices. The first matrix to multiply. The second matrix to multiply. The product of the two matrices. Scales a matrix by the given value. The matrix to scale. The amount by which to scale. When the method completes, contains the scaled matrix. Scales a matrix by the given value. The matrix to scale. The amount by which to scale. The scaled matrix. Determines the quotient of two matrices. The first matrix to divide. The second matrix to divide. When the method completes, contains the quotient of the two matrices. Determines the quotient of two matrices. The first matrix to divide. The second matrix to divide. The quotient of the two matrices. Performs the exponential operation on a matrix. The matrix to perform the operation on. The exponent to raise the matrix to. When the method completes, contains the exponential matrix. Thrown when the is negative. Performs the exponential operation on a matrix. The matrix to perform the operation on. The exponent to raise the matrix to. The exponential matrix. Thrown when the is negative. Negates a matrix. The matrix to be negated. When the method completes, contains the negated matrix. Negates a matrix. The matrix to be negated. The negated matrix. Performs a linear interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . The linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two matrices. Performs a cubic interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two matrices. Calculates the transpose of the specified matrix. The matrix whose transpose is to be calculated. When the method completes, contains the transpose of the specified matrix. Calculates the transpose of the specified matrix. The matrix whose transpose is to be calculated. When the method completes, contains the transpose of the specified matrix. Calculates the transpose of the specified matrix. The matrix whose transpose is to be calculated. The transpose of the specified matrix. Calculates the inverse of the specified matrix. The matrix whose inverse is to be calculated. When the method completes, contains the inverse of the specified matrix. Calculates the inverse of the specified matrix. The matrix whose inverse is to be calculated. The inverse of the specified matrix. Orthogonalizes the specified matrix. The matrix to orthogonalize. When the method completes, contains the orthogonalized matrix. Orthogonalization is the process of making all rows orthogonal to each other. This means that any given row in the matrix will be orthogonal to any other given row in the matrix. Because this method uses the modified Gram-Schmidt process, the resulting matrix tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the matrix rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthogonalizes the specified matrix. The matrix to orthogonalize. The orthogonalized matrix. Orthogonalization is the process of making all rows orthogonal to each other. This means that any given row in the matrix will be orthogonal to any other given row in the matrix. Because this method uses the modified Gram-Schmidt process, the resulting matrix tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the matrix rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthonormalizes the specified matrix. The matrix to orthonormalize. When the method completes, contains the orthonormalized matrix. Orthonormalization is the process of making all rows and columns orthogonal to each other and making all rows and columns of unit length. This means that any given row will be orthogonal to any other given row and any given column will be orthogonal to any other given column. Any given row will not be orthogonal to any given column. Every row and every column will be of unit length. Because this method uses the modified Gram-Schmidt process, the resulting matrix tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the matrix rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthonormalizes the specified matrix. The matrix to orthonormalize. The orthonormalized matrix. Orthonormalization is the process of making all rows and columns orthogonal to each other and making all rows and columns of unit length. This means that any given row will be orthogonal to any other given row and any given column will be orthogonal to any other given column. Any given row will not be orthogonal to any given column. Every row and every column will be of unit length. Because this method uses the modified Gram-Schmidt process, the resulting matrix tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the matrix rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Brings the matrix into upper triangular form using elementary row operations. The matrix to put into upper triangular form. When the method completes, contains the upper triangular matrix. If the matrix is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the matrix represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the matrix into upper triangular form using elementary row operations. The matrix to put into upper triangular form. The upper triangular matrix. If the matrix is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the matrix represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the matrix into lower triangular form using elementary row operations. The matrix to put into lower triangular form. When the method completes, contains the lower triangular matrix. If the matrix is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the matrix represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the matrix into lower triangular form using elementary row operations. The matrix to put into lower triangular form. The lower triangular matrix. If the matrix is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the matrix represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the matrix into row echelon form using elementary row operations; The matrix to put into row echelon form. When the method completes, contains the row echelon form of the matrix. Brings the matrix into row echelon form using elementary row operations; The matrix to put into row echelon form. When the method completes, contains the row echelon form of the matrix. Brings the matrix into reduced row echelon form using elementary row operations. The matrix to put into reduced row echelon form. The fifth column of the matrix. When the method completes, contains the resultant matrix after the operation. When the method completes, contains the resultant fifth column of the matrix. The fifth column is often called the augmented part of the matrix. This is because the fifth column is really just an extension of the matrix so that there is a place to put all of the non-zero components after the operation is complete. Often times the resultant matrix will the identity matrix or a matrix similar to the identity matrix. Sometimes, however, that is not possible and numbers other than zero and one may appear. This method can be used to solve systems of linear equations. Upon completion of this method, the will contain the solution for the system. It is up to the user to analyze both the input and the result to determine if a solution really exists. Creates a left-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. When the method completes, contains the created billboard matrix. Creates a left-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. The created billboard matrix. Creates a right-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. When the method completes, contains the created billboard matrix. Creates a right-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. The created billboard matrix. Creates a left-handed, look-at matrix. The position of the viewer's eye. The camera look-at target. The camera's up vector. When the method completes, contains the created look-at matrix. Creates a left-handed, look-at matrix. The position of the viewer's eye. The camera look-at target. The camera's up vector. The created look-at matrix. Creates a right-handed, look-at matrix. The position of the viewer's eye. The camera look-at target. The camera's up vector. When the method completes, contains the created look-at matrix. Creates a right-handed, look-at matrix. The position of the viewer's eye. The camera look-at target. The camera's up vector. The created look-at matrix. Creates a left-handed, orthographic projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a left-handed, orthographic projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a right-handed, orthographic projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a right-handed, orthographic projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a left-handed, customized orthographic projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a left-handed, customized orthographic projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a right-handed, customized orthographic projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a right-handed, customized orthographic projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a left-handed, perspective projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a left-handed, perspective projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a right-handed, perspective projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a right-handed, perspective projection matrix. Width of the viewing volume. Height of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a left-handed, perspective projection matrix based on a field of view. Field of view in the y direction, in radians. Aspect ratio, defined as view space width divided by height. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a left-handed, perspective projection matrix based on a field of view. Field of view in the y direction, in radians. Aspect ratio, defined as view space width divided by height. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a right-handed, perspective projection matrix based on a field of view. Field of view in the y direction, in radians. Aspect ratio, defined as view space width divided by height. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a right-handed, perspective projection matrix based on a field of view. Field of view in the y direction, in radians. Aspect ratio, defined as view space width divided by height. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a left-handed, customized perspective projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a left-handed, customized perspective projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a right-handed, customized perspective projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. When the method completes, contains the created projection matrix. Creates a right-handed, customized perspective projection matrix. Minimum x-value of the viewing volume. Maximum x-value of the viewing volume. Minimum y-value of the viewing volume. Maximum y-value of the viewing volume. Minimum z-value of the viewing volume. Maximum z-value of the viewing volume. The created projection matrix. Creates a matrix that scales along the x-axis, y-axis, and y-axis. Scaling factor for all three axes. When the method completes, contains the created scaling matrix. Creates a matrix that scales along the x-axis, y-axis, and y-axis. Scaling factor for all three axes. The created scaling matrix. Creates a matrix that scales along the x-axis, y-axis, and y-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Scaling factor that is applied along the z-axis. When the method completes, contains the created scaling matrix. Creates a matrix that scales along the x-axis, y-axis, and y-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Scaling factor that is applied along the z-axis. The created scaling matrix. Creates a matrix that uniformly scales along all three axis. The uniform scale that is applied along all axis. When the method completes, contains the created scaling matrix. Creates a matrix that uniformly scales along all three axis. The uniform scale that is applied along all axis. The created scaling matrix. Creates a matrix that rotates around the x-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation matrix. Creates a matrix that rotates around the x-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation matrix. Creates a matrix that rotates around the y-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation matrix. Creates a matrix that rotates around the y-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation matrix. Creates a matrix that rotates around the z-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation matrix. Creates a matrix that rotates around the z-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation matrix. Creates a matrix that rotates around an arbitrary axis. The axis around which to rotate. This parameter is assumed to be normalized. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation matrix. Creates a matrix that rotates around an arbitrary axis. The axis around which to rotate. This parameter is assumed to be normalized. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation matrix. Creates a rotation matrix from a quaternion. The quaternion to use to build the matrix. The created rotation matrix. Creates a rotation matrix from a quaternion. The quaternion to use to build the matrix. The created rotation matrix. Creates a rotation matrix with a specified yaw, pitch, and roll. Yaw around the y-axis, in radians. Pitch around the x-axis, in radians. Roll around the z-axis, in radians. When the method completes, contains the created rotation matrix. Creates a rotation matrix with a specified yaw, pitch, and roll. Yaw around the y-axis, in radians. Pitch around the x-axis, in radians. Roll around the z-axis, in radians. The created rotation matrix. Creates a translation matrix using the specified offsets. The offset for all three coordinate planes. When the method completes, contains the created translation matrix. Creates a translation matrix using the specified offsets. The offset for all three coordinate planes. The created translation matrix. Creates a translation matrix using the specified offsets. X-coordinate offset. Y-coordinate offset. Z-coordinate offset. When the method completes, contains the created translation matrix. Creates a translation matrix using the specified offsets. X-coordinate offset. Y-coordinate offset. Z-coordinate offset. The created translation matrix. Creates a skew/shear matrix by means of a translation vector, a rotation vector, and a rotation angle. shearing is performed in the direction of translation vector, where translation vector and rotation vector define the shearing plane. The effect is such that the skewed rotation vector has the specified angle with rotation itself. The rotation angle. The rotation vector The translation vector Contains the created skew/shear matrix. Creates a 3D affine transformation matrix. Scaling factor. The rotation of the transformation. The translation factor of the transformation. When the method completes, contains the created affine transformation matrix. Creates a 3D affine transformation matrix. Scaling factor. The rotation of the transformation. The translation factor of the transformation. The created affine transformation matrix. Creates a 3D affine transformation matrix. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. When the method completes, contains the created affine transformation matrix. Creates a 3D affine transformation matrix. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. The created affine transformation matrix. Creates a 2D affine transformation matrix. Scaling factor. The rotation of the transformation. The translation factor of the transformation. When the method completes, contains the created affine transformation matrix. Creates a 2D affine transformation matrix. Scaling factor. The rotation of the transformation. The translation factor of the transformation. The created affine transformation matrix. Creates a 2D affine transformation matrix. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. When the method completes, contains the created affine transformation matrix. Creates a 2D affine transformation matrix. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. The created affine transformation matrix. Creates a transformation matrix. Center point of the scaling operation. Scaling rotation amount. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. When the method completes, contains the created transformation matrix. Creates a transformation matrix. Center point of the scaling operation. Scaling rotation amount. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. The created transformation matrix. Creates a 2D transformation matrix. Center point of the scaling operation. Scaling rotation amount. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. When the method completes, contains the created transformation matrix. Creates a 2D transformation matrix. Center point of the scaling operation. Scaling rotation amount. Scaling factor. The center of the rotation. The rotation of the transformation. The translation factor of the transformation. The created transformation matrix. Adds two matrices. The first matrix to add. The second matrix to add. The sum of the two matrices. Assert a matrix (return it unchanged). The matrix to assert (unchanged). The asserted (unchanged) matrix. Subtracts two matrices. The first matrix to subtract. The second matrix to subtract. The difference between the two matrices. Negates a matrix. The matrix to negate. The negated matrix. Scales a matrix by a given value. The matrix to scale. The amount by which to scale. The scaled matrix. Scales a matrix by a given value. The matrix to scale. The amount by which to scale. The scaled matrix. Multiplies two matrices. The first matrix to multiply. The second matrix to multiply. The product of the two matrices. Scales a matrix by a given value. The matrix to scale. The amount by which to scale. The scaled matrix. Divides two matrices. The first matrix to divide. The second matrix to divide. The quotient of the two matrices. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Direct2D Matrix3x2. Supports implicit cast from . Gets the identity matrix. The identity matrix. Element (1,1) Element (1,2) Element (2,1) Element (2,2) Element (3,1) Element (3,2) Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The value to assign at row 1 column 1 of the matrix. The value to assign at row 1 column 2 of the matrix. The value to assign at row 2 column 1 of the matrix. The value to assign at row 2 column 2 of the matrix. The value to assign at row 3 column 1 of the matrix. The value to assign at row 3 column 2 of the matrix. Initializes a new instance of the struct. The values to assign to the components of the matrix. This must be an array with six elements. Thrown when is null. Thrown when contains more or less than six elements. Gets or sets the first row in the matrix; that is M11 and M12. Gets or sets the second row in the matrix; that is M21 and M22. Gets or sets the third row in the matrix; that is M31 and M32. Gets or sets the first column in the matrix; that is M11, M21, and M31. Gets or sets the second column in the matrix; that is M12, M22, and M32. Gets or sets the translation of the matrix; that is M31 and M32. Gets or sets the scale of the matrix; that is M11 and M22. Gets a value indicating whether this instance is an identity matrix. true if this instance is an identity matrix; otherwise, false. Gets or sets the component at the specified index. The value of the matrix component, depending on the index. The zero-based index of the component to access. The value of the component at the specified index. Thrown when the is out of the range [0, 5]. Gets or sets the component at the specified index. The value of the matrix component, depending on the index. The row of the matrix to access. The column of the matrix to access. The value of the component at the specified index. Thrown when the or is out of the range [0, 3]. Creates an array containing the elements of the matrix. A sixteen-element array containing the components of the matrix. Determines the sum of two matrices. The first matrix to add. The second matrix to add. When the method completes, contains the sum of the two matrices. Determines the sum of two matrices. The first matrix to add. The second matrix to add. The sum of the two matrices. Determines the difference between two matrices. The first matrix to subtract. The second matrix to subtract. When the method completes, contains the difference between the two matrices. Determines the difference between two matrices. The first matrix to subtract. The second matrix to subtract. The difference between the two matrices. Scales a matrix by the given value. The matrix to scale. The amount by which to scale. When the method completes, contains the scaled matrix. Scales a matrix by the given value. The matrix to scale. The amount by which to scale. The scaled matrix. Determines the product of two matrices. The first matrix to multiply. The second matrix to multiply. The product of the two matrices. Determines the product of two matrices. The first matrix to multiply. The second matrix to multiply. The product of the two matrices. Scales a matrix by the given value. The matrix to scale. The amount by which to scale. When the method completes, contains the scaled matrix. Determines the quotient of two matrices. The first matrix to divide. The second matrix to divide. When the method completes, contains the quotient of the two matrices. Negates a matrix. The matrix to be negated. When the method completes, contains the negated matrix. Negates a matrix. The matrix to be negated. The negated matrix. Performs a linear interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . The linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two matrices. Performs a cubic interpolation between two matrices. Start matrix. End matrix. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two matrices. Creates a matrix that scales along the x-axis and y-axis. Scaling factor for both axes. When the method completes, contains the created scaling matrix. Creates a matrix that scales along the x-axis and y-axis. Scaling factor for both axes. The created scaling matrix. Creates a matrix that scales along the x-axis and y-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. When the method completes, contains the created scaling matrix. Creates a matrix that scales along the x-axis and y-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. The created scaling matrix. Creates a matrix that uniformly scales along both axes. The uniform scale that is applied along both axes. When the method completes, contains the created scaling matrix. Creates a matrix that uniformly scales along both axes. The uniform scale that is applied along both axes. The created scaling matrix. Creates a matrix that is scaling from a specified center. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. The center of the scaling. The created scaling matrix. Creates a matrix that is scaling from a specified center. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. The center of the scaling. The created scaling matrix. Calculates the determinant of this matrix. Result of the determinant. Creates a matrix that rotates. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis. When the method completes, contains the created rotation matrix. Creates a matrix that rotates. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis. The created rotation matrix. Creates a matrix that rotates about a specified center. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis. The center of the rotation. The created rotation matrix. Creates a matrix that rotates about a specified center. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis. The center of the rotation. When the method completes, contains the created rotation matrix. Creates a transformation matrix. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis. X-coordinate offset. Y-coordinate offset. When the method completes, contains the created transformation matrix. Creates a transformation matrix. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Angle of rotation in radians. X-coordinate offset. Y-coordinate offset. The created transformation matrix. Creates a translation matrix using the specified offsets. The offset for both coordinate planes. When the method completes, contains the created translation matrix. Creates a translation matrix using the specified offsets. The offset for both coordinate planes. The created translation matrix. Creates a translation matrix using the specified offsets. X-coordinate offset. Y-coordinate offset. When the method completes, contains the created translation matrix. Creates a translation matrix using the specified offsets. X-coordinate offset. Y-coordinate offset. The created translation matrix. Transforms a vector by this matrix. The matrix to use as a transformation matrix. The original vector to apply the transformation. The result of the transformation for the input vector. Transforms a vector by this matrix. The matrix to use as a transformation matrix. The original vector to apply the transformation. The result of the transformation for the input vector. Calculates the inverse of this matrix instance. Calculates the inverse of the specified matrix. The matrix whose inverse is to be calculated. the inverse of the specified matrix. Creates a skew matrix. Angle of skew along the X-axis in radians. Angle of skew along the Y-axis in radians. The created skew matrix. Creates a skew matrix. Angle of skew along the X-axis in radians. Angle of skew along the Y-axis in radians. When the method completes, contains the created skew matrix. Calculates the inverse of the specified matrix. The matrix whose inverse is to be calculated. When the method completes, contains the inverse of the specified matrix. Adds two matrices. The first matrix to add. The second matrix to add. The sum of the two matrices. Assert a matrix (return it unchanged). The matrix to assert (unchanged). The asserted (unchanged) matrix. Subtracts two matrices. The first matrix to subtract. The second matrix to subtract. The difference between the two matrices. Negates a matrix. The matrix to negate. The negated matrix. Scales a matrix by a given value. The matrix to scale. The amount by which to scale. The scaled matrix. Scales a matrix by a given value. The matrix to scale. The amount by which to scale. The scaled matrix. Multiplies two matrices. The first matrix to multiply. The second matrix to multiply. The product of the two matrices. Scales a matrix by a given value. The matrix to scale. The amount by which to scale. The scaled matrix. Divides two matrices. The first matrix to divide. The second matrix to divide. The quotient of the two matrices. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The matrix. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents a 3x3 Matrix ( contains only Scale and Rotation ). The size of the type, in bytes. A with all of its components set to zero. The identity . Value at row 1 column 1 of the Matrix3x3. Value at row 1 column 2 of the Matrix3x3. Value at row 1 column 3 of the Matrix3x3. Value at row 2 column 1 of the Matrix3x3. Value at row 2 column 2 of the Matrix3x3. Value at row 2 column 3 of the Matrix3x3. Value at row 3 column 1 of the Matrix3x3. Value at row 3 column 2 of the Matrix3x3. Value at row 3 column 3 of the Matrix3x3. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The value to assign at row 1 column 1 of the Matrix3x3. The value to assign at row 1 column 2 of the Matrix3x3. The value to assign at row 1 column 3 of the Matrix3x3. The value to assign at row 2 column 1 of the Matrix3x3. The value to assign at row 2 column 2 of the Matrix3x3. The value to assign at row 2 column 3 of the Matrix3x3. The value to assign at row 3 column 1 of the Matrix3x3. The value to assign at row 3 column 2 of the Matrix3x3. The value to assign at row 3 column 3 of the Matrix3x3. Initializes a new instance of the struct. The values to assign to the components of the Matrix3x3. This must be an array with sixteen elements. Thrown when is null. Thrown when contains more or less than sixteen elements. Gets or sets the first row in the Matrix3x3; that is M11, M12, M13 Gets or sets the second row in the Matrix3x3; that is M21, M22, M23 Gets or sets the third row in the Matrix3x3; that is M31, M32, M33 Gets or sets the first column in the Matrix3x3; that is M11, M21, M31 Gets or sets the second column in the Matrix3x3; that is M12, M22, M32 Gets or sets the third column in the Matrix3x3; that is M13, M23, M33 Gets or sets the scale of the Matrix3x3; that is M11, M22, and M33. Gets a value indicating whether this instance is an identity Matrix3x3. true if this instance is an identity Matrix3x3; otherwise, false. Gets or sets the component at the specified index. The value of the Matrix3x3 component, depending on the index. The zero-based index of the component to access. The value of the component at the specified index. Thrown when the is out of the range [0, 15]. Gets or sets the component at the specified index. The value of the Matrix3x3 component, depending on the index. The row of the Matrix3x3 to access. The column of the Matrix3x3 to access. The value of the component at the specified index. Thrown when the or is out of the range [0, 3]. Calculates the determinant of the Matrix3x3. The determinant of the Matrix3x3. Inverts the Matrix3x3. Transposes the Matrix3x3. Orthogonalizes the specified Matrix3x3. Orthogonalization is the process of making all rows orthogonal to each other. This means that any given row in the Matrix3x3 will be orthogonal to any other given row in the Matrix3x3. Because this method uses the modified Gram-Schmidt process, the resulting Matrix3x3 tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the Matrix3x3 rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthonormalizes the specified Matrix3x3. Orthonormalization is the process of making all rows and columns orthogonal to each other and making all rows and columns of unit length. This means that any given row will be orthogonal to any other given row and any given column will be orthogonal to any other given column. Any given row will not be orthogonal to any given column. Every row and every column will be of unit length. Because this method uses the modified Gram-Schmidt process, the resulting Matrix3x3 tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the Matrix3x3 rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Decomposes a Matrix3x3 into an orthonormalized Matrix3x3 Q and a right triangular Matrix3x3 R. When the method completes, contains the orthonormalized Matrix3x3 of the decomposition. When the method completes, contains the right triangular Matrix3x3 of the decomposition. Decomposes a Matrix3x3 into a lower triangular Matrix3x3 L and an orthonormalized Matrix3x3 Q. When the method completes, contains the lower triangular Matrix3x3 of the decomposition. When the method completes, contains the orthonormalized Matrix3x3 of the decomposition. Decomposes a Matrix3x3 into a scale, rotation, and translation. When the method completes, contains the scaling component of the decomposed Matrix3x3. When the method completes, contains the rotation component of the decomposed Matrix3x3. This method is designed to decompose an SRT transformation Matrix3x3 only. Decomposes a uniform scale matrix into a scale, rotation, and translation. A uniform scale matrix has the same scale in every axis. When the method completes, contains the scaling component of the decomposed matrix. When the method completes, contains the rotation component of the decomposed matrix. This method is designed to decompose only an SRT transformation matrix that has the same scale in every axis. Exchanges two rows in the Matrix3x3. The first row to exchange. This is an index of the row starting at zero. The second row to exchange. This is an index of the row starting at zero. Exchanges two columns in the Matrix3x3. The first column to exchange. This is an index of the column starting at zero. The second column to exchange. This is an index of the column starting at zero. Creates an array containing the elements of the Matrix3x3. A 9-element array containing the components of the Matrix3x3. Determines the sum of two matrices. The first Matrix3x3 to add. The second Matrix3x3 to add. When the method completes, contains the sum of the two matrices. Determines the sum of two matrices. The first Matrix3x3 to add. The second Matrix3x3 to add. The sum of the two matrices. Determines the difference between two matrices. The first Matrix3x3 to subtract. The second Matrix3x3 to subtract. When the method completes, contains the difference between the two matrices. Determines the difference between two matrices. The first Matrix3x3 to subtract. The second Matrix3x3 to subtract. The difference between the two matrices. Scales a Matrix3x3 by the given value. The Matrix3x3 to scale. The amount by which to scale. When the method completes, contains the scaled Matrix3x3. Scales a Matrix3x3 by the given value. The Matrix3x3 to scale. The amount by which to scale. The scaled Matrix3x3. Determines the product of two matrices. The first Matrix3x3 to multiply. The second Matrix3x3 to multiply. The product of the two matrices. Determines the product of two matrices. The first Matrix3x3 to multiply. The second Matrix3x3 to multiply. The product of the two matrices. Scales a Matrix3x3 by the given value. The Matrix3x3 to scale. The amount by which to scale. When the method completes, contains the scaled Matrix3x3. Scales a Matrix3x3 by the given value. The Matrix3x3 to scale. The amount by which to scale. The scaled Matrix3x3. Determines the quotient of two matrices. The first Matrix3x3 to divide. The second Matrix3x3 to divide. When the method completes, contains the quotient of the two matrices. Determines the quotient of two matrices. The first Matrix3x3 to divide. The second Matrix3x3 to divide. The quotient of the two matrices. Performs the exponential operation on a Matrix3x3. The Matrix3x3 to perform the operation on. The exponent to raise the Matrix3x3 to. When the method completes, contains the exponential Matrix3x3. Thrown when the is negative. Performs the exponential operation on a Matrix3x3. The Matrix3x3 to perform the operation on. The exponent to raise the Matrix3x3 to. The exponential Matrix3x3. Thrown when the is negative. Negates a Matrix3x3. The Matrix3x3 to be negated. When the method completes, contains the negated Matrix3x3. Negates a Matrix3x3. The Matrix3x3 to be negated. The negated Matrix3x3. Performs a linear interpolation between two matrices. Start Matrix3x3. End Matrix3x3. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two matrices. Start Matrix3x3. End Matrix3x3. Value between 0 and 1 indicating the weight of . The linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two matrices. Start Matrix3x3. End Matrix3x3. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two matrices. Performs a cubic interpolation between two matrices. Start Matrix3x3. End Matrix3x3. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two matrices. Calculates the transpose of the specified Matrix3x3. The Matrix3x3 whose transpose is to be calculated. When the method completes, contains the transpose of the specified Matrix3x3. Calculates the transpose of the specified Matrix3x3. The Matrix3x3 whose transpose is to be calculated. When the method completes, contains the transpose of the specified Matrix3x3. Calculates the transpose of the specified Matrix3x3. The Matrix3x3 whose transpose is to be calculated. The transpose of the specified Matrix3x3. Calculates the inverse of the specified Matrix3x3. The Matrix3x3 whose inverse is to be calculated. When the method completes, contains the inverse of the specified Matrix3x3. Calculates the inverse of the specified Matrix3x3. The Matrix3x3 whose inverse is to be calculated. The inverse of the specified Matrix3x3. Orthogonalizes the specified Matrix3x3. The Matrix3x3 to orthogonalize. When the method completes, contains the orthogonalized Matrix3x3. Orthogonalization is the process of making all rows orthogonal to each other. This means that any given row in the Matrix3x3 will be orthogonal to any other given row in the Matrix3x3. Because this method uses the modified Gram-Schmidt process, the resulting Matrix3x3 tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the Matrix3x3 rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthogonalizes the specified Matrix3x3. The Matrix3x3 to orthogonalize. The orthogonalized Matrix3x3. Orthogonalization is the process of making all rows orthogonal to each other. This means that any given row in the Matrix3x3 will be orthogonal to any other given row in the Matrix3x3. Because this method uses the modified Gram-Schmidt process, the resulting Matrix3x3 tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the Matrix3x3 rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthonormalizes the specified Matrix3x3. The Matrix3x3 to orthonormalize. When the method completes, contains the orthonormalized Matrix3x3. Orthonormalization is the process of making all rows and columns orthogonal to each other and making all rows and columns of unit length. This means that any given row will be orthogonal to any other given row and any given column will be orthogonal to any other given column. Any given row will not be orthogonal to any given column. Every row and every column will be of unit length. Because this method uses the modified Gram-Schmidt process, the resulting Matrix3x3 tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the Matrix3x3 rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Orthonormalizes the specified Matrix3x3. The Matrix3x3 to orthonormalize. The orthonormalized Matrix3x3. Orthonormalization is the process of making all rows and columns orthogonal to each other and making all rows and columns of unit length. This means that any given row will be orthogonal to any other given row and any given column will be orthogonal to any other given column. Any given row will not be orthogonal to any given column. Every row and every column will be of unit length. Because this method uses the modified Gram-Schmidt process, the resulting Matrix3x3 tends to be numerically unstable. The numeric stability decreases according to the rows so that the first row is the most stable and the last row is the least stable. This operation is performed on the rows of the Matrix3x3 rather than the columns. If you wish for this operation to be performed on the columns, first transpose the input and than transpose the output. Brings the Matrix3x3 into upper triangular form using elementary row operations. The Matrix3x3 to put into upper triangular form. When the method completes, contains the upper triangular Matrix3x3. If the Matrix3x3 is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the Matrix3x3 represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the Matrix3x3 into upper triangular form using elementary row operations. The Matrix3x3 to put into upper triangular form. The upper triangular Matrix3x3. If the Matrix3x3 is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the Matrix3x3 represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the Matrix3x3 into lower triangular form using elementary row operations. The Matrix3x3 to put into lower triangular form. When the method completes, contains the lower triangular Matrix3x3. If the Matrix3x3 is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the Matrix3x3 represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the Matrix3x3 into lower triangular form using elementary row operations. The Matrix3x3 to put into lower triangular form. The lower triangular Matrix3x3. If the Matrix3x3 is not invertible (i.e. its determinant is zero) than the result of this method may produce Single.Nan and Single.Inf values. When the Matrix3x3 represents a system of linear equations, than this often means that either no solution exists or an infinite number of solutions exist. Brings the Matrix3x3 into row echelon form using elementary row operations; The Matrix3x3 to put into row echelon form. When the method completes, contains the row echelon form of the Matrix3x3. Brings the Matrix3x3 into row echelon form using elementary row operations; The Matrix3x3 to put into row echelon form. When the method completes, contains the row echelon form of the Matrix3x3. Creates a left-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. When the method completes, contains the created billboard Matrix3x3. Creates a left-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. The created billboard Matrix3x3. Creates a right-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. When the method completes, contains the created billboard Matrix3x3. Creates a right-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. The created billboard Matrix3x3. Creates a left-handed, look-at Matrix3x3. The position of the viewer's eye. The camera look-at target. The camera's up vector. When the method completes, contains the created look-at Matrix3x3. Creates a left-handed, look-at Matrix3x3. The position of the viewer's eye. The camera look-at target. The camera's up vector. The created look-at Matrix3x3. Creates a right-handed, look-at Matrix3x3. The position of the viewer's eye. The camera look-at target. The camera's up vector. When the method completes, contains the created look-at Matrix3x3. Creates a right-handed, look-at Matrix3x3. The position of the viewer's eye. The camera look-at target. The camera's up vector. The created look-at Matrix3x3. Creates a Matrix3x3 that scales along the x-axis, y-axis, and y-axis. Scaling factor for all three axes. When the method completes, contains the created scaling Matrix3x3. Creates a Matrix3x3 that scales along the x-axis, y-axis, and y-axis. Scaling factor for all three axes. The created scaling Matrix3x3. Creates a Matrix3x3 that scales along the x-axis, y-axis, and y-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Scaling factor that is applied along the z-axis. When the method completes, contains the created scaling Matrix3x3. Creates a Matrix3x3 that scales along the x-axis, y-axis, and y-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Scaling factor that is applied along the z-axis. The created scaling Matrix3x3. Creates a Matrix3x3 that uniformly scales along all three axis. The uniform scale that is applied along all axis. When the method completes, contains the created scaling Matrix3x3. Creates a Matrix3x3 that uniformly scales along all three axis. The uniform scale that is applied along all axis. The created scaling Matrix3x3. Creates a Matrix3x3 that rotates around the x-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation Matrix3x3. Creates a Matrix3x3 that rotates around the x-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation Matrix3x3. Creates a Matrix3x3 that rotates around the y-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation Matrix3x3. Creates a Matrix3x3 that rotates around the y-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation Matrix3x3. Creates a Matrix3x3 that rotates around the z-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation Matrix3x3. Creates a Matrix3x3 that rotates around the z-axis. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation Matrix3x3. Creates a Matrix3x3 that rotates around an arbitrary axis. The axis around which to rotate. This parameter is assumed to be normalized. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. When the method completes, contains the created rotation Matrix3x3. Creates a Matrix3x3 that rotates around an arbitrary axis. The axis around which to rotate. This parameter is assumed to be normalized. Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. The created rotation Matrix3x3. Creates a rotation Matrix3x3 from a quaternion. The quaternion to use to build the Matrix3x3. The created rotation Matrix3x3. Creates a rotation Matrix3x3 from a quaternion. The quaternion to use to build the Matrix3x3. The created rotation Matrix3x3. Creates a rotation Matrix3x3 with a specified yaw, pitch, and roll. Yaw around the y-axis, in radians. Pitch around the x-axis, in radians. Roll around the z-axis, in radians. When the method completes, contains the created rotation Matrix3x3. Creates a rotation Matrix3x3 with a specified yaw, pitch, and roll. Yaw around the y-axis, in radians. Pitch around the x-axis, in radians. Roll around the z-axis, in radians. The created rotation Matrix3x3. Adds two matrices. The first Matrix3x3 to add. The second Matrix3x3 to add. The sum of the two matrices. Assert a Matrix3x3 (return it unchanged). The Matrix3x3 to assert (unchanged). The asserted (unchanged) Matrix3x3. Subtracts two matrices. The first Matrix3x3 to subtract. The second Matrix3x3 to subtract. The difference between the two matrices. Negates a Matrix3x3. The Matrix3x3 to negate. The negated Matrix3x3. Scales a Matrix3x3 by a given value. The Matrix3x3 to scale. The amount by which to scale. The scaled Matrix3x3. Scales a Matrix3x3 by a given value. The Matrix3x3 to scale. The amount by which to scale. The scaled Matrix3x3. Multiplies two matrices. The first Matrix3x3 to multiply. The second Matrix3x3 to multiply. The product of the two matrices. Scales a Matrix3x3 by a given value. The Matrix3x3 to scale. The amount by which to scale. The scaled Matrix3x3. Divides two matrices. The first Matrix3x3 to divide. The second Matrix3x3 to divide. The quotient of the two matrices. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Convert the 3x3 Matrix to a 4x4 Matrix. A 4x4 Matrix with zero translation and M44=1 Convert the 4x4 Matrix to a 3x3 Matrix. A 3x3 Matrix Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified are equal. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Represents a 4x4 mathematical Matrix5x4. The size of the type, in bytes. A with all of its components set to zero. The identity . Value at row 1 column 1 of the Matrix5x4. Value at row 1 column 2 of the Matrix5x4. Value at row 1 column 3 of the Matrix5x4. Value at row 1 column 4 of the Matrix5x4. Value at row 2 column 1 of the Matrix5x4. Value at row 2 column 2 of the Matrix5x4. Value at row 2 column 3 of the Matrix5x4. Value at row 2 column 4 of the Matrix5x4. Value at row 3 column 1 of the Matrix5x4. Value at row 3 column 2 of the Matrix5x4. Value at row 3 column 3 of the Matrix5x4. Value at row 3 column 4 of the Matrix5x4. Value at row 4 column 1 of the Matrix5x4. Value at row 4 column 2 of the Matrix5x4. Value at row 4 column 3 of the Matrix5x4. Value at row 4 column 4 of the Matrix5x4. Value at row 5 column 1 of the Matrix5x4. Value at row 5 column 2 of the Matrix5x4. Value at row 5 column 3 of the Matrix5x4. Value at row 5 column 4 of the Matrix5x4. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The value to assign at row 1 column 1 of the Matrix5x4. The value to assign at row 1 column 2 of the Matrix5x4. The value to assign at row 1 column 3 of the Matrix5x4. The value to assign at row 1 column 4 of the Matrix5x4. The value to assign at row 2 column 1 of the Matrix5x4. The value to assign at row 2 column 2 of the Matrix5x4. The value to assign at row 2 column 3 of the Matrix5x4. The value to assign at row 2 column 4 of the Matrix5x4. The value to assign at row 3 column 1 of the Matrix5x4. The value to assign at row 3 column 2 of the Matrix5x4. The value to assign at row 3 column 3 of the Matrix5x4. The value to assign at row 3 column 4 of the Matrix5x4. The value to assign at row 4 column 1 of the Matrix5x4. The value to assign at row 4 column 2 of the Matrix5x4. The value to assign at row 4 column 3 of the Matrix5x4. The value to assign at row 4 column 4 of the Matrix5x4. The value to assign at row 5 column 1 of the Matrix5x4. The value to assign at row 5 column 2 of the Matrix5x4. The value to assign at row 5 column 3 of the Matrix5x4. The value to assign at row 5 column 4 of the Matrix5x4. Initializes a new instance of the struct. The values to assign to the components of the Matrix5x4. This must be an array with sixteen elements. Thrown when is null. Thrown when contains more or less than sixteen elements. Gets or sets the first row in the Matrix5x4; that is M11, M12, M13, and M14. Gets or sets the second row in the Matrix5x4; that is M21, M22, M23, and M24. Gets or sets the third row in the Matrix5x4; that is M31, M32, M33, and M34. Gets or sets the fourth row in the Matrix5x4; that is M41, M42, M43, and M44. Gets or sets the fifth row in the Matrix5x4; that is M51, M52, M53, and M54. Gets or sets the translation of the Matrix5x4; that is M41, M42, and M43. Gets or sets the scale of the Matrix5x4; that is M11, M22, and M33. Gets a value indicating whether this instance is an identity Matrix5x4. true if this instance is an identity Matrix5x4; otherwise, false. Gets or sets the component at the specified index. The value of the Matrix5x4 component, depending on the index. The zero-based index of the component to access. The value of the component at the specified index. Thrown when the is out of the range [0, 15]. Gets or sets the component at the specified index. The value of the Matrix5x4 component, depending on the index. The row of the Matrix5x4 to access. The column of the Matrix5x4 to access. The value of the component at the specified index. Thrown when the or is out of the range [0, 3]. Determines the sum of two matrices. The first Matrix5x4 to add. The second Matrix5x4 to add. When the method completes, contains the sum of the two matrices. Determines the sum of two matrices. The first Matrix5x4 to add. The second Matrix5x4 to add. The sum of the two matrices. Determines the difference between two matrices. The first Matrix5x4 to subtract. The second Matrix5x4 to subtract. When the method completes, contains the difference between the two matrices. Determines the difference between two matrices. The first Matrix5x4 to subtract. The second Matrix5x4 to subtract. The difference between the two matrices. Scales a Matrix5x4 by the given value. The Matrix5x4 to scale. The amount by which to scale. When the method completes, contains the scaled Matrix5x4. Scales a Matrix5x4 by the given value. The Matrix5x4 to scale. The amount by which to scale. When the method completes, contains the scaled Matrix5x4. Negates a Matrix5x4. The Matrix5x4 to be negated. When the method completes, contains the negated Matrix5x4. Negates a Matrix5x4. The Matrix5x4 to be negated. The negated Matrix5x4. Performs a linear interpolation between two matrices. Start Matrix5x4. End Matrix5x4. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two matrices. Start Matrix5x4. End Matrix5x4. Value between 0 and 1 indicating the weight of . The linear interpolation of the two matrices. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two matrices. Start Matrix5x4. End Matrix5x4. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two matrices. Performs a cubic interpolation between two matrices. Start Matrix5x4. End Matrix5x4. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two matrices. Creates a Matrix5x4 that scales along the x-axis, y-axis, y-axis and w-axis Scaling factor for all three axes. When the method completes, contains the created scaling Matrix5x4. Creates a Matrix5x4 that scales along the x-axis, y-axis, and y-axis. Scaling factor for all three axes. The created scaling Matrix5x4. Creates a Matrix5x4 that scales along the x-axis, y-axis, z-axis and w-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Scaling factor that is applied along the z-axis. Scaling factor that is applied along the w-axis. When the method completes, contains the created scaling Matrix5x4. Creates a Matrix5x4 that scales along the x-axis, y-axis, z-axis and w-axis. Scaling factor that is applied along the x-axis. Scaling factor that is applied along the y-axis. Scaling factor that is applied along the z-axis. Scaling factor that is applied along the w-axis. The created scaling Matrix5x4. Creates a Matrix5x4 that uniformly scales along all three axis. The uniform scale that is applied along all axis. When the method completes, contains the created scaling Matrix5x4. Creates a Matrix5x4 that uniformly scales along all three axis. The uniform scale that is applied along all axis. The created scaling Matrix5x4. Creates a translation Matrix5x4 using the specified offsets. The offset for all three coordinate planes. When the method completes, contains the created translation Matrix5x4. Creates a translation Matrix5x4 using the specified offsets. The offset for all three coordinate planes. The created translation Matrix5x4. Creates a translation Matrix5x4 using the specified offsets. X-coordinate offset. Y-coordinate offset. Z-coordinate offset. W-coordinate offset. When the method completes, contains the created translation Matrix5x4. Creates a translation Matrix5x4 using the specified offsets. X-coordinate offset. Y-coordinate offset. Z-coordinate offset. W-coordinate offset. The created translation Matrix5x4. Adds two matrices. The first Matrix5x4 to add. The second Matrix5x4 to add. The sum of the two matrices. Assert a Matrix5x4 (return it unchanged). The Matrix5x4 to assert (unchanged). The asserted (unchanged) Matrix5x4. Subtracts two matrices. The first Matrix5x4 to subtract. The second Matrix5x4 to subtract. The difference between the two matrices. Negates a Matrix5x4. The Matrix5x4 to negate. The negated Matrix5x4. Scales a Matrix5x4 by a given value. The Matrix5x4 to scale. The amount by which to scale. The scaled Matrix5x4. Scales a Matrix5x4 by a given value. The Matrix5x4 to scale. The amount by which to scale. The scaled Matrix5x4. Scales a Matrix5x4 by a given value. The Matrix5x4 to scale. The amount by which to scale. The scaled Matrix5x4. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. OrientedBoundingBox (OBB) is a rectangular block, much like an AABB (BoundingBox) but with an arbitrary orientation. Half lengths of the box along each axis. The matrix which aligns and scales the box, and its translation vector represents the center of the box. Creates an from a BoundingBox. The BoundingBox to create from. Initially, the OBB is axis-aligned box, but it can be rotated and transformed later. Creates an which contained between two minimum and maximum points. The minimum vertex of the bounding box. The maximum vertex of the bounding box. Initially, the OrientedBoundingBox is axis-aligned box, but it can be rotated and transformed later. Creates an that fully contains the given points. The points that will be contained by the box. This method is not for computing the best tight-fitting OrientedBoundingBox. And initially, the OrientedBoundingBox is axis-aligned box, but it can be rotated and transformed later. Retrieves the eight corners of the bounding box. An array of points representing the eight corners of the bounding box. Transforms this box using a transformation matrix. The transformation matrix. While any kind of transformation can be applied, it is recommended to apply scaling using scale method instead, which scales the Extents and keeps the Transformation matrix for rotation only, and that preserves collision detection accuracy. Transforms this box using a transformation matrix. The transformation matrix. While any kind of transformation can be applied, it is recommended to apply scaling using scale method instead, which scales the Extents and keeps the Transformation matrix for rotation only, and that preserves collision detection accuracy. Scales the by scaling its Extents without affecting the Transformation matrix, By keeping Transformation matrix scaling-free, the collision detection methods will be more accurate. Scales the by scaling its Extents without affecting the Transformation matrix, By keeping Transformation matrix scaling-free, the collision detection methods will be more accurate. Scales the by scaling its Extents without affecting the Transformation matrix, By keeping Transformation matrix scaling-free, the collision detection methods will be more accurate. Translates the to a new position using a translation vector; the translation vector. Translates the to a new position using a translation vector; the translation vector. The size of the if no scaling is applied to the transformation matrix. The property will return the actual size even if the scaling is applied using Scale method, but if the scaling is applied to transformation matrix, use GetSize Function instead. Returns the size of the taking into consideration the scaling applied to the transformation matrix. The size of the consideration This method is computationally expensive, so if no scale is applied to the transformation matrix use property instead. Returns the square size of the taking into consideration the scaling applied to the transformation matrix. The size of the consideration Returns the center of the . Determines whether a contains a point. The point to test. The type of containment the two objects have. Determines whether a contains a point. The point to test. The type of containment the two objects have. Determines whether a contains an array of points>. The points array to test. The type of containment. Determines whether a contains a . The sphere to test. Optimize the check operation by assuming that has no scaling applied The type of containment the two objects have. This method is not designed for which has a non-uniform scaling applied to its transformation matrix. But any type of scaling applied using Scale method will keep this method accurate. Check the intersection between two The OrientedBoundingBoxs to test. The type of containment the two objects have. For accuracy, The transformation matrix for both must not have any scaling applied to it. Anyway, scaling using Scale method will keep this method accurate. Check the intersection between an and a line defined by two points The first point in the line. The second point in the line. The type of containment the two objects have. For accuracy, The transformation matrix for the must not have any scaling applied to it. Anyway, scaling using Scale method will keep this method accurate. Check the intersection between an and The BoundingBox to test. The type of containment the two objects have. For accuracy, The transformation matrix for the must not have any scaling applied to it. Anyway, scaling using Scale method will keep this method accurate. Determines whether there is an intersection between a and a . The ray to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines whether there is an intersection between a and a . The ray to test. Whether the two objects intersected. Get the axis-aligned which contains all corners. The axis-aligned BoundingBox of this OrientedBoundingBox. Calculates the matrix required to transfer any point from one local coordinates to another. The source OrientedBoundingBox. The target OrientedBoundingBox. If true, the method will use a fast algorithm which is inapplicable if a scale is applied to the transformation matrix of the OrientedBoundingBox. Merge an OrientedBoundingBox B into another OrientedBoundingBox A, by expanding A to contain B and keeping A orientation. The to merge into it. The to be merged If true, the method will use a fast algorithm which is inapplicable if a scale is applied to the transformation matrix of the OrientedBoundingBox. Unlike merging axis aligned boxes, The operation is not interchangeable, because it keeps A orientation and merge B into it. Merge this OrientedBoundingBox into another OrientedBoundingBox, keeping the other OrientedBoundingBox orientation. The other to merge into. If true, the method will use a fast algorithm which is inapplicable if a scale is applied to the transformation matrix of the OrientedBoundingBox. Merge another OrientedBoundingBox into this OrientedBoundingBox. The other to merge into this OrientedBoundingBox. If true, the method will use a fast algorithm which is inapplicable if a scale is applied to the transformation matrix of the OrientedBoundingBox. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Represents a plane in three dimensional space. The normal vector of the plane. The distance of the plane along its normal from the origin. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. The X component of the normal. The Y component of the normal. The Z component of the normal. The distance of the plane along its normal from the origin. Initializes a new instance of the class. Any point that lies along the plane. The normal vector to the plane. Initializes a new instance of the struct. The normal of the plane. The distance of the plane along its normal from the origin Initializes a new instance of the struct. First point of a triangle defining the plane. Second point of a triangle defining the plane. Third point of a triangle defining the plane. Initializes a new instance of the struct. The values to assign to the A, B, C, and D components of the plane. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets or sets the component at the specified index. The value of the A, B, C, or D component, depending on the index. The index of the component to access. Use 0 for the A component, 1 for the B component, 2 for the C component, and 3 for the D component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Changes the coefficients of the normal vector of the plane to make it of unit length. Creates an array containing the elements of the plane. A four-element array containing the components of the plane. Determines if there is an intersection between the current object and a point. The point to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The plane to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The plane to test. When the method completes, contains the line of intersection as a , or a zero ray if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a triangle. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. Whether the two objects intersected. Builds a matrix that can be used to reflect vectors about a plane. The plane for which the reflection occurs. This parameter is assumed to be normalized. When the method completes, contains the reflection matrix. Builds a matrix that can be used to reflect vectors about a plane. The reflection matrix. Creates a matrix that flattens geometry into a shadow from this the plane onto which to project the geometry as a shadow. This plane is assumed to be normalized The light direction. If the W component is 0, the light is directional light; if the W component is 1, the light is a point light. When the method completes, contains the shadow matrix. Creates a matrix that flattens geometry into a shadow from this the plane onto which to project the geometry as a shadow. This plane is assumed to be normalized The light direction. If the W component is 0, the light is directional light; if the W component is 1, the light is a point light. The shadow matrix. Builds a Matrix3x3 that can be used to reflect vectors about a plane for which the reflection occurs. This plane is assumed to be normalized When the method completes, contains the reflection Matrix3x3. Builds a Matrix3x3 that can be used to reflect vectors about a plane for which the reflection occurs. This plane is assumed to be normalized The reflection Matrix3x3. Creates a Matrix3x3 that flattens geometry into a shadow. The light direction. If the W component is 0, the light is directional light; if the W component is 1, the light is a point light. The plane onto which to project the geometry as a shadow. This parameter is assumed to be normalized. When the method completes, contains the shadow Matrix3x3. Creates a Matrix3x3 that flattens geometry into a shadow. The light direction. If the W component is 0, the light is directional light; if the W component is 1, the light is a point light. The plane onto which to project the geometry as a shadow. This parameter is assumed to be normalized. The shadow Matrix3x3. Scales the plane by the given scaling factor. The plane to scale. The amount by which to scale the plane. When the method completes, contains the scaled plane. Scales the plane by the given scaling factor. The plane to scale. The amount by which to scale the plane. The scaled plane. Calculates the dot product of the specified vector and plane. The source plane. The source vector. When the method completes, contains the dot product of the specified plane and vector. Calculates the dot product of the specified vector and plane. The source plane. The source vector. The dot product of the specified plane and vector. Calculates the dot product of a specified vector and the normal of the plane plus the distance value of the plane. The source plane. The source vector. When the method completes, contains the dot product of a specified vector and the normal of the Plane plus the distance value of the plane. Calculates the dot product of a specified vector and the normal of the plane plus the distance value of the plane. The source plane. The source vector. The dot product of a specified vector and the normal of the Plane plus the distance value of the plane. Calculates the dot product of the specified vector and the normal of the plane. The source plane. The source vector. When the method completes, contains the dot product of the specified vector and the normal of the plane. Calculates the dot product of the specified vector and the normal of the plane. The source plane. The source vector. The dot product of the specified vector and the normal of the plane. Changes the coefficients of the normal vector of the plane to make it of unit length. The source plane. When the method completes, contains the normalized plane. Changes the coefficients of the normal vector of the plane to make it of unit length. The source plane. The normalized plane. Transforms a normalized plane by a quaternion rotation. The normalized source plane. The quaternion rotation. When the method completes, contains the transformed plane. Transforms a normalized plane by a quaternion rotation. The normalized source plane. The quaternion rotation. The transformed plane. Transforms an array of normalized planes by a quaternion rotation. The array of normalized planes to transform. The quaternion rotation. Thrown when is null. Transforms a normalized plane by a matrix. The normalized source plane. The transformation matrix. When the method completes, contains the transformed plane. Transforms a normalized plane by a matrix. The normalized source plane. The transformation matrix. When the method completes, contains the transformed plane. Transforms an array of normalized planes by a matrix. The array of normalized planes to transform. The transformation matrix. Thrown when is null. Scales a plane by the given value. The amount by which to scale the plane. The plane to scale. The scaled plane. Scales a plane by the given value. The plane to scale. The amount by which to scale the plane. The scaled plane. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Structure using the same layout than . A point with (0,0) coordinates. Initializes a new instance of the struct. The x. The y. Left coordinate. Top coordinate. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Implements the operator ==. The left. The right. The result of the operator. Implements the operator !=. The left. The right. The result of the operator. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents a four dimensional mathematical quaternion. The size of the type, in bytes. A with all of its components set to zero. A with all of its components set to one. The identity (0, 0, 0, 1). The X component of the quaternion. The Y component of the quaternion. The Z component of the quaternion. The W component of the quaternion. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. A vector containing the values with which to initialize the components. Initializes a new instance of the struct. A vector containing the values with which to initialize the X, Y, and Z components. Initial value for the W component of the quaternion. Initializes a new instance of the struct. A vector containing the values with which to initialize the X and Y components. Initial value for the Z component of the quaternion. Initial value for the W component of the quaternion. Initializes a new instance of the struct. Initial value for the X component of the quaternion. Initial value for the Y component of the quaternion. Initial value for the Z component of the quaternion. Initial value for the W component of the quaternion. Initializes a new instance of the struct. The values to assign to the X, Y, Z, and W components of the quaternion. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets a value indicating whether this instance is equivalent to the identity quaternion. true if this instance is an identity quaternion; otherwise, false. Gets a value indicting whether this instance is normalized. Gets the angle of the quaternion. The quaternion's angle. Gets the axis components of the quaternion. The axis components of the quaternion. Gets or sets the component at the specified index. The value of the X, Y, Z, or W component, depending on the index. The index of the component to access. Use 0 for the X component, 1 for the Y component, 2 for the Z component, and 3 for the W component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Conjugates the quaternion. Conjugates and renormalizes the quaternion. Calculates the length of the quaternion. The length of the quaternion. may be preferred when only the relative length is needed and speed is of the essence. Calculates the squared length of the quaternion. The squared length of the quaternion. This method may be preferred to when only a relative length is needed and speed is of the essence. Converts the quaternion into a unit quaternion. Creates an array containing the elements of the quaternion. A four-element array containing the components of the quaternion. Adds two quaternions. The first quaternion to add. The second quaternion to add. When the method completes, contains the sum of the two quaternions. Adds two quaternions. The first quaternion to add. The second quaternion to add. The sum of the two quaternions. Subtracts two quaternions. The first quaternion to subtract. The second quaternion to subtract. When the method completes, contains the difference of the two quaternions. Subtracts two quaternions. The first quaternion to subtract. The second quaternion to subtract. The difference of the two quaternions. Scales a quaternion by the given value. The quaternion to scale. The amount by which to scale the quaternion. When the method completes, contains the scaled quaternion. Scales a quaternion by the given value. The quaternion to scale. The amount by which to scale the quaternion. The scaled quaternion. Multiplies a quaternion by another. The first quaternion to multiply. The second quaternion to multiply. When the method completes, contains the multiplied quaternion. Multiplies a quaternion by another. The first quaternion to multiply. The second quaternion to multiply. The multiplied quaternion. Reverses the direction of a given quaternion. The quaternion to negate. When the method completes, contains a quaternion facing in the opposite direction. Reverses the direction of a given quaternion. The quaternion to negate. A quaternion facing in the opposite direction. Returns a containing the 4D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 2D triangle. A containing the 4D Cartesian coordinates of vertex 1 of the triangle. A containing the 4D Cartesian coordinates of vertex 2 of the triangle. A containing the 4D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). When the method completes, contains a new containing the 4D Cartesian coordinates of the specified point. Returns a containing the 4D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 2D triangle. A containing the 4D Cartesian coordinates of vertex 1 of the triangle. A containing the 4D Cartesian coordinates of vertex 2 of the triangle. A containing the 4D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). A new containing the 4D Cartesian coordinates of the specified point. Conjugates a quaternion. The quaternion to conjugate. When the method completes, contains the conjugated quaternion. Conjugates a quaternion. The quaternion to conjugate. The conjugated quaternion. Calculates the dot product of two quaternions. First source quaternion. Second source quaternion. When the method completes, contains the dot product of the two quaternions. Calculates the dot product of two quaternions. First source quaternion. Second source quaternion. The dot product of the two quaternions. Exponentiates a quaternion. The quaternion to exponentiate. When the method completes, contains the exponentiated quaternion. Exponentiates a quaternion. The quaternion to exponentiate. The exponentiated quaternion. Conjugates and renormalizes the quaternion. The quaternion to conjugate and renormalize. When the method completes, contains the conjugated and renormalized quaternion. Conjugates and renormalizes the quaternion. The quaternion to conjugate and renormalize. The conjugated and renormalized quaternion. Performs a linear interpolation between two quaternions. Start quaternion. End quaternion. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two quaternions. This method performs the linear interpolation based on the following formula. start + (end - start) * amount Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two quaternion. Start quaternion. End quaternion. Value between 0 and 1 indicating the weight of . The linear interpolation of the two quaternions. This method performs the linear interpolation based on the following formula. start + (end - start) * amount Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Calculates the natural logarithm of the specified quaternion. The quaternion whose logarithm will be calculated. When the method completes, contains the natural logarithm of the quaternion. Calculates the natural logarithm of the specified quaternion. The quaternion whose logarithm will be calculated. The natural logarithm of the quaternion. Converts the quaternion into a unit quaternion. The quaternion to normalize. When the method completes, contains the normalized quaternion. Converts the quaternion into a unit quaternion. The quaternion to normalize. The normalized quaternion. Creates a quaternion given a rotation and an axis. The axis of rotation. The angle of rotation. When the method completes, contains the newly created quaternion. Creates a quaternion given a rotation and an axis. The axis of rotation. The angle of rotation. The newly created quaternion. Creates a quaternion given a rotation matrix. The rotation matrix. When the method completes, contains the newly created quaternion. Creates a quaternion given a rotation matrix. The rotation matrix. When the method completes, contains the newly created quaternion. Creates a left-handed, look-at quaternion. The position of the viewer's eye. The camera look-at target. The camera's up vector. When the method completes, contains the created look-at quaternion. Creates a left-handed, look-at quaternion. The position of the viewer's eye. The camera look-at target. The camera's up vector. The created look-at quaternion. Creates a left-handed, look-at quaternion. The camera's forward direction. The camera's up vector. When the method completes, contains the created look-at quaternion. Creates a left-handed, look-at quaternion. The camera's forward direction. The camera's up vector. The created look-at quaternion. Creates a right-handed, look-at quaternion. The position of the viewer's eye. The camera look-at target. The camera's up vector. When the method completes, contains the created look-at quaternion. Creates a right-handed, look-at quaternion. The position of the viewer's eye. The camera look-at target. The camera's up vector. The created look-at quaternion. Creates a right-handed, look-at quaternion. The camera's forward direction. The camera's up vector. When the method completes, contains the created look-at quaternion. Creates a right-handed, look-at quaternion. The camera's forward direction. The camera's up vector. The created look-at quaternion. Creates a left-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. When the method completes, contains the created billboard quaternion. Creates a left-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. The created billboard quaternion. Creates a right-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. When the method completes, contains the created billboard quaternion. Creates a right-handed spherical billboard that rotates around a specified object position. The position of the object around which the billboard will rotate. The position of the camera. The up vector of the camera. The forward vector of the camera. The created billboard quaternion. Creates a quaternion given a rotation matrix. The rotation matrix. The newly created quaternion. Creates a quaternion given a yaw, pitch, and roll value. The yaw of rotation. The pitch of rotation. The roll of rotation. When the method completes, contains the newly created quaternion. Creates a quaternion given a yaw, pitch, and roll value. The yaw of rotation. The pitch of rotation. The roll of rotation. The newly created quaternion. Interpolates between two quaternions, using spherical linear interpolation. Start quaternion. End quaternion. Value between 0 and 1 indicating the weight of . When the method completes, contains the spherical linear interpolation of the two quaternions. Interpolates between two quaternions, using spherical linear interpolation. Start quaternion. End quaternion. Value between 0 and 1 indicating the weight of . The spherical linear interpolation of the two quaternions. Interpolates between quaternions, using spherical quadrangle interpolation. First source quaternion. Second source quaternion. Third source quaternion. Fourth source quaternion. Value between 0 and 1 indicating the weight of interpolation. When the method completes, contains the spherical quadrangle interpolation of the quaternions. Interpolates between quaternions, using spherical quadrangle interpolation. First source quaternion. Second source quaternion. Third source quaternion. Fourth source quaternion. Value between 0 and 1 indicating the weight of interpolation. The spherical quadrangle interpolation of the quaternions. Sets up control points for spherical quadrangle interpolation. First source quaternion. Second source quaternion. Third source quaternion. Fourth source quaternion. An array of three quaternions that represent control points for spherical quadrangle interpolation. Adds two quaternions. The first quaternion to add. The second quaternion to add. The sum of the two quaternions. Subtracts two quaternions. The first quaternion to subtract. The second quaternion to subtract. The difference of the two quaternions. Reverses the direction of a given quaternion. The quaternion to negate. A quaternion facing in the opposite direction. Scales a quaternion by the given value. The quaternion to scale. The amount by which to scale the quaternion. The scaled quaternion. Scales a quaternion by the given value. The quaternion to scale. The amount by which to scale the quaternion. The scaled quaternion. Multiplies a quaternion by another. The first quaternion to multiply. The second quaternion to multiply. The multiplied quaternion. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Random functions on commun types. Gets random float number within range. Current . Minimum. Maximum. Random float number. Gets random double number within range. Current . Minimum. Maximum. Random double number. Gets random long number. Current . Random long number. Gets random long number within range. Current . Minimum. Maximum. Random long number. Gets random within range. Current . Minimum. Maximum. Random . Gets random within range. Current . Minimum. Maximum. Random . Gets random within range. Current . Minimum. Maximum. Random . Gets random opaque . Current . Random . Gets random opaque . Current . Minimum brightness. Maximum brightness Random . Gets random . Current . Minimum brightness. Maximum brightness Alpha value. Random . Gets random . Current . Minimum brightness. Maximum brightness Minimum alpha. Maximum alpha. Random . Gets random . Current . Minimum. Maximum. Random . Gets random . Current . Minimum. Maximum. Random . Represents a three dimensional line based on a point in space and a direction. The position in three dimensional space where the ray starts. The normalized direction in which the ray points. Initializes a new instance of the struct. The position in three dimensional space of the origin of the ray. The normalized direction of the ray. Determines if there is an intersection between the current object and a point. The point to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The ray to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The plane to test Whether the two objects intersected. Determines if there is an intersection between the current object and a . The plane to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The plane to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a triangle. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a triangle. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a triangle. The first vertex of the triangle to test. The second vertex of the triangle to test. The third vertex of the triangle to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The box to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. When the method completes, contains the distance of the intersection, or 0 if there was no intersection. Whether the two objects intersected. Determines if there is an intersection between the current object and a . The sphere to test. When the method completes, contains the point of intersection, or if there was no intersection. Whether the two objects intersected. Calculates a world space from 2d screen coordinates. X coordinate on 2d screen. Y coordinate on 2d screen. . Transformation . Resulting . Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Define a Rectangle. This structure is slightly different from System.Drawing.Rectangle as it is internally storing Left,Top,Right,Bottom instead of Left,Top,Width,Height. The left. The top. The right. The bottom. An empty rectangle. Initializes a new instance of the struct. The left. The top. The width. The height. Gets or sets the X position. The X position. Gets or sets the Y position. The Y position. Gets or sets the width. The width. Gets or sets the height. The height. Gets a value that indicates whether the rectangle is empty. true if [is empty]; otherwise, false. Changes the position of the rectangle. Change in the x-position. Change in the y-position. Pushes the edges of the rectangle out by the horizontal and vertical values specified. Value to push the sides out by. Value to push the top and bottom out by. Determines whether this rectangle contains a specified point represented by its x- and y-coordinates. The x-coordinate of the specified point. The y-coordinate of the specified point. Determines whether this rectangle entirely contains a specified rectangle. The rectangle to evaluate. Determines whether this rectangle entirely contains a specified rectangle. The rectangle to evaluate. [OutAttribute] On exit, is true if this rectangle entirely contains the specified rectangle, or false if not. Checks, if specified point is inside . X point coordinate. Y point coordinate. true if point is inside , otherwise false. Determines whether a specified rectangle intersects with this rectangle. The rectangle to evaluate. Determines whether a specified rectangle intersects with this rectangle. The rectangle to evaluate [OutAttribute] true if the specified rectangle intersects with this one; false otherwise. Creates a rectangle defining the area where one rectangle overlaps with another rectangle. The first rectangle to compare. The second rectangle to compare. The intersection rectangle. Creates a rectangle defining the area where one rectangle overlaps with another rectangle. The first rectangle to compare. The second rectangle to compare. [OutAttribute] The area where the two first parameters overlap. Creates a new rectangle that exactly contains two other rectangles. The first rectangle to contain. The second rectangle to contain. The union rectangle. Creates a new rectangle that exactly contains two other rectangles. The first rectangle to contain. The second rectangle to contain. [OutAttribute] The rectangle that must be the union of the first two rectangles. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Implements the operator ==. The left. The right. The result of the operator. Implements the operator !=. The left. The right. The result of the operator. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Define a RectangleF. This structure is slightly different from System.Drawing.RectangleF as it is internally storing Left,Top,Right,Bottom instead of Left,Top,Width,Height. The left. The top. The right. The bottom. An empty rectangle. An infinite rectangle. See remarks. http://msdn.microsoft.com/en-us/library/windows/desktop/dd372261%28v=vs.85%29.aspx Any properties that involve computations, like , or may return incorrect results - . Initializes a new instance of the struct. The left. The top. The width. The height. Gets or sets the X position. The X position. Gets or sets the Y position. The Y position. Gets or sets the width. The width. Gets or sets the height. The height. Gets or sets the location. The location. Gets the Point that specifies the center of the rectangle. The center. Gets a value that indicates whether the rectangle is empty. true if [is empty]; otherwise, false. Gets or sets the size of the rectangle. The size of the rectangle. Gets the position of the top-left corner of the rectangle. The top-left corner of the rectangle. Gets the position of the top-right corner of the rectangle. The top-right corner of the rectangle. Gets the position of the bottom-left corner of the rectangle. The bottom-left corner of the rectangle. Gets the position of the bottom-right corner of the rectangle. The bottom-right corner of the rectangle. Changes the position of the rectangle. The values to adjust the position of the rectangle by. Changes the position of the rectangle. The values to adjust the position of the rectangle by. Changes the position of the rectangle. Change in the x-position. Change in the y-position. Pushes the edges of the rectangle out by the horizontal and vertical values specified. Value to push the sides out by. Value to push the top and bottom out by. Determines whether this rectangle contains a specified Point. The Point to evaluate. [OutAttribute] true if the specified Point is contained within this rectangle; false otherwise. Determines whether this rectangle entirely contains a specified rectangle. The rectangle to evaluate. Determines whether this rectangle entirely contains a specified rectangle. The rectangle to evaluate. [OutAttribute] On exit, is true if this rectangle entirely contains the specified rectangle, or false if not. Checks, if specified point is inside . X point coordinate. Y point coordinate. true if point is inside , otherwise false. Checks, if specified is inside . Coordinate . true if is inside , otherwise false. Checks, if specified is inside . Coordinate . true if is inside , otherwise false. Determines whether a specified rectangle intersects with this rectangle. The rectangle to evaluate. Determines whether a specified rectangle intersects with this rectangle. The rectangle to evaluate [OutAttribute] true if the specified rectangle intersects with this one; false otherwise. Creates a rectangle defining the area where one rectangle overlaps with another rectangle. The first Rectangle to compare. The second Rectangle to compare. The intersection rectangle. Creates a rectangle defining the area where one rectangle overlaps with another rectangle. The first rectangle to compare. The second rectangle to compare. [OutAttribute] The area where the two first parameters overlap. Creates a new rectangle that exactly contains two other rectangles. The first rectangle to contain. The second rectangle to contain. The union rectangle. Creates a new rectangle that exactly contains two other rectangles. The first rectangle to contain. The second rectangle to contain. [OutAttribute] The rectangle that must be the union of the first two rectangles. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Implements the operator ==. The left. The right. The result of the operator. Implements the operator !=. The left. The right. The result of the operator. Performs an explicit conversion to structure. Performs direct float to int conversion, any fractional data is truncated. The source value. A converted structure. Performs an explicit conversion to structure. Performs direct float to int conversion, any fractional data is truncated. The source value. A converted structure. Performs an explicit conversion to structure. Performs direct float to int conversion, any fractional data is truncated. The source value. A converted structure. Represents a two dimensional mathematical vector. The size of the type, in bytes. A with all of its components set to zero. The X unit (1, 0). The Y unit (0, 1). A with all of its components set to one. The X component of the vector. The Y component of the vector. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. Initial value for the X component of the vector. Initial value for the Y component of the vector. Initializes a new instance of the struct. The values to assign to the X and Y components of the vector. This must be an array with two elements. Thrown when is null. Thrown when contains more or less than two elements. Gets a value indicting whether this instance is normalized. Gets a value indicting whether this vector is zero Gets or sets the component at the specified index. The value of the X or Y component, depending on the index. The index of the component to access. Use 0 for the X component and 1 for the Y component. The value of the component at the specified index. Thrown when the is out of the range [0, 1]. Calculates the length of the vector. The length of the vector. may be preferred when only the relative length is needed and speed is of the essence. Calculates the squared length of the vector. The squared length of the vector. This method may be preferred to when only a relative length is needed and speed is of the essence. Converts the vector into a unit vector. Creates an array containing the elements of the vector. A two-element array containing the components of the vector. Adds two vectors. The first vector to add. The second vector to add. When the method completes, contains the sum of the two vectors. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Perform a component-wise addition The input vector The scalar value to be added to elements The vector with added scalar for each element. Perform a component-wise addition The input vector The scalar value to be added to elements The vector with added scalar for each element. Subtracts two vectors. The first vector to subtract. The second vector to subtract. When the method completes, contains the difference of the two vectors. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Perform a component-wise subtraction The input vector The scalar value to be subtraced from elements The vector with subtracted scalar for each element. Perform a component-wise subtraction The input vector The scalar value to be subtraced from elements The vector with subtracted scalar for each element. Perform a component-wise subtraction The scalar value to be subtraced from elements The input vector The vector with subtracted scalar for each element. Perform a component-wise subtraction The scalar value to be subtraced from elements The input vector The vector with subtracted scalar for each element. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Multiplies a vector with another by performing component-wise multiplication. The first vector to multiply. The second vector to multiply. When the method completes, contains the multiplied vector. Multiplies a vector with another by performing component-wise multiplication. The first vector to multiply. The second vector to multiply. The multiplied vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The amount by which to scale the vector. The vector to scale. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Reverses the direction of a given vector. The vector to negate. When the method completes, contains a vector facing in the opposite direction. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Returns a containing the 2D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 2D triangle. A containing the 2D Cartesian coordinates of vertex 1 of the triangle. A containing the 2D Cartesian coordinates of vertex 2 of the triangle. A containing the 2D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). When the method completes, contains the 2D Cartesian coordinates of the specified point. Returns a containing the 2D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 2D triangle. A containing the 2D Cartesian coordinates of vertex 1 of the triangle. A containing the 2D Cartesian coordinates of vertex 2 of the triangle. A containing the 2D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). A new containing the 2D Cartesian coordinates of the specified point. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Saturates this instance in the range [0,1] Calculates the distance between two vectors. The first vector. The second vector. When the method completes, contains the distance between the two vectors. may be preferred when only the relative distance is needed and speed is of the essence. Calculates the distance between two vectors. The first vector. The second vector. The distance between the two vectors. may be preferred when only the relative distance is needed and speed is of the essence. Calculates the squared distance between two vectors. The first vector. The second vector When the method completes, contains the squared distance between the two vectors. Distance squared is the value before taking the square root. Distance squared can often be used in place of distance if relative comparisons are being made. For example, consider three points A, B, and C. To determine whether B or C is further from A, compare the distance between A and B to the distance between A and C. Calculating the two distances involves two square roots, which are computationally expensive. However, using distance squared provides the same information and avoids calculating two square roots. Calculates the squared distance between two vectors. The first vector. The second vector. The squared distance between the two vectors. Distance squared is the value before taking the square root. Distance squared can often be used in place of distance if relative comparisons are being made. For example, consider three points A, B, and C. To determine whether B or C is further from A, compare the distance between A and B to the distance between A and C. Calculating the two distances involves two square roots, which are computationally expensive. However, using distance squared provides the same information and avoids calculating two square roots. Calculates the dot product of two vectors. First source vector. Second source vector. When the method completes, contains the dot product of the two vectors. Calculates the dot product of two vectors. First source vector. Second source vector. The dot product of the two vectors. Converts the vector into a unit vector. The vector to normalize. When the method completes, contains the normalized vector. Converts the vector into a unit vector. The vector to normalize. The normalized vector. Performs a linear interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two vectors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . The linear interpolation of the two vectors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two vectors. Performs a cubic interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two vectors. Performs a Hermite spline interpolation. First source position vector. First source tangent vector. Second source position vector. Second source tangent vector. Weighting factor. When the method completes, contains the result of the Hermite spline interpolation. Performs a Hermite spline interpolation. First source position vector. First source tangent vector. Second source position vector. Second source tangent vector. Weighting factor. The result of the Hermite spline interpolation. Performs a Catmull-Rom interpolation using the specified positions. The first position in the interpolation. The second position in the interpolation. The third position in the interpolation. The fourth position in the interpolation. Weighting factor. When the method completes, contains the result of the Catmull-Rom interpolation. Performs a Catmull-Rom interpolation using the specified positions. The first position in the interpolation. The second position in the interpolation. The third position in the interpolation. The fourth position in the interpolation. Weighting factor. A vector that is the result of the Catmull-Rom interpolation. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the largest components of the source vectors. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. A vector containing the largest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the smallest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. A vector containing the smallest components of the source vectors. Returns the reflection of a vector off a surface that has the specified normal. The source vector. Normal of the surface. When the method completes, contains the reflected vector. Reflect only gives the direction of a reflection off a surface, it does not determine whether the original vector was close enough to the surface to hit it. Returns the reflection of a vector off a surface that has the specified normal. The source vector. Normal of the surface. The reflected vector. Reflect only gives the direction of a reflection off a surface, it does not determine whether the original vector was close enough to the surface to hit it. Orthogonalizes a list of vectors. The list of orthogonalized vectors. The list of vectors to orthogonalize. Orthogonalization is the process of making all vectors orthogonal to each other. This means that any given vector in the list will be orthogonal to any other given vector in the list. Because this method uses the modified Gram-Schmidt process, the resulting vectors tend to be numerically unstable. The numeric stability decreases according to the vectors position in the list so that the first vector is the most stable and the last vector is the least stable. Thrown when or is null. Thrown when is shorter in length than . Orthonormalizes a list of vectors. The list of orthonormalized vectors. The list of vectors to orthonormalize. Orthonormalization is the process of making all vectors orthogonal to each other and making all vectors of unit length. This means that any given vector will be orthogonal to any other given vector in the list. Because this method uses the modified Gram-Schmidt process, the resulting vectors tend to be numerically unstable. The numeric stability decreases according to the vectors position in the list so that the first vector is the most stable and the last vector is the least stable. Thrown when or is null. Thrown when is shorter in length than . Transforms a 2D vector by the given rotation. The vector to rotate. The rotation to apply. When the method completes, contains the transformed . Transforms a 2D vector by the given rotation. The vector to rotate. The rotation to apply. The transformed . Transforms an array of vectors by the given rotation. The array of vectors to transform. The rotation to apply. The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . Transforms a 2D vector by the given . The source vector. The transformation . When the method completes, contains the transformed . Transforms a 2D vector by the given . The source vector. The transformation . The transformed . Transforms an array of 2D vectors by the given . The array of vectors to transform. The transformation . The array for which the transformed vectors are stored. Thrown when or is null. Thrown when is shorter in length than . Performs a coordinate transformation using the given . The coordinate vector to transform. The transformation . When the method completes, contains the transformed coordinates. A coordinate transform performs the transformation with the assumption that the w component is one. The four dimensional vector obtained from the transformation operation has each component in the vector divided by the w component. This forces the w component to be one and therefore makes the vector homogeneous. The homogeneous vector is often preferred when working with coordinates as the w component can safely be ignored. Performs a coordinate transformation using the given . The coordinate vector to transform. The transformation . The transformed coordinates. A coordinate transform performs the transformation with the assumption that the w component is one. The four dimensional vector obtained from the transformation operation has each component in the vector divided by the w component. This forces the w component to be one and therefore makes the vector homogeneous. The homogeneous vector is often preferred when working with coordinates as the w component can safely be ignored. Performs a coordinate transformation on an array of vectors using the given . The array of coordinate vectors to transform. The transformation . The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . A coordinate transform performs the transformation with the assumption that the w component is one. The four dimensional vector obtained from the transformation operation has each component in the vector divided by the w component. This forces the w component to be one and therefore makes the vector homogeneous. The homogeneous vector is often preferred when working with coordinates as the w component can safely be ignored. Performs a normal transformation using the given . The normal vector to transform. The transformation . When the method completes, contains the transformed normal. A normal transform performs the transformation with the assumption that the w component is zero. This causes the fourth row and fourth column of the matrix to be unused. The end result is a vector that is not translated, but all other transformation properties apply. This is often preferred for normal vectors as normals purely represent direction rather than location because normal vectors should not be translated. Performs a normal transformation using the given . The normal vector to transform. The transformation . The transformed normal. A normal transform performs the transformation with the assumption that the w component is zero. This causes the fourth row and fourth column of the matrix to be unused. The end result is a vector that is not translated, but all other transformation properties apply. This is often preferred for normal vectors as normals purely represent direction rather than location because normal vectors should not be translated. Performs a normal transformation on an array of vectors using the given . The array of normal vectors to transform. The transformation . The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . A normal transform performs the transformation with the assumption that the w component is zero. This causes the fourth row and fourth column of the matrix to be unused. The end result is a vector that is not translated, but all other transformation properties apply. This is often preferred for normal vectors as normals purely represent direction rather than location because normal vectors should not be translated. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Multiplies a vector with another by performing component-wise multiplication equivalent to . The first vector to multiply. The second vector to multiply. The multiplication of the two vectors. Assert a vector (return it unchanged). The vector to assert (unchanged). The asserted (unchanged) vector. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The amount by which to scale the vector. The vector to scale. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Perform a component-wise addition The input vector. The scalar value to be added on elements The vector with added scalar for each element. Perform a component-wise addition The input vector. The scalar value to be added on elements The vector with added scalar for each element. Perform a component-wise subtraction The input vector. The scalar value to be subtraced from elements The vector with subtraced scalar from each element. Perform a component-wise subtraction The input vector. The scalar value to be subtraced from elements The vector with subtraced scalar from each element. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents a three dimensional mathematical vector. The size of the type, in bytes. A with all of its components set to zero. The X unit (1, 0, 0). The Y unit (0, 1, 0). The Z unit (0, 0, 1). A with all of its components set to one. A unit designating up (0, 1, 0). A unit designating down (0, -1, 0). A unit designating left (-1, 0, 0). A unit designating right (1, 0, 0). A unit designating forward in a right-handed coordinate system (0, 0, -1). A unit designating forward in a left-handed coordinate system (0, 0, 1). A unit designating backward in a right-handed coordinate system (0, 0, 1). A unit designating backward in a left-handed coordinate system (0, 0, -1). The X component of the vector. The Y component of the vector. The Z component of the vector. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. Initial value for the X component of the vector. Initial value for the Y component of the vector. Initial value for the Z component of the vector. Initializes a new instance of the struct. A vector containing the values with which to initialize the X and Y components. Initial value for the Z component of the vector. Initializes a new instance of the struct. The values to assign to the X, Y, and Z components of the vector. This must be an array with three elements. Thrown when is null. Thrown when contains more or less than three elements. Gets a value indicting whether this instance is normalized. Gets a value indicting whether this vector is zero Gets or sets the component at the specified index. The value of the X, Y, or Z component, depending on the index. The index of the component to access. Use 0 for the X component, 1 for the Y component, and 2 for the Z component. The value of the component at the specified index. Thrown when the is out of the range [0, 2]. Calculates the length of the vector. The length of the vector. may be preferred when only the relative length is needed and speed is of the essence. Calculates the squared length of the vector. The squared length of the vector. This method may be preferred to when only a relative length is needed and speed is of the essence. Converts the vector into a unit vector. Creates an array containing the elements of the vector. A three-element array containing the components of the vector. Adds two vectors. The first vector to add. The second vector to add. When the method completes, contains the sum of the two vectors. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Perform a component-wise addition The input vector The scalar value to be added to elements The vector with added scalar for each element. Perform a component-wise addition The input vector The scalar value to be added to elements The vector with added scalar for each element. Subtracts two vectors. The first vector to subtract. The second vector to subtract. When the method completes, contains the difference of the two vectors. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Perform a component-wise subtraction The input vector The scalar value to be subtraced from elements The vector with subtracted scalar for each element. Perform a component-wise subtraction The input vector The scalar value to be subtraced from elements The vector with subtracted scalar for each element. Perform a component-wise subtraction The scalar value to be subtraced from elements The input vector. The vector with subtracted scalar for each element. Perform a component-wise subtraction The scalar value to be subtraced from elements The input vector. The vector with subtracted scalar for each element. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Multiply a vector with another by performing component-wise multiplication. The first vector to multiply. The second vector to multiply. When the method completes, contains the multiplied vector. Multiply a vector with another by performing component-wise multiplication. The first vector to Multiply. The second vector to multiply. The multiplied vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The amount by which to scale the vector. The vector to scale. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Reverses the direction of a given vector. The vector to negate. When the method completes, contains a vector facing in the opposite direction. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Returns a containing the 3D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 3D triangle. A containing the 3D Cartesian coordinates of vertex 1 of the triangle. A containing the 3D Cartesian coordinates of vertex 2 of the triangle. A containing the 3D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). When the method completes, contains the 3D Cartesian coordinates of the specified point. Returns a containing the 3D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 3D triangle. A containing the 3D Cartesian coordinates of vertex 1 of the triangle. A containing the 3D Cartesian coordinates of vertex 2 of the triangle. A containing the 3D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). A new containing the 3D Cartesian coordinates of the specified point. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Calculates the cross product of two vectors. First source vector. Second source vector. When the method completes, contains he cross product of the two vectors. Calculates the cross product of two vectors. First source vector. Second source vector. The cross product of the two vectors. Calculates the distance between two vectors. The first vector. The second vector. When the method completes, contains the distance between the two vectors. may be preferred when only the relative distance is needed and speed is of the essence. Calculates the distance between two vectors. The first vector. The second vector. The distance between the two vectors. may be preferred when only the relative distance is needed and speed is of the essence. Calculates the squared distance between two vectors. The first vector. The second vector. When the method completes, contains the squared distance between the two vectors. Distance squared is the value before taking the square root. Distance squared can often be used in place of distance if relative comparisons are being made. For example, consider three points A, B, and C. To determine whether B or C is further from A, compare the distance between A and B to the distance between A and C. Calculating the two distances involves two square roots, which are computationally expensive. However, using distance squared provides the same information and avoids calculating two square roots. Calculates the squared distance between two vectors. The first vector. The second vector. The squared distance between the two vectors. Distance squared is the value before taking the square root. Distance squared can often be used in place of distance if relative comparisons are being made. For example, consider three points A, B, and C. To determine whether B or C is further from A, compare the distance between A and B to the distance between A and C. Calculating the two distances involves two square roots, which are computationally expensive. However, using distance squared provides the same information and avoids calculating two square roots. Tests whether one 3D vector is near another 3D vector. The left vector. The right vector. The epsilon. true if left and right are near another 3D, false otherwise Tests whether one 3D vector is near another 3D vector. The left vector. The right vector. The epsilon. true if left and right are near another 3D, false otherwise Calculates the dot product of two vectors. First source vector. Second source vector. When the method completes, contains the dot product of the two vectors. Calculates the dot product of two vectors. First source vector. Second source vector. The dot product of the two vectors. Converts the vector into a unit vector. The vector to normalize. When the method completes, contains the normalized vector. Converts the vector into a unit vector. The vector to normalize. The normalized vector. Performs a linear interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two vectors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . The linear interpolation of the two vectors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two vectors. Performs a cubic interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two vectors. Performs a Hermite spline interpolation. First source position vector. First source tangent vector. Second source position vector. Second source tangent vector. Weighting factor. When the method completes, contains the result of the Hermite spline interpolation. Performs a Hermite spline interpolation. First source position vector. First source tangent vector. Second source position vector. Second source tangent vector. Weighting factor. The result of the Hermite spline interpolation. Performs a Catmull-Rom interpolation using the specified positions. The first position in the interpolation. The second position in the interpolation. The third position in the interpolation. The fourth position in the interpolation. Weighting factor. When the method completes, contains the result of the Catmull-Rom interpolation. Performs a Catmull-Rom interpolation using the specified positions. The first position in the interpolation. The second position in the interpolation. The third position in the interpolation. The fourth position in the interpolation. Weighting factor. A vector that is the result of the Catmull-Rom interpolation. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the largest components of the source vectors. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. A vector containing the largest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the smallest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. A vector containing the smallest components of the source vectors. Projects a 3D vector from object space into screen space. The vector to project. The X position of the viewport. The Y position of the viewport. The width of the viewport. The height of the viewport. The minimum depth of the viewport. The maximum depth of the viewport. The combined world-view-projection matrix. When the method completes, contains the vector in screen space. Projects a 3D vector from object space into screen space. The vector to project. The X position of the viewport. The Y position of the viewport. The width of the viewport. The height of the viewport. The minimum depth of the viewport. The maximum depth of the viewport. The combined world-view-projection matrix. The vector in screen space. Projects a 3D vector from screen space into object space. The vector to project. The X position of the viewport. The Y position of the viewport. The width of the viewport. The height of the viewport. The minimum depth of the viewport. The maximum depth of the viewport. The combined world-view-projection matrix. When the method completes, contains the vector in object space. Projects a 3D vector from screen space into object space. The vector to project. The X position of the viewport. The Y position of the viewport. The width of the viewport. The height of the viewport. The minimum depth of the viewport. The maximum depth of the viewport. The combined world-view-projection matrix. The vector in object space. Returns the reflection of a vector off a surface that has the specified normal. The source vector. Normal of the surface. When the method completes, contains the reflected vector. Reflect only gives the direction of a reflection off a surface, it does not determine whether the original vector was close enough to the surface to hit it. Returns the reflection of a vector off a surface that has the specified normal. The source vector. Normal of the surface. The reflected vector. Reflect only gives the direction of a reflection off a surface, it does not determine whether the original vector was close enough to the surface to hit it. Orthogonalizes a list of vectors. The list of orthogonalized vectors. The list of vectors to orthogonalize. Orthogonalization is the process of making all vectors orthogonal to each other. This means that any given vector in the list will be orthogonal to any other given vector in the list. Because this method uses the modified Gram-Schmidt process, the resulting vectors tend to be numerically unstable. The numeric stability decreases according to the vectors position in the list so that the first vector is the most stable and the last vector is the least stable. Thrown when or is null. Thrown when is shorter in length than . Orthonormalizes a list of vectors. The list of orthonormalized vectors. The list of vectors to orthonormalize. Orthonormalization is the process of making all vectors orthogonal to each other and making all vectors of unit length. This means that any given vector will be orthogonal to any other given vector in the list. Because this method uses the modified Gram-Schmidt process, the resulting vectors tend to be numerically unstable. The numeric stability decreases according to the vectors position in the list so that the first vector is the most stable and the last vector is the least stable. Thrown when or is null. Thrown when is shorter in length than . Transforms a 3D vector by the given rotation. The vector to rotate. The rotation to apply. When the method completes, contains the transformed . Transforms a 3D vector by the given rotation. The vector to rotate. The rotation to apply. The transformed . Transforms an array of vectors by the given rotation. The array of vectors to transform. The rotation to apply. The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . Transforms a 3D vector by the given . The source vector. The transformation . When the method completes, contains the transformed . Transforms a 3D vector by the given . The source vector. The transformation . The transformed . Transforms a 3D vector by the given . The source vector. The transformation . When the method completes, contains the transformed . Transforms a 3D vector by the given . The source vector. The transformation . When the method completes, contains the transformed . Transforms a 3D vector by the given . The source vector. The transformation . The transformed . Transforms an array of 3D vectors by the given . The array of vectors to transform. The transformation . The array for which the transformed vectors are stored. Thrown when or is null. Thrown when is shorter in length than . Performs a coordinate transformation using the given . The coordinate vector to transform. The transformation . When the method completes, contains the transformed coordinates. A coordinate transform performs the transformation with the assumption that the w component is one. The four dimensional vector obtained from the transformation operation has each component in the vector divided by the w component. This forces the w component to be one and therefore makes the vector homogeneous. The homogeneous vector is often preferred when working with coordinates as the w component can safely be ignored. Performs a coordinate transformation using the given . The coordinate vector to transform. The transformation . The transformed coordinates. A coordinate transform performs the transformation with the assumption that the w component is one. The four dimensional vector obtained from the transformation operation has each component in the vector divided by the w component. This forces the w component to be one and therefore makes the vector homogeneous. The homogeneous vector is often preferred when working with coordinates as the w component can safely be ignored. Performs a coordinate transformation on an array of vectors using the given . The array of coordinate vectors to transform. The transformation . The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . A coordinate transform performs the transformation with the assumption that the w component is one. The four dimensional vector obtained from the transformation operation has each component in the vector divided by the w component. This forces the w component to be one and therefore makes the vector homogeneous. The homogeneous vector is often preferred when working with coordinates as the w component can safely be ignored. Performs a normal transformation using the given . The normal vector to transform. The transformation . When the method completes, contains the transformed normal. A normal transform performs the transformation with the assumption that the w component is zero. This causes the fourth row and fourth column of the matrix to be unused. The end result is a vector that is not translated, but all other transformation properties apply. This is often preferred for normal vectors as normals purely represent direction rather than location because normal vectors should not be translated. Performs a normal transformation using the given . The normal vector to transform. The transformation . The transformed normal. A normal transform performs the transformation with the assumption that the w component is zero. This causes the fourth row and fourth column of the matrix to be unused. The end result is a vector that is not translated, but all other transformation properties apply. This is often preferred for normal vectors as normals purely represent direction rather than location because normal vectors should not be translated. Performs a normal transformation on an array of vectors using the given . The array of normal vectors to transform. The transformation . The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . A normal transform performs the transformation with the assumption that the w component is zero. This causes the fourth row and fourth column of the matrix to be unused. The end result is a vector that is not translated, but all other transformation properties apply. This is often preferred for normal vectors as normals purely represent direction rather than location because normal vectors should not be translated. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Multiplies a vector with another by performing component-wise multiplication equivalent to . The first vector to multiply. The second vector to multiply. The multiplication of the two vectors. Assert a vector (return it unchanged). The vector to assert (unchanged). The asserted (unchanged) vector. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The amount by which to scale the vector. The vector to scale. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Perform a component-wise addition The input vector. The scalar value to be added on elements The vector with added scalar for each element. Perform a component-wise addition The input vector. The scalar value to be added on elements The vector with added scalar for each element. Perform a component-wise subtraction The input vector. The scalar value to be subtraced from elements The vector with added scalar from each element. Perform a component-wise subtraction The input vector. The scalar value to be subtraced from elements The vector with subtraced scalar from each element. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Represents a four dimensional mathematical vector. The size of the type, in bytes. A with all of its components set to zero. The X unit (1, 0, 0, 0). The Y unit (0, 1, 0, 0). The Z unit (0, 0, 1, 0). The W unit (0, 0, 0, 1). A with all of its components set to one. The X component of the vector. The Y component of the vector. The Z component of the vector. The W component of the vector. Initializes a new instance of the struct. The value that will be assigned to all components. Initializes a new instance of the struct. Initial value for the X component of the vector. Initial value for the Y component of the vector. Initial value for the Z component of the vector. Initial value for the W component of the vector. Initializes a new instance of the struct. A vector containing the values with which to initialize the X, Y, and Z components. Initial value for the W component of the vector. Initializes a new instance of the struct. A vector containing the values with which to initialize the X and Y components. Initial value for the Z component of the vector. Initial value for the W component of the vector. Initializes a new instance of the struct. The values to assign to the X, Y, Z, and W components of the vector. This must be an array with four elements. Thrown when is null. Thrown when contains more or less than four elements. Gets a value indicting whether this instance is normalized. Gets a value indicting whether this vector is zero Gets or sets the component at the specified index. The value of the X, Y, Z, or W component, depending on the index. The index of the component to access. Use 0 for the X component, 1 for the Y component, 2 for the Z component, and 3 for the W component. The value of the component at the specified index. Thrown when the is out of the range [0, 3]. Calculates the length of the vector. The length of the vector. may be preferred when only the relative length is needed and speed is of the essence. Calculates the squared length of the vector. The squared length of the vector. This method may be preferred to when only a relative length is needed and speed is of the essence. Converts the vector into a unit vector. Creates an array containing the elements of the vector. A four-element array containing the components of the vector. Adds two vectors. The first vector to add. The second vector to add. When the method completes, contains the sum of the two vectors. Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Perform a component-wise addition The input vector The scalar value to be added to elements The vector with added scalar for each element. Perform a component-wise addition The input vector The scalar value to be added to elements The vector with added scalar for each element. Subtracts two vectors. The first vector to subtract. The second vector to subtract. When the method completes, contains the difference of the two vectors. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Perform a component-wise subtraction The input vector The scalar value to be subtraced from elements The vector with subtracted scalar for each element. Perform a component-wise subtraction The input vector The scalar value to be subtraced from elements The vector with subtracted scalar for each element. Perform a component-wise subtraction The scalar value to be subtraced from elements The input vector. The vector with subtracted scalar for each element. Perform a component-wise subtraction The scalar value to be subtraced from elements The input vector. The vector with subtracted scalar for each element. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Multiplies a vector with another by performing component-wise multiplication. The first vector to multiply. The second vector to multiply. When the method completes, contains the multiplied vector. Multiplies a vector with another by performing component-wise multiplication. The first vector to multiply. The second vector to multiply. The multiplied vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The amount by which to scale the vector. The vector to scale. When the method completes, contains the scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Reverses the direction of a given vector. The vector to negate. When the method completes, contains a vector facing in the opposite direction. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Returns a containing the 4D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 4D triangle. A containing the 4D Cartesian coordinates of vertex 1 of the triangle. A containing the 4D Cartesian coordinates of vertex 2 of the triangle. A containing the 4D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). When the method completes, contains the 4D Cartesian coordinates of the specified point. Returns a containing the 4D Cartesian coordinates of a point specified in Barycentric coordinates relative to a 4D triangle. A containing the 4D Cartesian coordinates of vertex 1 of the triangle. A containing the 4D Cartesian coordinates of vertex 2 of the triangle. A containing the 4D Cartesian coordinates of vertex 3 of the triangle. Barycentric coordinate b2, which expresses the weighting factor toward vertex 2 (specified in ). Barycentric coordinate b3, which expresses the weighting factor toward vertex 3 (specified in ). A new containing the 4D Cartesian coordinates of the specified point. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. When the method completes, contains the clamped value. Restricts a value to be within a specified range. The value to clamp. The minimum value. The maximum value. The clamped value. Calculates the distance between two vectors. The first vector. The second vector. When the method completes, contains the distance between the two vectors. may be preferred when only the relative distance is needed and speed is of the essence. Calculates the distance between two vectors. The first vector. The second vector. The distance between the two vectors. may be preferred when only the relative distance is needed and speed is of the essence. Calculates the squared distance between two vectors. The first vector. The second vector. When the method completes, contains the squared distance between the two vectors. Distance squared is the value before taking the square root. Distance squared can often be used in place of distance if relative comparisons are being made. For example, consider three points A, B, and C. To determine whether B or C is further from A, compare the distance between A and B to the distance between A and C. Calculating the two distances involves two square roots, which are computationally expensive. However, using distance squared provides the same information and avoids calculating two square roots. Calculates the squared distance between two vectors. The first vector. The second vector. The squared distance between the two vectors. Distance squared is the value before taking the square root. Distance squared can often be used in place of distance if relative comparisons are being made. For example, consider three points A, B, and C. To determine whether B or C is further from A, compare the distance between A and B to the distance between A and C. Calculating the two distances involves two square roots, which are computationally expensive. However, using distance squared provides the same information and avoids calculating two square roots. Calculates the dot product of two vectors. First source vector Second source vector. When the method completes, contains the dot product of the two vectors. Calculates the dot product of two vectors. First source vector. Second source vector. The dot product of the two vectors. Converts the vector into a unit vector. The vector to normalize. When the method completes, contains the normalized vector. Converts the vector into a unit vector. The vector to normalize. The normalized vector. Performs a linear interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . When the method completes, contains the linear interpolation of the two vectors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a linear interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . The linear interpolation of the two vectors. Passing a value of 0 will cause to be returned; a value of 1 will cause to be returned. Performs a cubic interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . When the method completes, contains the cubic interpolation of the two vectors. Performs a cubic interpolation between two vectors. Start vector. End vector. Value between 0 and 1 indicating the weight of . The cubic interpolation of the two vectors. Performs a Hermite spline interpolation. First source position vector. First source tangent vector. Second source position vector. Second source tangent vector. Weighting factor. When the method completes, contains the result of the Hermite spline interpolation. Performs a Hermite spline interpolation. First source position vector. First source tangent vector. Second source position vector. Second source tangent vector. Weighting factor. The result of the Hermite spline interpolation. Performs a Catmull-Rom interpolation using the specified positions. The first position in the interpolation. The second position in the interpolation. The third position in the interpolation. The fourth position in the interpolation. Weighting factor. When the method completes, contains the result of the Catmull-Rom interpolation. Performs a Catmull-Rom interpolation using the specified positions. The first position in the interpolation. The second position in the interpolation. The third position in the interpolation. The fourth position in the interpolation. Weighting factor. A vector that is the result of the Catmull-Rom interpolation. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the largest components of the source vectors. Returns a vector containing the largest components of the specified vectors. The first source vector. The second source vector. A vector containing the largest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. When the method completes, contains an new vector composed of the smallest components of the source vectors. Returns a vector containing the smallest components of the specified vectors. The first source vector. The second source vector. A vector containing the smallest components of the source vectors. Orthogonalizes a list of vectors. The list of orthogonalized vectors. The list of vectors to orthogonalize. Orthogonalization is the process of making all vectors orthogonal to each other. This means that any given vector in the list will be orthogonal to any other given vector in the list. Because this method uses the modified Gram-Schmidt process, the resulting vectors tend to be numerically unstable. The numeric stability decreases according to the vectors position in the list so that the first vector is the most stable and the last vector is the least stable. Thrown when or is null. Thrown when is shorter in length than . Orthonormalizes a list of vectors. The list of orthonormalized vectors. The list of vectors to orthonormalize. Orthonormalization is the process of making all vectors orthogonal to each other and making all vectors of unit length. This means that any given vector will be orthogonal to any other given vector in the list. Because this method uses the modified Gram-Schmidt process, the resulting vectors tend to be numerically unstable. The numeric stability decreases according to the vectors position in the list so that the first vector is the most stable and the last vector is the least stable. Thrown when or is null. Thrown when is shorter in length than . Transforms a 4D vector by the given rotation. The vector to rotate. The rotation to apply. When the method completes, contains the transformed . Transforms a 4D vector by the given rotation. The vector to rotate. The rotation to apply. The transformed . Transforms an array of vectors by the given rotation. The array of vectors to transform. The rotation to apply. The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . Transforms a 4D vector by the given . The source vector. The transformation . When the method completes, contains the transformed . Transforms a 4D vector by the given . The source vector. The transformation . The transformed . Transforms a 4D vector by the given . The source vector. The transformation . When the method completes, contains the transformed . Transforms a 4D vector by the given . The source vector. The transformation . The transformed . Transforms an array of 4D vectors by the given . The array of vectors to transform. The transformation . The array for which the transformed vectors are stored. This array may be the same array as . Thrown when or is null. Thrown when is shorter in length than . Adds two vectors. The first vector to add. The second vector to add. The sum of the two vectors. Multiplies a vector with another by performing component-wise multiplication equivalent to . The first vector to multiply. The second vector to multiply. The multiplication of the two vectors. Assert a vector (return it unchanged). The vector to assert (unchanged). The asserted (unchanged) vector. Subtracts two vectors. The first vector to subtract. The second vector to subtract. The difference of the two vectors. Reverses the direction of a given vector. The vector to negate. A vector facing in the opposite direction. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Scales a vector by the given value. The amount by which to scale the vector. The vector to scale. The scaled vector. Scales a vector by the given value. The vector to scale. The amount by which to scale the vector. The scaled vector. Perform a component-wise addition The input vector. The scalar value to be added on elements The vector with added scalar for each element. Perform a component-wise addition The input vector. The scalar value to be added on elements The vector with added scalar for each element. Perform a component-wise subtraction The input vector. The scalar value to be subtraced from elements The vector with subtraced scalar from each element. Perform a component-wise subtraction The input vector. The scalar value to be subtraced from elements The vector with subtraced scalar from each element. Tests for equality between two objects. The first value to compare. The second value to compare. true if has the same value as ; otherwise, false. Tests for inequality between two objects. The first value to compare. The second value to compare. true if has a different value than ; otherwise, false. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Defines the viewport dimensions. Position of the pixel coordinate of the upper-left corner of the viewport. Position of the pixel coordinate of the upper-left corner of the viewport. Width dimension of the viewport. Height dimension of the viewport. Gets or sets the minimum depth of the clip volume. Gets or sets the maximum depth of the clip volume. Initializes a new instance of the struct. The x coordinate of the upper-left corner of the viewport in pixels. The y coordinate of the upper-left corner of the viewport in pixels. The width of the viewport in pixels. The height of the viewport in pixels. Initializes a new instance of the struct. The x coordinate of the upper-left corner of the viewport in pixels. The y coordinate of the upper-left corner of the viewport in pixels. The width of the viewport in pixels. The height of the viewport in pixels. The minimum depth of the clip volume. The maximum depth of the clip volume. Initializes a new instance of the struct. A bounding box that defines the location and size of the viewport in a render target. Gets the size of this resource. The bounds. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified object is equal to this instance. The object to compare with this instance. true if the specified object is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Implements the operator ==. The left. The right. The result of the operator. Implements the operator !=. The left. The right. The result of the operator. Retrieves a string representation of this object. A that represents this instance. Projects a 3D vector from object space into screen space. The vector to project. The projection matrix. The view matrix. The world matrix. The projected vector. Projects a 3D vector from object space into screen space. The vector to project. A combined WorldViewProjection matrix. The projected vector. Converts a screen space point into a corresponding point in world space. The vector to project. The projection matrix. The view matrix. The world matrix. The unprojected Vector. Converts a screen space point into a corresponding point in world space. The vector to project. An inverted combined WorldViewProjection matrix. The unprojected vector. Gets the aspect ratio used by the viewport. The aspect ratio. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Defines the viewport dimensions using float coordinates for (X,Y,Width,Height). Position of the pixel coordinate of the upper-left corner of the viewport. Position of the pixel coordinate of the upper-left corner of the viewport. Width dimension of the viewport. Height dimension of the viewport. Gets or sets the minimum depth of the clip volume. Gets or sets the maximum depth of the clip volume. Initializes a new instance of the struct. The x coordinate of the upper-left corner of the viewport in pixels. The y coordinate of the upper-left corner of the viewport in pixels. The width of the viewport in pixels. The height of the viewport in pixels. Initializes a new instance of the struct. The x coordinate of the upper-left corner of the viewport in pixels. The y coordinate of the upper-left corner of the viewport in pixels. The width of the viewport in pixels. The height of the viewport in pixels. The minimum depth of the clip volume. The maximum depth of the clip volume. Initializes a new instance of the struct. A bounding box that defines the location and size of the viewport in a render target. Gets the size of this resource. The bounds. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified object is equal to this instance. The object to compare with this instance. true if the specified object is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Implements the operator ==. The left. The right. The result of the operator. Implements the operator !=. The left. The right. The result of the operator. Retrieves a string representation of this object. A that represents this instance. Projects a 3D vector from object space into screen space. The vector to project. A combined WorldViewProjection matrix. The projected vector. Converts a screen space point into a corresponding point in world space. The vector to project. The projection matrix. The view matrix. The world matrix. The unprojected Vector. Converts a screen space point into a corresponding point in world space. The vector to project. An inverted combined WorldViewProjection matrix. The unprojected vector. Gets the aspect ratio used by the viewport. The aspect ratio. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value. The result of the conversion.