Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   Compound Members  

CSIBCVector3Dd Class Reference

General purpose 3D vector class. More...

#include <SIBCVector3Dd.h>

List of all members.

Public Methods

Friends


Detailed Description

General purpose 3D vector class.

Representation of a 3D vector, defining operations to access, modify and perform calculations on 3D 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 4D vectors, CSIBCVector2Dd and CSIBCVector4Dd, respectively, which also use double precision. There also exists a 3D vector class with an implicit W component, CSIBCVectorwd.

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

CSIBCVector3Dd::CSIBCVector3Dd  
 

Default Constructor. Constructs a new 3D vector.

CSIBCVector3Dd::CSIBCVector3Dd const double    in_dX,
const double    in_dY,
const double    in_dZ
 

Constructor. Constructs a new 3D vector, with in_dX, in_dY and in_dZ as the X, Y and Z 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.

CSIBCVector3Dd::CSIBCVector3Dd const double    in_dXYZ[3]
 

Constructor. Sets the new vector to have the X, Y and Z values contained in the array in_dXYZ.

Parameters:
in_dXY  Array containing the X, Y and Z values for the new vector.

CSIBCVector3Dd::CSIBCVector3Dd int    in_nIndex,
double    in_dVal
 

Constructor. Sets the component determined by in_nIndex to in_dVal, and the other component to zero.

Parameters:
in_nIndex  Index of the component to set to in_dVal. (0 == X, 1 == Y).


Member Function Documentation

CSIBCVector3Dd & CSIBCVector3Dd::Add const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Add , CSIBCVector3Dd::Sub

CSIBCVector3Dd & CSIBCVector3Dd::Add const CSIBCVector3Dd &    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 CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Add , CSIBCVector3Dd::Sub

CSIBCVector3Dd & CSIBCVector3Dd::BsplinePositionInterpolate const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const CSIBCVector3Dd &    in_vct3,
const CSIBCVector3Dd &    in_vct4,
const double    in_dT
 

Not implemented yet.

CSIBCVector3Dd & CSIBCVector3Dd::BsplineVectorInterpolate const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const CSIBCVector3Dd &    in_vct3,
const CSIBCVector3Dd &    in_vct4,
const double    _6t
 

Not implemented yet.

CSIBCVector3Dd& CSIBCVector3Dd::Combine const CSIBCVector3Dd &    in_vct1,
const double    in_dS1,
const CSIBCVector3Dd &    in_vct2,
const double    in_dS2
 

Not implemented yet

CSIBCVector3Dd & CSIBCVector3Dd::Div const CSIBCVector3Dd &    in_vct,
const double    in_dFact
 

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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Div , CSIBCVector3Dd::Mul , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::MulComp

CSIBCVector3Dd & CSIBCVector3Dd::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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Div , CSIBCVector3Dd::Mul , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::MulComp

CSIBCVector3Dd & CSIBCVector3Dd::DivComp const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::DivComp , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::Div , CSIBCVector3Dd::Mul

CSIBCVector3Dd & CSIBCVector3Dd::DivComp const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::DivComp , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::Div , CSIBCVector3Dd::Mul

void CSIBCVector3Dd::Get double &    out_dX,
double &    out_dY,
double &    out_dZ
const
 

Gets the values of the X, Y and Z 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
See also:
CSIBCVector3Dd::GetX , CSIBCVector3Dd::GetY , CSIBCVector3Dd::GetZ , CSIBCVector3Dd::Set

double CSIBCVector3Dd::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).
Returns:
double Value of the component specified by in_nIndex.
See also:
CSIBCVector3Dd::GetX , CSIBCVector3Dd::GetY , CSIBCVector3Dd::GetZ , CSIBCVector3Dd::Set

const double * CSIBCVector3Dd::GetArray   const
 

Returns an array containing the X, Y and Z components of the vector. Note that the pointer obtained from this call should not be freed. Any modification to the values in the array results in a direct modification of this object.

Returns:
const double* Array containing the X, Y and Z components of this vector.
See also:
CSIBCVector3Dd::Get

int CSIBCVector3Dd::GetIndexOfMaxComponent bool    in_bInAbs = true const
 

Gets the index of the largest component of the vector.

Parameters:
in_bInAbs  true if comparisons should be made with absolute values, false if comparisons should be made without absolute values. Defaults to true.
Returns:
int Index of the largest component of the vector (0 == X, 1 == Y, 2 == Z).
See also:
CSIBCVector3Dd::GetMaxComponent , CSIBCVector3Dd::GetIndexOfMinComponent

int CSIBCVector3Dd::GetIndexOfMinComponent bool    in_bInAbs = true const
 

Gets the index of the smallest component of the vector.

Parameters:
in_bInAbs  true if comparisons should be made with absolute values, false if comparisons should be made without absolute values. Defaults to true.
Returns:
int Index of the smallest component of the vector (0 == X, 1 == Y, 2 == Z).
See also:
CSIBCVector3Dd::GetMinComponent , CSIBCVector3Dd::GetIndexOfMaxComponent

double CSIBCVector3Dd::GetLength void    const
 

Gets the length of this vector.

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

double CSIBCVector3Dd::GetMaxComponent bool    in_bInAbs = true const
 

Gets the value of largest component of the vector.

Parameters:
in_bInAbs  true if comparisons should be made with absolute values, false if comparisons should be made without absolute values. Defaults to true.
Returns:
double The value (or absolute value if in_bInAbs is true) of the largest component of the vector.
See also:
CSIBCVector3Dd::GetIndexOfMaxComponent , CSIBCVector3Dd::GetMinComponent

double CSIBCVector3Dd::GetMinComponent bool    in_bInAbs = true const
 

Gets the value of smallest component of the vector.

Parameters:
in_bInAbs  true if comparisons should be made with absolute values, false if comparisons should be made without absolute values. Defaults to true.
Returns:
double The value (or absolute value if in_bInAbs is true) of the smallest component of the vector.
See also:
CSIBCVector3Dd::GetIndexOfMinComponent , CSIBCVector3Dd::GetMaxComponent

double CSIBCVector3Dd::GetSquaredLength void    const
 

Gets the squared length of this vector.

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

double CSIBCVector3Dd::GetX void    const
 

Gets the X component of this vector.

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

double CSIBCVector3Dd::GetY void    const
 

Gets the Y component of this vector.

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

double CSIBCVector3Dd::GetZ void    const
 

Gets the Z component of this vector.

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

bool CSIBCVector3Dd::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:
CSIBCVector3Dd::SetNull , CSIBCVector3Dd::AreAlmostEqual

CSIBCVector3Dd & CSIBCVector3Dd::LinearPositionInterpolate const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const double    in_dT
 

Computes the linear interpolation between the two vectors in_vct1 and in_vct2, at a point in_dT between the two vectors.

Parameters:
in_vct1  Starting point for the interpolation.
in_vct2  Ending point for the interpolation.
in_dT  Interpolation point between the vectors, in the range [0.0f, 1.0f].
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetMidpoint

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCVector3Dd &    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. Since a 4-vector is required for the multiplication, the W component of in_vct is assumed to be 1. The X, Y and Z output components are divided by the resultant W component.

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

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCVector3Dd &    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. Since a 4-vector is required for the multiplication, the W component of in_vct is assumed to be 1. Since the output from this operation is normally a 4-vector, only the X, Y and Z components are used.

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

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCRotMatd   in_mat,
const CSIBCVector3Dd &    in_vct
 

Multiplies a 3x3 rotation 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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::Div

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCVector3Dd &    in_vct,
const CSIBCRotMatd   in_mat
 

Multiplies a row vector in_vct, into a 3x3 rotation 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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::Div

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCMatrix33d   in_mat,
const CSIBCVector3Dd &    in_vct
 

Multiplies a 3x3 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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::Div

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCMatrix33d   in_mat
 

Multiplies a this vector (as a row vector), into a 3x3 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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::Div

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCVector3Dd &    in_vct,
const CSIBCMatrix33d   in_mat
 

Multiplies a row vector in_vct, into a 3x3 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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::Div

CSIBCVector3Dd & CSIBCVector3Dd::Mul const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::Div , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp

CSIBCVector3Dd & CSIBCVector3Dd::Mul const double    in_dFactor,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::Div , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp

CSIBCVector3Dd & CSIBCVector3Dd::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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Mul , CSIBCVector3Dd::Div , CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp

CSIBCVector3Dd & CSIBCVector3Dd::MulComp const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::Mul , CSIBCVector3Dd::Div

CSIBCVector3Dd & CSIBCVector3Dd::MulComp const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::MulComp , CSIBCVector3Dd::DivComp , CSIBCVector3Dd::Mul , CSIBCVector3Dd::Div

CSIBCVector3Dd & CSIBCVector3Dd::Negate void   
 

Sets this vector to its negative.

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

CSIBCVector3Dd & CSIBCVector3Dd::Negate const CSIBCVector3Dd &    in_vct
 

Sets this vector to the negative of in_vct.

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

bool CSIBCVector3Dd::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:
CSIBCVector3Dd::SetLength , CSIBCVector3Dd::GetLength

bool CSIBCVector3Dd::operator!= const CSIBCVector3Dd &    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:
CSIBCVector3Dd::AreAlmostEqual , CSIBCVector3Dd::operator==

bool CSIBCVector3Dd::operator== const CSIBCVector3Dd &    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:
CSIBCVector3Dd::AreAlmostEqual , CSIBCVector3Dd::operator!=

CSIBCVector3Dd & CSIBCVector3Dd::Set const double    in_dX,
const double    in_dY,
const double    in_dZ
 

Sets the X, Y and Z 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.
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Set , CSIBCVector3Dd::GetX , CSIBCVector3Dd::GetY , CSIBCVector3Dd::GetZ , CSIBCVector3Dd::Get

CSIBCVector3Dd & CSIBCVector3Dd::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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Set , CSIBCVector3Dd::Get

CSIBCVector3Dd & CSIBCVector3Dd::Set const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Set , CSIBCVector3Dd::SetX , CSIBCVector3Dd::SetY , CSIBCVector3Dd::SetZ , CSIBCVector3Dd::Get

void CSIBCVector3Dd::SetBounds const CSIBCVector3Dd &    in_pnt,
CSIBCVector3Dd &    io_min,
CSIBCVector3Dd &    io_max
 

Not implemented yet

CSIBCVector3Dd & CSIBCVector3Dd::SetCross const CSIBCVector3Dd &    in_v1,
const CSIBCVector3Dd &    in_v2
 

Computes the cross product between in_vct1 and in_vct2 (in_vct1 x in_vct2). The result is stored in this vector.

Parameters:
in_vct1  Vector to cross with this vector (on the left).
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::GetDot , CSIBCVector3Dd::SetCross

CSIBCVector3Dd & CSIBCVector3Dd::SetCross const CSIBCVector3Dd &    in_v1
 

Computes the cross product between this vector and in_vct (this x in_vct). The result is stored in this vector

Parameters:
in_vct  Vector to cross with this vector (on the left).
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::GetDot , CSIBCVector3Dd::SetCross

bool CSIBCVector3Dd::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:
CSIBCVector3Dd::Normalize , CSIBCVector3Dd::GetLength

CSIBCVector3Dd & CSIBCVector3Dd::SetMean const CSIBCVector3Dd *    in_pvct,
unsigned long    in_ulNbVect
 

Computes the mean of the vector components of the vectors in the array in_vct. The result is stored in this vector.

Parameters:
in_vct  Array of vectors (in_nbVct long) to calculate the mean of.
in_nbVct  Number of vectors in the in_vct array.
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetMidpoint , CSIBCVector3Dd::LinearPositionInterpolate

CSIBCVector3Dd & CSIBCVector3Dd::SetMidpoint const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2
 

Sets this vector to the midpoint between the two points in_pnt1 and in_pnt2.

Parameters:
in_pnt1  First point for midpoint determination.
in_pnt2  Second point for midpoint determination.
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetMean , CSIBCVector3Dd::LinearPositionInterpolate

CSIBCVector3Dd & CSIBCVector3Dd::SetMinimal const CSIBCVector3Dd &    in_vctReference,
bool    in_bInAbs = true
 

Ensures that each of the components of this vector are at least as large as the components of in_vct. If they are not, they are set to be equal to the component of in_vct. Note that if comparisons are done with absolute values, the sign of the vector components does not change, if they are less than the corresponding component values in in_vct.

Parameters:
in_vct  Vector containing minimal component values.
in_bInAbs  true if comparisons are done with absolute values, false if comparisons are done without absolute values. Defaults to true.
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetMinimal , CSIBCVector3Dd::AreAlmostEqual

CSIBCVector3Dd & CSIBCVector3Dd::SetMinimal bool    in_bInAbs = true,
const double    in_dEpsilon = PICO_EPS
[inline]
 

Ensure that each of the components of this vector are at least as large as in_dEpsilon. If not, they are set to in_dEpsilon. Note that if comparisons are done with absolute values, the sign of the vector components does not change, if they are less than in_dEpsilon.

Parameters:
in_bInAbs  true if comparisons are done with absolute values, false if comparisons are done without absolute values. Defaults to true.
in_dEpsilon  Minimal value for components of this vector. Defaults to PICO_EPS.
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetMinimal , CSIBCVector3Dd::AreAlmostEqual

CSIBCVector3Dd & CSIBCVector3Dd::SetMirror const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2
 

Computes in_vct1 * 2 - in_vct2, and stores the result in this vector.

Parameters:
in_vct1  First vector in the computation.
in_vct2  Second vector in the computation.
Returns:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetProjection

CSIBCVector3Dd & CSIBCVector3Dd::SetNull void   
 

Sets all the components of this vector to zero.

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

bool CSIBCVector3Dd::SetOrthogonal const CSIBCVector3Dd &    in_v1,
const CSIBCVector3Dd &    in_v2
 

Computes the vector that is orthogonal to in_vct1, and in the same plane as in_vct1 and in_vct2. The result is stored in this vector.

Parameters:
in_vct1  Vector that the new vector should be orthogonal to.
in_vct2  Another vector, with in_vct1 that forms a plane in which the new vector should lie in.
Returns:
bool true if the orthogonal vector could be calculated, false if in_vct1 and in_vct2 are colinear. If false, this vector contains the null vector.
See also:
CSIBCVector3Dd::AreOrthogonal , CSIBCVector3Dd::SetOrthoProj , CSIBCVector3Dd::GetOrthogonalBasis

bool CSIBCVector3Dd::SetOrthoProj const CSIBCVector3Dd &    in_v1,
const CSIBCVector3Dd &    in_v2
 

Computes the vector that is orthogonal to in_vct1, and in the same plane as in_vct1 and in_vct2. The result is then projected on in_vct2. The result is stored in this vector.

Parameters:
in_vct1  Vector taht the new vector should be orthogonal to.
iN_vct2  Another vector, with in_vct1 that forms a plane in which the new vector should lie in. The result is then projected onto this vector.
Returns:
bool true if the orthogonal projected vector could be calculated, false if in_vct1 and in_vct2 are colinear. If false, this vector contains the null vector.
See also:
CSIBCVector3Dd::SetOrthogonal , CSIBCVector3Dd::AreOrthogonal , CSIBCVector3Dd::SetProjection

bool CSIBCVector3Dd::SetProjection const CSIBCVector3Dd &    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:
CSIBCVector3Dd::SetOrthoProj

CSIBCVector3Dd & CSIBCVector3Dd::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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetY , CSIBCVector3Dd::SetZ , CSIBCVector3Dd::Set , CSIBCVector3Dd::GetX

CSIBCVector3Dd & CSIBCVector3Dd::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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetX , CSIBCVector3Dd::SetZ , CSIBCVector3Dd::Set , CSIBCVector3Dd::GetY

CSIBCVector3Dd & CSIBCVector3Dd::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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::SetX , CSIBCVector3Dd::SetY , CSIBCVector3Dd::Set , CSIBCVector3Dd::GetZ

CSIBCVector3Dd & CSIBCVector3Dd::Sub const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Sub , CSIBCVector3Dd::Add

CSIBCVector3Dd & CSIBCVector3Dd::Sub const CSIBCVector3Dd &    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:
CSIBCVector3Dd& Reference to this vector.
See also:
CSIBCVector3Dd::Sub , CSIBCVector3Dd::Add


Friends And Related Function Documentation

bool AreAlmostEqual const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd::operator== , CSIBCVector3Dd::operator!=

bool AreOrthogonal const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Determines whether two vectors in_vct1 and in_vct2 are orthogonal to each other. Since this method uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.

Parameters:
in_vct1  First vector for orthogonality comparison.
in_vct2  Second vector for orthogonality comparison.
in_dEpsilon  Floating-point comparison error range. Defaults to PICO_EPS.
Returns:
bool true if the vectors are orthogonal, false otherwise.
See also:
CSIBCVector3Dd::SetOrthogonal , CSIBCVector3Dd::SetOrthoProj , CSIBCVector3Dd::GetOrthogonalBasis

bool AreParallel const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Determines whether in_vct1 and in_vct2 are parallel vectors. Since this method uses floating-point comparison, a threshhold value of in_dEpsilon is used for equality comparison.

Parameters:
in_vct1  The first vector in the parallelism comparison.
in_vct2  The second vector in the parallelism comparison.
in_dEpsilon  Floating-point comparison error range. Defaults to PICO_EPS.

bool ArePntsCollinear const CSIBCVector3Dd &    in_pnt1,
const CSIBCVector3Dd &    in_pnt2,
const CSIBCVector3Dd &    in_pnt3,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Not implemented yet.

bool ArePntsCoplanar const CSIBCVector3Dd &    in_pnt1,
const CSIBCVector3Dd &    in_pnt2,
const CSIBCVector3Dd &    in_pnt3,
const CSIBCVector3Dd &    in_pnt4,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Not implemented yet.

bool AreVctsCoplanar const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const CSIBCVector3Dd &    in_vct3,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Not implemented yet.

double Get2DPntsAngleSigned const CSIBCVector3Dd &    in_pntOrigin,
const CSIBCVector3Dd &    in_pnt1,
const CSIBCVector3Dd &    in_pnt2
[friend]
 

Computes the angle between the vectors defined by in_pntOrigin to in_pnt1, and in_pntOrigin to in_pnt2. The angle is in the range [-M_PI, M_PI]. This angle is positive if it corresponds to a counter-clockwise rotation, and it is negative if it corresponds to a clockwise rotation.

Parameters:
in_pntOrigin  Origin point for the two vectors.
in_pnt1  End point of the first vector.
in_pnt2  End point of the second vector.
Returns:
double Angle (in radians) between the two vectors. In the range [-M_PI, M_PI].
See also:
CSIBCVector3Dd::GetPntsAngle , CSIBCVector3Dd::GetPntsCosAngle , CSIBCVector3Dd::GetVctsAngle , CSIBCVector3Dd::Get2DVctsAngleSigned , CSIBCVector3Dd::GetVctsCosAngle

int Get2DPntSide const CSIBCVector3Dd &    in_pnt,
const CSIBCVector3Dd &    in_pntOrigin,
const CSIBCVector3Dd &    in_pntTip
[friend]
 

Determines which 'side' of the vector formed between the points in_pntOrigin and in_pntTip, a point in_pnt is on.

Parameters:
in_pnt  Point to determine which side of the vector it is on.
in_pntOrigin  Staring point of the vector.
in_pntTip  Ending point of the vector.
Returns:
int The side that the point is on. (-1 == right side, 1 == left side).

double Get2DVctsAngleSigned const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2
[friend]
 

Computes the angle between the vectors in_vct1 and in_vct2. The angle is in the range [-M_PI, M_PI]. This angle is positive if it corresponds to a counter-clockwise rotation, and it is negative if it corresponds to a clockwise rotation.

Parameters:
in_vct1  First vector.
in_vct2  Second vector.
Returns:
double Angle (in radians) between the two vectors. In the range [-M_PI, M_PI].
See also:
CSIBCVector3Dd::GetPntsAngle , CSIBCVector3Dd::Get2DPntsAngleSigned , CSIBCVector3Dd::GetPntsCosAngle , CSIBCVector3Dd::GetVctsAngle , CSIBCVector3Dd::GetVctsCosAngle

double GetDistance const CSIBCVector3Dd &    in_v1,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd::GetSquaredDistance

double GetDot const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    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.
See also:
CSIBCVector3Dd::SetCross

void GetOrthogonalBasis const CSIBCVector3Dd &    in_vct1,
CSIBCVector3Dd &    out_vct2,
CSIBCVector3Dd &    out_vct3
[friend]
 

Computes two vectors out_vct2 and out_vct3, which together with the input vector in_vct1 form an orthogonal basis. The out vectors are not normalized.

Parameters:
in_vct1  Vector to compute the orthogonal basis from.
out_vct2  Receives an orthogonal basis vector.
out_vct3  Receives an orthogonal basis vector.
See also:
CSIBCVector3Dd::GetOrthonormalBasis , CSIBCVector3Dd::SetOrthogonal , CSIBCVector3Dd::SetOrthoProj

void GetOrthonormalBasis CSIBCVector3Dd &    io_vct1,
CSIBCVector3Dd &    out_vct2,
CSIBCVector3Dd &    out_vct3
[friend]
 

Computes two vectors out_vct2 and out_vct3, which together with the input vector in_vct1 form an orthonormal basis. io_vct1 is normalized if it is not already normalized.

Parameters:
io_vct1  Vector to compute the orthonormal vector from. Normalized if not already normalized.
out_vct2  Receives an orthonormal basis vector.
out_vct3  Receives an orthonormal basis vector.
See also:
CSIBCVector3Dd::GetOrthogonalBasis , CSIBCVector3Dd::SetOrthogonal , CSIBCVector3Dd::SetOrthoProj

double GetPntsAngle const CSIBCVector3Dd &    in_pntOrigin,
const CSIBCVector3Dd &    in_pnt1,
const CSIBCVector3Dd &    in_pnt2
[friend]
 

Computes the angle between the vectors defined by in_pntOrigin to in_pnt1, and in_pntOrigin to in_pnt2. The angle is in the range [0.0f, M_PI].

Parameters:
in_pntOrigin  Origin point for the two vectors.
in_pnt1  End point of the first vector.
in_pnt2  End point of the second vector.
Returns:
double Angle (in radians) between the two vectors. In the range [0.0f, M_PI].
See also:
CSIBCVector3Dd::GetPntsAngleSigned , CSIBCVector3Dd::GetPntsCosAngle , CSIBCVector3Dd::GetVctsAngle , CSIBCVector3Dd::Get2DVctsAngleSigned , CSIBCVector3Dd::GetVctsCosAngle

double GetPntsCosAngle const CSIBCVector3Dd &    in_pntOrigin,
const CSIBCVector3Dd &    in_pnt1,
const CSIBCVector3Dd &    in_pnt2
[friend]
 

Computes the cosine of the angle between the vectors defined by in_pntOrigin to in_pnt1, and in_pntOrigin to in_pnt2.

Parameters:
in_pntOrigin  Origin point for the two vectors.
in_pnt1  End point of the first vector.
in_pnt2  End point of the second vector.
Returns:
double Cosine of the angle between the two vectors. In the range [-1.0f, 1.0f].
See also:
CSIBCVector3Dd::GetPntsAngle , CSIBCVector3Dd::Get2DPntsAngleSigned , CSIBCVector3Dd::GetVctsAngle , CSIBCVector3Dd::Get2DVctsAngleSigned , CSIBCVector3Dd::GetVctsCosAngle

double GetSquaredDistance const CSIBCVector3Dd &    in_v1,
const CSIBCVector3Dd &    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:
CSIBCVector3Dd::GetDistance

double GetTriangleArea const CSIBCVector3Dd &    in_rPointP,
const CSIBCVector3Dd &    in_rPointQ,
const CSIBCVector3Dd &    in_rPointR
[friend]
 

Calculates the area of the triangle with the verticies in_rPoint0, in_rPoint1 and in_rPoint2.

Parameters:
in_rPoint0  First vertex of the triangle.
in_rPoint1  Second vertex of the triangle.
in_rPoint2  Third vertex of the triangle.

double GetVctsAngle const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Computes the angle between the vectors in_vct1 and in_vct2. The angle is in the range of [0.0f, M_PI].

Parameters:
in_vct1  First vector.
in_vct2  Second vector.
in_dEpsilon  Floating-point comparison error range. Defaults to PICO_EPS.
Returns:
double Angle (in radians) between the two vectors. In the range [0.0f, M_PI].
See also:
CSIBCVector3Dd::GetPntsAngle , CSIBCVector3Dd::Get2DPntsAngleSigned , CSIBCVector3Dd::GetPntsCosAngle , CSIBCVector3Dd::Get2DVctsAngleSigned , CSIBCVector3Dd::GetVctsCosAngle

double GetVctsCosAngle const CSIBCVector3Dd &    in_vct1,
const CSIBCVector3Dd &    in_vct2,
const double    in_dEpsilon = PICO_EPS
[friend]
 

Computes the cosine of the angle between the vectors in_vct1 and in_vct2.

Parameters:
in_vct1  First vector.
in_vct2  Second vector.
Returns:
double Cosine of the angle between the two vectors. In the range [-1.0f, 1.0f].
See also:
CSIBCVector3Dd::GetPntsCosAngle , CSIBCVector3Dd::GetPntsAngle , CSIBCVector3Dd::Get2DPntsAngleSigned , CSIBCVector3Dd::GetVctsAngle , CSIBCVector3Dd::Get2DVctsAngleSigned


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.