This is chaosView.h in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import <appkit/View.h> #import "Colormap.h" //won't be needed when init is fixed #import "chaosControl.h" #import <math.h> #define LISTSIZE 1024 void mulCoords(double *Real1, double *Imagine1, double *Real2, double *Imagine2); // Returns coord1*coord2 in coord1 (for imaginary coords) // Aux function proves useful!! @interface chaosView : View { double myWidth, myHeight; //Width and height of the Chaos coords double myCenterX, myCenterY; //Center of the Chaos coords int Depth, chaosColors; //Depth and number of colors double xFactor, yFactor, twofactor, xsize, ysize, xstep, ystep; //xFactor == yFactor (for mandelbrot) == myWidth/bounds.size.width //twofactor tracks current resolution //xsize, etc are either == twofactor or twofactor/2 float currentRow, currentCol; //currentRow and col being plotted (in view coords) id CVchaosControl; //id of controller for passing stuff id CVcolorMap; //id of map for passing stuff shouldn't be needed. //when selection init is fixed won't be. NXColor *mycolorMap; //List of colors generated by colorMap for use by //colorindex } - gohome: (float *) newX: (float *) newY: (float *) newDX: (float *) newDY: (int *) newDepth; //Returns the x, y, x width, y width, and depth. - (int) colorindex: (double) Real: (double) Imaginary; //Returns the INDEX of the color to plot at the coords. //EVERYTHING calls this when it wants to plot a point. - drawline; //This is the timed call. It draws one line at the current resolution //Calls colorindex. This is what to modify for non-cartesian plots //(Lorenz attractors comming soon...) - examinSelected:(float) realCenter: (float) imagineCenter: (float) realScale: (float) imagineScale: (int) newDepth; //This will show the given area (x, y, width, height, at depth) at the highest resolution. //Calls colorindex - scrollup; //These methods all scroll the view. - scrollright; //They shouldn't need to be changed, I think. - scrolldown; //They could all have been 1 method with a case, but I'm lazy, and - scrollleft; //Someone might think of a good reason for them to be separate. //The corners just call 2 of the scroll methods (yeah, lazy). //They call fillbox. -startM:(float) XCenter: (float) YCenter: (float) XScale: (float) YScale: (int) ThisDepth; //This is called at the beginning of each plot to tell the view where we're gonna look. // x, y, width, height. The height will actually be changed to match the width for scale. - fillbox: (NXRect) myRect; //fills myRect at the current resolution. Calls colorindex. - sizeTo:(NXCoord)width :(NXCoord)height; //Obsolete, will be trashed. - setColors: (NXColor *) colorMap: (int) colors: (NXColor) setColor; //Is used to get the new color map from the colormap object. Is called by the colormap. //Ought to be called from the controller. Would fix a bunch of uglies... Later. - getController: sender: map; //Called by the controller when the view is loaded. Passes the instantiations of the //controller and map so they can be spoken to by the chaosView. @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.