home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Educational / MolViewer / Source / MolObj.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-12  |  2.3 KB  |  75 lines

  1. /* MolObj.h    - Copyright 1993 Steve Ludtke */
  2. /* This is the central program object. It controls everything else */
  3. #import <objc/Object.h>
  4. #import <dpsclient/dpsclient.h>
  5.  
  6. /* update levels */
  7. #define U_TOTAL    3    /* everything has changed */
  8. #define U_BONDS 2    /* only bonds and positions have changed */
  9. #define U_POS 1        /* only positions have changed */
  10.  
  11. @interface MolObj:Object
  12. {
  13. id vWindow;        /* D3View window */
  14. id molView;        /* D3View */
  15. id inspector;    /* inspector object */
  16. id chiDevDis;    /* chi display for fitting (unused) */
  17. id c2Dis;        /* more unused number displays */
  18. id csDis;
  19. id hba;        /* H bond display alpha */
  20. id hb3;        /* H bond display 3-10 helix */
  21.  
  22. Molecule mol[MAXMOL];        /* storage for the molecules */
  23. struct ELINFO elinfo[NEL];    /* storage for the element info table */
  24. int nmol;        /* # of molecules */
  25. float chi;        /* std dev. not angle */
  26. int stepmode;    /* unused */
  27. float cstep;    /* unused */
  28. }
  29.  
  30. -init;
  31. -readPdb:sender;    /* read Protein Data Bank file */
  32. -readMol:sender;    /* read Molviewer format files (in transition) */
  33. -readAlch:sender;    /* read an Alchemy molecule */
  34. -remMol:sender;        /* delete the current molecule */
  35. -update:(int)level;    /* update everything */
  36. -setupMol;            /* see source */    
  37. -dump:sender;        /* write an Alchemy file */
  38. -asnBnd:(int)nm;    /* build redundant bond table */
  39. -(float)calcChi:sender;    /* for fitting, unused */
  40. -minStep:sender;    /* ditto */
  41. -resetCs:sender;    /* ditto */
  42. -togFit:sender;        /* ditto */
  43.  
  44. /* locate and indentify all of the amino acids in the current molecule */
  45. -findAA:sender;        
  46.  
  47. /* rotate dihedral by angle a on axis from atom n1 to n2 */
  48. -rotateAbout:(float)a :(int)n1 :(int)n2;  
  49.  
  50. /* calculate a dihedral angle from 4 atoms (does not check for bonding) */
  51. -(float)dihedral:(int)n1 :(int)n2 :(int)n3 :(int)n4;
  52.  
  53. /* measure bond angle (does not check for bonding */
  54. -(float)bondAng:(int)n1 :(int)n2 :(int)n3;
  55.  
  56. /* set dihedrals for selected amino acids */
  57. -setOmega:(float)ang;
  58. -setPsi:(float)ang;
  59. -setPhi:(float)ang;
  60.  
  61. -rotest:sender;        /* test method, unused */
  62. -centerMol:(int)m;    /* center the molecule on the screen */
  63.  
  64. /* initializations that cannot occur until everything has been loaded */
  65. -appDidInit:sender;    
  66.  
  67. /* select atoms from a SelectView list */
  68. -setSelAtom:(struct SELDAT *)list;    
  69.  
  70. /* set D3View window to a variety of useful sizes */
  71. -set320:sender;
  72. -set640:sender;
  73. -set533:sender;
  74. -set6404:sender;
  75. @end