CSIBCVector3Dd Class Reference
General purpose 3D vector class.
More...#include <SIBCVector3Dd.h>
List of all members.
|
|
Public Member Functions
|
| |
CSIBCVector3Dd () |
| |
CSIBCVector3Dd (const double in_dX, const double in_dY, const double in_dZ) |
| |
CSIBCVector3Dd (const double in_dXYZ[3]) |
| |
CSIBCVector3Dd (int in_nIndex, double in_dVal) |
| const double * |
GetArray () const |
| double |
GetX (void) const |
| double |
GetY (void) const |
| double |
GetZ (void) const |
| double |
Get (const int in_nIndex) const |
| void |
Get (double &out_dX, double &out_dY, double &out_dZ) const |
| double |
GetMaxComponent (bool in_bInAbs=true) const |
| double |
GetMinComponent (bool in_bInAbs=true) const |
| int |
GetIndexOfMaxComponent (bool in_bInAbs=true) const |
| int |
GetIndexOfMinComponent (bool in_bInAbs=true) const |
| CSIBCVector3Dd & |
SetX (const double in_dVal) |
| CSIBCVector3Dd & |
SetY (const double in_dVal) |
| CSIBCVector3Dd & |
SetZ (const double in_dVal) |
| CSIBCVector3Dd & |
Set (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
Set (const int in_nIndex, const double in_dVal) |
| CSIBCVector3Dd & |
Set (const double in_dX, const double in_dY, const double in_dZ) |
| CSIBCVector3Dd & |
SetNull (void) |
| bool |
IsNull (const double in_dEpsilon=PICO_EPS) const |
| CSIBCVector3Dd & |
SetMinimal (bool in_bInAbs=true, const double in_dEpsilon=PICO_EPS) |
| CSIBCVector3Dd & |
SetMinimal (const CSIBCVector3Dd &, bool in_bInAbs=true) |
| bool |
operator== (const CSIBCVector3Dd &in_vct) const |
| bool |
operator!= (const CSIBCVector3Dd &in_vct) const |
| CSIBCVector3Dd & |
Negate (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
Negate (void) |
| double |
GetSquaredLength (void) const |
| double |
GetLength (void) const |
| bool |
SetLength (const double in_dLength) |
| bool |
Normalize (void) |
| CSIBCVector3Dd & |
Add (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
Add (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| CSIBCVector3Dd & |
Sub (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
Sub (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| CSIBCVector3Dd & |
Mul (const double in_dFactor) |
| CSIBCVector3Dd & |
Mul (const double in_dFactor, const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
Mul (const CSIBCVector3Dd &in_vct, const double in_dFactor) |
| CSIBCVector3Dd & |
Mul (const CSIBCVector3Dd &in_vct, const CSIBCMatrix33d &in_mat) |
| CSIBCVector3Dd & |
Mul (const CSIBCMatrix33d &in_mat) |
| CSIBCVector3Dd & |
Mul (const CSIBCMatrix33d &in_mat, const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
Mul (const CSIBCVector3Dd &in_vct, const CSIBCRotMatd &in_mat) |
| CSIBCVector3Dd & |
Mul (const CSIBCRotMatd &in_mat, const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
Mul (const CSIBCVector3Dd &in_vct, const CSIBCXfoMatd &in_mat) |
| CSIBCVector3Dd & |
Mul (const CSIBCVector3Dd &in_vct, const CSIBCMatrix44d &in_mat) |
| CSIBCVector3Dd & |
Div (const double in_dFactor) |
| CSIBCVector3Dd & |
Div (const CSIBCVector3Dd &in_vct, const double in_dFactor) |
| CSIBCVector3Dd & |
MulComp (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| CSIBCVector3Dd & |
MulComp (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
DivComp (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
DivComp (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| CSIBCVector3Dd & |
SetCross (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
SetCross (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| bool |
SetOrthogonal (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| bool |
SetOrthoProj (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| bool |
SetProjection (const CSIBCVector3Dd &in_vct) |
| CSIBCVector3Dd & |
SetMirror (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| CSIBCVector3Dd & |
SetMidpoint (const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2) |
| CSIBCVector3Dd & |
SetMean (const CSIBCVector3Dd *in_vct, ULONG in_nbVct) |
| CSIBCVector3Dd & |
LinearPositionInterpolate (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const double in_dT) |
| void |
SetBounds (const CSIBCVector3Dd &in_pnt, CSIBCVector3Dd &io_min, CSIBCVector3Dd &io_max) |
| CSIBCVector3Dd & |
Combine (const CSIBCVector3Dd &in_vct1, const double in_dS1, const CSIBCVector3Dd &in_vct2, const double in_dS2) |
| CSIBCVector3Dd & |
BsplinePositionInterpolate (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const CSIBCVector3Dd &in_vct3, const CSIBCVector3Dd &in_vct4, const double in_dT) |
| CSIBCVector3Dd & |
BsplineVectorInterpolate (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const CSIBCVector3Dd &in_vct3, const CSIBCVector3Dd &in_vct4, const double in_dT) |
Friends
|
| bool |
AreAlmostEqual (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const double in_dEpsilon=PICO_EPS) |
| double |
GetDot (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| bool |
AreOrthogonal (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const double in_dEpsilon=PICO_EPS) |
| bool |
AreParallel (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const double in_dEpsilon=PICO_EPS) |
| double |
GetDistance (const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2) |
| double |
GetSquaredDistance (const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2) |
| void |
GetOrthogonalBasis (const CSIBCVector3Dd &in_vct1, CSIBCVector3Dd &out_vct2, CSIBCVector3Dd &out_vct3) |
| void |
GetOrthonormalBasis (CSIBCVector3Dd &io_vct1, CSIBCVector3Dd &out_vct2, CSIBCVector3Dd &out_vct3) |
| double |
GetPntsAngle (const CSIBCVector3Dd &in_pntOrigin, const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2) |
| double |
Get2DPntsAngleSigned (const CSIBCVector3Dd &in_pntOrigin, const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2) |
| double |
GetPntsCosAngle (const CSIBCVector3Dd &in_pntOrigin, const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2) |
| double |
GetVctsAngle (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const double in_dEpsilon=PICO_EPS) |
| double |
Get2DVctsAngleSigned (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2) |
| double |
GetVctsCosAngle (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const double in_dEpsilon=PICO_EPS) |
| int |
Get2DPntSide (const CSIBCVector3Dd &in_pnt, const CSIBCVector3Dd &in_pntOrigin, const CSIBCVector3Dd &in_pntTip) |
| double |
GetTriangleArea (const CSIBCVector3Dd &in_rPoint0, const CSIBCVector3Dd &in_rPoint1, const CSIBCVector3Dd &in_rPoint2) |
| bool |
ArePntsCollinear (const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2, const CSIBCVector3Dd &in_pnt3, const double in_dEpsilon=PICO_EPS) |
| bool |
AreVctsCoplanar (const CSIBCVector3Dd &in_vct1, const CSIBCVector3Dd &in_vct2, const CSIBCVector3Dd &in_vct3, const double in_dEpsilon=PICO_EPS) |
| bool |
ArePntsCoplanar (const CSIBCVector3Dd &in_pnt1, const CSIBCVector3Dd &in_pnt2, const CSIBCVector3Dd &in_pnt3, const CSIBCVector3Dd &in_pnt4, const double in_dEpsilon=PICO_EPS) |
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
Default Constructor. Constructs a new 3D vector.
| 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. |
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. |
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
| const double* 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
| double 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 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 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
| double 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
| void 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 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 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
| int 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 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
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
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
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
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
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& 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
Sets all the components of this vector to zero.
- Returns:
- CSIBCVector3Dd& Reference to this vector.
- See also:
- CSIBCVector3Dd::IsNull
CSIBCVector3Dd::Set
| bool 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
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
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
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!=
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==
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
Sets this vector to its negative.
- Returns:
- CSIBCVector3Dd& Reference to this vector.
- See also:
- CSIBCVector3Dd::Negate
| double 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 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
| bool 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Not implemented yet
Not implemented yet
Not implemented yet.
Not implemented yet.
Friends And Related Function Documentation
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!=
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
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
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. |
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
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
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
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
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
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
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
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
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
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
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).
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. |
Not implemented yet.
Not implemented yet.
Not implemented yet.
The documentation for this class was generated from the following file: