ftp.nice.ch/pub/next/science/chemistry/MolViewer.0.9.s.tar.gz#/MolViewer/MolObj.h

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.