open-axiom repository from github
/*1Copyright (C) 1991-2002, The Numerical ALgorithms Group Ltd.2All rights reserved.3Copryight (C) 2007-2008, Gabriel Dos Reis.4All rights reserved.56Redistribution and use in source and binary forms, with or without7modification, are permitted provided that the following conditions are8met:910- Redistributions of source code must retain the above copyright11notice, this list of conditions and the following disclaimer.1213- Redistributions in binary form must reproduce the above copyright14notice, this list of conditions and the following disclaimer in15the documentation and/or other materials provided with the16distribution.1718- Neither the name of The Numerical ALgorithms Group Ltd. nor the19names of its contributors may be used to endorse or promote products20derived from this software without specific prior written permission.2122THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS23IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED24TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A25PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER26OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,27EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,28PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR29PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF30LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING31NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS32SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.33*/3435extern int scrn;36extern Display *dsply;37extern XFontStruct *globalFont, *buttonFont, *headerFont,38*titleFont, *graphFont,39*lightingFont, *volumeFont, *quitFont, *saveFont,40*serverFont;41extern XrmDatabase rDB;4243extern char scaleReport[5], deltaXReport[5], deltaYReport[5];44extern unsigned long *spadColors;45extern int followMouse, gotToggle, viewportKeyNum;46extern Window rtWindow, quitWindow, saveWindow;47extern GC globalGC1, globalGC2, anotherGC, globGC, trashGC,48componentGC, opaqueGC, renderGC,49controlMessageGC, lightingGC, volumeGC, quitGC,50saveGC, graphGC;51extern XSizeHints viewSizeHints;52extern HashTable *table;53extern Colormap colorMap;54extern int Socket, ack;5556extern GC processGC;57extern viewPoints *viewport;58extern controlPanelStruct *control;59extern XGCValues gcVals;60extern const char* s;61extern int someInt;6263extern unsigned long foregroundColor, backgroundColor;64extern int mono, totalColors,65totalHues, totalSolidShades, totalSolid,66totalDitheredAndSolids,totalShades;6768extern int drawMore;69extern int spadMode,spadDraw;70extern int spadSignalReceived;71extern int inNextEvent;72extern jmp_buf jumpFlag;7374extern char errorStr[80];7576extern view3DStruct viewData;7778extern Window lightingWindow, lightingAxes;79extern float lightPointer[3], tempLightPointer[3];80extern float lightIntensity, tempLightIntensity;81extern float backLightIntensity;8283extern char filename[256];848586/** stuff from draw viewport routines */87extern float sinTheta, sinPhi, cosTheta, cosPhi,88viewScale, viewScaleX, viewScaleY, viewScaleZ, reScale;89extern int xCenter, yCenter;90extern XWindowAttributes vwInfo;91extern XWindowAttributes graphWindowAttrib;92extern XPoint *quadMesh;93extern int *xPts;94extern XImage *imageX;9596extern float eyePoint[3];9798extern XPoint polygonMesh[20];99100extern int saveFlag;101extern int firstTime, noTrans, startup;102extern int redrawView;103extern int finishedList, redoSmooth, redoColor, zoomed,104rotated, switchedPerspective, changedEyeDistance,105translated, changedIntensity, movingLight, writeImage,106pixelSetFlag, redoDither, multiColorFlag;107extern poly *quickList;108109extern int viewAloned;110111extern viewTriple corners[8], clipCorners[8];112extern boxSideStruct box[6], clipBox[6];113extern int axesXY[3][4];114extern float axesZ[3][2];115116extern viewTriple *splitPoints;117extern int resMax;118119extern Window volumeWindow;120extern int frustrumVertex;121extern int doingPanel;122extern int doingVolume;123extern int screenX;124extern float xClipMinN, xClipMaxN,125yClipMinN, yClipMaxN,126zClipMinN, zClipMaxN,127clipValue;128129extern float pzMin, pzMax;130131extern int maxGreyShade;132133extern char propertyName[];134extern char propertyBuffer[];135136extern float transform[4][4], transform1[4][4],137R[4][4], R1[4][4], S[4][4], T[4][4], I[4][4];138extern float vxmax,vxmin,vymax,vymin,139wxmax,wxmin,wymax,wymin,wzmax,wzmin;140141extern polyList *scanList[ARRAY_HEIGHT];142extern int scanline, polyCount;143extern float xleft, xright;144145extern colorBuffer cBuffer[ARRAY_WIDTH];146extern float zBuffer[ARRAY_WIDTH];147148extern float zC, dzdx;149extern float intersectColor[2], dcolor;150extern triple dpt, dnorm;151152extern float Cspec, Cdiff, Camb, coeff, lum, saturation;153154extern Pixmap viewmap;155extern int viewmap_valid;156extern int smoothHue;157extern int smoothConst;158extern int smoothError;159160extern char *PSfilename; /* output file name in user directory */161extern char *envAXIOM; /* used for ps file paths */162163extern Atom wm_delete_window;164165166167