--- trunk/OOPSE/libmdtools/RigidBody.hpp 2004/04/12 21:02:01 1100 +++ trunk/OOPSE/libmdtools/RigidBody.hpp 2004/05/12 20:54:10 1174 @@ -39,11 +39,14 @@ class RigidBody : public StuntDouble { (public) void getFrc( double theF[3] ); void addFrc( double theF[3] ); void zeroForces(); + + virtual bool isLinear() {return is_linear;} + virtual int linearAxis() {return linear_axis;} double getMass( void ) { return mass; } void printAmatIndex( void ); - void setEulerAngles( double phi, double theta, double psi ); + void setEuler( double phi, double theta, double psi ); void getQ( double the_q[4] ); // get the quanternions void setQ( double the_q[4] ); @@ -53,6 +56,9 @@ class RigidBody : public StuntDouble { (public) void getJ( double theJ[3] ); void setJ( double theJ[3] ); + virtual void setType(char* type) {strcpy(rbName, type);} + virtual char* getType() { return rbName;} + void getTrq( double theT[3] ); void addTrq( double theT[3] ); @@ -80,7 +86,10 @@ class RigidBody : public StuntDouble { (public) // utility routines void findCOM( void ); - void findOrient( void ); + + virtual void accept(BaseVisitor* v); + + vector getAtoms() { return myAtoms;} protected: @@ -94,14 +103,15 @@ class RigidBody : public StuntDouble { (public) double I[3][3]; // the inertial tensor (body fixed) double sU[3][3]; // the standard unit vectors (body fixed) + bool is_linear; + int linear_axis; + double momIntTol; + vector myAtoms; // the vector of atoms vector refCoords; vector refOrients; - bool com_good; - bool forces_good; - bool precalc_done; - bool orient_good; + char rbName[100]; //it will eventually be converted into string }; #endif