--- trunk/OOPSE/libBASS/BASS_interface.cpp 2003/03/21 17:42:12 378 +++ trunk/OOPSE/libBASS/BASS_interface.cpp 2004/01/19 16:08:21 957 @@ -1,7 +1,7 @@ -#include -#include -#include +#include +#include +#include #include "Globals.hpp" #include "BASS_interface.h" @@ -15,7 +15,8 @@ typedef enum { GLOBAL_BLK, MOLECULE_BLK, ATOM_BLK, BON // Globals ************************************************ typedef enum { GLOBAL_BLK, MOLECULE_BLK, ATOM_BLK, BOND_BLK, BEND_BLK, - TORSION_BLK, COMPONENT_BLK } block_type; + TORSION_BLK, COMPONENT_BLK, ZCONSTRAINT_BLK, + RIGIDBODY_BLK } block_type; block_type current_block = GLOBAL_BLK; #define MAX_NEST 20 // the max number of nested blocks @@ -50,6 +51,16 @@ int event_handler( event* the_event ){ incr_block( MOLECULE_BLK ); handled = the_stamps->newMolecule( the_event ); break; + + case ZCONSTRAINT: + incr_block( ZCONSTRAINT_BLK ); + handled = the_globals->newZconstraint( the_event ); + break; + + case RIGIDBODY: + incr_block( RIGIDBODY_BLK ); + handled = the_stamps->newRigidBody( the_event ); + break; case COMPONENT: incr_block( COMPONENT_BLK ); @@ -95,6 +106,11 @@ int event_handler( event* the_event ){ handled = the_stamps->newTorsion( the_event ); break; + case RIGIDBODY: + incr_block( RIGIDBODY_BLK ); + handled = the_stamps->newRigidBody( the_event ); + break; + case ASSIGNMENT: handled = the_stamps->moleculeAssign( the_event ); break; @@ -111,6 +127,41 @@ int event_handler( event* the_event ){ } break; + + case RIGIDBODY_BLK: + + switch( the_event->event_type ){ + + case ATOM: + incr_block( ATOM_BLK ); + handled = the_stamps->newAtom( the_event ); + break; + + case POSITION: + handled = the_stamps->rigidBodyPosition( the_event ); + break; + + case ORIENTATION: + handled = the_stamps->rigidBodyOrientation( the_event ); + break; + + case ASSIGNMENT: + handled = the_stamps->rigidBodyAssign( the_event ); + break; + + case BLOCK_END: + decr_block(); + handled = the_stamps->rigidBodyEnd( the_event ); + break; + + default: + the_event->err_msg = + strdup( "Not a valid RigidBody event\n" ); + return 0; + } + break; + + case ATOM_BLK: switch( the_event->event_type ){ @@ -222,6 +273,26 @@ int event_handler( event* the_event ){ return 0; } break; + + case ZCONSTRAINT_BLK: + + switch( the_event->event_type ){ + + case ASSIGNMENT: + handled = the_globals->zConstraintAssign( the_event ); + break; + + case BLOCK_END: + decr_block(); + handled = the_globals->zConstraintEnd( the_event ); + break; + + default: + the_event->err_msg = + strdup( "not a valid zConstraint event\n" ); + return 0; + } + break; case COMPONENT_BLK: @@ -231,10 +302,6 @@ int event_handler( event* the_event ){ handled = the_globals->componentAssign( the_event ); break; - case START_INDEX: - handled = the_globals->componentStartIndex( the_event ); - break; - case BLOCK_END: decr_block(); handled = the_globals->componentEnd(the_event );