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

Comparing trunk/OOPSE/libBASS/MakeStamps.cpp (file contents):
Revision 993 by gezelter, Tue Jan 27 20:34:11 2004 UTC vs.
Revision 998 by gezelter, Thu Jan 29 23:01:17 2004 UTC

# Line 258 | Line 258 | int MakeStamps::rigidBodyAssign( event* the_event ){
258      break;
259    }
260    return 0;
261 + }
262 +
263 + int MakeStamps::rigidBodyMembers( event* the_event ){
264 +
265 +  int i;
266 +
267 +  if( the_event->evt.mbrs.nMembers > 0 ){
268 +
269 +    for (i = 0; i < the_event->evt.mbrs.nMembers; i++) {
270 +      current_rigidbody->addMember( the_event->evt.mbrs.memberList[i]);
271 +    }
272 +    
273 +    return 1;
274 +    
275 +  } else {
276 +    the_event->err_msg = strdup( "MakeStamp error. No members in memberList "
277 +                                 " for this rigidBody.");
278 +    return 0;
279 +
280 +  }
281   }
282  
283   int MakeStamps::rigidBodyEnd( event* the_event ){
# Line 290 | Line 310 | int MakeStamps::atomOrientation( event* the_event ){
310  
311   int MakeStamps::atomOrientation( event* the_event ){
312    
313 <  current_atom->setOrientation( the_event->evt.ornt.x,
314 <                                the_event->evt.ornt.y,
315 <                                the_event->evt.ornt.z );
313 >  current_atom->setOrientation( the_event->evt.ornt.phi,
314 >                                the_event->evt.ornt.theta,
315 >                                the_event->evt.ornt.psi );
316    return 1;
317   }
318  
# Line 384 | Line 404 | int MakeStamps::bondMembers( event* the_event ){
404   }
405  
406   int MakeStamps::bondMembers( event* the_event ){
407 +  
408 +  if( the_event->evt.mbrs.nMembers == 2 ){
409 +    
410 +    current_bond->members( the_event->evt.mbrs.memberList[0],
411 +                           the_event->evt.mbrs.memberList[1] );
412 +    return 1;
413  
414 <  current_bond->members( the_event->evt.mbrs.a,
415 <                         the_event->evt.mbrs.b );
416 <  return 1;
414 >  } else {
415 >    the_event->err_msg = strdup( "MakeStamp error. Wrong number of members "
416 >                                 " in bond");
417 >    return 0;
418 >
419 >  }
420 >
421   }
422  
423   int MakeStamps::bondConstraint( event* the_event ){
# Line 448 | Line 478 | int MakeStamps::bendMembers( event* the_event ){
478  
479   int MakeStamps::bendMembers( event* the_event ){
480  
481 <  current_bend->members( the_event->evt.mbrs.a,
482 <                         the_event->evt.mbrs.b,
483 <                         the_event->evt.mbrs.c );
484 <  return 1;
481 >
482 >  switch( the_event->evt.mbrs.nMembers ) {
483 >  case 3:
484 >    current_bend->members( the_event->evt.mbrs.memberList[0],
485 >                           the_event->evt.mbrs.memberList[1],
486 >                           the_event->evt.mbrs.memberList[2]);
487 >    return 1;
488 >    break;
489 >  case 2:
490 >    current_bend->members( the_event->evt.mbrs.memberList[0],
491 >                           the_event->evt.mbrs.memberList[1],
492 >                           0 );
493 >    return 1;
494 >    break;
495 >  default:      
496 >    the_event->err_msg = strdup( "MakeStamp error. Wrong number of members "
497 >                                 "in bend.");
498 >    return 0;
499 >    break;
500 >  }
501 >  return 0;
502   }
503  
504   int MakeStamps::bendConstraint( event* the_event ){
# Line 512 | Line 559 | int MakeStamps::torsionMembers( event* the_event ){
559  
560   int MakeStamps::torsionMembers( event* the_event ){
561  
562 <  current_torsion->members( the_event->evt.mbrs.a,
563 <                            the_event->evt.mbrs.b,
564 <                            the_event->evt.mbrs.c,
565 <                            the_event->evt.mbrs.d );
566 <  return 1;
562 >  if( the_event->evt.mbrs.nMembers == 4 ){
563 >    
564 >    current_torsion->members( the_event->evt.mbrs.memberList[0],
565 >                              the_event->evt.mbrs.memberList[1],
566 >                              the_event->evt.mbrs.memberList[2],
567 >                              the_event->evt.mbrs.memberList[3]);
568 >    return 1;
569 >    
570 >  } else {
571 >    the_event->err_msg = strdup( "MakeStamp error. Wrong number of members "
572 >                                 " in torsion");
573 >    return 0;
574 >
575 >  }
576   }
577  
578   int MakeStamps::torsionConstraint( event* the_event ){
# Line 532 | Line 588 | int MakeStamps::torsionEnd( event* the_event ){
588    
589    return 1;
590   }
535
536 int MakeStamps::newMember( event* the_event ){
537  
538  current_member = new MemberStamp;
539  
540  the_event->err_msg = current_rigidbody->addMember( current_member,
541                                                     the_event->evt.blk_index );
542  if( the_event->err_msg != NULL ) return 0;
543  
544  return 1;
545 }
546
547 int MakeStamps::memberAssign( event* the_event ){
548  
549  switch( the_event->evt.asmt.asmt_type ){
550    
551  case STRING:
552    current_member->assignString( the_event->evt.asmt.lhs,
553                                  the_event->evt.asmt.rhs.sval );
554    return 1;
555    break;
556    
557  case DOUBLE:
558    current_member->assignDouble( the_event->evt.asmt.lhs,
559                                  the_event->evt.asmt.rhs.dval );
560    return 1;
561    break;
562    
563  case INT:
564    current_member->assignInt( the_event->evt.asmt.lhs,
565                               the_event->evt.asmt.rhs.ival );
566    return 1;
567    break;
568    
569  default:
570    the_event->err_msg = strdup( "MakeStamp error. Invalid member"
571                                 " assignment type" );
572    return 0;
573    break;
574  }
575  return 0;
576 }
577
578 int MakeStamps::memberEnd( event* the_event ){
579  
580  the_event->err_msg = current_member->checkMe();
581  if( the_event->err_msg != NULL ) return 0;
582  
583  return 1;
584 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines