class Vector4D
Defined in:  
The TSVector4D.hVector4D class encapsulates a 4D vector.
Definition
class Vector4D : public Vec4D<TypeVector4D>
Member Functions
| Vector4D::Set | Sets all four components of a vector. | 
| Vector4D::Normalize | Normalizes a 4D vector. | 
| Vector4D::Unitize | Unitizes the weight of a 4D vector. | 
| Vector4D::RotateAboutX | Rotates a vector about the x axis. | 
| Vector4D::RotateAboutY | Rotates a vector about the y axis. | 
| Vector4D::RotateAboutZ | Rotates a vector about the z axis. | 
| Vector4D::RotateAboutAxis | Rotates a vector about a given axis. | 
Constructor
Vector4D();
Vector4D(float a, float b, float c, float d);
template <typename type> explicit Vector4D(const Vec4D<type>& v);
Vector4D(const Vector3D& v, float d);
Vector4D(const Vector3D& v);
Vector4D(const Point3D& p);
Vector4D(const Vector2D& v);
Vector4D(const Point2D& p);
Parameters
| a | The value of the x coordinate. | 
| b | The value of the y coordinate. | 
| c | The value of the z coordinate. | 
| d | The value of the w coordinate. | 
| v | (Template constructor) Another 4D vector, possibly with a different component type, that is converted to a Vector4D. | 
| v | A 3D vector whose entries are copied to the x, y, and z coordinates. | 
| p | A 3D point whose entries are copied to the x, y, and z coordinates. | 
Description
The Vector4D class is used to store a four-dimensional vector having floating-point components x, y, z, and w.The default constructor leaves the components of the vector undefined. If the values
a, b, c, and d are supplied, then they are assigned to the x, y, z, and w coordinates of the vector, respectively. If the Vector4D object is constructed using a Vector3D or Vector2D object, then the w coordinate is set to 0. If the Vector4D object is constructed using a Point3D or Point2D object, then the w coordinate is set to 1. The z coordinate of a 2D vector or point is assumed to be 0.
Overloaded Operators
| float& operator [](machine k); | Returns a reference to the k-th scalar component of a vector. The value ofkmust be 0, 1, 2, or 3. | 
| const float& operator [](machine k) const; | Returns a constant reference to the k-th scalar component of a vector. The value ofkmust be 0, 1, 2, or 3. | 
| Vector4D& operator =(const Vector3D& v); | Copies the x, y, and z coordinates of v, and assigns a value of 0 to the w coordinate. | 
| Vector4D& operator =(const Point3D& p); | Copies the x, y, and z coordinates of p, and assigns a value of 1 to the w coordinate. | 
| Vector4D& operator =(const Vector2D& v); | Copies the x and y coordinates of v, assigns a value of 0 to the z coordinate, and assigns a value of 0 to the w coordinate. | 
| Vector4D& operator =(const Point2D& p); | Copies the x and y coordinates of p, assigns a value of 0 to the z coordinate, and assigns a value of 1 to the w coordinate. | 
| Vector4D& operator +=(const Vector4D& v); | Adds the vector v. | 
| Vector4D& operator -=(const Vector4D& v); | Subtracts the vector v. | 
| Vector4D& operator *=(const Vector4D& v); | Calculates the componentwise product with the vector v. | 
| Vector4D& operator *=(float n); | Multiplies by the scalar n. | 
| Vector4D& operator /=(float n); | Multiplies by the inverse of the scalar n. | 
Nonmember Operations
| bool operator ==(const Vector4D& v1, const Vector4D& v2) const; | Returns a boolean value indicating whether the two vectors v1andv2are equal. | 
| bool operator !=(const Vector4D& v1, const Vector4D& v2) const; | Returns a boolean value indicating whether the two vectors v1andv2are not equal. | 
| Vector4D operator ~(const Vector4D& v); | Returns the antireverse of the vector v. | 
| Vector4D operator -(const Vector4D& v); | Returns the negation of the vector v. | 
| Vector4D operator +(const Vector4D& a, const Vector4D& b); | Returns the sum of the vectors aandb. | 
| Vector4D operator +(const Vector4D& a, const Vector3D& b); | Returns the sum of the vectors aandb. The w coordinate ofbis assumed to be 0. | 
| Vector4D operator +(const Vector3D& a, const Vector4D& b); | Returns the sum of the vectors aandb. The w coordinate ofais assumed to be 0. | 
| Vector4D operator +(const Vector4D& a, const Vector2D& b); | Returns the sum of the vectors aandb. The z and w coordinates ofbare assumed to be 0. | 
| Vector4D operator +(const Vector2D& a, const Vector4D& b); | Returns the sum of the vectors aandb. The z and w coordinates ofaare assumed to be 0. | 
| Vector4D operator -(const Vector4D& a, const Vector4D& b); | Returns the difference of the vectors aandb. | 
| Vector4D operator -(const Vector4D& a, const Vector3D& b); | Returns the difference of the vectors aandb. The w coordinate ofbis assumed to be 0. | 
| Vector4D operator -(const Vector3D& a, const Vector4D& b); | Returns the difference of the vectors aandb. The w coordinate ofais assumed to be 0. | 
| Vector4D operator -(const Vector4D& a, const Vector2D& b); | Returns the difference of the vectors aandb. The z and w coordinates ofbare assumed to be 0. | 
| Vector4D operator -(const Vector2D& a, const Vector4D& b); | Returns the difference of the vectors aandb. The z and w coordinates ofaare assumed to be 0. | 
| Vector4D operator *(const Vector4D& v, float n); | Returns the product of the vector vand the scalarn. | 
| Vector4D operator *(float n, const Vector4D& v); | Returns the product of the vector vand the scalarn. | 
| Vector4D operator /(const Vector4D& v, float n); | Returns the product of the vector vand the inverse of the scalarn. | 
| Vector4D operator *(const Vector4D& a, const Vector4D& b); | Returns the componentwise product of the vectors aandb. | 
| float BulkNorm(const Vector4D& v); | Returns the bulk norm of the vector v. | 
| float WeightNorm(const Vector4D& v); | Returns the weight norm of the vector v. | 
| Point3D Unitize(const Vector4D& v); | Returns the 3D point represented by the vector vafter unitization. | 
| float Magnitude(const Vector4D& v); | Returns the magnitude of the vector v. | 
| float InverseMag(const Vector4D& v); | Returns the inverse magnitude of the vector v. | 
| float SquaredMag(const Vector4D& v); | Returns the squared magnitude of the vector v. | 
| float Dot(const Vector4D& a, const Vector4D& b); | Returns the four-dimensional dot product between aandb. | 
| float Dot(const Vector4D& a, const Vector3D& b); | Returns the dot product of the vectors aandb. The w coordinate ofbis assumed to be 0. | 
| float Dot(const Vector3D& a, const Vector4D& b); | Returns the dot product of the vectors aandb. The w coordinate ofais assumed to be 0. | 
| float Dot(const Vector4D& v, const Point3D& p); | Returns the dot product of the vector vand the pointp. The w coordinate ofpis assumed to be 1. | 
| float Dot(const Point3D& p, const Vector4D& v); | Returns the dot product of the point pand the vectorv. The w coordinate ofpis assumed to be 1. | 
| float Dot(const Vector4D& a, const Vector2D& b); | Returns the dot product with the vector v. The z and w coordinates ofbare assumed to be 0. | 
| float Dot(const Vector2D& a, const Vector4D& b); | Returns the dot product of the vectors aandb. The z and w coordinates ofais assumed to be 0. | 
| float Dot(const Vector4D& v, const Point2D& p); | Returns the dot product of the vector vand the pointp. The z coordinate ofpis assumed to be 0, and the w coordinate ofpis assumed to be 1. | 
| float Dot(const Point2D& p, const Vector4D& v); | Returns the dot product of the point pand the vectorv. The z coordinate ofpis assumed to be 0, and the w coordinate ofpis assumed to be 1. | 
| Vector4D Project(const Vector4D& a, const Vector4D& b); | Returns (a ⋅ b)b, which is the projection of aontobunder the assumption that the magnitude ofbis one. | 
| Vector3D Reject(const Vector3D& a, const Vector3D& b); | Returns a − (a ⋅ b)b, which is the rejection of afrombunder the assumption that the magnitude ofbis one. | 
Base Classes
| Vec4D | Vectors use a generic base class to store their components. | 
See Also
