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 1250 by gezelter, Fri Jun 4 21:00:20 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 520 | Line 530 | void StuntDouble::getEulerAngles(double eulers[3]){
530                 objType );
531        painCave.isFatal = 1;
532        simError();    
533 +  }
534 + }
535 +
536 + double StuntDouble::getZangle(){
537 +  switch (objType)
538 +    {
539 +    case OT_ATOM:
540 +      sprintf( painCave.errMsg,
541 +               "StuntDouble::getZangle was called for a regular atom.\n"
542 +               "\tRegular Atoms don't have zAngles.  Be smarter.\n");
543 +      painCave.isFatal = 0;
544 +      simError();
545 +      // Return zeros.
546 +      return 0;
547 +      break;
548 +    case OT_DATOM:
549 +      return ((DirectionalAtom*)this)->getZangle();
550 +    break;
551 +    case OT_RIGIDBODY:
552 +      return ((RigidBody*)this)->getZangle();
553 +    break;
554 +    default:
555 +      sprintf( painCave.errMsg,
556 +               "Unrecognized ObjType (%d) in StuntDouble::getZangle.\n",
557 +               objType );
558 +      painCave.isFatal = 1;
559 +      simError();    
560 +      return 0;
561    }
562   }
563  
564 + void StuntDouble::setZangle(double zAngle){
565 +  switch (objType)
566 +    {
567 +    case OT_ATOM:
568 +      sprintf( painCave.errMsg,
569 +               "StuntDouble::setZangle was called for a regular atom.\n"
570 +               "\tRegular Atoms don't have zAngles.  Be smarter.\n");
571 +      painCave.isFatal = 1;
572 +      simError();
573 +      break;
574 +    case OT_DATOM:
575 +      ((DirectionalAtom*)this)->setZangle(zAngle);
576 +    break;
577 +    case OT_RIGIDBODY:
578 +      ((RigidBody*)this)->setZangle(zAngle);
579 +    break;
580 +    default:
581 +      sprintf( painCave.errMsg,
582 +               "Unrecognized ObjType (%d) in StuntDouble::setZangle.\n",
583 +               objType );
584 +      painCave.isFatal = 1;
585 +      simError();    
586 +    }
587 + }
588 +
589 + void StuntDouble::addZangle(double zAngle){
590 +  switch (objType)
591 +    {
592 +    case OT_ATOM:
593 +      sprintf( painCave.errMsg,
594 +               "StuntDouble::addZangle was called for a regular atom.\n"
595 +               "\tRegular Atoms don't have zAngles.  Be smarter.\n");
596 +      painCave.isFatal = 1;
597 +      simError();
598 +      break;
599 +    case OT_DATOM:
600 +      ((DirectionalAtom*)this)->addZangle(zAngle);
601 +    break;
602 +    case OT_RIGIDBODY:
603 +      ((RigidBody*)this)->addZangle(zAngle);
604 +    break;
605 +    default:
606 +      sprintf( painCave.errMsg,
607 +               "Unrecognized ObjType (%d) in StuntDouble::addZangle.\n",
608 +               objType );
609 +      painCave.isFatal = 1;
610 +      simError();    
611 +    }
612 + }
613 +
614   void StuntDouble::addProperty(GenericData* data){
615    map<string, GenericData*>::iterator result;
616    result = properties.find(data->getID());
# Line 544 | Line 632 | void StuntDouble::removeProperty(const string& propNam
632      
633    result = properties.find(propName);
634    
635 <  if(result != properties.end())
635 >  if(result != properties.end()){
636 >    delete result->second;
637      properties.erase(result);
638 +    
639 +  }
640    
641   }
642   GenericData* StuntDouble::getProperty(const string& propName){
# Line 558 | Line 649 | GenericData* StuntDouble::getProperty(const string& pr
649      return (*result).second;  
650    else  
651      return NULL;    
652 < }
652 > }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines