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;
@endThese are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.