forked from lijiext/lammps
48 lines
1.8 KiB
C++
48 lines
1.8 KiB
C++
/*
|
|
*_________________________________________________________________________*
|
|
* POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE *
|
|
* DESCRIPTION: SEE READ-ME *
|
|
* FILE NAME: revolutejoint.h *
|
|
* AUTHORS: See Author List *
|
|
* GRANTS: See Grants List *
|
|
* COPYRIGHT: (C) 2005 by Authors as listed in Author's List *
|
|
* LICENSE: Please see License Agreement *
|
|
* DOWNLOAD: Free at www.rpi.edu/~anderk5 *
|
|
* ADMINISTRATOR: Prof. Kurt Anderson *
|
|
* Computational Dynamics Lab *
|
|
* Rensselaer Polytechnic Institute *
|
|
* 110 8th St. Troy NY 12180 *
|
|
* CONTACT: anderk5@rpi.edu *
|
|
*_________________________________________________________________________*/
|
|
|
|
#ifndef REVOLUTEJOINT_H
|
|
#define REVOLUTEJOINT_H
|
|
|
|
#include "joint.h"
|
|
#include "vect3.h"
|
|
#include "mat3x3.h"
|
|
|
|
|
|
|
|
class RevoluteJoint : public Joint {
|
|
Vect3 axis_pk; // unit vector in body1 basis
|
|
Vect3 axis_k; // unit vector in body2 basis
|
|
public:
|
|
RevoluteJoint();
|
|
~RevoluteJoint();
|
|
JointType GetType();
|
|
void SetAxisK(VirtualMatrix& axis);
|
|
void SetAxisPK(VirtualMatrix& axis);
|
|
bool ReadInJointData(std::istream& in);
|
|
void WriteOutJointData(std::ostream& out);
|
|
Matrix GetForward_sP();
|
|
Matrix GetBackward_sP();
|
|
void UpdateForward_sP( Matrix& sP);
|
|
void UpdateBackward_sP( Matrix& sP);
|
|
void ComputeLocalTransform();
|
|
void ForwardKinematics();
|
|
void BackwardKinematics();
|
|
};
|
|
|
|
#endif
|