aboutsummaryrefslogtreecommitdiff
path: root/src/graph/viewman/fun3D.c.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-03-09 03:47:21 +0000
committerdos-reis <gdr@axiomatics.org>2008-03-09 03:47:21 +0000
commit6e07ce8f0c6c77b61cfa2f8be54781160018ff91 (patch)
tree91e5069719c924bd58242e932bd585d3e676112b /src/graph/viewman/fun3D.c.pamphlet
parent3f7d906f8cd6edd2597a49f629bd31914de8ca08 (diff)
downloadopen-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/fun3D.c.pamphlet')
-rw-r--r--src/graph/viewman/fun3D.c.pamphlet395
1 files changed, 0 insertions, 395 deletions
diff --git a/src/graph/viewman/fun3D.c.pamphlet b/src/graph/viewman/fun3D.c.pamphlet
deleted file mode 100644
index f840fb0b..00000000
--- a/src/graph/viewman/fun3D.c.pamphlet
+++ /dev/null
@@ -1,395 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/graph/viewman fun3D.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 _FUN3D_C
-#include "axiom-c-macros.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "viewman.h"
-#include "mode.h"
-#include "actions.h"
-
-#include "util.H1"
-#include "sockio.h"
-#include "fun3D.H1"
-#include "make3D.H1"
-#include "readView.H1"
-
-void
-#ifdef _NO_PROTO
-funView3D(viewCommand)
- int viewCommand;
-#else
-funView3D(int viewCommand)
-#endif
-{
-
- int code;
- int viewPID;
- float f1,f2,f3,f4;
- int i1,i2;
- 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 */
-
- viewmanEvent.xclient.window = viewport->viewWindow;
-
- code = write(viewport->viewOut,&viewCommand,intSize);
- switch (viewCommand) {
- case rotate:
- f1 = get_float(spadSock);
- f2 = get_float(spadSock);
- code = write(viewport->viewOut,&f1,floatSize);
- code = write(viewport->viewOut,&f2,floatSize);
- break;
-
- case zoom:
- f1 = get_float(spadSock);
- code = write(viewport->viewOut,&f1,floatSize);
- break;
-
- case zoomx:
- f1 = get_float(spadSock);
- f2 = get_float(spadSock);
- f3 = get_float(spadSock);
- code = write(viewport->viewOut,&f1,floatSize);
- code = write(viewport->viewOut,&f2,floatSize);
- code = write(viewport->viewOut,&f3,floatSize);
- break;
-
- case translate:
- f1 = get_float(spadSock);
- f2 = get_float(spadSock);
- code = write(viewport->viewOut,&f1,floatSize);
- code = write(viewport->viewOut,&f2,floatSize);
- break;
-
- case modifyPOINT:
- i1 = get_int(spadSock);
- f1 = get_float(spadSock);
- f2 = get_float(spadSock);
- f3 = get_float(spadSock);
- f4 = get_float(spadSock);
- code = write(viewport->viewOut,&i1,intSize);
- code = write(viewport->viewOut,&f1,floatSize);
- code = write(viewport->viewOut,&f2,floatSize);
- code = write(viewport->viewOut,&f3,floatSize);
- code = write(viewport->viewOut,&f4,floatSize);
- break;
-
- case hideControl:
- i1 = get_int(spadSock);
- code = write(viewport->viewOut,&i1,intSize);
- break;
-
- case axesOnOff:
- case perspectiveOnOff:
- case region3D:
- case clipRegionOnOff:
- case clipSurfaceOnOff:
- i1 = get_int(spadSock);
- code = write(viewport->viewOut,&i1,intSize);
- break;
-
- case eyeDistanceData:
- case hitherPlaneData:
- f1 = get_float(spadSock);
- code = write(viewport->viewOut,&f1,floatSize);
- break;
-
- case colorDef:
- i1 = get_int(spadSock);
- i2 = get_int(spadSock);
- code = write(viewport->viewOut,&i1,intSize);
- code = write(viewport->viewOut,&i2,intSize);
- break;
-
- case moveViewport:
- i1 = get_int(spadSock);
- i2 = get_int(spadSock);
- code = write(viewport->viewOut,&i1,intSize);
- code = write(viewport->viewOut,&i2,intSize);
- break;
-
- case resizeViewport:
- i1 = get_int(spadSock);
- i2 = get_int(spadSock);
- code = write(viewport->viewOut,&i1,intSize);
- code = write(viewport->viewOut,&i2,intSize);
- break;
-
- case transparent:
- case opaqueMesh:
- case render:
- break;
-
- case lightDef:
- f1 = get_float(spadSock);
- f2 = get_float(spadSock);
- f3 = get_float(spadSock);
- code = write(viewport->viewOut,&f1,floatSize);
- code = write(viewport->viewOut,&f2,floatSize);
- code = write(viewport->viewOut,&f3,floatSize);
- break;
-
- case translucenceDef:
- f1 = get_float(spadSock);
- code = write(viewport->viewOut,&f1,floatSize);
- 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 diagOnOff:
- i1 = get_int(spadSock);
- code = write(viewport->viewOut,&i1,intSize);
- break;
-
- case outlineOnOff:
- i1 = get_int(spadSock);
- code = write(viewport->viewOut,&i1,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 { /* if (viewport) */
- send_int(spadSock,-1); /* send error value in acknowledge to spad */
- }
-
-}
-void
-#ifdef _NO_PROTO
-forkView3D(typeOfViewport)
- int typeOfViewport;
-#else
-forkView3D(int typeOfViewport)
-#endif
-{
-
- viewManager *viewport;
- int childPID, code;
- int i;
-
- view3DStruct doView3D;
- int pipe0[2],pipe1[2];
- int *anIndex;
-
- char envAXIOM[100],runView[100];
- int j,k;
- LLPoint *anLLPoint;
- LPoint *anLPoint;
-
-#ifdef DEBUG
- fprintf(stderr,"Pipe calls for 3D\n");
-#endif
- check(pipe(pipe0));
- check(pipe(pipe1));
-
-#ifdef DEBUG
- fprintf(stderr,"Fork routine for 3D\n");
-#endif
- switch(childPID = check(fork())) {
-
- case -1:
- printf("Cannot create a new process - you probably have too many things running already.\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 3D\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 ThreeDimensionalViewport process\n");
-#endif
- sprintf(envAXIOM,"%s",getenv("AXIOM"));
- sprintf(runView,"%s%s",envAXIOM,"/lib/view3D");
- check(execl(runView,runView,NULL));
- fprintf(stderr,"The viewport manager could not execute view3D.\nCheck that view3D is on your PATH.\n");
- exit(-1);
-
- default:
- /******************************
- * parent process *
- ******************************/
- if (!(viewport = (viewManager *)malloc(sizeof(viewManager)))) {
- printf("Ran out of memory trying to create a new viewport process.\n");
- return;
- }
- viewport->viewType = typeOfViewport;
- 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,
- "The viewport manager could not create connection to a 3D viewport window. Try again.\n");
- return;
- } else {
-
- code = readViewport(viewport,&acknow,intSize);
-
- if (code < 0) {
- fprintf(stderr,
- "The viewport manager could not read from a 3D viewport window\ncode=%d\nack=%d\n",code,acknow);
- return;
- }
- }
-
- makeView3DFromSpadData(&doView3D,typeOfViewport);
-
- /* tell the child that parent is a viewport manager */
- i = no;
- write(viewport->viewOut,&i,sizeof(int));
-
- write(viewport->viewOut,&doView3D,sizeof(view3DStruct));
-
- i = strlen(doView3D.title)+1;
- write(viewport->viewOut,&i,intSize); /* tell the length of the title to child */
- write(viewport->viewOut,doView3D.title,i); /* tell the title to the child */
- write(viewport->viewOut,&(doView3D.lightVec[0]),floatSize);
- write(viewport->viewOut,&(doView3D.lightVec[1]),floatSize);
- write(viewport->viewOut,&(doView3D.lightVec[2]),floatSize);
-
- /* send generalized 3D components */
- write(viewport->viewOut,&(doView3D.numOfPoints),intSize);
- for (i=0; i<doView3D.numOfPoints; i++) {
- write(viewport->viewOut,&(refPt(doView3D,i)->x),floatSize);
- write(viewport->viewOut,&(refPt(doView3D,i)->y),floatSize);
- write(viewport->viewOut,&(refPt(doView3D,i)->z),floatSize);
- write(viewport->viewOut,&(refPt(doView3D,i)->c),floatSize);
- }
- write(viewport->viewOut,&(doView3D.lllp.numOfComponents),intSize);
- anLLPoint = doView3D.lllp.llp;
- for (i=0; i<doView3D.lllp.numOfComponents; i++,anLLPoint++) {
- write(viewport->viewOut,&(anLLPoint->prop.closed),intSize);
- write(viewport->viewOut,&(anLLPoint->prop.solid),intSize);
- write(viewport->viewOut,&(anLLPoint->numOfLists),intSize);
- anLPoint = anLLPoint->lp;
- for (j=0; j<anLLPoint->numOfLists; j++,anLPoint++) {
- write(viewport->viewOut,&(anLPoint->prop.closed),intSize);
- write(viewport->viewOut,&(anLPoint->prop.solid),intSize);
- write(viewport->viewOut,&(anLPoint->numOfPoints),intSize);
- anIndex = anLPoint->indices;
- for (k=0; k<anLPoint->numOfPoints; k++,anIndex++)
- write(viewport->viewOut,anIndex,intSize);
- } /* for LPoints in LLPoints (j) */
- } /* for LLPoints in LLLPoints (i) */
-
- /*** 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 */
-
-} /* forkView3D() */
-
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}