This is Bezier.h in view mode; [Download] [Up]
/* * (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved. * * (b) If this Sample Code is distributed as part of the Display PostScript * System Software Development Kit from Adobe Systems Incorporated, * then this copy is designated as Development Software and its use is * subject to the terms of the License Agreement attached to such Kit. * * (c) If this Sample Code is distributed independently, then the following * terms apply: * * (d) This file may be freely copied and redistributed as long as: * 1) Parts (a), (d), (e) and (f) continue to be included in the file, * 2) If the file has been modified in any way, a notice of such * modification is conspicuously indicated. * * (e) PostScript, Display PostScript, and Adobe are registered trademarks of * Adobe Systems Incorporated. * * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO * CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED * AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED. * ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY * OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO * WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY) * WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY * DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, * FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT * OF THIRD PARTY RIGHTS. */ /* * Bezier.h * * This class retains the points for a bezier curve. Since this is the only * graphical object class, many of the methods found here would probably * be found in the generic graphic object class. The areas in particular that * are special to a bezier are obtaining the scrolling rectangle and the * constraining the drawing. Special steps are necessary because if the * first or last control point is selected then the second and third point * are used in the calculations as well. * * Version: 2.0 * Author: Ken Fromm * History: * 03-07-91 Added this comment. */ #import "DrawingView.h" #import <objc/Object.h> #define COLOR NX_BLACK #define WIDTH 0.15 #define PTS_BEZIER 4 #define OPS_BEZIER 2 #define LLX(pts) (pts[0]) #define LLY(pts) (pts[1]) #define URX(pts) (pts[2]) #define URY(pts) (pts[3]) /* * Instance variable - the pts array in path contains the 4 bounding * box coordinates plus the 4 points that describe the Bezier. */ @interface Bezier:Object { UPath path; /* Holds the user path description. */ } - initFrame:(NXRect *)frm; - create:(const NXRect *)frm; - (UPath *) getPath; - copyPts:sourceId; - getBounds:(NXRect *)bRect withKnobs:(BOOL) flag; - getPoint:(int) pt_num :(NXPoint *) pt; - getScrollRect:(int) pt_num :(NXRect *) aRect; - constrainPoint:(NXPoint *)aPt andNumber:(int) pt_num toView:aView; - changePoint:(int) pt_num :(const NXPoint *) pt; - setPoint:(int) pt_num :(const NXPoint *) pt; - moveAll:(const NXPoint *) pt; - (BOOL) hitControl:(const NXRect *)hitRect :(int *) pt_num :(float) controlsize; - (BOOL) hitObject:(UPath *) hitUpath; - putControlUPath:(UPath *) drawUpath forRect:(NXRect *)r :(NXPoint *) lastPoint; - putControlLinesUPath:(UPath *) drawUpath forRect:(NXRect *) r; - drawObject:(NXRect *)r withUcache:(BOOL)uFlag; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.