This is MolObj.h in view mode; [Download] [Up]
/* MolObj.h - Copyright 1993 Steve Ludtke */ /* This is the central program object. It controls everything else */ #import <objc/Object.h> #import <dpsclient/dpsclient.h> /* update levels */ #define U_TOTAL 3 /* everything has changed */ #define U_BONDS 2 /* only bonds and positions have changed */ #define U_POS 1 /* only positions have changed */ @interface MolObj:Object { id vWindow; /* D3View window */ id molView; /* D3View */ id inspector; /* inspector object */ id nrgobj; /* the energy calculating object */ id chiDevDis; /* chi display for fitting (unused) */ id c2Dis; /* more unused number displays */ id csDis; id hba; /* H bond display alpha */ id hb3; /* H bond display 3-10 helix */ id errorMsg; /* text for displaying error */ id errorPanel; /* panel for displaying error */ char *f2open; /* used to open files without a requestor */ Molecule frag; /* a fragment which can be attached to mol[0] */ Molecule mol[MAXMOL]; /* storage for the molecules */ struct ELINFO elinfo[NEL]; /* storage for the element info table */ int nmol; /* # of molecules */ float chi; /* std dev. not angle */ int stepmode; /* unused */ float cstep; /* unused */ char updFlag; } -init; -error:(char *)msg :(BOOL)xit; /* display an error requestor */ /* You can now open molecules from the workspace */ -(BOOL)appAcceptsAnotherFile:sender; -(int)app:sender openFile:(const char *)file type:(const char *)ftype; -readPdb:sender; /* read Protein Data Bank file */ -readMV:sender; /* read Molviewer format files */ -readMVTX:(FILE *)in; /* read opened MolViewer text format */ -(BOOL)readMVfrag:(char *)name; /* read Molviewer format files */ -readAlch:sender; /* read an Alchemy molecule */ -remMol:sender; /* delete the current molecule */ -update:(int)level; /* update everything */ -setupMol; /* see source */ -saveAlch:sender; /* write an Alchemy file */ -saveMVB:sender; /* write molviewer binary format */ -saveMVTX:sender; /* write molviewer text format */ -asnBnd:(int)nm; /* build redundant bond table */ -asnFragBnd; /* asnBnd for the fragment */ -(float)calcChi:sender; /* for fitting, unused */ -minStep:sender; /* ditto */ -resetCs:sender; /* ditto */ -togFit:sender; /* ditto */ -(BOOL)bonded:(short)n1 :(short)n2; /* test if 2 atoms are bonded */ -delAtom:(int)n; /* delete an atom (use asnBnd after) */ -(int)parseAtom:(char *)s :(char *)anum :(char *)type; /* parse a string */ -alignMol:sender; /* align a molecule along the Z axis */ -setUpdFlag:sender; -makeProt:(int)n :(int *)aa; /* builds a protein from one letter AA seq. */ -attachFrag:(int)n :(int)nf :(float)len :(char)type; /* used by makeProt */ /* locate and indentify all of the amino acids in the current molecule */ -findAA:sender; /* rotate dihedral by angle a on axis from atom n1 to n2 leave n alone*/ -rotateAbout:(float)a :(int)n :(int)n1 :(int)n2; /* rotate fragment about a vector */ -rotateFragAboutV:(float)a :(float *)vec; /* calculate a dihedral angle from 4 atoms (does not check for bonding) */ -(float)dihedral:(int)n1 :(int)n2 :(int)n3 :(int)n4; /* measure bond angle (does not check for bonding */ -(float)bondAng:(int)n1 :(int)n2 :(int)n3; /* modify a bond angle */ -modBondAng:(float)a :(int)n1 :(int)n2 :(int)n3; /* modify a bond length */ -modBondLen:(float)l :(int)n1 :(int)n2; /* set dihedrals for selected amino acids */ -setOmega:(float)ang; -setPsi:(float)ang; -setPhi:(float)ang; -setChi:(float)ang; -test; /* test method, unused */ -centerMol:(int)m; /* center the molecule on the screen */ /* initializations that cannot occur until everything has been loaded */ -appDidInit:sender; /* select atoms from a SelectView list */ -setSelAtom:(struct SELDAT *)list; /* set D3View window to a variety of useful sizes */ -setWinSize:sender; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.