ftp.nice.ch/pub/next/developer/objc/appkit/ContourPlot.1.4.NIHS.bs.tar.gz#/ContourPlot/CurveView.h

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

/* CurveView.h -- header file for CurveView class
 * See CurveView.m for details.
 * Izumi Ohzawa
*/

#import <appkit/appkit.h>

@interface CurveView:View
{
    id	  bgImage;	// NXImage bitmap cache for data points, coords, grid (NOT outlet)
    int   ncurves;	// number of curves to store
    int   npoints;	// number of points in curve 
    int   ncin;		// number of traces occupied -- will be ncurves in no time 
    int   icurve;	// index to the curve arrary for next entry 
    float pXmin, pXmax;	// X bounds of view in points
    float pYmin, pYmax; // Y bounds of view in points
    float Xmin;		// Real X minimum
    float Ymin;		// Real Y minimum
    float RY2PY;	// factor to convert Real Y -> Points Y
    float RX2PX;	// factor to convert Real X -> Points X
    int   Xscaled;	// flag to indicate if X values are given
    int   ClearFlag;
    int   CacheOK;	// non-zero if stuff is allocated
    BOOL  frameON;	// frame drawing flag

    id	   delegate;
    int    tag;
    NXPoint  p, pstart;	// for drag-selection rectangle in points (View's unit)

    // curve data storage
    float **coords;	/* coords[icurve][point] -- 2-d coords array for DPSDoUserPath() */
    char  *ops;		/* operator array for DPSDoUserPath() */
    float bbox[4];	/* also for DPSDoUserPath() */

    // data point storage
    float *xdata;
    float *ydata;
    BOOL  *selected;
    int   ndata;

    // Color/gray related stuff
    NXColor *curveColor;	/* color of each trace -- used if UseColor */
    NXColor tempColor;	/* temporary storage of color value for curves */
    NXColor bgColor;	/* color of background -- used if UseColor */
    NXColor markerColor;	/* color of data markers -- used if UseColor */
    float markerSize;		/* radius of marker in points */

    char *comment, *comment012;	// comment storage
}


// Mouse/Hit detection/dragging related methods.
- mouseDown:(NXEvent *)event;
- (int)dragMarker:(NXEvent *)event;
- (BOOL)acceptsFirstMouse;
- (BOOL)acceptsFirstResponder;


// Comments related methods
- setComment:(char *)cstr :(int)len;
- beginTailorGroupWithComments;
- endTailorGroup;
- endHeaderComments;
- endPrologue;

// Init/Alloc methods
- initFrame:(NXRect *)nf;
- free;
- allocTraceCache:(int)ncrvs :(int)npts;
- freeTraceCache;
- (float)RXtoPX:(float)rx;
- (float)RYtoPY:(float)ry;

- setFrameEnabled:(BOOL)yn;
- setCurveColor:(NXColor)color;
- setMarkerColor:(NXColor)color;
- setBgColor:(NXColor)color;
- setMarkerSize:(float)size;

- setXvalues: (float *)xa;
- setNewTrace: (float *)ya;
- setNewTraceXY:(float *)xa :(float *)ya;
- setDataPoints:(float *)xd :(float *)yd :(int)nnd;
- cacheDataPointsAndBackGround;
- drawDataPointsAndBackGround;

- clear:sender;
- drawIt:sender;
- autoScale;
- setScaleY:(float)ymin :(float)ymax;
- setScaleX:(float)xmin :(float)xmin;
- setXscalingEnable:(int)xse;

- copy:sender;
- copyPScode:sender;

- setDelegate:anObject;
- delegate;
- setTag:(int)t;
- (int) tag;

@end


// For delegate messages
@interface	CurveViewDelegate: Object
{
}
// Sent when selection rectangle is specified.
- selectionRectDidMove:(int)viewtag :(float)xll :(float)yll :(float)xur :(float)yur :(int)drag;

@end

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