trans_seq.h File Reference Detailed DescriptionSequence (product) of homogeneous transforms including constant and variable terms. Used to defined matrix equations.
Definition in file trans_seq.h.
Macro Definition Documentation
Displacement along a vector. The vector is stored in the form of a constant transform. Definition at line 24 of file trans_seq.h. Referenced by AddVarTrans2TransSeq(), DeriveTransSeq(), EvaluateTransSeq(), InitTVTrans(), InitVarTrans(), PrintTransSeq(), and UpdateUsedDOF().
Point on a patch given by two parameters. This defines a parametrized transform. Definition at line 31 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), GetJointTransSeq(), InitPatchTrans(), PrintTransSeq(), and UpdateUsedDOF().
One of the possible transforms in the sequence. These are added to the types of transforms defined in htransform.h Definition at line 38 of file trans_seq.h. Referenced by AddCtTrans2TransSeq(), AddDispTrans2TransSeq(), AddPatchTrans2TransSeq(), AddTrans2TransSeq(), AddVarTrans2TransSeq(), EvaluateTransSeq(), HasCtRotTransSeq(), InitCtTrans(), InitVarTrans(), PrintTransSeq(), SimplifyTransSeq(), TransInvert(), and UpdateUsedDOF().
Derivative of a Rx transform. Definition at line 44 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Derivative of a Rx transform. Definition at line 50 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Derivative of a Rx transform. Definition at line 56 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Derivative of a PA transform with respect to the first parameter. Definition at line 63 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Derivative of a PA transform with respect to the second parameter. Definition at line 70 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Double derivative of a Rx transform. Definition at line 76 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Double derivative of a Ry transform. Definition at line 82 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Double derivative of a Rz transform. Definition at line 88 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Double derivative of a PA transform with respect to the first parameter. Definition at line 95 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Derivative of a PA transform with respect to the first parameter and then with respect to the second Definition at line 102 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Double derivative of a PA transform with respect to the second parameter. Definition at line 109 of file trans_seq.h. Referenced by DeriveTransSeq(), EvaluateTransSeq(), PrintTransSeq(), and UpdateUsedDOF().
Initial room for terms in a transform sequence. It will be enlarged if necessary.
Definition at line 117 of file trans_seq.h. Referenced by InitTransSeq().
Checks if a transform is a parametrized patch or a derived transform.
Definition at line 126 of file trans_seq.h. Referenced by AddVarTrans2TransSeq(), EvaluateVectorsPATrans(), InitPatchTrans(), and InitVarTrans(). Function Documentation
Initializes a constant transform.
Definition at line 21 of file trans_seq.c. References TTrans::ct, CT_TRANS, HTransformCopy(), NEW, NO_UINT, TTrans::p, TTrans::s, TTrans::t, TTrans::u, TTrans::v, and TTrans::vect. Referenced by AddCtTrans2TransSeq().
Initializes a variable transform (all variable transforms but those of type TV or PA).
Definition at line 33 of file trans_seq.c. References TTrans::ct, CT_TRANS, Error(), IS_PATCH_TRANS, NO_UINT, TTrans::p, TTrans::s, TTrans::t, TV, TTrans::u, TTrans::v, and TTrans::vect. Referenced by AddVarTrans2TransSeq().
Initializes a TV transform: a displacement along a vector scaled by a variable.
Definition at line 46 of file trans_seq.c. References TTrans::ct, NEW, NO_UINT, TTrans::p, TTrans::s, TTrans::t, TV, TTrans::u, TTrans::v, and TTrans::vect. Referenced by AddDispTrans2TransSeq().
Initializes a parametrized-patch transform. Note that the given points are NOT the vertices defining the patch but some combinations of them
Definition at line 58 of file trans_seq.c. References AccumulateVector(), CrossProduct(), TTrans::ct, DifferenceVector(), Error(), IS_PATCH_TRANS, NEW, TTrans::p, PA, TTrans::s, TTrans::t, TTrans::u, TTrans::v, and TTrans::vect. Referenced by AddPatchTrans2TransSeq(). Initializes a transform form another transform. Definition at line 99 of file trans_seq.c. References TTrans::ct, HTransformCopy(), NEW, TTrans::p, TTrans::s, TTrans::t, TTrans::u, TTrans::v, and TTrans::vect. Referenced by AddTrans2TransSeq(), CopyTransSeq(), and TransInvert(). Invert a transform.
Definition at line 136 of file trans_seq.c. References CopyTrans(), TTrans::ct, CT_TRANS, HTransformInverse(), TTrans::s, and TTrans::t. Referenced by AddTransSeq2MEquation(). Checks if a variable is involved in a given transform.
Definition at line 145 of file trans_seq.c. References TTrans::u, and TTrans::v. Referenced by DeriveTransSeq(), ShiftVariablesInTransSeq(), and VarIncludedinTransSeq().
Computes the basic, unnormalized vectors defining a PA transform. This can be applied to PA transforms and to their derivatives (dPA_U, dPA_V, ddPA_UU, ddPA_UV, and ddPA_VV) BUT in all cases it returns the vector for the original PA
Definition at line 150 of file trans_seq.c. References Error(), IS_PATCH_TRANS, TTrans::p, SumVectorScale(), and TTrans::t. Referenced by EvaluatePATrans(), and EvaluateTransSeq().
Evaluates a PA transform. This can be applied to PA transforms and to their derivatives (dPA_U, dPA_V, ddPA_UU, ddPA_UV, and ddPA_VV) BUT in all cases it returns the evaluation of the original PA
Definition at line 169 of file trans_seq.c. References CrossProduct(), EvaluateVectorsPATrans(), HTransformFromVectors(), HTransformInverse(), Normalize(), and TTrans::s. Referenced by EvaluateTransSeq().
Releases the memory used in a transform.
Definition at line 184 of file trans_seq.c. References TTrans::ct, HTransformDelete(), TTrans::p, and TTrans::vect. Referenced by AddCtTrans2TransSeq(), AddTrans2TransSeq(), AddTransSeq2MEquation(), ResetTransSeq(), and SimplifyTransSeq().
Initializes an empty sequence of transforms.
Definition at line 213 of file trans_seq.c. References INIT_NUM_TERMS_TS, TTransSeq::m, TTransSeq::n, NEW, and TTransSeq::t. Referenced by DeriveTransSeq(), GetJointTransSeq(), and InitMEquation(). Copy constructor.
Definition at line 220 of file trans_seq.c. References CopyTrans(), TTransSeq::m, TTransSeq::n, NEW, and TTransSeq::t. Referenced by CopyMEquation().
Resets a sequence of transforms. Removes all the elements but does not release memory.
Definition at line 235 of file trans_seq.c. References DeleteTrans(), TTransSeq::n, and TTransSeq::t. Referenced by DeleteTransSeq(), and ResetMEquation(). Identifies empty transform sequences.
Definition at line 247 of file trans_seq.c. References TTransSeq::n. Determines if the transform sequence includes a rotation among its constants elements. Transform sequences without constant rotations are typicaly used in planar manipulators. We want to detect them in order to avoid considering redundant equations.
Definition at line 252 of file trans_seq.c. References TTrans::ct, CT_TRANS, FALSE, HTransformIsTranslation(), TTrans::t, and TTransSeq::t. Referenced by RecomputeScalarEquations().
Number of elements in the transform sequence.
Definition at line 264 of file trans_seq.c. References TTransSeq::n. Referenced by AddTransSeq2MEquation(), and MEquationSize(). Returns an element from a transform sequence.
Definition at line 269 of file trans_seq.c. References Error(), TTransSeq::n, and TTransSeq::t. Referenced by AddTransSeq2MEquation(). Adds a transform to a transform sequence. t The transform to add. ts The sequence where to add the transform. Definition at line 277 of file trans_seq.c. References AddCtTrans2TransSeq(), CopyTrans(), TTrans::ct, CT_TRANS, DeleteTrans(), HTransformDelete(), HTransformInverse(), HTransformIsIdentity(), TTransSeq::m, MEM_DUP, TTransSeq::n, NEW, TTrans::s, TTrans::t, and TTransSeq::t. Referenced by AddTransSeq2MEquation(), and DeriveTransSeq().
Adds a constant transform at the end of a transform sequence. Note that identity transforms or matrices that result in identity transforms when added at the end of the sequence are skipped.
Definition at line 313 of file trans_seq.c. References TTrans::ct, CT_TRANS, DeleteTrans(), HTransformIsIdentity(), HTransformProduct(), InitCtTrans(), TTransSeq::m, MEM_DUP, TTransSeq::n, NEW, TTrans::t, and TTransSeq::t. Referenced by AddCtTrans2MEquation(), AddTrans2TransSeq(), DeriveTransSeq(), GetJointTransSeq(), and InitMEquation().
Adds a variable transform at the end of a transform sequence.
Definition at line 338 of file trans_seq.c. References TTrans::ct, CT_TRANS, Error(), HTransformIsIdentity(), InitVarTrans(), IS_PATCH_TRANS, TTransSeq::m, MEM_DUP, TTransSeq::n, NEW, TTrans::t, TTransSeq::t, and TV. Referenced by AddVarTrans2MEquation(), DeriveTransSeq(), and GetJointTransSeq().
Adds a variable scaled displacement along a vector.
Definition at line 361 of file trans_seq.c. References TTrans::ct, CT_TRANS, HTransformIsIdentity(), InitTVTrans(), TTransSeq::m, MEM_DUP, TTransSeq::n, NEW, TTrans::t, and TTransSeq::t. Referenced by AddDispTrans2MEquation(), and GetJointTransSeq().
Adds a Parametrized-Patch transform to a transform sequence.
Definition at line 375 of file trans_seq.c. References TTrans::ct, CT_TRANS, HTransformIsIdentity(), InitPatchTrans(), TTransSeq::m, MEM_DUP, TTransSeq::n, NEW, TTrans::t, and TTransSeq::t. Referenced by AddPatchTrans2MEquation(), DeriveTransSeq(), and GetJointTransSeq(). Determines if the sequence includes a given variable. Used in the derivation of transform sequence.
Definition at line 390 of file trans_seq.c. References FALSE, TTransSeq::t, and TransHasVar(). Referenced by VarIncludedinMEquation().
Determines the dof used in a transform sequence. This is done by adding the transforms used in each degree of freedom into a given array.
Definition at line 405 of file trans_seq.c. References CT_TRANS, ddPA_UU, ddPA_UV, ddPA_VV, ddRX, ddRY, ddRZ, dPA_U, dPA_V, dRX, dRY, dRZ, Error(), TTransSeq::n, PA, RX, RY, RZ, TTrans::t, TTransSeq::t, TV, TX, TY, and TZ. Referenced by HasRotations(), and RecomputeScalarEquations().
After removing a variable not used in the system we have to shift down the indices of the variables with larger index than the removed one. This triggers an error if the variable is actually in use in the transform sequence.
Definition at line 465 of file trans_seq.c. References Error(), TTransSeq::n, NO_UINT, TTransSeq::t, TransHasVar(), TTrans::u, and TTrans::v. Referenced by ShiftVariablesInMEquation().
Accumulates the constant transform at the end of the sequence with the first one (if this is also constant). This produces no change in the expression if the transform sequence is equal to the identity. otherwise the change is dramatic and the simplification is not valid. This is only used from SimplifyMEquation. Do not use in another context.
Definition at line 483 of file trans_seq.c. References TTrans::ct, CT_TRANS, DeleteTrans(), HTransformProduct(), TTransSeq::n, TTrans::t, and TTransSeq::t. Referenced by SimplifyMEquation(). Derive a sequence of transforms with respect to a given variable If a given sequence includes the same variable more than once, the output can be a set of transform sequences.
Definition at line 494 of file trans_seq.c. References AddCtTrans2TransSeq(), AddPatchTrans2TransSeq(), AddTrans2TransSeq(), AddVarTrans2TransSeq(), AXIS_H, AXIS_X, AXIS_Y, AXIS_Z, ddPA_UU, ddPA_UV, ddPA_VV, ddRX, ddRY, ddRZ, dPA_U, dPA_V, dRX, dRY, dRZ, Error(), HTransformDelete(), HTransformSetElement(), HTransformZero(), InitTransSeq(), TTransSeq::n, NEW, TTrans::p, PA, RX, RY, RZ, TTrans::s, TTrans::t, TTransSeq::t, TransHasVar(), TV, TX, TY, TZ, TTrans::u, TTrans::v, and TTrans::vect. Referenced by DeriveMEquation().
Evaluates the transform sequence given some values for the variables.
Definition at line 623 of file trans_seq.c. References AccumulateVector(), AXIS_H, AXIS_X, AXIS_Y, AXIS_Z, CrossProduct(), TTrans::ct, CT_TRANS, ddPA_UU, ddPA_UV, ddPA_VV, ddRX, ddRY, ddRZ, DotProduct(), dPA_U, dPA_V, dRX, dRY, dRZ, Error(), EvaluatePATrans(), EvaluateVectorsPATrans(), HTransformAcumRot(), HTransformAcumTrans(), HTransformApplyRot(), HTransformDelete(), HTransformFromVectors(), HTransformIdentity(), HTransformProduct(), HTransformRx2(), HTransformRy2(), HTransformRz2(), HTransformSetElement(), HTransformTranspose(), TTransSeq::n, Norm(), TTrans::p, PA, RX, RY, RZ, TTrans::s, ScaleVector2(), SumVectorScale(), TTrans::t, TTransSeq::t, TV, TX, TY, TZ, TTrans::u, TTrans::v, and TTrans::vect. Referenced by EvaluateMEquation(), and EvaluateMEquationXVectors().
Prints a transform sequence to a file.
Definition at line 909 of file trans_seq.c. References AccumulateVector(), TTrans::ct, CT_TRANS, ddPA_UU, ddPA_UV, ddPA_VV, ddRX, ddRY, ddRZ, DIM_SP, dPA_U, dPA_V, dRX, dRY, dRZ, Error(), HTransformGetElement(), HTransformIsIdentity(), TTransSeq::n, TTrans::p, PA, PRINT_VARIABLE_NAME, PrintReal(), RX, RY, RZ, TTrans::s, SumVector(), TTrans::t, TTransSeq::t, TV, TX, TY, TZ, TTrans::u, TTrans::v, and TTrans::vect. Referenced by PrintMEquation().
Deleltes a transform sequence.
Definition at line 1109 of file trans_seq.c. References ResetTransSeq(), and TTransSeq::t. Referenced by DeleteMEquation(), and GenerateMEquationFromBranch(). |
Follow us!