4 |
|
|
5 |
|
|
6 |
|
typedef enum { MOLECULE, ATOM, BOND, BEND, TORSION, COMPONENT, |
7 |
< |
POSITION, ASSIGNMENT, MEMBER, CONSTRAINT, ORIENTATION, |
7 |
> |
POSITION, ASSIGNMENT, MEMBERS, CONSTRAINT, ORIENTATION, |
8 |
|
ZCONSTRAINT, RIGIDBODY, BLOCK_END } event_enum; |
9 |
|
|
10 |
|
|
14 |
|
double z; |
15 |
|
} position_event; |
16 |
|
|
17 |
+ |
typedef struct{ |
18 |
+ |
double phi; |
19 |
+ |
double theta; |
20 |
+ |
double psi; |
21 |
+ |
} orientation_event; |
22 |
+ |
|
23 |
|
typedef enum { STRING, INT, DOUBLE } interface_assign_type; |
24 |
|
|
25 |
|
typedef struct{ |
33 |
|
} assignment_event; |
34 |
|
|
35 |
|
typedef struct{ |
36 |
< |
int a; |
37 |
< |
int b; |
38 |
< |
int c; |
33 |
< |
int d; |
34 |
< |
} member_event; |
36 |
> |
int nMembers; |
37 |
> |
int *memberList; |
38 |
> |
} members_event; |
39 |
|
|
40 |
|
typedef struct{ |
41 |
|
event_enum event_type; |
44 |
|
union{ |
45 |
|
int blk_index; // block index |
46 |
|
position_event pos; |
47 |
< |
position_event ornt; // use the same structure for orientation |
47 |
> |
orientation_event ornt; // use the same structure for orientation |
48 |
|
assignment_event asmt; |
49 |
< |
member_event mbr; |
49 |
> |
members_event mbrs; |
50 |
|
double cnstr; // the constraint value |
51 |
|
} evt; |
52 |
|
} event; |