1#ifndef SimTK_SimTKCOMMON_TRANSFORM_H
2#define SimTK_SimTKCOMMON_TRANSFORM_H
43template <
class P>
class Transform_;
44template <
class P>
class InverseTransform_;
408template <
class P,
int S>
inline Vec<3,P>
411template <
class P,
int S>
inline Vec<3,P>
414template <
class P,
int S>
inline Vec<3,P>
417template <
class P,
int S>
inline Vec<3,P>
423template <
class P,
int S>
inline Transform_<P>
444template <
class P,
int S>
inline Vec<4,P>
446 assert(a_F[3]==0 || a_F[3]==1);
455template <
class P,
int S>
inline Vec<4,P>
457 assert(a_F[3]==0 || a_F[3]==1);
465template <
class P,
int S>
inline Vec<4,P>
467template <
class P,
int S>
inline Vec<4,P>
474template <
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)
488template <
class P,
class E>
inline RowVector_<E>
491 for (
int i = 0; i < v.
size(); ++i)
495template <
class P,
class E>
inline RowVector_<E>
498 for (
int i = 0; i < v.
size(); ++i)
502template <
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);
510template <
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);
518template <
class P,
int N,
class E,
int S>
inline Vec<N,E>
521 for (
int i = 0; i < N; ++i)
525template <
class P,
int N,
class E,
int S>
inline Vec<N,E>
528 for (
int i = 0; i < N; ++i)
532template <
class P,
int N,
class E,
int S>
inline Row<N,E>
535 for (
int i = 0; i < N; ++i)
539template <
class P,
int N,
class E,
int S>
inline Row<N,E>
542 for (
int i = 0; i < N; ++i)
546template <
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);
554template <
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);
565template <
class P>
inline Transform_<P>&
586template <
class P>
inline Transform_<P>
588template <
class P>
inline Transform_<P>
594template <
class P>
inline bool
596template <
class P>
inline bool
598template <
class P>
inline bool
600template <
class P>
inline bool
This file defines the client side of the SimTK::Matrix classes, which hold medium to large,...
#define SimTK_SimTKCOMMON_EXPORT
Definition SimTKcommon/include/SimTKcommon/internal/common.h:224
This file is the user-includeable header to be included in user programs to provide fixed-length Vec ...
Declares and defines the UnitVec and UnitRow classes.
(Advanced) This InverseRotation class is the inverse of a Rotation.
Definition Rotation.h:1283
This class represents a small matrix whose size is known at compile time, containing elements of any ...
Definition Mat.h:97
static const Mat & getAs(const ELT *p)
Definition Mat.h:1081
This is the common base class for Simbody's Vector_ and Matrix_ classes for handling large,...
Definition MatrixBase.h:68
int nrow() const
Return the number of rows m in the logical shape of this matrix.
Definition MatrixBase.h:136
int ncol() const
Return the number of columns n in the logical shape of this matrix.
Definition MatrixBase.h:138
This is the matrix class intended to appear in user code for large, variable size matrices.
Definition Matrix_.h:51
The Rotation class is a Mat33 that guarantees that the matrix can be interpreted as a legitimate 3x3 ...
Definition Rotation.h:111
This is a dataless rehash of the MatrixBase class to specialize it for RowVectors.
Definition RowVectorBase.h:42
int size() const
Definition RowVectorBase.h:237
Represents a variable size row vector; much less common than the column vector type Vector_.
Definition RowVector_.h:52
This is a fixed-length row vector designed for no-overhead inline computation.
Definition Row.h:132
This class is a Vec3 plus an ironclad guarantee either that:
Definition UnitVec.h:56
This is a fixed-length column vector designed for no-overhead inline computation.
Definition Vec.h:184
static const Vec & getAs(const ELT *p)
Recast an ordinary C++ array E[] to a const Vec<M,E,S>; assumes compatible length,...
Definition Vec.h:904
void setToNaN()
Set every scalar in this Vec to NaN; this is the default initial value in Debug builds,...
Definition Vec.h:812
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
This is a dataless rehash of the MatrixBase class to specialize it for Vectors.
Definition VectorBase.h:42
int size() const
Definition VectorBase.h:396
This is the vector class intended to appear in user code for large, variable size column vectors.
Definition Vector_.h:50
negator<N>, where N is a number type (real, complex, conjugate), is represented in memory identically...
Definition negator.h:75
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition Assembler.h:37
Transform_< double > dTransform
Definition Transform.h:48
Matrix_< E > operator*(const MatrixBase< E > &l, const typename CNT< E >::StdNumber &r)
Definition BigMatrix.h:605
std::ostream & operator<<(std::ostream &o, const ContactForce &f)
Definition CompliantContactSubsystem.h:387
bool operator==(const PhiMatrix &p1, const PhiMatrix &p2)
Definition SpatialAlgebra.h:791
Transform_< Real > Transform
Definition Transform.h:46
Transform_< float > fTransform
Definition Transform.h:47