lammps/lib/poems/revolutejoint.h

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