This is D3View.h in view mode; [Download] [Up]
/* 3DView.h Copyright 1993 Steve Ludtke */ /* This is a N3DCamera subclass which displays molecules. */ /* DrawPS handles the Quick mode */ #import <3Dkit/N3DCamera.h> void *timer; /* timer for spinning, etc ... */ void itstime(DPSTimedEntry entry,double now,id call); @interface D3View:N3DCamera { id mode; /* mouse mode selector (unused)*/ id controller; /* points to MolObj */ id selView; /* we need this for mouse select mode */ id shape; /* shape for rendering molecules */ id ambLight; /* ambient light source */ id aLight; /* directional light source */ id animSpin; /* spin paramaters */ id animConf; /* conf. to anim parms */ id flagSel; /* flag selector */ id chgCol; /* color atoms by point charge */ id mangS; /* angle/dist sliders */ id mangT; /* angle/dist text fields */ id AICV; /* icon view */ id AIMG,AIMGS[8]; /* images for animation of icon */ id BSSR; id winSize; /* window size fields */ float chi,theta,phi,dchi,dtheta; /* viewing angles/speeds */ float lchi,ltheta; /* light angle */ short Rmode,Rflags; /* display mode/flags */ char initflag; /* flag so timer knows the first time it's called */ Molecule *mol; /* As usual, this points to the molecule array */ int nmol; /* # of molecules */ int minshape; /* fitting (unused) */ struct ELINFO *elinfo; /* element info table */ int busy; /* busy flag to prefent server crash from QRM bug */ int useColor; /* color display flag */ char *bpath; /* path to MolViewer.app */ int animicon; /* animate icon flag */ NXPoint Ior1,Ior2; /* icon animation ref points */ float path[3000]; /* user path data */ int pathc; char ops[1500]; short Mmode; /* mouse mode 0,1 or 2 */ RtPoint fromP,toP; /* stores current viewpoint */ } -initFrame:(NXRect *)myrect; -free; -setMmode:sender; /* set mouse mode */ /* zero commands for each mouse mode */ -zeroRot:sender; -zeroXlate:sender; -deSel:sender; /* select the atom closest to x,y */ -selectAt:(float)x :(float)y :(int) flag; /* we don't want to print RIB in Quick mode */ -(BOOL)canPrintRIB; /* render spheres for quick mode */ -createQuick:(int)n; /* rescales coord. system after size chaged */ -superviewSizeChanged:(const NXSize *)oldsize; /* change viewing angle */ -setAng:(float)chi :(float)theta :(float)Phi; /* used to do mouse spinning */ -mouseDown:(NXEvent *)event; /* points to controller object, usually set with IB instead */ -setcontroller:del; /* called by timer to do one time step */ -step; -(int)acceptsFirstMouse; /* display new data */ -zoom:sender; /* toggles dchi=0 on and off */ -togFreeze:sender; /* dump .rib file from 3d view */ - dumpRib:sender; /* currently does nothing */ - renderSelf:(RtToken)context; /* sets intensity of ambient light */ - setAmbLight:sender; /* sets intensity of distant light */ - setLight:sender; /* sets chi of distant light */ - setLightX:sender; /* sets theta of distant light */ - setLightY:sender; /* sets rendering mode */ - setMode:sender; /* prints window with white background */ - printPS:sender; /* set drawing flags */ - setFlags:sender; -setData:(Molecule *)Mol :(int)Nmol :(struct ELINFO *)Elinfo; /* set camera<->molecule distance */ -setEDist:sender; -setAngS:sender; -setAngT:sender; /* generate animation */ -ribRot:sender; -ribConform:sender; -ribConfTo:sender; /* used in fitting */ -togMin:sender; -drawPS:(NXRect *)rects :(int)rectCount; /* eps dump of screen */ -dumpEPS:sender; /* change color display flag */ -setColor:sender; /* initialization stuff that must wait for everything to be loaded */ - appDidInit: sender; /* dump a POV compatible file (used to be dkb) */ -dkbDump:sender; /* supposed to help with QRM bug */ - flushRIB; -newBSSR:sender; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.