Index

C++ Code Documentation

motion::TransformX

Children: motion::TransformXMoebiusParabolic1, motion::TransformXMoebiusParabolic2, motion::TransformXRotation1, motion::TransformXRotation2

File: GEOM/motion/TransformX.H

KINDS OF TRANSFORMS:

TransformXRotation1:
Single rotation/translation in the plane spanned by (u n0 + v n1) and n2 at speed=a

TransformXRotation2:
Two simultaneous rotations/translations in perpendicular coordinate planes: in the n0-n1 coordinate plane at speed=a; in the n2-n3 coordinate plane at speed=b.

TransformXMoebiusParabolic2:
Moebius parabolic translation in a plane. Computes MatrixExp[u A1 + v A2], where A1 = { {0, 0, -1, 1}, {0, 0, 0, 0}, {1, 0, 0, 0}, {1, 0, 0, 0}}
A2 = { {0, 0, 0, 0}, {0, 0, -1, 1}, {0, 1, 0, 0}, {0, 1, 0, 0}}
TransformXMoebiusParabolic1:
Moebius parabolic translation along a line
Computes MatrixExp[a A], where A = {{0, -1, 1}, {1, 0, 0}, {1, 0, 0}}
Note: matrices are transposed for OpenGL compatibility



public:
  • TransformX();
    void constructor
  • virtual ~TransformX();
    destructor
  • enum GeometryGroup;
  • bool on() const;
  • bool is_translation() const;
  • virtual void to_matrix( math::Matrix<Real> & ) const = 0;
  • virtual void decay( Real decayfactor, Real clip ) = 0;
  • uint dim() const;
  • friend std::ostream &operator<<( std::ostream &o, TransformX const &t );
protected:
  • GeometryGroup _geometry;
  • bool _is_translation;
  • static void get_parameters( Real &a11, Real &a12, Real &a21, Real &a22, Real a, GeometryGroup mode );
  • uint _matrix_dim;
  • bool _on;
private:
  • TransformX( TransformX const & );
  • TransformX &operator=( TransformX const & );


motion::TransformX GANG