ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/RigidBody.hpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/RigidBody.hpp (file contents):
Revision 1100 by gezelter, Mon Apr 12 21:02:01 2004 UTC vs.
Revision 1284 by tim, Mon Jun 21 18:52:21 2004 UTC

# Line 26 | Line 26 | class RigidBody : public StuntDouble { (public)
26   public:
27    
28    RigidBody();
29 +  //RigidBody(const RigidBody& rb);
30 +  
31    virtual ~RigidBody();
32  
33    void addAtom(Atom* at, AtomStamp* ats);
# Line 39 | Line 41 | class RigidBody : public StuntDouble { (public)
41    void getFrc( double theF[3] );
42    void addFrc( double theF[3] );
43    void zeroForces();
44 +  
45 +  virtual bool isLinear() {return is_linear;}
46 +  virtual int linearAxis() {return linear_axis;}
47  
48    double getMass( void ) { return mass; }
49  
50    void printAmatIndex( void );
51 <  void setEulerAngles( double phi, double theta, double psi );
51 >  void setEuler( double phi, double theta, double psi );
52    void getQ( double the_q[4] ); // get the quanternions
53    void setQ( double the_q[4] );
54  
# Line 53 | Line 58 | class RigidBody : public StuntDouble { (public)
58    void getJ( double theJ[3] );
59    void setJ( double theJ[3] );
60  
61 +  virtual void setType(char* type) {strcpy(rbName, type);}
62 +  virtual char* getType() { return rbName;}
63 +
64    void getTrq( double theT[3] );
65    void addTrq( double theT[3] );
66  
# Line 60 | Line 68 | class RigidBody : public StuntDouble { (public)
68    void lab2Body( double r[3] );
69    void body2Lab( double r[3] );
70  
71 +  double getZangle( );
72 +  void setZangle( double zAng );
73 +  void addZangle( double zAng );
74 +
75    void calcRefCoords( void );
76    void doEulerToRotMat(vec3 &euler, mat3x3 &myA );
77    void calcForcesAndTorques( void );
# Line 80 | Line 92 | class RigidBody : public StuntDouble { (public)
92    // utility routines
93  
94    void findCOM( void );
95 <  void findOrient( void );
96 <  
95 >
96 >  virtual void accept(BaseVisitor* v);
97 >
98 >  vector<Atom*> getAtoms() { return myAtoms;}
99 >  int getNumAtoms() {return myAtoms.size();}
100 >
101 >  void getAtomPos(double theP[3], int index);
102 >  void getAtomVel(double theV[3], int index);
103 >  void getAtomRefCoor(double pos[3], int index);
104   protected:
105  
106    double mass;     // the total mass
# Line 93 | Line 112 | class RigidBody : public StuntDouble { (public)
112    double A[3][3];  // the rotation matrix
113    double I[3][3];  // the inertial tensor (body fixed)
114    double sU[3][3]; // the standard unit vectors (body fixed)
115 +  double zAngle;   // the rotation about the z-axis (body fixed)
116  
117 +  bool is_linear;
118 +  int linear_axis;
119 +  double momIntTol;
120 +
121    vector<Atom*> myAtoms;  // the vector of atoms
122    vector<vec3> refCoords;
123    vector<mat3x3> refOrients;
124  
125 <  bool com_good;
102 <  bool forces_good;
103 <  bool precalc_done;
104 <  bool orient_good;
125 >  char rbName[100]; //it will eventually be converted into string
126   };
127  
128   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines