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 981 by gezelter, Mon Jan 26 18:52:42 2004 UTC vs.
Revision 998 by gezelter, Thu Jan 29 23:01:17 2004 UTC

# Line 223 | Line 223 | int MakeStamps::newRigidBody( event* the_event ){
223    return 1;
224   }
225  
226 int MakeStamps::rigidBodyPosition( event* the_event ){
227  
228  current_rigidbody->setPosition( the_event->evt.pos.x,
229                                  the_event->evt.pos.y,
230                                  the_event->evt.pos.z );
231  return 1;
232 }
233
234
235 int MakeStamps::rigidBodyOrientation( event* the_event ){
236  
237  current_rigidbody->setOrientation( the_event->evt.ornt.x,
238                                     the_event->evt.ornt.y,
239                                     the_event->evt.ornt.z );
240  return 1;
241 }
242
226   int MakeStamps::rigidBodyAssign( event* the_event ){
227  
228    switch( the_event->evt.asmt.asmt_type ){
# Line 277 | Line 260 | int MakeStamps::rigidBodyAssign( event* the_event ){
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 ){
284  
285    the_event->err_msg = current_rigidbody->checkMe();
# Line 285 | Line 288 | int MakeStamps::rigidBodyEnd( event* the_event ){
288    return 1;
289   }
290  
291 < int MakeStamps::newAtomInMolecule( event* the_event ){
291 > int MakeStamps::newAtom( event* the_event ){
292    
293    current_atom = new AtomStamp;
294    
# Line 296 | Line 299 | int MakeStamps::newAtomInMolecule( event* the_event ){
299    return 1;
300   }
301  
299 int MakeStamps::newAtomInRigidBody( event* the_event ){
300  
301  current_atom = new AtomStamp;
302  
303  the_event->err_msg = current_rigidbody->addAtom( current_atom,
304                                                   the_event->evt.blk_index );
305  
306  if( the_event->err_msg != NULL ) return 0;
307  return 1;
308 }
309
302   int MakeStamps::atomPosition( event* the_event ){
303    
304    current_atom->setPosition( the_event->evt.pos.x,
# Line 318 | 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 411 | Line 403 | int MakeStamps::bondAssign( event* the_event ){
403    return 0;
404   }
405  
406 < int MakeStamps::bondMember( event* the_event ){
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.mbr.a,
415 <                         the_event->evt.mbr.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 474 | Line 476 | int MakeStamps::bendAssign( event* the_event ){
476    return 0;
477   }
478  
479 < int MakeStamps::bendMember( event* the_event ){
479 > int MakeStamps::bendMembers( event* the_event ){
480  
481 <  current_bend->members( the_event->evt.mbr.a,
482 <                         the_event->evt.mbr.b,
483 <                         the_event->evt.mbr.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 538 | Line 557 | int MakeStamps::torsionAssign( event* the_event ){
557    return 0;
558   }
559  
560 < int MakeStamps::torsionMember( event* the_event ){
560 > int MakeStamps::torsionMembers( event* the_event ){
561  
562 <  current_torsion->members( the_event->evt.mbr.a,
563 <                            the_event->evt.mbr.b,
564 <                            the_event->evt.mbr.c,
565 <                            the_event->evt.mbr.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 ){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines