diff options
Diffstat (limited to 'src/graph/viewAlone/spoon2D.c.pamphlet')
-rw-r--r-- | src/graph/viewAlone/spoon2D.c.pamphlet | 396 |
1 files changed, 0 insertions, 396 deletions
diff --git a/src/graph/viewAlone/spoon2D.c.pamphlet b/src/graph/viewAlone/spoon2D.c.pamphlet deleted file mode 100644 index b06da50f..00000000 --- a/src/graph/viewAlone/spoon2D.c.pamphlet +++ /dev/null @@ -1,396 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/graph/viewAlone spoon2D.c} -\author{The Axiom Team} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<<license>>= -/* -Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of The Numerical ALgorithms Group Ltd. nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS -IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -@ -<<*>>= -<<license>> - -#define _SPOON2D_C -#include "axiom-c-macros.h" - -#include <unistd.h> -#include <stdlib.h> -#include <string.h> - -#include "viewAlone.h" - - -#include "util.H1" -#include "all_alone.H1" - -/* #define huhDEBUG */ - -/* #define spoonDEBUG */ - -void -#ifdef _NO_PROTO -spoonView2D() -#else -spoonView2D(void) -#endif -{ - - int i,code,pipe0[2],pipe1[2],there; - char envAXIOM[100],runView[100]; - - sprintf(errorStr,"%s","creating pipes"); - check(pipe(pipe0)); - check(pipe(pipe1)); - switch(fork()) { - - case -1: - fprintf(stderr, - "Cannot create a new process - probably have too many things running already.\n"); - exit(-1); - - case 0: - /************ - * Child * - ************/ - printf("(spoon2D child) mapping of pipes to standard I/O for view2D\n"); - sprintf(errorStr,"%s","(viewAlone) mapping of pipes to standard I/O for view2D"); - check(dup2(pipe0[0],0)); - check(dup2(pipe1[1],1)); - close(pipe0[0]); - close(pipe0[1]); - close(pipe1[0]); - close(pipe1[1]); - printf("(spoon2D child) start the TwoDimensionalViewport process\n"); - sprintf(errorStr,"%s","(viewAlone) execution of the TwoDimensionalViewport process"); - sprintf(envAXIOM,"%s",getenv("AXIOM")); - sprintf(runView,"%s%s",envAXIOM,"/lib/view2D"); - check(execl(runView,runView,NULL)); - fprintf(stderr,"Could not execute view2D! Check that view2D is on your path variable.\n"); - exit(-1); - - default: - /************* - * Parent * - *************/ - - viewP.viewType = view2DType; - - /* set up pipes to child process */ - close(pipe0[0]); - close(pipe1[1]); - viewP.viewIn = pipe1[0]; - viewP.viewOut = pipe0[1]; - printf("(spoon2D parent) pipes created\n"); - if (viewP.viewIn <0) { - fprintf(stderr," Could not connect from Viewport manager to viewport process. Try again.\n"); - return; - } else { - code = read(viewP.viewIn,&ack,intSize); - if (code < 0) { - fprintf(stderr," Could not connect from Viewport manager to viewport process. Try again.\n"); - return; - } - } - printf("(spoon2D parent) making View2D data\n"); - makeView2DFromFileData(&doView2D); - - /* tell child it is to be a stand alone program */ - i = yes; - fprintf(stderr," Transmitting data to viewport...\n"); - write(viewP.viewOut,&i,intSize); - - write(viewP.viewOut,&doView2D,sizeof(view2DStruct)); - i = strlen(doView2D.title)+1; - write(viewP.viewOut,&i,intSize); /* tell the length of the title to child */ - write(viewP.viewOut,doView2D.title,i); /* tell the title to the child, child */ - for (i=0; i<maxGraphs; i++) { - there = graphArray[i].key; - write(viewP.viewOut,&there,intSize); - sendGraphToView2D(i,there,&viewP); - }; /* for i in graphs */ - - fprintf(stderr," Done.\n"); - - /*** get acknowledge from viewport */ - - code = read(viewP.viewIn,&(viewP.viewWindow),sizeof(Window)); - sleep(1); /* wait a second...*/ - exit(0); - - } /* switch */ - -} /* forkView2D() */ - - - -/*void sendGraphToView2D(i,there,viewP) */ -void -#ifdef _NO_PROTO -sendGraphToView2D(i,there,viewP) - int i,there; - viewManager *viewP; -#else -sendGraphToView2D(int i,int there,viewManager *viewP) -#endif -{ - graphStruct *gPtr; - pointListStruct *llPtr; - pointStruct *p; - int j,k; - printf("(spoon2D sendGraphToView2D) i=%d there=%d\n",i,there); - if (there) { - - gPtr = &(graphArray[i]); - printf("(spoon2D sendGraphToView2D) graph %d is there\n",i); - write(viewP->viewOut,&(gPtr->xmin),floatSize); - write(viewP->viewOut,&(gPtr->xmax),floatSize); - write(viewP->viewOut,&(gPtr->ymin),floatSize); - write(viewP->viewOut,&(gPtr->ymax),floatSize); - write(viewP->viewOut,&(gPtr->xNorm),floatSize); - write(viewP->viewOut,&(gPtr->yNorm),floatSize); - write(viewP->viewOut,&(gPtr->spadUnitX),floatSize); - write(viewP->viewOut,&(gPtr->spadUnitY),floatSize); - write(viewP->viewOut,&(gPtr->unitX),floatSize); - write(viewP->viewOut,&(gPtr->unitY),floatSize); - write(viewP->viewOut,&(gPtr->originX),floatSize); - write(viewP->viewOut,&(gPtr->originY),floatSize); - write(viewP->viewOut,&(gPtr->numberOfLists),intSize); - - llPtr = gPtr->listOfListsOfPoints; - for (j=0; j<(gPtr->numberOfLists); j++) { - write(viewP->viewOut,&(llPtr->numberOfPoints),intSize); - p = llPtr->listOfPoints; - for (k=0; k<(llPtr->numberOfPoints); k++) { - write(viewP->viewOut,&(p->x),floatSize); - write(viewP->viewOut,&(p->y),floatSize); - write(viewP->viewOut,&(p->hue),floatSize); - write(viewP->viewOut,&(p->shade),floatSize); - p++; - } /* for k in list of points */ - write(viewP->viewOut,&(llPtr->pointColor),intSize); - write(viewP->viewOut,&(llPtr->lineColor),intSize); - write(viewP->viewOut,&(llPtr->pointSize),intSize); - llPtr++; - } /* for j in list of lists of points */ - - /* a state is defined for a graph if it is there */ - write(viewP->viewOut,&(graphStateArray[i].scaleX),floatSize); - write(viewP->viewOut,&(graphStateArray[i].scaleY),floatSize); - write(viewP->viewOut,&(graphStateArray[i].deltaX),floatSize); - write(viewP->viewOut,&(graphStateArray[i].deltaY),floatSize); - write(viewP->viewOut,&(graphStateArray[i].pointsOn),intSize); - write(viewP->viewOut,&(graphStateArray[i].connectOn),intSize); - write(viewP->viewOut,&(graphStateArray[i].splineOn),intSize); - write(viewP->viewOut,&(graphStateArray[i].axesOn),intSize); - write(viewP->viewOut,&(graphStateArray[i].axesColor),intSize); - write(viewP->viewOut,&(graphStateArray[i].unitsOn),intSize); - write(viewP->viewOut,&(graphStateArray[i].unitsColor),intSize); - write(viewP->viewOut,&(graphStateArray[i].showing),intSize); - - } /* if graph is there */ - -} - - -void -#ifdef _NO_PROTO -makeView2DFromFileData(doView2D) - view2DStruct *doView2D; -#else -makeView2DFromFileData(view2DStruct *doView2D) -#endif -{ - - int i,j,k; - char title[256]; - FILE *graphFile; - char graphFilename[256]; - pointListStruct *aList; - pointStruct *aPoint; - printf("(spoon2D makeView2DFromFileData)\n"); - fgets(title,256,viewFile); - printf("(spoon2D) title=%s\n",title); - if (!(doView2D->title = - (char *)malloc((strlen(title)+1) * sizeof(char)))) { - fprintf(stderr, - "Ran out of memory (malloc) trying to get the title.\n"); - exit(-1); - } - sprintf(doView2D->title,"%s",title); - /* put in a null terminator over the newline that the fgets reads */ - doView2D->title[strlen(doView2D->title)-1] = '\0'; - fscanf(viewFile,"%d %d %d %d\n", - &(doView2D->vX), - &(doView2D->vY), - &(doView2D->vW), - &(doView2D->vH)); - printf("(spoon2D) X=%d Y=%d W=%d H=%d \n", - doView2D->vX,doView2D->vY,doView2D->vW,doView2D->vH); - for (i=0; i<maxGraphs; i++) { - fscanf(viewFile,"%d\n", - &(graphArray[i].key)); - printf("(spoon2D) i=%d key=%d\n", - i,graphArray[i].key); - fscanf(viewFile,"%g %g\n", - &(graphStateArray[i].scaleX), - &(graphStateArray[i].scaleY)); - printf("(spoon2D) scaleX=%g scaleY=%g\n", - graphStateArray[i].scaleX,graphStateArray[i].scaleY); - fscanf(viewFile,"%g %g\n", - &(graphStateArray[i].deltaX), - &(graphStateArray[i].deltaY)); - printf("(spoon2D) deltaX=%g deltaY=%g\n", - graphStateArray[i].deltaX,graphStateArray[i].deltaY); - fscanf(viewFile,"%g %g\n", - &(graphStateArray[i].centerX), - &(graphStateArray[i].centerY)); - printf("(spoon2D) centerX=%g centerY=%g\n", - graphStateArray[i].centerX,graphStateArray[i].centerY); - fscanf(viewFile,"%d %d %d %d %d %d %d\n", - &(graphStateArray[i].pointsOn), - &(graphStateArray[i].connectOn), - &(graphStateArray[i].splineOn), - &(graphStateArray[i].axesOn), - &(graphStateArray[i].axesColor), - &(graphStateArray[i].unitsOn), - &(graphStateArray[i].unitsColor)); - printf("(spoon2D) pointsOn=%d connectOn=%d splineOn=%d axesOn=%d axesColor=%d unitsOn=%d unitsColor=%d\n", - graphStateArray[i].pointsOn,graphStateArray[i].connectOn, - graphStateArray[i].splineOn,graphStateArray[i].axesOn, - graphStateArray[i].axesColor,graphStateArray[i].unitsOn, - graphStateArray[i].unitsColor); - fscanf(viewFile,"%d %d\n", - &(graphStateArray[i].showing), - &(graphStateArray[i].selected)); - printf("(spoon2D) showing=%d selected=%d\n", - graphStateArray[i].showing,graphStateArray[i].selected); - } - fclose(viewFile); - for (i=0; i<maxGraphs; i++) { - if (graphArray[i].key) { - /** OPEN FILE FOR GRAPHS **/ - sprintf(graphFilename,"%s%s%d",pathname,"/graph",i); - if ((graphFile = fopen(graphFilename,"r")) == NULL) { - fprintf(stderr," Error: Cannot find the file %s\n",graphFilename); - perror("fopen"); - return; - } else { - printf("(spoon2d) \n\nGRAPH%i\n",i); - fscanf(graphFile,"%g %g %g %g\n", - &(graphArray[i].xmin), - &(graphArray[i].ymin), - &(graphArray[i].xmax), - &(graphArray[i].ymax)); - printf("(spoon2d) xmin=%g ymin=%g xmax=%g ymax=%g\n", - graphArray[i].xmin,graphArray[i].ymin, - graphArray[i].xmax,graphArray[i].ymax); - fscanf(graphFile,"%g %g\n", - &(graphArray[i].xNorm), - &(graphArray[i].yNorm)); - printf("(spoon2d) xNorm=%g yNorm=%g\n", - graphArray[i].xNorm,graphArray[i].yNorm); - fscanf(graphFile,"%g %g\n", - &(graphArray[i].originX), - &(graphArray[i].originY)); - printf("(spoon2d) originX=%g originY=%g\n", - graphArray[i].originX,graphArray[i].originY); - fscanf(graphFile,"%g %g\n", - &(graphArray[i].spadUnitX), - &(graphArray[i].spadUnitY)); - printf("(spoon2d) spadUnitX=%g spadUnitY=%g\n", - graphArray[i].spadUnitX,graphArray[i].spadUnitY); - fscanf(graphFile,"%g %g\n", - &(graphArray[i].unitX), - &(graphArray[i].unitY)); - printf("(spoon2d) unitX=%g unitY=%g\n", - graphArray[i].unitX,graphArray[i].unitY); - fscanf(graphFile,"%d\n", - &(graphArray[i].numberOfLists)); - printf("(spoon2d) numberOfLists=%d\n", - graphArray[i].numberOfLists); - if (!(aList = - (pointListStruct *)malloc(graphArray[i].numberOfLists * - sizeof(pointListStruct)))) { - fprintf(stderr,"viewAlone: Fatal Error>> Out of memory trying to receive a graph.\n"); - exit(-1); - } - graphArray[i].listOfListsOfPoints = aList; - for (j=0; - j<graphArray[i].numberOfLists; - j++, aList++) { - printf("(spoon2d) list number %d\n",j); - fscanf(graphFile,"%d\n",&(aList->numberOfPoints)); - printf("(spoon2d) number of points %d\n", - aList->numberOfPoints); - fscanf(graphFile,"%d %d %d\n", - &(aList->pointColor), - &(aList->lineColor), - &(aList->pointSize)); - printf("(spoon2d) pointColor=%d lineColor=%d pointSize=%d\n", - aList->pointColor,aList->lineColor,aList->pointSize); - if (!(aPoint = (pointStruct *)malloc(aList->numberOfPoints * - sizeof(pointStruct)))) { - fprintf(stderr,"viewAlone: Fatal Error>> Out of memory trying to receive a graph.\n"); - exit(-1); - } - aList->listOfPoints = aPoint; /** point to current point list **/ - for (k=0; - k<aList->numberOfPoints; - k++,aPoint++) - { fscanf(graphFile,"%g %g %g %g\n", - &(aPoint->x), - &(aPoint->y), - &(aPoint->hue), - &(aPoint->shade)); - printf("(spoon2d)k=%d x=%g y=%g hue=%g shade=%g\n", - k,aPoint->x,aPoint->y,aPoint->hue,aPoint->shade); - } - } /* for j, aList */ - fclose(graphFile); - } /* else, opened up a file */ - } /* if graph.key */ - } /* for i */ -} /* makeView2DFromFileData */ -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} |