ftp.nice.ch/pub/next/tools/screen/backspace/more3.0Views.tar.gz#/more3.0Views/PlanetView/PlanetView.h

This is PlanetView.h in view mode; [Download] [Up]

#import <appkit/View.h>
#import <dpsclient/event.h>

// Constants
#define PLANETS	30		// default number of planets
#define MAXPLANETS 42	// maximum number of planets
#define MAXITERATIONS 30000
#define SPACEDIST 2		// # of pixels = 1 unit of space distance
#define DEFAULTGRAV 1	/* Default gravity for new planet*/
#define MAXGRAVITY (MAXPLANETS * DEFAULTGRAV)
#define PI 3.14159

/* Macros */
#define deltaX(a,b) ((myplanets[b].x - myplanets[a].x)/SPACEDIST)	/* addressing into dynamic array */
#define deltaY(a,b) ((myplanets[b].y - myplanets[a].y)/SPACEDIST)	/* addressing into dynamic array */
#define SQR(v)	(v*v) /* fast square */

typedef struct
	{
	NXCoord	x, y;		/* planet positions x[planet] NXcoord is a float*/
	float	gravity;	/* planet gravity gravity[planet] */
	float	xv, yv;		/* planet velocities xv[planet] */
	} aplanet;


@interface PlanetView : View
{
	int	numplanets;
	int	initialNumplanets;
	aplanet *myplanets;
	id	numplanetTextField;
	id	numplanetSlider;
	id inspectorPanel;
	int iterationCount;
	float gfactor;
}

- createUniverse;
- constrainGravity:(int)i;
- setNumberPlanets:sender;
- merge: (int) i: (int) j;
- setGFactor:sender;
- oneStep;
- constrainPosition:(int)i;
- newPlanet: (aplanet *) newplanet: (float) width: (float) height;
- blowPlanet: (int) planetNum;
@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.