39 |
|
class RigidBody : public Atom { |
40 |
|
public: |
41 |
|
RigidBody(); |
42 |
+ |
|
43 |
+ |
/** |
44 |
+ |
* Sets the previous rotation matrix of this stuntdouble |
45 |
+ |
* @param a new rotation matrix |
46 |
+ |
*/ |
47 |
+ |
virtual void setPrevA(const RotMat3x3d& a); |
48 |
+ |
|
49 |
+ |
/** |
50 |
+ |
* Sets the current rotation matrix of this stuntdouble |
51 |
+ |
* @param a new rotation matrix |
52 |
+ |
*/ |
53 |
+ |
virtual void setA(const RotMat3x3d& a); |
54 |
+ |
/** |
55 |
+ |
* Sets the rotation matrix of this stuntdouble in specified snapshot |
56 |
+ |
* @param a rotation matrix to be set |
57 |
+ |
* @param snapshotNo |
58 |
+ |
* @see #getA |
59 |
+ |
*/ |
60 |
+ |
virtual void setA(const RotMat3x3d& a, int snapshotNo); |
61 |
+ |
|
62 |
|
/** |
63 |
|
* Returns the inertia tensor of this stuntdouble |
64 |
|
* @return the inertia tensor of this stuntdouble |
82 |
|
|
83 |
|
virtual void accept(BaseVisitor* v); |
84 |
|
|
85 |
+ |
void addAtom(Atom* atom); |
86 |
+ |
|
87 |
+ |
/** calculate the reference coordinates */ |
88 |
|
void calcRefCoords(); |
89 |
|
|
90 |
|
/** Convert Atomic forces and torques to total forces and torques */ |
97 |
|
* Returns the atoms of this rigid body |
98 |
|
* @return the atoms of this rigid body in a vector |
99 |
|
*/ |
100 |
< |
vector<Atom*> getAtoms() { return atomLists_;} |
100 |
> |
vector<Atom*> getAtoms() { return atoms_;} |
101 |
|
|
102 |
|
/** |
103 |
|
* Returns the number of atoms in this rigid body |
117 |
|
|
118 |
|
private: |
119 |
|
|
120 |
< |
Mat3x3d inertiaTensor_; |
121 |
< |
vector<Atom*> atomLists_; |
120 |
> |
Mat3x3d inertiaTensor_; |
121 |
> |
RotMat3x3d sU_; /**< body fixed standard unit vector */ |
122 |
> |
|
123 |
> |
vector<Atom*> atoms_; |
124 |
|
vector<Vector3d> refCoords; |
125 |
|
}; |
126 |
|
|