CSIBCTransfod Class Reference
#include <SIBCTransfod.h>List of all members.
|
|
Public Member Functions
|
| |
CSIBCTransfod () |
| |
CSIBCTransfod (const CSIBCVector3Dd &in_vctScl, const CSIBCRotationd &in_rotScl, const CSIBCRotationd &in_rot, const CSIBCVector3Dd &in_vctTrs) |
| |
CSIBCTransfod (const CSIBCVector3Dd &in_vctScl, const CSIBCRotationd &in_rot, const CSIBCVector3Dd &in_vctTrs) |
| |
CSIBCTransfod (const CSIBCVector3Dd &in_vctScl, const CSIBCRotationd &in_rotScl) |
| bool |
GetSIScalingFlag () const |
| CSIBCTransfod & |
SetSIScalingFlag (const bool in_bSIScaling) |
| bool |
IsScalingOrientationExisting () const |
| CSIBCVector3Dd & |
GetScaling (CSIBCVector3Dd &out_vctScl) |
| void |
GetScaling (double &out_dX, double &out_dY, double &out_dZ) |
| void |
GetScaling (CSIBCVector3Dd &out_vctScl, CSIBCRotationd &out_rotSclOri) |
| CSIBCRotationd & |
GetScalingOrientation (CSIBCRotationd &in_rotSclOri) |
| CSIBCVector3Dd & |
GetScalingOrientation (CSIBCVector3Dd &out_vctSclOri) |
| void |
GetScalingOrientation (double &out_rdX, double &out_rdY, double &out_rdZ) |
| CSIBCRotationd & |
GetRotation (CSIBCRotationd &out_rot) |
| CSIBCQuaterniond & |
GetRotation (CSIBCQuaterniond &out_quat) |
| CSIBCRotMatd & |
GetRotation (CSIBCRotMatd &out_matRot) |
| const CSIBCRotMatd * |
GetRotation () |
| CSIBCVector3Dd & |
GetRotation (CSIBCVector3Dd &out_vctXYZAngles) |
| void |
GetRotation (double &out_dX, double &out_dY, double &out_dZ) |
| void |
GetRotation (CSIBCVector3Dd &out_vctAxis, double &out_dAngle) |
| CSIBCVector3Dd & |
GetTranslation (CSIBCVector3Dd &out_vctTrs) |
| void |
GetTranslation (double &out_dX, double &out_dY, double &out_dZ) |
| const CSIBCXfoMatd * |
GetMatrix () |
| CSIBCXfoMatd & |
GetMatrix (CSIBCXfoMatd &out_matXfo) |
| CSIBCXfoMatd & |
GetInvMatrix (CSIBCXfoMatd &out_matInvXfo) |
| CSIBCTransfod & |
Set (const CSIBCVector3Dd &in_vctScl, const CSIBCRotationd &in_rotScl, const CSIBCRotationd &in_rot, const CSIBCVector3Dd &in_vctTrs) |
| CSIBCTransfod & |
Set (const CSIBCVector3Dd &in_vctScl, const CSIBCRotationd &in_rot, const CSIBCVector3Dd &in_vctTrs) |
| CSIBCTransfod & |
Set (const CSIBCTransfod &in_xfo) |
| CSIBCTransfod & |
Set (const CSIBCXfoMatd &in_matXfo) |
| CSIBCTransfod & |
Set (const CSIBCRotationd &in_rot) |
| CSIBCTransfod & |
Set (const CSIBCVector3Dd &in_vct) |
| CSIBCTransfod & |
SetScaling (const CSIBCVector3Dd &in_vctScl) |
| CSIBCTransfod & |
SetScaling (double in_dX, double in_dY, double in_dZ) |
| CSIBCTransfod & |
SetScaling (const CSIBCVector3Dd &in_vctScl, const CSIBCRotationd &in_rotSclOri) |
| CSIBCTransfod & |
SetScalingOrientation (const CSIBCRotationd &in_rotSclOri) |
| CSIBCTransfod & |
SetScalingOrientation (const CSIBCVector3Dd &in_vctSclOri) |
| CSIBCTransfod & |
SetScalingOrientation (const double in_dX, const double in_dY, const double in_dZ) |
| CSIBCTransfod & |
SetRotation (const CSIBCRotationd &in_rot) |
| CSIBCTransfod & |
SetRotation (const CSIBCQuaterniond &in_quat) |
| CSIBCTransfod & |
SetRotation (const CSIBCRotMatd &in_matRot) |
| CSIBCTransfod & |
SetRotation (const CSIBCVector3Dd &in_vctXYZAngles) |
| CSIBCTransfod & |
SetRotation (double in_dX, double in_dY, double in_dZ) |
| CSIBCTransfod & |
SetRotation (const E3DAxisType in_axis, const double in_dAngle) |
| CSIBCTransfod & |
SetRotation (const CSIBCVector3Dd &in_vctAxis, const double in_dAngle) |
| bool |
SetRotation (const CSIBCVector3Dd &in_vctFrom, const CSIBCVector3Dd &in_vctTo, int &out_bFlip) |
| CSIBCTransfod & |
SetRotation (const CSIBCVector3Dd &in_vctX, const CSIBCVector3Dd &in_vctY, const CSIBCVector3Dd &in_vctZ) |
| CSIBCTransfod & |
SetTranslation (const CSIBCVector3Dd &in_vctTrs) |
| CSIBCTransfod & |
SetTranslation (double in_dX, double in_dY, double in_dZ) |
| CSIBCTransfod & |
SetIdentity (const unsigned char in_oWhichTransfo=oSiTransfoAll) |
| CSIBCTransfod & |
Invert (CSIBCTransfod &in_xfo) |
| CSIBCTransfod & |
Invert () |
| CSIBCTransfod & |
Mul (CSIBCTransfod &in_xfo1, CSIBCTransfod &in_xfo2, unsigned char in_oWhichComponents=oSiTransfoAll) |
| CSIBCTransfod & |
Mul (CSIBCTransfod &in_xfo, unsigned char in_oWhichComponents=oSiTransfoAll) |
| CSIBCTransfod & |
Dif (CSIBCTransfod &in_xfo1, CSIBCTransfod &in_xfo2, unsigned char in_oWhichComponents=oSiTransfoAll, CSIBCTransfod *in_pXfo3=0) |
| CSIBCTransfod & |
MapSpaceToWorld (CSIBCTransfod &in_xfoFrom) |
| CSIBCTransfod & |
MapWorldToSpace (CSIBCTransfod &in_xfoTo) |
| CSIBCTransfod & |
MapSpaceToSpace (CSIBCTransfod &in_xfoFrom, CSIBCTransfod &in_xfoTo) |
| CSIBCTransfod & |
AddScaling (const CSIBCVector3Dd &in_vctSclApplied, const E3DTransfoSpace in_eAlong=LOCAL_TRANSFO_SPACE, CSIBCRotationd *in_protAlong=0, const E3DTransfoSpace in_eAbout=LOCAL_TRANSFO_SPACE, const CSIBCVector3Dd *in_pvctAbout=0, const E3DSclType in_eSclType=XYZ_SCL_TYPE) |
| CSIBCTransfod & |
AddRotation (CSIBCRotationd &in_rotApplied, const E3DTransfoSpace in_eAlong=LOCAL_TRANSFO_SPACE, CSIBCRotationd *in_protAlong=0, const E3DTransfoSpace in_eAround=LOCAL_TRANSFO_SPACE, const CSIBCVector3Dd *in_pvctAround=0, bool in_bIncrementEulerAngles=false) |
| CSIBCTransfod & |
AddTranslation (const CSIBCVector3Dd &in_vctTrsApplied, const E3DTransfoSpace in_eAlong=LOCAL_TRANSFO_SPACE, CSIBCRotationd *in_protAlong=0) |
| CSIBCTransfod & |
AddScalingOrientation (CSIBCRotationd &in_rotApplied, const E3DTransfoSpace in_eAlong=LOCAL_TRANSFO_SPACE, CSIBCRotationd *in_protAlong=0, const E3DTransfoSpace in_eAround=LOCAL_TRANSFO_SPACE, const CSIBCVector3Dd *in_pvctAround=0, bool in_bIncrementEulerAngles=false) |
Friends
|
| CSIBCXfoMatd & |
GetMapSpaceToWorld (const E3DVectorType in_eVctType, CSIBCTransfod &in_xfoFrom, CSIBCXfoMatd &out_matXfo) |
| CSIBCXfoMatd & |
GetMapWorldToSpace (const E3DVectorType in_eVctType, CSIBCTransfod &in_xfoTo, CSIBCXfoMatd &out_matXfo) |
| CSIBCXfoMatd & |
GetMapSpaceToSpace (const E3DVectorType in_eVctType, CSIBCTransfod &in_xfoFrom, CSIBCTransfod &in_xfoTo, CSIBCXfoMatd &out_matXfo) |
Detailed Description
Class describing an SRT transformation of an object.
Constructor & Destructor Documentation
Default constructor for identity transformation.
Constructor from individual components
- Parameters:
-
|
|
in_vctScal |
Scaling factors |
|
|
in_rotScl |
Scaling orientation, |
|
|
in_rot |
Orientation |
|
|
in_vctTrs |
Translation |
Constructor
- Parameters:
-
|
|
in_vctScl |
Scaling factors |
|
|
in_rot |
Rotation |
|
|
in_vctTrs |
Translation |
Constructor
- Parameters:
-
|
|
in_vctScl |
Scaling factors |
|
|
in_rotScl |
Scaling orientation |
Member Function Documentation
| bool GetSIScalingFlag |
( |
|
) |
const |
Gets the softimage scaling flag
- Return values:
-
|
|
true |
Classical scaling |
|
|
false |
Proportional scaling |
Sets the softimage scaling flag
- Parameters:
-
|
|
in_bSIScaling |
true for classical scaling, false for proportional scaling |
- Returns:
- CSIBCTransfod Reference to this transformation
| bool IsScalingOrientationExisting |
( |
|
) |
const |
Queries for the existence of scaling orientation in this transformation.
- Returns:
- Wheter or not scaling orientation is present
Get the scaling factors component
- Parameters:
-
|
|
out_vctScl |
Output vector for scaling factors. |
- Returns:
- CSIBCVector3Dd& Reference to
out_vctScl
| void GetScaling |
( |
double & |
out_dX, |
|
|
|
double & |
out_dY, |
|
|
|
double & |
out_dZ |
|
|
|
) |
|
|
|
Get the scaling factors component
- Parameters:
-
|
|
out_dX |
X scaling factor. |
|
|
out_dY |
Y scaling factor. |
|
|
out_dZ |
Z scaling factor. |
Gets the scaling factors and scaling orientation components.
- Parameters:
-
|
|
out_vctScl |
Output vector for scaling factors. |
|
|
out_rotSclOri |
Output rotation for scaling. |
Gets the scaling orientation component.
- Parameters:
-
|
|
in_rotSclOri |
Scaling orientation |
- Returns:
- CSIBCRotationd Reference to
in_rotSclOri
Gets the scaling orientation component.
- Parameters:
-
|
|
out_vctSclOri |
Scaling orientation vector. |
- Returns:
- CSIBCRotationd Reference to
out_vctSclOri
| void GetScalingOrientation |
( |
double & |
out_rdX, |
|
|
|
double & |
out_rdY, |
|
|
|
double & |
out_rdZ |
|
|
|
) |
|
|
|
Gets the scaling orientation component.
- Parameters:
-
|
|
out_rdX |
X Euler angle in radians. |
|
|
out_rdY |
Y Euler angle in radians. |
|
|
out_rdZ |
Z Euler angle in radians. |
Gets the rotation component.
- Parameters:
-
|
|
out_rout |
The rotation component |
- Returns:
- CSIBCRotationd Reference to
out_rot
Gets the rotation component under quaternion representation.
- Parameters:
-
|
|
out_quat |
Quaternion representation. |
- Returns:
- CSIBCQuaterniond Reference to
out_quat
Gets the rotation component under rotation matrix representation.
- Parameters:
-
|
|
out_matRot |
Rotation matrix representation. |
- Returns:
- CSIBCRotMatd Reference to
out_matRot
Gets the pointer to the internal rotation matrix representation of the rotation component.
- Returns:
- CSIBCRotMatd Constant pointer to a rotation matrix that represents the rotation.
- Note:
- Doing this is much faster than copying the whole matrix into another object when no changes have to be done on it. However, you have to be careful when using this function. Make sure the pointer it returns is not stored permanently in a way that it becomes invalid (when the object is destroyed for example).
Gets the rotation component under Euler angles representation.
- Parameters:
-
|
|
out_vctXYZAngles |
Euler angles representation. |
- Returns:
- CSIBCVector3Dd Reference to
out_vctXYZAngles
| void GetRotation |
( |
double & |
out_dX, |
|
|
|
double & |
out_dY, |
|
|
|
double & |
out_dZ |
|
|
|
) |
|
|
|
Gets rotation component under Euler angles representation.
- Parameters:
-
|
|
out_dX |
X Euler angle in radians. |
|
|
out_dY |
Y Euler angle in radians. |
|
|
out_dZ |
Z Euler angle in radians. |
| void GetRotation |
( |
CSIBCVector3Dd & |
out_vctAxis, |
|
|
|
double & |
out_dAngle |
|
|
|
) |
|
|
|
Gets the rotation component under axis-angle representation.
- Parameters:
-
|
|
out_vctAxis |
Axis |
|
|
out_dAngle |
Angle |
Gets the translation component.
- Parameters:
-
|
|
out_vctTrs |
Translation vector |
- Returns:
- CSIBCVector3Dd Reference to
out_vctTrs
| void GetTranslation |
( |
double & |
out_dX, |
|
|
|
double & |
out_dY, |
|
|
|
double & |
out_dZ |
|
|
|
) |
|
|
|
Gets the translation component.
- Parameters:
-
|
|
out_dX |
X translation. |
|
|
out_dY |
Y translation. |
|
|
out_dZ |
Z translation. |
Gets the transformation matrix
- Returns:
- CSIBCXfoMatd Pointer to the internally stored transformation matrix
- Note:
- Much faster than getting the matrix itself (see the other implementation of GetMatrix) when no changes have to be done on it. BUT PLEASE BE CAREFUL WHEN USING THIS FUNCTION. Make sure the pointer it returns is not stored permanently in a way that it becomes invalid (when the object is destroyed for example).
Gets a copy of the internal matrix representation of this transformation
- Parameters:
-
|
|
out_matXfo |
Destination for the copy |
- Return values:
-
Get the matrix representation of the inverse of this transformation.
- Parameters:
-
|
|
out_matInvXfo |
Destination for the copy |
- Return values:
-
Sets the transformation components.
- Parameters:
-
|
|
in_vctScl |
Scaling factors |
|
|
in_rotScl |
Scaling orientation |
|
|
in_rot |
Orientation |
|
|
in_vctTrs |
Translation |
- Returns:
- Reference to this transformation
Sets the transformation components.
- Parameters:
-
|
|
in_vctScl |
Scaling factors |
|
|
in_rot |
Orientation |
|
|
in_vctTrs |
Translation |
- Returns:
- Reference to this transformation
Sets the transformation components from another transformation
- Parameters:
-
|
|
in_xfo |
Transformation to copy |
- Returns:
- Reference to this transformation
Sets the transformation components from a transformation matrix
- Parameters:
-
|
|
in_matXfo |
Transformation matrix for setting this transformation. |
- Returns:
- Reference to this transformation
Sets the transformation components from a rotation
- Parameters:
-
- Returns:
- Reference to this transformation
Sets the transformation components from a translation
- Parameters:
-
|
|
in_vct |
Translation vector |
- Returns:
- Reference to this transformation
Sets the scaling factors
- Parameters:
-
|
|
in_vctScl |
Scaling factors |
- Returns:
- Reference to this transformation
| CSIBCTransfod& SetScaling |
( |
double |
in_dX, |
|
|
|
double |
in_dY, |
|
|
|
double |
in_dZ |
|
|
|
) |
|
|
|
Sets the scaling factors
- Parameters:
-
|
|
in_dX |
X scaling factor. |
|
|
in_dY |
Y scaling factor. |
|
|
in_dZ |
Z scaling factor. |
- Returns:
- Reference to this transformation
Sets the scaling factors and rotation
- Parameters:
-
|
|
in_vctScl |
Scaling factors |
|
|
in_rotSclOri |
Scaling orientation. |
- Returns:
- Reference to this transformation
Set scaling orientation without affecting other components.
- Parameters:
-
|
|
in_rotSclOri |
Scaling orientation |
- Returns:
- Reference to this transformation
Set scaling orientation without affecting other components.
- Parameters:
-
|
|
in_vctSclOri |
Scaling orientation |
- Returns:
- Reference to this transformation
| CSIBCTransfod& SetScalingOrientation |
( |
const double |
in_dX, |
|
|
|
const double |
in_dY, |
|
|
|
const double |
in_dZ |
|
|
|
) |
|
|
|
Set scaling orientation without affecting other components.
- Parameters:
-
|
|
in_dX |
X Scaling orientation |
|
|
in_dY |
Y Scaling orientation |
|
|
in_dZ |
Z Scaling orientation |
- Returns:
- Reference to this transformation
Sets the rotation without affecting other components.
- Parameters:
-
- Returns:
- Reference to this transformation
Sets the rotation from a quaternion.
- Parameters:
-
|
|
in_quat |
Quaternion representation |
- Returns:
- Reference to this transformation
Sets the rotation from a rotation matrix.
- Parameters:
-
|
|
in_matRot |
Rotation matrix. |
- Returns:
- Reference to this transformation
Sets the rotation from Euler Angles
- Parameters:
-
|
|
in_vctXYZAngles |
Euler angles |
- Returns:
- Reference to this transformation
| CSIBCTransfod& SetRotation |
( |
double |
in_dX, |
|
|
|
double |
in_dY, |
|
|
|
double |
in_dZ |
|
|
|
) |
|
|
|
Sets the rotation from Euler Angles
- Parameters:
-
|
|
in_dX |
X Euler angle in radians. |
|
|
in_dY |
Y Euler angle in radians. |
|
|
in_dZ |
Z Euler angle in radians. |
- Returns:
- Reference to this transformation
Sets the rotation from an axis-angle
- Parameters:
-
|
|
in_axis |
Axis of rotation |
|
|
in_dAngle |
Angle around the axis |
- Returns:
- Reference to this transformation
Sets the rotation from an axis-angle
- Parameters:
-
|
|
in_vctAxis |
Axis of rotation |
|
|
in_dAngle |
Angle around the axis |
- Returns:
- Reference to this transformation
Sets the rotation from a FROM-TO vector representation.
- Parameters:
-
|
|
in_vctFrom |
Starting vector. |
|
|
in_vctTo |
Ending vector. |
|
|
out_bFlip |
Does the generated rotation produces a sudden flip? See comment in CSIBCRotationd::Set method. |
- Returns:
- bool Reference to
out_bFlip
- See also:
- CSIBCRotationd::Set.
Sets the rotation from three orthonormal axes. No verification is performed about their orthonormality.
- Parameters:
-
|
|
in_vctX |
Unitary X axis (orthogonal to Y and Z). |
|
|
in_vctY |
Unitary Y axis (orthogonal to X and Z). |
|
|
in_vctZ |
Unitary Z axis (orthogonal to X and Y). |
- Returns:
- Reference to this transformation
Set the translation without affecting other components.
- Parameters:
-
- Returns:
- Reference to this transformation
| CSIBCTransfod& SetTranslation |
( |
double |
in_dX, |
|
|
|
double |
in_dY, |
|
|
|
double |
in_dZ |
|
|
|
) |
|
|
|
Set the translation without affecting other components.
- Parameters:
-
|
|
in_dX |
X translation. |
|
|
in_dY |
Y translation. |
|
|
in_dZ |
Z translation. |
- Returns:
- Reference to this transformation
Sets some or all components of this transformation to the identity.
- Parameters:
-
|
|
in_oWhichTransfo |
TransformationFlags Flag that detemines which transformation component must be affected |
- Returns:
- Reference to this transformation
- See also:
- TransformationFlags
Sets the transformation as the inverse of another transformation
- Parameters:
-
- Returns:
- Reference to this transformation
Inverts the current transformation
- Returns:
- Reference to this transformation
Combines two transformations into this one.
- Parameters:
-
|
|
in_xfo1 |
First transformation to combine. |
|
|
in_xfo2 |
Second transformation to combine. |
|
|
in_oWhichComponents |
TransformationFlags Which components to combine (oSiTransfoAll by default). |
- Returns:
- Reference to this transformation
- Note:
- Given the transformations X1=(s1,u1,r1,t1) and X2=(s2,u2,r2,t2), we want to combine them into X=(s,u,r,t), where s stands for scaling factors, u for scaling orientation, r for rotation and t for translation. All components are under matrix representation. Under the SOFTIMAGE scaling scheme no shearing is possible and the u components are forced to be identity. The transformations are combined in the following way:
s = s1 * s2 (component wise product)
r = r1 * r2
t = t1 * s2 * r2 * t2 (where s2, r2 and t2 are matrices).
Under the Classical scaling scheme the shearing is possible. We could combined the transformations in the following way:
X = s1 * r1 * t1 * s2 * r2 * t2
which will introduce shearing if r1 is not identity and s2 is not uniform. But we could also introduce shearing explicitly by using u components:
X = u1(T) * s1 * u1 * r1 * t1 * u2(T) * s2 * u2 * r2 * t2
where u(T) stands for the transpose of u.
In SOFTIMAGE scaling scheme, transformations must be combined using components representation. In classical scheme, they are combined by simply using product of matrices.
- See also:
- CSIBCTransfod::Div
TransformationFlags
Right multiplis this transformation by another transformation.
- Parameters:
-
|
|
in_xfo |
Transformation to multiply to the right. |
|
|
in_oWhichComponents |
TransformationFlags Which components to combine (oSiTransfoAll by default). |
- Returns:
- Reference to this transformation
- See also:
- CSIBCTransfod::Div
TransformationFlags
Computes the product of a given transformation (T1) with the inverse of another one (T2), that is, compute this = T1 * T2(-1).
- Parameters:
-
|
|
in_xfo1 |
First transformation to multiply. |
|
|
in_xfo2 |
Second transformation which inverse must be right-multiplied by the first one |
|
|
in_oWhichComponents |
TransformationFlags Which components to combine (oSiTransfoAll by default). |
|
|
in_pXfo3 |
If non null, use *in_pXfo3 Euler angles as the target for the Euler angles associated with this. |
- Returns:
- Reference to this transformation
- Note:
- This is useful when we want to compensate a transformation when parenting -- We want to preserve Tglobal of an object.
We know that Tnewlocal * Tparent = Toldglobal, then we need to compute Tnewlocal = Toldglobal * Tparent(-1) and when computing global transformation of child we will get Tnewglobal = Tnewlocal * Tparent = Toldglobal.
Or, when compensating a geometry when a given transformation is applied to the center of the object. Given an old vector Vlocal specified relative to a transformation Tglobal, then its global value is Vglobal = Vlocal * Tglobal. We apply T to the center. To preserve the vector globally we must compute Vnewlocal=Vlocal * Tglobal * T(-1).
This function is the reverse of the CSIBCTransfod::Mul function.
- See also:
- CSIBCTransfod::Mul
TransformationFlags
Maps the transformation from a given space to the world space.
- Parameters:
-
|
|
in_xfoFrom |
Space into which this transformation is currently represented. |
- Returns:
- Reference to this transformation
Maps this transformation from the world space to a given space.
- Parameters:
-
|
|
in_xfoTo |
Space into which this transformation will be represented. |
- Returns:
- Reference to this transformation
Maps this transformation from a given space to another one.
- Parameters:
-
|
|
in_xfoFrom |
Space into which this transformation is currently represented. |
|
|
in_xfoTo |
Space into which this transformation will be represented. |
- Returns:
- Reference to this transformation
| CSIBCTransfod& AddScaling |
( |
const CSIBCVector3Dd & |
in_vctSclApplied, |
|
|
|
const E3DTransfoSpace |
in_eAlong = LOCAL_TRANSFO_SPACE, |
|
|
|
CSIBCRotationd * |
in_protAlong = 0, |
|
|
|
const E3DTransfoSpace |
in_eAbout = LOCAL_TRANSFO_SPACE, |
|
|
|
const CSIBCVector3Dd * |
in_pvctAbout = 0, |
|
|
|
const E3DSclType |
in_eSclType = XYZ_SCL_TYPE |
|
|
|
) |
|
|
|
Apply a scaling to the transformation along local axes, parent's axes or any scaling axes, and about local position, parent's position or any world position. Scaling can be Uniform, Volumic, or XYZ.
- Parameters:
-
|
|
in_vctSclApplied |
Scaling factors to apply. |
|
|
in_eAlong |
Apply scaling along local axes, axes or other scaling axes axes. |
|
|
in_protAlong |
Pointer to specific scaling axes. When scaling is applied along OTHER scaling axes. |
|
|
in_eAbout |
Apply scaling about LOCAL position, PARENT's position or OTHER position. |
|
|
in_pvctAbout |
Pointer to specific position when scaling is applied about OTHER position. |
- Returns:
- Reference to this transformation
- Note:
- This function assumes that the transformation itself and the parameters (scaling axes and reference position) are ALL defined relative to the SAME SPACE. When the transformation is to be edited using parameters from different spaces, all must first be converted into the same common space as the transformation, or the opposite.
When the common space is the WORLD space, then PARENT's axes and PARENT's position mean WORLD axes and WORLD position. Note also that passing identity scaling axes (main X,Y and Z axes) and/or identity position (null vector) would give the same results as specifying that PARENT's axes and/or PARENT's position must be used. On the other hand, asking to use PARENT's axes or position will be more efficient.
| CSIBCTransfod& AddRotation |
( |
CSIBCRotationd & |
in_rotApplied, |
|
|
|
const E3DTransfoSpace |
in_eAlong = LOCAL_TRANSFO_SPACE, |
|
|
|
CSIBCRotationd * |
in_protAlong = 0, |
|
|
|
const E3DTransfoSpace |
in_eAround = LOCAL_TRANSFO_SPACE, |
|
|
|
const CSIBCVector3Dd * |
in_pvctAround = 0, |
|
|
|
bool |
in_bIncrementEulerAngles = false |
|
|
|
) |
|
|
|
Applies a rotation to this transformation ALONG local axes, parent's axes or any rotation axes, and AROUND local position, parent's position or any position.
- Parameters:
-
|
|
in_rotApplied |
Rotation to apply. |
|
|
in_eAlong |
Apply rotation along LOCAL axes, |
|
|
in_protAlong |
Pointer to specific rotation axes when rotation is applied along OTHER rotation axes. |
|
|
in_eAround |
Apply rotation around LOCAL position, PARENT's position or OTHER position. |
|
|
in_pvctAround |
Pointer to specific position when rotation is applied around OTHER position. |
|
|
in_bIncrementEulerAngles |
If true, update the Euler angles of the resulting rotation using the previous angles as the target. |
- Returns:
- Reference to this transformation
- Note:
- This function assumes that the transformation itself and the parameters (scaling axes and reference position) are ALL defined relative to the SAME SPACE. When the transformation is to be edited using parameters from different spaces, all must first be converted into the same common space as the transformation, or the opposite.
When the common space is the WORLD space, then PARENT's axes and PARENT's position mean WORLD axes and WORLD position. Note also that passing identity scaling axes (main X,Y and Z axes) and/or identity position (null vector) would give the same results as specifying that PARENT's axes and/or PARENT's position must be used. On the other hand, asking to use PARENT's axes or position will be more efficient.
Apply a translation to this transformation ALONG local axes, parent's axes or any translation axes.
- Parameters:
-
|
|
in_vctTrsApplied |
Translation to apply. |
|
|
in_eAlong |
Apply translation along LOCAL axes, PARENT's axes or OTHER translation axes. |
|
|
in_protAlong |
Pointer to specific translation axes when translation is applied along OTHER translation axes. |
- Returns:
- Reference to this transformation
- Note:
- This function assumes that the transformation itself and the parameters (scaling axes and reference position) are ALL defined relative to the SAME SPACE. When the transformation is to be edited using parameters from different spaces, all must first be converted into the same common space as the transformation, or the opposite.
When the common space is the WORLD space, then PARENT's axes and PARENT's position mean WORLD axes and WORLD position. Note also that passing identity scaling axes (main X,Y and Z axes) and/or identity position (null vector) would give the same results as specifying that PARENT's axes and/or PARENT's position must be used. On the other hand, asking to use PARENT's axes or position will be more efficient.
| CSIBCTransfod& AddScalingOrientation |
( |
CSIBCRotationd & |
in_rotApplied, |
|
|
|
const E3DTransfoSpace |
in_eAlong = LOCAL_TRANSFO_SPACE, |
|
|
|
CSIBCRotationd * |
in_protAlong = 0, |
|
|
|
const E3DTransfoSpace |
in_eAround = LOCAL_TRANSFO_SPACE, |
|
|
|
const CSIBCVector3Dd * |
in_pvctAround = 0, |
|
|
|
bool |
in_bIncrementEulerAngles = false |
|
|
|
) |
|
|
|
Applies a scaling orientation to this transformation ALONG local axes, parent axes or any rotation axes, and AROUND local position, parent position or any position.
- Parameters:
-
|
|
in_rSclOriApplied |
ScalingOrientation to apply. |
|
|
in_eAlong |
Apply rotation along LOCAL axes, PARENT axes or OTHER rotation axes. |
|
|
in_pRotAlong |
Pointer to specific rotation axes when rotation is applied along OTHER rotation axes. |
|
|
in_eAround |
Apply rotation around LOCAL position, PARENT position or OTHER position. |
|
|
in_pVctAround |
Pointer to specific position when rotation is applied around OTHER position. |
|
|
in_bIncrementEulerAngles |
| If true, update the Euler angles of the resulting rotation using the previous angles as the target. |
- Returns:
- Reference to this transformation
- Note:
- This function assumes that the transformation itself and the parameters (scaling axes and reference position) are ALL defined relative to the SAME SPACE. When the transformation is to be edited using parameters from different spaces, all must first be converted into the same common space as the transformation, or the opposite.
When the common space is the WORLD space, then PARENT's axes and PARENT's position mean WORLD axes and WORLD position. Note also that passing identity scaling axes (main X,Y and Z axes) and/or identity position (null vector) would give the same results as specifying that PARENT's axes and/or PARENT's position must be used. On the other hand, asking to use PARENT's axes or position will be more efficient.
Friends And Related Function Documentation
Gets a matrix to map a point, a line or a direction vector from a given space to the world space.
- Parameters:
-
|
|
in_eVctType |
Get a mapping matrix for a point, a line or a direction vector? |
|
|
in_xfoFrom |
Space into which vectors are currently represented. |
|
|
out_matXfo |
Output transformation matrix. |
- Returns:
- Reference to the output transformation matrix.
Gets a matrix to map a point, a line or a direction vector from the world space to a given space.
- Parameters:
-
|
|
in_eVctType |
Get a mapping matrix for a point, a line or a direction vector? |
|
|
in_xfoTo |
Space into which vectors will be represented. |
|
|
out_matXfo |
Output transformation matrix. |
- Returns:
- Reference to the output transformation matrix.
Gets a matrix to map a point, a line or a direction vector from a given space to another one.
- Parameters:
-
|
|
in_eVctType |
Get a mapping matrix for a point, a line or a direction vector? |
|
|
in_xfoFrom |
Space into which vectors are currently represented. |
|
|
in_xfoTo |
Space into which vectors will be represented. |
|
|
out_matXfo |
Output transformation matrix. |
- Returns:
- Reference to the output transformation matrix.
The documentation for this class was generated from the following file: