diff options
author | dos-reis <gdr@axiomatics.org> | 2008-03-09 03:47:21 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2008-03-09 03:47:21 +0000 |
commit | 6e07ce8f0c6c77b61cfa2f8be54781160018ff91 (patch) | |
tree | 91e5069719c924bd58242e932bd585d3e676112b /src/graph/viewman/fun2D.c.pamphlet | |
parent | 3f7d906f8cd6edd2597a49f629bd31914de8ca08 (diff) | |
download | open-axiom-6e07ce8f0c6c77b61cfa2f8be54781160018ff91.tar.gz |
* graph/: Depamphletize.
* include/addfile.h: Move from hyper.
* include/addfile.H1: Move external declarations into
addfile.h. Remove.
Diffstat (limited to 'src/graph/viewman/fun2D.c.pamphlet')
-rw-r--r-- | src/graph/viewman/fun2D.c.pamphlet | 412 |
1 files changed, 0 insertions, 412 deletions
diff --git a/src/graph/viewman/fun2D.c.pamphlet b/src/graph/viewman/fun2D.c.pamphlet deleted file mode 100644 index 6cc08f47..00000000 --- a/src/graph/viewman/fun2D.c.pamphlet +++ /dev/null @@ -1,412 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/graph/viewman fun2D.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 _FUN2D_C -#include "axiom-c-macros.h" - -#include <stdlib.h> -#include <unistd.h> -#include <stdio.h> -#include <string.h> - - - -#include "viewman.h" -#include "actions.h" - -#include "util.H1" -#include "sockio.h" -#include "fun2D.H1" -#include "readView.H1" -#include "make2D.H1" - -#define writeEach - -void -#ifdef _NO_PROTO -funView2D(viewCommand) - int viewCommand; -#else -funView2D(int viewCommand) -#endif -{ - - int code; - int viewPID; - float f1,f2; - int i1,i2,i3; - viewManager *viewport; - - viewPID = get_int(spadSock); - - - viewport = viewports; - while ((viewport) && (viewport->PID != viewPID)) { - viewport = viewport->nextViewport; - } - - if (viewport) { - send_int(spadSock,1); /* acknowledge to spad */ - code = write(viewport->viewOut,&viewCommand,intSize); - - - switch (viewCommand) { - - case putGraph: - i1 = get_int(spadSock); /* graph key */ - i2 = get_int(spadSock); /* viewport slot 1..9 */ - i2--; /* 0..8*/ - code = write(viewport->viewOut,&i1,intSize); - code = write(viewport->viewOut,&i2,intSize); - i3 = 1; /* continue*/ - code = write(viewport->viewOut,&i3,intSize); - sendGraphToView2D(0,i1,viewport,¤tGraphState); - - break; - - case translate2D: - i1 = get_int(spadSock); /* graph index */ - f1 = get_float(spadSock); /* translate in the x direction */ - f2 = get_float(spadSock); /* translate in the y direction */ - code = write(viewport->viewOut,&i1,intSize); - code = write(viewport->viewOut,&f1,floatSize); - code = write(viewport->viewOut,&f2,floatSize); - break; - - case scale2D: - i1 = get_int(spadSock); /* graph index */ - f1 = get_float(spadSock); /* scale in the x direction */ - f2 = get_float(spadSock); /* scale in the y direction */ - code = write(viewport->viewOut,&i1,intSize); - code = write(viewport->viewOut,&f1,floatSize); - code = write(viewport->viewOut,&f2,floatSize); - break; - - case hideControl2D: - i1 = get_int(spadSock); - code = write(viewport->viewOut,&i1,intSize); - break; - - case axesOnOff2D: - case unitsOnOff2D: - case connectOnOff: - case pointsOnOff: - case spline2D: - case showing2D: - i1 = get_int(spadSock); /* graph index */ - i2 = get_int(spadSock); /* axes status */ - code = write(viewport->viewOut,&i1,intSize); - code = write(viewport->viewOut,&i2,intSize); - break; - - case moveViewport: - case resizeViewport: - i1 = get_int(spadSock); - i2 = get_int(spadSock); - code = write(viewport->viewOut,&i1,intSize); - code = write(viewport->viewOut,&i2,intSize); - break; - - case changeTitle: - s1 = get_string(spadSock); - i1 = strlen(s1); - code = write(viewport->viewOut,&i1,intSize); - code = write(viewport->viewOut,s1,i1); - break; - - case writeView: - s1 = get_string(spadSock); - i1 = strlen(s1); - code = write(viewport->viewOut,&i1,intSize); - code = write(viewport->viewOut,s1,i1); - /* write out the types of things to be written */ - i2 = get_int(spadSock); - code = write(viewport->viewOut,&i2,intSize); - while (i2) { - i2 = get_int(spadSock); - code = write(viewport->viewOut,&i2,intSize); - } - break; - - case spadPressedAButton: - i1 = get_int(spadSock); - code = write(viewport->viewOut,&i1,intSize); - break; - - } /* switch */ - /*** get acknowledge from viewport */ - code = readViewport(viewport,&acknow,intSize); - send_int(spadSock,1); /* acknowledge to spad */ - } else { - send_int(spadSock,-1); /* send error value in acknowledge to spad */ - } - -} - -void -#ifdef _NO_PROTO -forkView2D() -#else -forkView2D(void) -#endif -{ - - viewManager *viewport; - int childPID, code; - int i; - view2DStruct doView2D; - graphStateStruct doGraphStateArray[maxGraphs]; - int there; - int pipe0[2], pipe1[2]; - - char envAXIOM[100],runView[100]; - -#ifdef DEBUG - fprintf(stderr,"fun2D:Pipe calls for 2D\n"); -#endif - check(pipe(pipe0)); - check(pipe(pipe1)); - -#ifdef DEBUG - fprintf(stderr,"Fork routine for 2D\n"); -#endif - childPID = check(fork()); - - switch(childPID) { - - case -1: - fprintf(stderr, - "The viewport manager cannot open a viewport window.\nTry closing some viewports.\n"); - return; - - case 0: - /***************************** - * child process * - *****************************/ - /* map pipes from viewport manager to standard input and output */ -#ifdef DEBUG - fprintf(stderr,"Mapping pipes to standard I/O in 2D\n"); -#endif - check(dup2(pipe0[0],0)); - check(dup2(pipe1[1],1)); - close(pipe0[0]); - close(pipe0[1]); - close(pipe1[0]); - close(pipe1[1]); - -#ifdef DEBUG - fprintf(stderr,"Executing TwoDimensionalViewport process\n"); -#endif - sprintf(envAXIOM,"%s",getenv("AXIOM")); - sprintf(runView,"%s%s",envAXIOM,"/lib/view2D"); - check(execl(runView,runView,NULL)); - fprintf(stderr,"The viewport manager could not execute view2D.\nCheck that view2D is on your PATH.\n"); - exit(-1); - - default: - /****************************** - * parent process * - ******************************/ - if (!(viewport = (viewManager *)malloc(sizeof(viewManager)))) { - fprintf(stderr,"The viewport manager ran out of memory trying to create a new viewport window (viewManager).\n"); - return; - } - viewport->viewType = view2DType; - viewport->PID = childPID; - - /* set up pipes to child process */ - close(pipe0[0]); - close(pipe1[1]); - viewport->viewIn = pipe1[0]; - viewport->viewOut = pipe0[1]; - - /* add new viewport to global list */ - viewport->nextViewport = viewports; - viewports = viewport; - - if (viewport->viewIn <0) { - fprintf(stderr, - "viewman could not create connection to a 2D viewport window. Try again.\n"); - return; - } else { - - code = readViewport(viewport,&acknow,intSize); - - if (code < 0) { - fprintf(stderr, - "viewman could not read from a 2D viewport window\ncode=%d\nack=%d\n", - code,acknow); - return; - } - } - - makeView2DFromSpadData(&doView2D,doGraphStateArray); - - /* tell the child that mother is a viewport manager */ - i = no; - write(viewport->viewOut,&i,sizeof(int)); - - write(viewport->viewOut,&doView2D,sizeof(view2DStruct)); - i = strlen(doView2D.title)+1; - write(viewport->viewOut,&i,intSize); /* send length of the title child */ - write(viewport->viewOut,doView2D.title,i); /* send title to the child */ - for (i=0; i<maxGraphs; i++) { - there = doView2D.graphKeyArray[i]; - write(viewport->viewOut,&there,intSize); - sendGraphToView2D(i,there,viewport,doGraphStateArray); - }; /* for i in graphs */ - - /*** get acknowledge from viewport */ - - code = readViewport(viewport,&(viewport->viewWindow),sizeof(Window)); - sleep(1); /* wait a second...*/ - send_int(spadSock,viewport->PID); /* acknowledge to spad */ - - } /* switch */ - -} /* forkView2D() */ - - - -void -#ifdef _NO_PROTO -sendGraphToView2D(i,there,viewport,doGraphStateArray) - int i,there; - viewManager *viewport; - graphStateStruct *doGraphStateArray; -#else -sendGraphToView2D(int i,int there,viewManager *viewport,graphStateStruct *doGraphStateArray) -#endif -{ - - graphStruct *gPtr; - pointListStruct *llPtr; - pointStruct *p; - viewsWithThisGraph *oneView; - int j,k; - - if (there) { - gPtr = graphList; - while ( gPtr != NULL && gPtr->key != there) /** find the right graph (same key) in graph list **/ - gPtr = gPtr->nextGraph; - if ((gPtr==NULL) ||(gPtr->key != there) ){ - fprintf(stderr, - "The viewport manager cannot find the requested graph and will quit and restart.\n"); - exit(-1); - } - - -/*** Before sending off the data, insert a pointer to viewport from graph ***/ - if (!(oneView = (viewsWithThisGraph *)malloc(sizeof(viewsWithThisGraph)))) { - fprintf(stderr,"The viewport manager ran out of memory trying to create a new graph (viewsWithThisGraph).\n"); - return; - } - oneView->viewGr = viewport; - oneView->nextViewthing = gPtr->views; - gPtr->views = oneView; - -#ifdef writeEach - write(viewport->viewOut,&(gPtr->xmin),floatSize); - write(viewport->viewOut,&(gPtr->xmax),floatSize); - write(viewport->viewOut,&(gPtr->ymin),floatSize); - write(viewport->viewOut,&(gPtr->ymax),floatSize); - write(viewport->viewOut,&(gPtr->xNorm),floatSize); - write(viewport->viewOut,&(gPtr->yNorm),floatSize); - write(viewport->viewOut,&(gPtr->spadUnitX),floatSize); - write(viewport->viewOut,&(gPtr->spadUnitY),floatSize); - write(viewport->viewOut,&(gPtr->unitX),floatSize); - write(viewport->viewOut,&(gPtr->unitY),floatSize); - write(viewport->viewOut,&(gPtr->originX),floatSize); - write(viewport->viewOut,&(gPtr->originY),floatSize); - write(viewport->viewOut,&(gPtr->numberOfLists),intSize); -#else - write(viewport->viewOut,gPtr,sizeof(graphStruct)); -#endif - - llPtr = gPtr->listOfListsOfPoints; - for (j=0; j<(gPtr->numberOfLists); j++) { - write(viewport->viewOut,&(llPtr->numberOfPoints),intSize); - p = llPtr->listOfPoints; - for (k=0; k<(llPtr->numberOfPoints); k++) { - write(viewport->viewOut,&(p->x),floatSize); - write(viewport->viewOut,&(p->y),floatSize); - write(viewport->viewOut,&(p->hue),floatSize); - write(viewport->viewOut,&(p->shade),floatSize); - p++; - } /* for k in list of points */ - write(viewport->viewOut,&(llPtr->pointColor),intSize); - write(viewport->viewOut,&(llPtr->lineColor),intSize); - write(viewport->viewOut,&(llPtr->pointSize),intSize); - llPtr++; - } /* for j in list of lists of points */ - - /* a graph state is defined for a graph if graph is there */ - write(viewport->viewOut,&(doGraphStateArray[i].scaleX),floatSize); - write(viewport->viewOut,&(doGraphStateArray[i].scaleY),floatSize); - write(viewport->viewOut,&(doGraphStateArray[i].deltaX),floatSize); - write(viewport->viewOut,&(doGraphStateArray[i].deltaY),floatSize); - write(viewport->viewOut,&(doGraphStateArray[i].pointsOn),intSize); - write(viewport->viewOut,&(doGraphStateArray[i].connectOn),intSize); - write(viewport->viewOut,&(doGraphStateArray[i].splineOn),intSize); - write(viewport->viewOut,&(doGraphStateArray[i].axesOn),intSize); - write(viewport->viewOut,&(doGraphStateArray[i].axesColor),intSize); - write(viewport->viewOut,&(doGraphStateArray[i].unitsOn),intSize); - write(viewport->viewOut,&(doGraphStateArray[i].unitsColor),intSize); - write(viewport->viewOut,&(doGraphStateArray[i].showing),intSize); - - } /* if graph is there */ - -} - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} |