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

Comparing trunk/OOPSE/libmdtools/StuntDouble.cpp (file contents):
Revision 1118 by tim, Mon Apr 19 03:52:27 2004 UTC vs.
Revision 1253 by gezelter, Tue Jun 8 16:49:46 2004 UTC

# Line 24 | Line 24
24        quotes above are from Spaceballs...)
25  
26   */
27 +
28 + StuntDouble::~StuntDouble(){
29 +  map<string, GenericData*>::iterator iter;
30 +
31 +  for(iter = properties.begin(); iter != properties.end(); ++iter ){
32 +    delete iter->second;
33 +    properties.erase(iter);
34 +  }
35 +    
36 + }
37  
38   int StuntDouble::getObjType(){
39    return objType;
# Line 128 | Line 138 | void StuntDouble::setVel(double vel[3]){
138   }
139  
140   void StuntDouble::setVel(double vel[3]){
141 +
142    switch (objType)
143      {
144      case OT_ATOM :
# Line 521 | Line 532 | void StuntDouble::getEulerAngles(double eulers[3]){
532        painCave.isFatal = 1;
533        simError();    
534    }
535 + }
536 +
537 + double StuntDouble::getZangle(){
538 +  switch (objType)
539 +    {
540 +    case OT_ATOM:
541 +      sprintf( painCave.errMsg,
542 +               "StuntDouble::getZangle was called for a regular atom.\n"
543 +               "\tRegular Atoms don't have zAngles.  Be smarter.\n");
544 +      painCave.isFatal = 0;
545 +      simError();
546 +      // Return zeros.
547 +      return 0;
548 +      break;
549 +    case OT_DATOM:
550 +      return ((DirectionalAtom*)this)->getZangle();
551 +    break;
552 +    case OT_RIGIDBODY:
553 +      return ((RigidBody*)this)->getZangle();
554 +    break;
555 +    default:
556 +      sprintf( painCave.errMsg,
557 +               "Unrecognized ObjType (%d) in StuntDouble::getZangle.\n",
558 +               objType );
559 +      painCave.isFatal = 1;
560 +      simError();    
561 +      return 0;
562 +  }
563 + }
564 +
565 + void StuntDouble::setZangle(double zAngle){
566 +  switch (objType)
567 +    {
568 +    case OT_ATOM:
569 +      sprintf( painCave.errMsg,
570 +               "StuntDouble::setZangle was called for a regular atom.\n"
571 +               "\tRegular Atoms don't have zAngles.  Be smarter.\n");
572 +      painCave.isFatal = 1;
573 +      simError();
574 +      break;
575 +    case OT_DATOM:
576 +      ((DirectionalAtom*)this)->setZangle(zAngle);
577 +    break;
578 +    case OT_RIGIDBODY:
579 +      ((RigidBody*)this)->setZangle(zAngle);
580 +    break;
581 +    default:
582 +      sprintf( painCave.errMsg,
583 +               "Unrecognized ObjType (%d) in StuntDouble::setZangle.\n",
584 +               objType );
585 +      painCave.isFatal = 1;
586 +      simError();    
587 +    }
588   }
589  
590 + void StuntDouble::addZangle(double zAngle){
591 +  switch (objType)
592 +    {
593 +    case OT_ATOM:
594 +      sprintf( painCave.errMsg,
595 +               "StuntDouble::addZangle was called for a regular atom.\n"
596 +               "\tRegular Atoms don't have zAngles.  Be smarter.\n");
597 +      painCave.isFatal = 1;
598 +      simError();
599 +      break;
600 +    case OT_DATOM:
601 +      ((DirectionalAtom*)this)->addZangle(zAngle);
602 +    break;
603 +    case OT_RIGIDBODY:
604 +      ((RigidBody*)this)->addZangle(zAngle);
605 +    break;
606 +    default:
607 +      sprintf( painCave.errMsg,
608 +               "Unrecognized ObjType (%d) in StuntDouble::addZangle.\n",
609 +               objType );
610 +      painCave.isFatal = 1;
611 +      simError();    
612 +    }
613 + }
614 +
615   void StuntDouble::addProperty(GenericData* data){
616    map<string, GenericData*>::iterator result;
617    result = properties.find(data->getID());
# Line 544 | Line 633 | void StuntDouble::removeProperty(const string& propNam
633      
634    result = properties.find(propName);
635    
636 <  if(result != properties.end())
636 >  if(result != properties.end()){
637 >    delete result->second;
638      properties.erase(result);
639 +    
640 +  }
641    
642   }
643   GenericData* StuntDouble::getProperty(const string& propName){
# Line 558 | Line 650 | GenericData* StuntDouble::getProperty(const string& pr
650      return (*result).second;  
651    else  
652      return NULL;    
653 < }
653 > }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines