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 988 by gezelter, Tue Jan 27 19:37:48 2004 UTC vs.
Revision 998 by gezelter, Thu Jan 29 23:01:17 2004 UTC

# Line 260 | Line 260 | int MakeStamps::rigidBodyAssign( event* the_event ){
260    return 0;
261   }
262  
263 < int MakeStamps::rigidBodyMember( event* the_event ){
263 > int MakeStamps::rigidBodyMembers( event* the_event ){
264  
265 <  current_member = new MemberStamp;
266 <  
267 <  the_event->err_msg = current_rigidbody->addMember( current_member,
268 <                                                     the_event->evt.blk_index );
269 <  
270 <  if( the_event->err_msg != NULL ) return 0;
271 <  return 1;
272 <  
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 302 | 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 396 | 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 460 | 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 524 | 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 544 | Line 588 | int MakeStamps::torsionEnd( event* the_event ){
588    
589    return 1;
590   }
547
548 int MakeStamps::newMember( event* the_event ){
549  
550  current_member = new MemberStamp;
551  
552  the_event->err_msg = current_rigidbody->addMember( current_member,
553                                                     the_event->evt.blk_index );
554  if( the_event->err_msg != NULL ) return 0;
555  
556  return 1;
557 }
558
559 int MakeStamps::memberAssign( event* the_event ){
560  
561  switch( the_event->evt.asmt.asmt_type ){
562    
563  case STRING:
564    current_member->assignString( the_event->evt.asmt.lhs,
565                                  the_event->evt.asmt.rhs.sval );
566    return 1;
567    break;
568    
569  case DOUBLE:
570    current_member->assignDouble( the_event->evt.asmt.lhs,
571                                  the_event->evt.asmt.rhs.dval );
572    return 1;
573    break;
574    
575  case INT:
576    current_member->assignInt( the_event->evt.asmt.lhs,
577                               the_event->evt.asmt.rhs.ival );
578    return 1;
579    break;
580    
581  default:
582    the_event->err_msg = strdup( "MakeStamp error. Invalid member"
583                                 " assignment type" );
584    return 0;
585    break;
586  }
587  return 0;
588 }
589
590 int MakeStamps::memberEnd( event* the_event ){
591  
592  the_event->err_msg = current_member->checkMe();
593  if( the_event->err_msg != NULL ) return 0;
594  
595  return 1;
596 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines