This is hp7470.c in view mode; [Download] [Up]
/* This file contains the IMPRESS device dependent subroutines for */
/* use with plplot. */
#include "plplot.h"
#include <stdio.h>
#define ESC 27
#define HP7470X 10299
#define HP7470Y 7649
static FILE *OutFile=NULL;
static int porient=0;
static int fileopen=0;
static int curpen, curwid;
void hp7470setup(xdpi,ydpi,xwid,ywid)
int xwid, ywid;
double xdpi, ydpi;
{
}
/* Open file. Set up for graphics. */
void hp7470init()
{
char response[80];
smod(0); /* not an interactive terminal */
scol(1);
swid(1);
setpxl(40.,40.);
if(!porient)
setphy(0,HP7470X,0,HP7470Y);
else
setphy(0,HP7470Y,0,HP7470X);
while(!OutFile) {
printf("Enter graphics command storage file name. ");
fgets(response,sizeof(response),stdin);
response[strlen(response)-1] = '\0';
if ((OutFile = fopen(response,"w")) == NULL)
fprintf(stderr,"Can't open %s.\n",response);
else {
fileopen = 1;
break;
}
}
fprintf(OutFile,"%c.I200;;17:%c.N;19:%c.M;;;10:in;\n",ESC,ESC,ESC);
fprintf(OutFile,"pg;\n");
}
void hp7470orient(ori)
int ori;
{
porient = ori;
}
void hp7470select(file)
FILE *file;
{
OutFile = file;
}
/* Sets the IMPRESS to text mode */
void hp7470text()
{
}
/* Sets the IMPRESS to graphics mode */
void hp7470graph()
{
}
/* Form feed */
void hp7470clear()
{
}
static int xold, yold;
void hp7470page()
{
xold = -100000;
yold = -100000;
}
void hp7470eop()
{
fflush(OutFile);
}
void hp7470color(colour)
int colour;
{
if(colour<1 || colour>8)
fprintf(stderr,"\nInvalid pen selection.");
else {
fprintf(OutFile,"sp%d %d\n",colour,curwid);
curpen = colour;
}
}
void hp7470width(width)
int width;
{
if(width<1 || width>48)
fprintf(stderr,"\nInvalid pen width selection.");
else {
fprintf(OutFile,"sp%d %d\n",curpen,width);
curwid = width;
}
}
void hp7470line(x1,y1,x2,y2)
int x1,y1,x2,y2;
{
if(!porient) {
if(x1 == xold && y1 == yold)
/* Add new point to path */
fprintf(OutFile,"pd%d %d\n",x2,y2);
else
/* Write out old path */
fprintf(OutFile,"pu%d %d pd%d %d\n",x1,y1,x2,y2);
}
else {
if(x1 == xold && y1 == yold)
/* Add new point to path */
fprintf(OutFile,"pd%d %d\n",HP7470X-y2,x2);
else
/* Write out old path */
fprintf(OutFile,"pu%d %d pd%d %d\n",HP7470X-y1,x1,HP7470X-y2,x2);
}
xold = x2;
yold = y2;
}
/* Close graphics file */
void hp7470tidy()
{
fprintf(OutFile,"sp0\n");
if(fileopen) /* If we opened it then close it */
fclose(OutFile);
}
void hp7470cwin()
{
}
void hp7470gwin()
{
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.