Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   Compound Members  

CSIBCVector4Dd Class Reference

General purpose 4D vector class. More...

#include <SIBCVector4Dd.h>

List of all members.

Public Methods

Friends


Detailed Description

General purpose 4D vector class.

Representation of a 4D vector, defining operations to access, modify and perform calculations on 4D vectors. This class uses double precision floating-point numbers for represent its data, and in its operations. There are seperate similar classes for 2D and 3D vectors, CSIBCVector2Dd and CSIBCVector3Dd, respectively, which also use double precision.

Furthermore, there is another set of vector classes which use single precision floating-point numbers, CSIBCVector2D, CSIBCVector3D and CSIBCVector4D for 2D, 3D and 4D vectors respectively. Quaternions represented as 4D vectors are also available in CSIBCQuaternion and CSIBCQuaterniond with single precision and double precision, repspectively.


Constructor & Destructor Documentation

CSIBCVector4Dd::CSIBCVector4Dd  
 

Default Constructor. Constructs a new 4D vector.

CSIBCVector4Dd::CSIBCVector4Dd const double    in_dX,
const double    in_dY,
const double    in_dZ,
const double    in_dW
 

Constructor. Constructs a new 4D vector, with in_dX, in_dY, in_dZ and in_dW as the X, Y, Z and W component values, respectively.

Parameters:
in_dX  The value for the X component of the new vector.
in_dY  The value for the Y component of the new vector.
in_dZ  The value for the Z component of the new vector.
in_dW  The value for the W component of the new vector.

CSIBCVector4Dd::CSIBCVector4Dd const CSIBCVector3Dd   in_vct,
double    in_dW
 

Constructor. Constructs a new 4D vector, with the X, Y and Z components taken from in_vct, and the W component as in_dW.

Parameters:
in_vct  The 3D vector for the X, Y and Z components.
in_dW  The value of the W component.


Member Function Documentation

CSIBCVector4Dd & CSIBCVector4Dd::Add const CSIBCVector4Dd &    in_vct1,
const CSIBCVector4Dd &    in_vct2
 

Adds in_vct1 and in_vct2. The result is stored in this vector.

Parameters:
in_vct1  First vector in the addition.
in_vct2  Second vector in the addition.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Add , CSIBCVector4Dd::Sub

CSIBCVector4Dd & CSIBCVector4Dd::Add const CSIBCVector4Dd &    in_vct
 

Adds this vector and in_vct. The result is stored in this vector.

Parameters:
in_vct  Vector to add to this vector. return CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Add , CSIBCVector4Dd::Sub

CSIBCVector4Dd & CSIBCVector4Dd::Div const CSIBCVector4Dd &    in_vct,
const double    in_dFactor
 

Divides each component of in_vct by in_dFactor. The result is stored in this vector.

Parameters:
in_vct  Vector to divide.
in_dFactor  Factor to divide the components of this vector by.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Div , CSIBCVector4Dd::Mul , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::MulComp

CSIBCVector4Dd & CSIBCVector4Dd::Div const double    in_dFact
 

Divides each component of this vector by in_dFactor. The result is stored in this vector.

Parameters:
in_dFactor  Factor to divide the components of this vector by.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Div , CSIBCVector4Dd::Mul , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::MulComp

CSIBCVector4Dd & CSIBCVector4Dd::DivComp const CSIBCVector4Dd &    in_vct1,
const CSIBCVector4Dd &    in_vct2
 

Divides each component of in_vct1 by the corresponding component in in_vct2. The result is stored in this vector.

Parameters:
in_vct1  Vector to be divided by the components of in_vct2
in_vct2  Vector to divide the components of in_vct1 by.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::DivComp , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::Div , CSIBCVector4Dd::Mul

CSIBCVector4Dd & CSIBCVector4Dd::DivComp const CSIBCVector4Dd &    in_vct
 

Divides each component of this vector by the corresponding component in in_vct. The result is stored in this vector.

Parameters:
in_vct  Vector to divide the components of this vector by.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::DivComp , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::Div , CSIBCVector4Dd::Mul

void CSIBCVector4Dd::Get double &    out_dX,
double &    out_dY,
double &    out_dZ,
double &    out_dW
const
 

Gets the values of the X, Y, Z and W components of this vector.

Parameters:
out_dX  Receives the value of the X component
out_dY  Receives the value of the Y component
out_dZ  Receives the value of the Z component
out_dW  Receives the value of the W component
See also:
CSIBCVector4Dd::GetX , CSIBCVector4Dd::GetY , CSIBCVector4Dd::GetZ , CSIBCVector4Dd::GetW , CSIBCVector4Dd::Set

double CSIBCVector4Dd::Get const int    in_nIndex const
 

Gets the value of the component specified by in_nIndex.

Parameters:
in_nIndex  Index of the component value to get (0 == X, 1 == Y, 2 == Z, 3 == W).
Returns:
double Value of the component specified by in_nIndex.
See also:
CSIBCVector4Dd::GetX , CSIBCVector4Dd::GetY , CSIBCVector4Dd::GetZ , CSIBCVector4Dd::GetW , CSIBCVector4Dd::Set

double CSIBCVector4Dd::GetLength void    const
 

Gets the length of this vector.

Returns:
double The squared length of this vector.
See also:
CSIBCVector4Dd::GetSquaredLength , CSIBCVector4Dd::SetLength , CSIBCVector4Dd::Normalize

double CSIBCVector4Dd::GetSquaredLength void    const
 

Gets the squared length of this vector.

Returns:
double The squared length of this vector.
See also:
CSIBCVector4Dd::GetLength , CSIBCVector4Dd::SetLength , CSIBCVector4Dd::Normalize

double CSIBCVector4Dd::GetW void    const
 

Gets the W component of this vector.

Returns:
Value of the W component of this vector.
See also:
CSIBCVector4Dd::GetX , CSIBCVector4Dd::GetY , CSIBCVector4Dd::GetZ , CSIBCVector4Dd::SetW , CSIBCVector4Dd::Get

double CSIBCVector4Dd::GetX void    const
 

Gets the X component of this vector.

Returns:
Value of the X component of this vector.
See also:
CSIBCVector4Dd::GetY , CSIBCVector4Dd::GetZ , CSIBCVector4Dd::GetW , CSIBCVector4Dd::SetX , CSIBCVector4Dd::Get

double CSIBCVector4Dd::GetY void    const
 

Gets the Y component of this vector.

Returns:
Value of the Y component of this vector.
See also:
CSIBCVector4Dd::GetX , CSIBCVector4Dd::GetZ , CSIBCVector4Dd::GetW , CSIBCVector4Dd::SetY , CSIBCVector4Dd::Get

double CSIBCVector4Dd::GetZ void    const
 

Gets the Z component of this vector.

Returns:
Value of the Z component of this vector.
See also:
CSIBCVector4Dd::GetX , CSIBCVector4Dd::GetY , CSIBCVector4Dd::GetW , CSIBCVector4Dd::SetZ , CSIBCVector4Dd::Get

bool CSIBCVector4Dd::IsNull const double    in_dEpsilon = PICO_EPS const
 

Determines whether all components of this vector are equal to zero. Since this method uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.

Parameters:
in_dEpsilon  Floating-point comparison error range. Defaults to PICO_EPS.
Returns:
bool true if the vector is null, false otherwise.
See also:
CSIBCVector4Dd::SetNull , CSIBCVector4Dd::AreAlmostEqual

CSIBCVector4Dd & CSIBCVector4Dd::Mul const CSIBCXfoMatd   in_mat,
const CSIBCVector4Dd &    in_vct
 

Multiplies a 4x4 transformation matrix in_mat into a column vector in_vct, (in_mat * in_vct), and stores the result in this vector.

Parameters:
in_mat  Rotation matrix to multiply (on the left).
in_vct  Column vector to multiply (on the right).
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::Div

CSIBCVector4Dd & CSIBCVector4Dd::Mul const CSIBCVector4Dd &    in_vct,
const CSIBCXfoMatd   in_mat
 

Multiplies a row vector in_vct, into a 4x4 transformation matrix in_mat (in_vct * in_mat), and stores the result in this vector.

Parameters:
in_vct  Row vector to multiply (on the left).
in_mat  Rotation matrix to multiply (on the right).
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::Div

CSIBCVector4Dd & CSIBCVector4Dd::Mul const CSIBCMatrix44d   in_mat,
const CSIBCVector4Dd &    in_vct
 

Multiplies a 4x4 matrix in_mat, into a column vector, in_vct (in_mat * in_vct), and stores the result in this vector.

Parameters:
in_mat  Matrix to multiply (on the left).
in_vct  Column vector to multiply (on the right).
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::Div

CSIBCVector4Dd & CSIBCVector4Dd::Mul const CSIBCVector4Dd &    in_vct,
const CSIBCMatrix44d   in_mat
 

Multiplies a row vector in_vct, into a 4x4 matrix in_mat (in_vct * in_mat), and stores the result in this vector.

Parameters:
in_vct  Row vector to multiply (on the left).
in_mat  Matrix to multiply (on the right).
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::Div

CSIBCVector4Dd & CSIBCVector4Dd::Mul const CSIBCMatrix44d   in_mat
 

Multiplies a this vector (as a row vector), into a 4x4 matrix in_mat (this * in_mat), and stores the result in this vector.

Parameters:
in_vct  Row vector to multiply (on the left).
in_mat  Matrix to multiply (on the right).
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::Div

CSIBCVector4Dd & CSIBCVector4Dd::Mul const CSIBCVector4Dd &    in_vct,
const double    in_dFactor
 

Multiplies each of the components in in_vct by in_dFactor. The result is stored in this vector.

Parameters:
in_vct  Vector to multiply.
in_dFactor  Factor to multiply the components of in_vct by.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::Div , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp

CSIBCVector4Dd & CSIBCVector4Dd::Mul const double    in_dFactor,
const CSIBCVector4Dd &    in_vct
 

Multiplies each of the components in in_vct by in_dFactor. The result is stored in this vector.

Parameters:
in_dFactor  Factor to multiply the components of in_vct by.
in_vct  Vector to multiply.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::Div , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp

CSIBCVector4Dd & CSIBCVector4Dd::Mul const double    in_dFactor
 

Multiplies each component of this vector by in_dFactor. The result is stored in this vector.

Parameters:
in_dFactor  Factor to multiply the components of this vector by.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Mul , CSIBCVector4Dd::Div , CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp

CSIBCVector4Dd & CSIBCVector4Dd::MulComp const CSIBCVector4Dd &    in_vct
 

Multiplies each component of in_vct by the corresponding component in this vector. The result is stored in this vector.

Parameters:
in_vct  Vector to multiply the components of.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::Mul , CSIBCVector4Dd::Div

CSIBCVector4Dd & CSIBCVector4Dd::MulComp const CSIBCVector4Dd &    in_vct1,
const CSIBCVector4Dd &    in_vct2
 

Multiplies each component of in_vct1 by the corresponding component in in_vct2. The result is stored in this vector.

Parameters:
in_vct1  First vector to multiply the components of.
in_vct2  Second vector to multiply the components of.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::MulComp , CSIBCVector4Dd::DivComp , CSIBCVector4Dd::Mul , CSIBCVector4Dd::Div

CSIBCVector4Dd & CSIBCVector4Dd::Negate void   
 

Sets this vector to its negative.

Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Negate

CSIBCVector4Dd & CSIBCVector4Dd::Negate const CSIBCVector4Dd &    in_vct
 

Sets this vector to the negative of in_vct.

Parameters:
in_vct  Vector containing the negative value for this vector.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Negate

bool CSIBCVector4Dd::Normalize void   
 

Sets the vector to be a unit vector.

Returns:
bool true if the length was set properly, false if the length of the current vector is zero.
See also:
CSIBCVector4Dd::SetLength , CSIBCVector4Dd::GetLength

bool CSIBCVector4Dd::operator!= const CSIBCVector4Dd &    in_vct const
 

Determines whether any corresponding components of this vector and in_vct are different.

Parameters:
in_vct  The vector to compare inequality with.
Returns:
bool true if the vectors differ in any component, false otherwise.
See also:
CSIBCVector4Dd::AreAlmostEqual , CSIBCVector4Dd::operator==

bool CSIBCVector4Dd::operator== const CSIBCVector4Dd &    in_v const
 

Determines whether all corresponding components of this vector and in_vct are exactly equal.

Parameters:
in_vct  The vector to compare equality with.
Returns:
bool true if the vectors are exactly equal, false otherwise.
See also:
CSIBCVector4Dd::AreAlmostEqual , CSIBCVector4Dd::operator!=

void CSIBCVector4Dd::Set const CSIBCVector4Dd &    in_vct
 

Sets the value of this vector to the value of in_vct.

Parameters:
in_vct  Vector to set this vector equal to.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Set , CSIBCVector4Dd::SetX , CSIBCVector4Dd::SetY , CSIBCVector4Dd::SetZ , CSIBCVector4Dd::Get

CSIBCVector4Dd & CSIBCVector4Dd::Set const double    in_dX,
const double    in_dY,
const double    in_dZ,
const double    in_dW
 

Sets the X, Y, Z and W components of the vector.

Parameters:
in_dX  The value for the X component of the vector.
in_dY  The value for the Y component of the vector.
in_dZ  The value for the Z component of the vector.
in_dW  The value for the W component of the vector.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Set , CSIBCVector4Dd::SetX , CSIBCVector4Dd::SetY , CSIBCVector4Dd::SetZ , CSIBCVector4Dd::SetW , CSIBCVector4Dd::Get

CSIBCVector4Dd & CSIBCVector4Dd::Set const int    in_nIndex,
const double    in_dVal
 

Sets the component given by in_nIndex to in_dVal.

Parameters:
in_nIndex  The index of the component to set (0 == X, 1 == Y, 2 == Z).
in_dVal  The value to set the component to.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Set , CSIBCVector4Dd::Get

bool CSIBCVector4Dd::SetLength const double    in_dLength
 

Sets the length of this vector.

Parameters:
in_dLength  New length for this vector.
Returns:
bool true if the length was set properly, false if the length of the current vector is zero.
See also:
CSIBCVector4Dd::Normalize , CSIBCVector4Dd::GetLength

CSIBCVector4Dd & CSIBCVector4Dd::SetMinimal const double    in_dEpsilon = PICO_EPS [inline]
 

Sets each component of this vector to be at least in_dEpsilon (in absolute value). This does not change the sign of the component.

Parameters:
in_dEpsilon  Value for the minimum absolute value of each component. Defaults to PICO_EPS.
Returns:
CSIBCVector4Dd& Reference to this vector
See also:
CSIBCVector4Dd::Set

CSIBCVector4Dd & CSIBCVector4Dd::SetNull void   
 

Sets all the components of this vector to zero.

Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::IsNull , CSIBCVector4Dd::Set

bool CSIBCVector4Dd::SetProjection const CSIBCVector4Dd &    in_vct
 

Projects this vector onto in_vct. The projected vector is stored in this vector.

Parameters:
in_vct  Vector to project this vector onto.
Returns:
bool true if the vector is projected, false if the input vector is the null vector. If false, this vector keeps its original value.
See also:
CSIBCVector4Dd::SetOrthoProj

CSIBCVector4Dd & CSIBCVector4Dd::SetW const double    in_dVal
 

Sets the value of the W component of this vector.

Parameters:
in_dVal  The new value of the W component of this vector.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::SetX , CSIBCVector4Dd::SetY , CSIBCVector4Dd::SetZ , CSIBCVector4Dd::Set , CSIBCVector4Dd::GetW

CSIBCVector4Dd & CSIBCVector4Dd::SetX const double    in_dVal
 

Sets the value of the X component of this vector.

Parameters:
in_dVal  The new value of the X component of this vector.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::SetY , CSIBCVector4Dd::SetZ , CSIBCVector4Dd::SetW , CSIBCVector4Dd::Set , CSIBCVector4Dd::GetX

CSIBCVector4Dd & CSIBCVector4Dd::SetY const double    in_dVal
 

Sets the value of the Y component of this vector.

Parameters:
in_dVal  The new value of the Y component of this vector.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::SetX , CSIBCVector4Dd::SetZ , CSIBCVector4Dd::SetW , CSIBCVector4Dd::Set , CSIBCVector4Dd::GetY

CSIBCVector4Dd & CSIBCVector4Dd::SetZ const double    in_dVal
 

Sets the value of the Z component of this vector.

Parameters:
in_dVal  The new value of the Z component of this vector.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::SetX , CSIBCVector4Dd::SetY , CSIBCVector4Dd::SetW , CSIBCVector4Dd::Set , CSIBCVector4Dd::GetZ

CSIBCVector4Dd & CSIBCVector4Dd::Sub const CSIBCVector4Dd &    in_vct1,
const CSIBCVector4Dd &    in_vct2
 

Subtracts in_vct2 from in_vct1. The result is stored in this vector.

Parameters:
in_vct1  First vector for the subtraction.
in_vct2  Second vector for the subtraction.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Sub , CSIBCVector4Dd::Add

CSIBCVector4Dd & CSIBCVector4Dd::Sub const CSIBCVector4Dd &    in_vct
 

Subtracts in_vct from this vector. The result is stored in this vector.

Parameters:
in_vct  Vector to subtract from this vector.
Returns:
CSIBCVector4Dd& Reference to this vector.
See also:
CSIBCVector4Dd::Sub , CSIBCVector4Dd::Add


Friends And Related Function Documentation

bool AreAlmostEqual const CSIBCVector4Dd &    in_vct1,
const CSIBCVector4Dd &    in_vct2,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Determines whether all corresponding components of the in_vct1 and in_vct2 are equal. Since this method uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.

Parameters:
in_vct1  First vector for equality comparison.
in_vct2  Second vector for equality comparison.
in_dEpsilon  Floating-point comparison error range. Defaults to PICO_EPS.
Returns:
bool true if the vectors are equal, false otherwise.
See also:
CSIBCVector4Dd::operator== , CSIBCVector4Dd::operator!=

double GetDistance const CSIBCVector4Dd &    in_v1,
const CSIBCVector4Dd &    in_v2
[friend]
 

Computes the distance between two points in 3D space given by in_pnt1 and in_pnt2.

Parameters:
in_pnt1  Starting point for distance calculation.
in_pnt2  Ending point for distance calculation.
Returns:
double The scalar distance between the two points, in 3D space.
See also:
CSIBCVector4Dd::GetSquaredDistance

double GetDot const CSIBCVector4Dd &    in_vct1,
const CSIBCVector4Dd &    in_vct2
[friend]
 

Computes the dot product between the vectors in_vct1 and in_vct2.

Parameters:
in_vct1  First vector in the dot product.
in_vct2  Second vector in the dot product.
Returns:
double The dot product between in_vct1 and in_vct2.

double GetSquaredDistance const CSIBCVector4Dd &    in_v1,
const CSIBCVector4Dd &    in_v2
[friend]
 

Computes the squared distance between two points in 3D space given by in_pnt1 and in_pnt2.

Parameters:
in_pnt1  Starting point for distance calculation.
in_pnt2  Ending point for distance calculation.
Returns:
double The squared scalar distance between the two points, in 3D space.
See also:
CSIBCVector4Dd::GetDistance


The documentation for this class was generated from the following files: © Copyright 2001-2003 Avid Technology, Inc. All rights reserved.

© Copyright 2001-2003 Avid Technology, Inc. All rights reserved.