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/view3D/spadAction3d.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/view3D/spadAction3d.c.pamphlet')
-rw-r--r-- | src/graph/view3D/spadAction3d.c.pamphlet | 430 |
1 files changed, 0 insertions, 430 deletions
diff --git a/src/graph/view3D/spadAction3d.c.pamphlet b/src/graph/view3D/spadAction3d.c.pamphlet deleted file mode 100644 index 6f451bbf..00000000 --- a/src/graph/view3D/spadAction3d.c.pamphlet +++ /dev/null @@ -1,430 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/graph/view3D spadAction3d.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 _SPADACTION3D_C -#include "axiom-c-macros.h" - -#include <unistd.h> -#include <stdio.h> -#include <string.h> - -#include "header.h" -#include "process.h" -#include "draw.h" - -#include "util.H1" -#include "all_3d.H1" - -int -#ifdef _NO_PROTO -readViewman (info,size) - void *info; - int size; -#else -readViewman (void *info,int size) -#endif -{ - int m = 0; - - sprintf(errorStr,"%s","read from viewport manager\n"); - m = check(read( 0, info, size)); - - return(m); - -} -void -#ifdef _NO_PROTO -scalePoint (p) - viewTriple *p; -#else -scalePoint (viewTriple *p) -#endif -{ - - p->x *= viewData.scaleToView; - p->y *= viewData.scaleToView; - p->z *= viewData.scaleToView; - - if (viewData.cmin != viewData.cmax) - p->c = (p->c - viewData.cmin)/(viewData.cmax-viewData.cmin); - if (p->c > 1.0) p->c = 1.0; - else if (p->c < 0) p->c = 0.0; - -} /* scalePoint */ - - -/******************** - * int spadAction() * - ********************/ - -int -#ifdef _NO_PROTO -spadAction () -#else -spadAction (void) -#endif -{ - int code, viewCommand; - float f1, f2, f3; - int i1, i2, i3; - - - if (viewAloned==yes) { - close(0); - return(-1); - } - readViewman(&viewCommand, intSize); - - switch (viewCommand) { - - case rotate: - readViewman(&f1, floatSize); - readViewman(&f2, floatSize); - viewport->theta = f1; - viewport->phi = f2; - while (viewport->theta >= two_pi) viewport->theta -= two_pi; - while (viewport->theta < 0.0) viewport->theta += two_pi; - while (viewport->phi > pi) viewport->phi -= two_pi; - while (viewport->phi <= -pi) viewport->phi += two_pi; - viewport->axestheta = viewport->theta; - viewport->axesphi = viewport->phi; - spadDraw=yes; - rotated=yes; - viewport->yzOn = viewport->xzOn = viewport->xyOn = no; - - break; - - case zoom: - readViewman(&f1, floatSize); - viewport->scale = f1; - if (viewport->scale > maxScale) viewport->scale = maxScale; - else if (viewport->scale < minScale) viewport->scale = minScale; - - spadDraw=yes; - zoomed = yes; - break; - - case zoomx: - readViewman(&f1, floatSize); - readViewman(&f2, floatSize); - readViewman(&f3, floatSize); - viewport->scaleX = f1; viewport->scaleY = f2; viewport->scaleZ = f3; - if ((viewport->scaleX == 1.0) && - (viewport->scaleY == 1.0) && - (viewport->scaleZ == 1.0)) { - viewport->zoomXOn = viewport->zoomYOn = viewport->zoomZOn = yes; - } else { - if (viewport->scaleX == 1.0) viewport->zoomXOn = no; - else { - if (viewport->scaleX > maxScale) viewport->scaleX = maxScale; - else if (viewport->scaleX < minScale) viewport->scaleX = minScale; - } - if (viewport->scaleY == 1.0) viewport->zoomYOn = no; - else { - if (viewport->scaleY > maxScale) viewport->scaleY = maxScale; - else if (viewport->scaleY < minScale) viewport->scaleY = minScale; - } - if (viewport->scaleZ == 1.0) viewport->zoomZOn = no; - else { - if (viewport->scaleZ > maxScale) viewport->scaleZ = maxScale; - else if (viewport->scaleZ < minScale) viewport->scaleZ = minScale; - } - } - - spadDraw=yes; - zoomed = yes; - break; - - case translate: - readViewman(&(viewport->deltaX),floatSize); - readViewman(&(viewport->deltaY),floatSize); - if (viewport->deltaX > maxDeltaX) viewport->deltaX = maxDeltaX; - else if (viewport->deltaX < -maxDeltaX) viewport->deltaX = -maxDeltaX; - if (viewport->deltaY > maxDeltaY) viewport->deltaY = maxDeltaY; - else if (viewport->deltaY < -maxDeltaY) viewport->deltaY = -maxDeltaY; - spadDraw=yes; - translated = yes; - break; - - case modifyPOINT: - readViewman(&i1,intSize); - i1--; - readViewman(&(refPt3D(viewData,i1)->x),floatSize); - readViewman(&(refPt3D(viewData,i1)->y),floatSize); - readViewman(&(refPt3D(viewData,i1)->z),floatSize); - readViewman(&(refPt3D(viewData,i1)->c),floatSize); - scalePoint(refPt3D(viewData,i1)); - spadDraw=yes; - break; - - case hideControl: - readViewman(&i1,intSize); - if (i1) { /* show control panel */ - if (viewport->haveControl) - XUnmapWindow(dsply,control->controlWindow); - putControlPanelSomewhere(someInt); - } else { /* turn off control panel */ - if (viewport->haveControl) { - viewport->haveControl = no; - XUnmapWindow(dsply,control->controlWindow); - } - } - break; - - case axesOnOff: - readViewman(&i1,intSize); - viewport->axesOn = i1; - spadDraw=yes; - if (viewData.style == smooth) { - if (multiColorFlag) redoDither = yes; - else redoColor = yes; - } - if (viewport->haveControl) drawControlPanel(); - break; - -/* Non-uniform scaling is not in AXIOM yet. */ -/* Neither is object or origin rotation. */ - - case perspectiveOnOff: - readViewman(&i1,intSize); - viewData.perspective = i1; - switchedPerspective = yes; - spadDraw=yes; - break; - - case region3D: - readViewman(&i1,intSize); - viewport->regionOn = i1; - viewData.box = i1; - spadDraw=yes; - if (viewport->haveControl) drawControlPanel(); - redoSmooth = yes; - break; - - case clipRegionOnOff: - readViewman(&i1,intSize); - viewData.clipbox = i1; - spadDraw=yes; - break; - - case clipSurfaceOnOff: - readViewman(&i1,intSize); - viewData.clipStuff = i1; - spadDraw=yes; - break; - - case eyeDistanceData: - readViewman(&f1,floatSize); - viewData.eyeDistance = f1; - if (viewData.eyeDistance > maxEyeDistance) - viewData.eyeDistance = maxEyeDistance; - else if (viewData.eyeDistance < minEyeDistance) - viewData.eyeDistance = minEyeDistance; - spadDraw=yes; - changedEyeDistance = yes; - break; - - case hitherPlaneData: - readViewman(&f1,floatSize); - viewData.clipPlane = f1; - spadDraw=yes; - changedEyeDistance = yes; - break; - - case colorDef: - readViewman(&(viewport->hueOffset),intSize); - readViewman(&(viewport->numberOfHues),intSize); - /* spadcolors is indexed by 0 */ - viewport->hueOffset --; - viewport->numberOfHues --; - viewport->hueTop = viewport->numberOfHues; - if (viewport->hueOffset < 0) viewport->hueOffset = 0; - if (viewport->hueTop < 0) viewport->hueTop = 0; - if (viewport->hueOffset >= totalHues) - viewport->hueOffset = totalHues-1; - if (viewport->hueTop >= totalHues) viewport->hueTop = totalHues-1; - viewport->numberOfHues = viewport->hueTop - viewport->hueOffset; - if ((viewport->hueTop == viewport->hueOffset) && (!viewport->monoOn)) - redoColor = yes; - else { - redoColor = no; - redoDither = yes; - } - if (viewport->haveControl) drawColorMap(); - break; - - case closeAll: - code = check(write(Socket,&ack,intSize)); - goodbye(-1); - - - case moveViewport: - readViewman(&i1,intSize); - readViewman(&i2,intSize); - XMoveWindow(dsply,viewport->titleWindow,i1,i2); - XSync(dsply,0); - break; - - case resizeViewport: - readViewman(&i1,intSize); - readViewman(&i2,intSize); - XResizeWindow(dsply,viewport->titleWindow,i1,i2+titleHeight); - XResizeWindow(dsply,viewport->viewWindow,i1,i2); - spadDraw=yes; - redoSmooth =yes; - break; - - case transparent: - case opaqueMesh: - case render: - case smooth: - viewData.style = viewCommand; - spadDraw=yes; - redoSmooth =yes; - break; - - case lightDef: - readViewman(&(viewport->lightVector[0]),floatSize); - readViewman(&(viewport->lightVector[1]),floatSize); - readViewman(&(viewport->lightVector[2]),floatSize); - normalizeVector(viewport->lightVector); - movingLight = yes; - drawLightingAxes(); - XSync(dsply,0); - break; - - case translucenceDef: - readViewman(&backLightIntensity,floatSize); - tempLightIntensity = backLightIntensity; - lightIntensity = tempLightIntensity; - changedIntensity = yes; - drawLightTransArrow(); - XSync(dsply,0); - break; - - case changeTitle: - readViewman(&i1,intSize); - readViewman(viewport->title,i1); - viewport->title[i1] = '\0'; - writeTitle(); - switch (doingPanel) { - case CONTROLpanel: - case CONTOURpanel: - writeControlTitle(control->controlWindow); - break; - case VOLUMEpanel: - writeControlTitle(volumeWindow); - break; - case LIGHTpanel: - writeControlTitle(lightingWindow); - break; - } /* switch */ - XFlush(dsply); - break; - - case writeView: - readViewman(&i1,intSize); - readViewman(filename,i1); - filename[i1] = '\0'; - sprintf(errorStr,"writing of viewport data"); - i3 = 0; - readViewman(&i2,intSize); - while (i2) { - i3 = i3 | (1<<i2); - readViewman(&i2,intSize); - } - if (writeViewport(i3) < 0) - fprintf(stderr," Nothing was written\n"); - break; - - case diagOnOff: - readViewman(&i1,intSize); - if (viewData.outlineRenderOn) { - viewport->diagonals = i1; - spadDraw=yes; - } else { - strcpy(control->message," Use this option with Outline "); - writeControlMessage(); - } - break; - - case outlineOnOff: - readViewman(&i1,intSize); - if (viewData.style == render) { - viewData.outlineRenderOn = i1; - spadDraw=yes; - if (viewport->haveControl) drawControlPanel(); - } else { - strcpy(control->message," Use this option in Shaded mode "); - writeControlMessage(); - } - break; - - case spadPressedAButton: - readViewman(&i1,intSize); - buttonAction(i1); - break; - default: - return(-1); - } /* switch */ - - - ack++; - code = check(write(Socket,&ack,intSize)); - return(0); - -} - - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} |