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

Comparing trunk/SHAPES/RigidBody.cpp (file contents):
Revision 1282 by chrisfen, Mon Jun 21 15:10:29 2004 UTC vs.
Revision 1292 by chrisfen, Wed Jun 23 23:19:43 2004 UTC

# Line 318 | Line 318 | void RigidBody::calcRefCoords( ) {
318      pAxisMat[i][0] = sU[i][maxAxis];
319    }
320      
321 +  
322    //calculate the proper rotation matrix
323    transposeMat3(pAxisMat, pAxisRotMat);
324    
325    
325  for (i=0; i<myAtoms.size(); i++){
326    apos = refCoords[i];
327    printf("%f\t%f\t%f\n",apos[0],apos[1],apos[2]);
328  }
329    
326    //rotate the rigid body to the principle axis frame
327    for (i = 0; i < myAtoms.size(); i++) {
328      matVecMul3(pAxisRotMat, refCoords[i].vec, refCoords[i].vec);
329      myAtoms[i]->setPos(refCoords[i].vec);
330    }
335  
336  for (i=0; i<myAtoms.size(); i++){
337    apos = refCoords[i];
338    printf("%f\t%f\t%f\n",apos[0],apos[1],apos[2]);
339  }
331    
332    identityMat3(iMat);
333    setA(iMat);
334 +  
335 +  //and resort the moments of intertia to match the new orientation
336 +  for (i=0; i<3; i++)
337 +    if (evals[i]<momIntTol)
338 +      evals[i] = 0.0;
339 +  I[0][0] = evals[maxAxis];
340 +  I[1][1] = evals[midAxis];
341 +  I[2][2] = evals[pAxis];
342   }
343  
344   void RigidBody::doEulerToRotMat(double euler[3], double myA[3][3] ){
# Line 546 | Line 545 | double RigidBody::getAtomEps(int index){
545    return myAtoms[index]->getEps();
546    
547   }
548 +
549 + char *RigidBody::getAtomBase(int index){
550 +  
551 +  return myAtoms[index]->getBase();
552 +  
553 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines