1 #ifndef SimTK_SimTKCOMMON_TRANSFORM_H      2 #define SimTK_SimTKCOMMON_TRANSFORM_H    140     {   p_BF += offset_B; 
return *
this; }
   146     {   p_BF -= offset_B; 
return *
this; }
   181         return Transform_( R_BF * X_FY.
R(),  p_BF + R_BF * X_FY.
p() );
   276         tmp.template updSubMat<3,4>(0,0) = 
asMat34();
   306 class InverseTransform_ {
   348         return Transform_<P>(  ~R_FB * X_FY.R(),  ~R_FB *(X_FY.p() - p_FB)  ); 
   408 template <
class P, 
int S> 
inline Vec<3,P>  
   411 template <
class P, 
int S> 
inline Vec<3,P>     413 {   
return X_BF.shiftFrameStationToBase(s_F); }
   414 template <
class P, 
int S> 
inline Vec<3,P>  
   417 template <
class P, 
int S> 
inline Vec<3,P>  
   423 template <
class P, 
int S> 
inline Transform_<P>
   444 template <
class P, 
int S> 
inline Vec<4,P>    446     assert(a_F[3]==0 || a_F[3]==1);
   455 template <
class P, 
int S> 
inline Vec<4,P>    457     assert(a_F[3]==0 || a_F[3]==1);
   461     if( a_F[3] == 0 ) { 
Vec<3,P>::updAs(&out[0]) = X_BF.xformFrameVecToBase(v_F);      out[3] = 0; } 
   462     else              { 
Vec<3,P>::updAs(&out[0]) = X_BF.shiftFrameStationToBase(v_F);  out[3] = 1; }
   465 template <
class P, 
int S> 
inline Vec<4,P>  
   467 template <
class P, 
int S> 
inline Vec<4,P>  
   474 template <
class P, 
class E> 
inline Vector_<E> 
   477     for (
int i = 0; i < v.
size(); ++i)
   484     for (
int i = 0; i < v.
size(); ++i)
   488 template <
class P, 
class E> 
inline RowVector_<E> 
   491     for (
int i = 0; i < v.
size(); ++i)
   495 template <
class P, 
class E> 
inline RowVector_<E> 
   498     for (
int i = 0; i < v.
size(); ++i)
   502 template <
class P, 
class E> 
inline Matrix_<E> 
   505     for (
int i = 0; i < v.
nrow(); ++i)
   506         for (
int j = 0; j < v.
ncol(); ++j)
   507             result(i, j) = X*v(i, j);
   510 template <
class P, 
class E> 
inline Matrix_<E> 
   513     for (
int i = 0; i < v.
nrow(); ++i)
   514         for (
int j = 0; j < v.
ncol(); ++j)
   515             result(i, j) = X*v(i, j);
   518 template <
class P, 
int N, 
class E, 
int S> 
inline Vec<N,E> 
   521     for (
int i = 0; i < N; ++i)
   525 template <
class P, 
int N, 
class E, 
int S> 
inline Vec<N,E> 
   528     for (
int i = 0; i < N; ++i)
   532 template <
class P, 
int N, 
class E, 
int S> 
inline Row<N,E> 
   535     for (
int i = 0; i < N; ++i)
   539 template <
class P, 
int N, 
class E, 
int S> 
inline Row<N,E> 
   542     for (
int i = 0; i < N; ++i)
   546 template <
class P, 
int M, 
int N, 
class E, 
int CS, 
int RS> 
inline Mat<M,N,E> 
   549     for (
int i = 0; i < M; ++i)
   550         for (
int j = 0; j < N; ++j)
   551             result(i, j) = X*v(i, j);
   554 template <
class P, 
int M, 
int N, 
class E, 
int CS, 
int RS> 
inline Mat<M,N,E> 
   557     for (
int i = 0; i < M; ++i)
   558         for (
int j = 0; j < N; ++j)
   559             result(i, j) = X*v(i, j);
   565 template <
class P> 
inline Transform_<P>&
   576     return Transform_<P>( R_BF * X_FY.R(), p_BF + R_BF * X_FY.p() );
   586 template <
class P> 
inline Transform_<P>
   588 template <
class P> 
inline Transform_<P>
   594 template <
class P> 
inline bool   596 template <
class P> 
inline bool   598 template <
class P> 
inline bool   600 template <
class P> 
inline bool   606 operator<<(std::ostream&, const Transform_<P>&);
   610 operator<<(std::ostream&, const InverseTransform_<P>&);
   618 #endif // SimTK_SimTKCOMMON_TRANSFORM_H 
#define SimTK_SimTKCOMMON_EXPORT
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:224
 
(Advanced) This InverseRotation class is the inverse of a Rotation. 
Definition: Rotation.h:47
 
This file defines the client side of the SimTK::Matrix classes, which hold medium to large...
 
This is the vector class intended to appear in user code for large, variable size column vectors...
Definition: BigMatrix.h:171
 
This class is a Vec3 plus an ironclad guarantee either that: 
Definition: UnitVec.h:40
 
This is a dataless rehash of the MatrixBase class to specialize it for RowVectors. 
Definition: BigMatrix.h:165
 
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
 
static Vec & updAs(ELT *p)
Recast a writable ordinary C++ array E[] to a writable Vec<M,E,S>; assumes compatible length...
Definition: Vec.h:908
 
static const Mat & getAs(const ELT *p)
Definition: Mat.h:1081
 
The Rotation class is a Mat33 that guarantees that the matrix can be interpreted as a legitimate 3x3 ...
Definition: Quaternion.h:40
 
negator<N>, where N is a number type (real, complex, conjugate), is represented in memory identically...
Definition: String.h:44
 
bool operator==(const PhiMatrix &p1, const PhiMatrix &p2)
Definition: SpatialAlgebra.h:791
 
Declares and defines the UnitVec and UnitRow classes. 
 
void setToNaN()
Set every scalar in this Vec to NaN; this is the default initial value in Debug builds, but not in Release. 
Definition: Vec.h:812
 
Matrix_< E > operator*(const MatrixBase< E > &l, const typename CNT< E >::StdNumber &r)
Definition: BigMatrix.h:605
 
int ncol() const
Return the number of columns n in the logical shape of this matrix. 
Definition: MatrixBase.h:138
 
This file is the user-includeable header to be included in user programs to provide fixed-length Vec ...
 
This is the matrix class intended to appear in user code for large, variable size matrices...
Definition: BigMatrix.h:168
 
This is a fixed-length row vector designed for no-overhead inline computation. 
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:619
 
Transform_< double > dTransform
Definition: Transform.h:48
 
int size() const
Definition: RowVectorBase.h:237
 
This is a dataless rehash of the MatrixBase class to specialize it for Vectors. 
Definition: BigMatrix.h:164
 
Represents a variable size row vector; much less common than the column vector type Vector_...
Definition: BigMatrix.h:174
 
int size() const
Definition: VectorBase.h:396
 
This class represents a small matrix whose size is known at compile time, containing elements of any ...
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:620
 
This is the common base class for Simbody's Vector_ and Matrix_ classes for handling large...
Definition: BigMatrix.h:163
 
Transform_< float > fTransform
Definition: Transform.h:47
 
int nrow() const
Return the number of rows m in the logical shape of this matrix. 
Definition: MatrixBase.h:136
 
Transform_< Real > Transform
Definition: Transform.h:44
 
static const Vec & getAs(const ELT *p)
Recast an ordinary C++ array E[] to a const Vec<M,E,S>; assumes compatible length, stride, and packing. 
Definition: Vec.h:904