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 */ -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.