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

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.