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 1254 by tim, Wed Jun 9 16:16:33 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 getAtomRefCoor(double pos[3], int index);
103   protected:
104  
105    double mass;     // the total mass
# Line 93 | Line 111 | class RigidBody : public StuntDouble { (public)
111    double A[3][3];  // the rotation matrix
112    double I[3][3];  // the inertial tensor (body fixed)
113    double sU[3][3]; // the standard unit vectors (body fixed)
114 +  double zAngle;   // the rotation about the z-axis (body fixed)
115  
116 +  bool is_linear;
117 +  int linear_axis;
118 +  double momIntTol;
119 +
120    vector<Atom*> myAtoms;  // the vector of atoms
121    vector<vec3> refCoords;
122    vector<mat3x3> refOrients;
123  
124 <  bool com_good;
102 <  bool forces_good;
103 <  bool precalc_done;
104 <  bool orient_good;
124 >  char rbName[100]; //it will eventually be converted into string
125   };
126  
127   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines