aboutsummaryrefslogtreecommitdiff
path: root/src/graph/Makefile.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/graph/Makefile.pamphlet')
-rw-r--r--src/graph/Makefile.pamphlet341
1 files changed, 0 insertions, 341 deletions
diff --git a/src/graph/Makefile.pamphlet b/src/graph/Makefile.pamphlet
deleted file mode 100644
index c68dc98e..00000000
--- a/src/graph/Makefile.pamphlet
+++ /dev/null
@@ -1,341 +0,0 @@
-%% Oh Emacs, this is a -*- Makefile -*-, so give me tabs.
-\documentclass{article}
-\usepackage{axiom}
-
-\title{\$SPAD/src/graph Makefile}
-\author{Timothy Daly \and Gabriel Dos~Reis}
-
-\begin{document}
-\maketitle
-
-\begin{abstract}
-\end{abstract}
-\eject
-
-\tableofcontents
-\eject
-
-\section{General Comments}
-
-This directory contains the C source code for the Scratchpad's
-graphics. Comments given to the maintenance program refer to
-version numbers. The versions are documented below, starting with
-version23.
-\begin{verbatim}
-version23: (first version after returning from Europe)
- added a $DEVE environment variable - if it exists, the viewport manager
- tries those executable files first; if it was unsuccessful or, if the
- $DEVE variable was not defined, the $SPAD variable is used tube.c:
- changed order of crossedLines(p,q... to crossedLines(q,p... in order to
- use segNum info (which segment of the second polygon the first polygon
- crosses) and using splitPolygon() rather than splitAndMove()
- tube.c: changed crossedLines() to generalPartialSplit() - an algorithms
- i hope would work. it is not taken from any literature as all the
- literature i have looked into and tried out had design flaws or lacked
- precise specifications (including Foley & van Dam volume I, Newman &
- Sprouill and others)
- viewport3D.c: xPts now malloced as a global variable in makeView3D and
- not freed up at the end. quadMesh is also not freed anymore (shouldn't
- be as it was changed to a global some time ago).
- made eyeDistance (3D stuff) into a float (from integer)
- added outlineRender (outlineOnOff in actions.h) field. note that this
- and the previous change both affected the following files:
- view3D/: main.c, process.c, viewport3D.c, spadAction.c, write.c
- viewman/: fun3D.c make3D.c
- viewAlone/: spoon3D.c spoonTube.c
- spad/: view3D.spad (viewport3D, makeViewport3D and the Rep)
- 3D: ability to write Stellar recognizable data files for Tube types
- spad additions: write(v,fn,listOfTypes)
- fixed perspective, added min/max range of eyeDistance
-
-version24: view3D/tube.c: put in calculations for xmin,xmax,ymin,ymax
- >>> took them out again - doesn't the viewport manager do that?
- polygon list saved if previous render/opaque (hidden surface)
- was completed so that subsequent draws would be faster
- view3D: added NIL(pType) macro which checks for a null pointer
- >>> need same change in view2D (after testing)
- totalShades is now a global variable (to be decremented if color trouble)
- >>> need same change in view2D (after testing)
- cleaning up: added exitWithAck(info,size,i) macro to send spad
- acknowledge right before exit of a troubled program. this
- should avoid some of the causes of entering spad break loops
- not enough colors could be allocated; now, only a message is given.
- viewman: adding checks for abnormal exits of child processes (from
- people who use the "Cancel" command from the X server).
- deadBaby() and brokenPipe() in the works.
- view3D: hey! there was a bug in the projections: with perspective on,
- it turns out the Z-axis was rotating opposite of the rest of
- the system...?...
- fixed perspective
- added box (with back face removal)
- function of 2 variables now has it's own substructure, like tube, and
- shares the (now) general hidden surface subroutine used for the
- tube stuff when the perspective is turned on (when perspective is
- off, a simple back to front routine is sufficient and fast but the
- property that allows that is not preserved in the perspective projection)
- seems like (in tube.c) the overlap list property is not preserved (see
- notes) so now, routine needs to check, for polygon i, polygons
- i+1 through N, always.
- affects ALL: added deltaZ to all the stuff
- (spad, viewman, viewAlone, view3D) - though not used yet
- error messages: if the .Xdefault not found (or .Xdefault wasn't defined)
- then view2D and view3D will a predefined default set of fonts. it that
- still doesn't work, a (more or less useful) error message is displayed
- and an error signal is sent to Scratchpad to prevent a freeze-up situation.
- viewpack.spad (package VIEW) and view2D.spad (domain GRIMAGE) now check for
- lists that contain illegal empty lists (i.e. point list contains nothing).
- warnings are issued for lists containing both legal point lists and empty
- point lists, errors are issued for lists containing nothing but empty lists.
- made spadcolors30.c into an archived library by the name of libColors.a,
- source file changed to spadcolors.c; makeColors' arguments have changed
- and now returns the number of colors allocated - not a pointer to the
- pixel map
- saymem, check, etc. moved to util.c for library archive
- added a view.h file, with macros to be used by all view programs
- monoColor(x) macro (in view.h) replaces spadColors[x] calls in case
- display is monochromatic (in global variable mono)
- tube.c: connecting of slices - polygon points changed to outline the
- rectangular regions without the diagonals (may be prettier when outlines
- are sketched...slightly, if no split occurs).
- clipping model: both against the hither plane as well as with a
- clipping volume
- viewport3D.c: made polygon list for functions of two variables so
- that it could call the general hidden surface algorithm (in tube.c) as
- well (turns out that back to front property of 3D explicit equations is
- not preserved when viewed with perspective)
- added volume.c, volume.h for the frustrum (perspective), projected clipping
- and clip volume interface
-
-version25:
- view3D: added long jump to address signals that arrive while in the
- XNextEvent call. spadSignalHandler() now calls spadAction()
- if a signal is received.
- view2D: added query button and messages for each graph image
- (viewport2D.c, control.c, process.c)
- view3D: tube.c: improved speed of drawPolygon by creating overlapped
- list for unmoved polygon, and list for moved polygon that
- may be smaller than the entire list.
- see "Notes on the Depth Sort Algorithm" for strategy, etc.
- tube.c: moved the resetting of the variables relevant to recalc
- from process.c to tube.c (rotated, switchedPerspective,
- changedEyeDistance)
- GraphImage now supports 2D primitives like point(), component(), addPoint()
- ViewportDefaultsPackage now exports viewXPos() and stuff; all references
- to integers have been replaced by the more restrictive subdomains
- (e.g. PositiveInteger, NonNegativeInteger)
- ViewportPackage has dwindled to just drawCurves() and graphCurves()
- view2D, view3D: put in more robust signal handling routines so that
- signals from the viewport manager (Scratchpad) are all processed properly.
- the condition where the user is not allowed to use the control panel of the
- viewport that Scratchpad is sending commands to no longer exists!!!! wow!!!
- simultaneous processing without a race condition occuring (sorta) should
- not occur anymore.
- view3D: modification to keepDrawingViewport() so that signals also causes
- a return of no. this allows Scratchpad input files to be indistinguishable
- from interactive commands from a control panel! (that is, drawViewport()
- no longer need to complete the drawing if it was called from Scratchpad.)
- view2D: spadAction(): now only redraws viewport if the info was received for
- a graph image that is being shown
- view2D: fixed up pick/drop hangup problem. the "dodat" variable in process.c
- needed to be reset earlier, and in each separate routine (pick, drop and
- query) that required sequential button clicks (e.g.
- "Drop" + graph number "1").
- view2D: added global variable queriedGraph - so that the last queried graph
- will always be the one displayed.
- view2D.spad: default to points off
- added inverse and monochrome fields in .Xdefaults
- (e.g. view3D*monochrome : on)
- BUG FIXED: clipping of wire mesh for tubes
- view3D.spad: function of three variables for color specifications ==> changes
- in viewman, viewAlone, and view3D to accept additional information.
- structure of fun2VarModel in view3D.h changes *** not backwards
- compatible with version24.
- BUG FOUND: viewport3D.c still drawing the function of 2 variables
- without perspective (painter's algorithm without processing) wrong!
- BUG FIXED: this time, for shur. flipped quadrants II and IV to remedy bug
- found in painter's algorithm in viewport3D.c.
- tube.c (view3D): changed routine that redraws quickly from the saved up list
- of processed polygons from the hidden surface algorithm so that each polygon
-
-version 26:
- view3D: switched over to a generalized subspace points definition.
- so far, wire meshes work for existing types. code in viewport3D.c and tube.c
- are replaced by one more general in component.c; size reduced in half.
- include: modified=[view3D.h] new=[component.h]
- view3D: modified=[viewport3D.c, tube.c] new=[component.c]
- viewman: modified=[fun3D.c, make3D.c]
- representation should also handle future 3D things - like space curves,
- points and stuff without new data structures.
- NEED: take out unused code
- component.spad there temporarily to handle the new representation on the
- algebra side point.spad deals with the new representation in more
- generality on the algebra side
- NEED: interface to rest of algebra world
- view2D: draw dashed line if ticks are too close. view2D:
- modified=[viewport2D.c]
- coord.spad added for coordinate transformation
- XSpadFill.c in the src/ directory for shade dithering in color - affects:
- src: modified=[spadcolors.c, spadcolors.h] new=[XSpadFill.c]
- view3D: modified=[globals.h, main.c, tube.c]
- view2D: added tick labels for 2D
- view2D: modified=[viewport2D.c]
- view3D: tube.c replaced by surface.c and project.c
- viewman: for hue and shade fields in 2D, spad is one based and the viewport
- stuff is 0 based. modified=[makeGraph.c]
- --- backed up on tape ---
- replaced sprintf of XGetDefault value with direct assignment since
- XGetDefault may return a NULL value which causes sprintf to freak out
- (xDefault is now pointer to char rather than a character array)
- view2D: modified=[globals.h, main.c]
- view3D: modified=[globals.h, main.c]
- BUG FOUND: on the PS2, redraws of hidden surface with saved data (quickList)
- bombs.
- BUG FIXED: no more bombs of quick draws
- view3D: modified=[surface.c (previously, tube.c)]
- put in SIGTERM handlers so that a kill signal to viewman would cause it
- exit cleanly (that is, kill all the child processes and then exit)
- viewman: modified=[viewman.h, viewman.c, cleanup.c]
- view3D: modified=[main.c]
- view2D: modified=[main.c]
- viewWoman: modified=[viewWoman.c]
-
-version27:
- 3D primitives: added type flag to polygon structure (for 3D primitives) -
- may or may not actually be used
- include: modified=[tube.c]
- added "#define smwattDefaultToFast" which, when defined, defaults to the
- simple back-to-front draw rather than the full depth sort processes
- (click middle button to switch)
- BUG FIXED: title reading in viewAlone (to add \0 on top of the \newline
- fgets reads in)
- viewAlone: modified=[spoon2D.c, spoonComp.c]
- points in 3D stored as references (indices) into a pool of points
- include: modified=[tube.h, component.h]
- view3D: modified=[main.c, project.c, surface.c, component.c]
- added (maybe last version...?) window manager override flag in override.h
- file which sets to true or false (e.g. Presentation Manager may need
- override=false)
- BUG FIXED: after the 3D stuff saves the ordering of polygons, the quick draw
- misses the last polygon...had to change doNotStopDraw flag to affect the
- subsequent polygon.
- view3D: modified=[surface.c]
- added a development header file for temporary defines
- include: added=[DEVE.h]
- part II:
- BUG FOUND: 3D color bar goes off the positive end
- BUG FIXED: the color bar error
- view3D: modified=[process.c]
- put XMapWindow after the drawViewport in make3DComponents - fixes the
- problem of having an empty viewport window come up with no well defined data
- view3D: modified=[component.c]
- view3D: initialize the numOfPolygons and polygons field right before they're
- used (as opposed to whereever i had them before)
- view3D: modified=[component.c]
-\end{verbatim}
-
-\section{Directory overview}
-
-\subsection{Environment variables}
-
-<<environment>>=
-SUBDIRS = Gdraws viewman view2D view3D viewAlone
-
-pamphlets = fileformats.pamphlet Makefile.pamphlet
-@
-
-\subsection{The viewman directory}
-
-<<viewmandir>>=
-all-viewman: all-Gdraws
- cd viewman && ${MAKE}
-@
-
-\subsection{The Gdraws directory}
-
-<<Gdrawsdir>>=
-all-Gdraws:
- @$(mkinstalldirs) $(axiom_target_libdir)/graph
- cd Gdraws && ${MAKE}
-@
-
-\subsection{The view3D directory}
-
-<<view3Ddir>>=
-all-view3D: all-Gdraws
- cd view3D && ${MAKE}
-@
-
-\subsection{The view2D directory}
-
-<<view2Ddir>>=
-all-view2D: all-Gdraws
- cd view2D && ${MAKE}
-@
-
-\subsection{The viewAlone directory}
-
-<<viewAlonedir>>=
-all-viewAlone: all-Gdraws
- cd viewAlone && ${MAKE}
-@
-
-\section{Documentation}
-
-\subsection{environment variables}
-
-<<fileformats>>=
-
-parabola/data parabola/graph0: $(srcdir)/fileformats.pamphlet
- $(axiom_build_document) --tangle=`basename $@` --output=$@ $<
-@
-
-<<*>>=
-<<environment>>
-
-subdir = src/graph/
-
-pamphlets = Makefile.pamphlet
-
-.PHONY: all all-ax all-graph
-all: all-ax
-
-all-ax all-graph: stamp
- @ echo 24 finished ${IN}
-
-stamp: all-subdirs parabola/data parabola/graph0
- $(STAMP) stamp
-
-.PHONY: all-subdirs
-all-subdirs: all-subdirs.pre all-subdirs.rest
-
-.PHONY: all-subdirs.pre
-all-subdirs.pre:
- -rm -f stamp
- $(mkinstalldirs) parabola
-
-.PHONY: all-subdirs.rest
-all-subdirs.rest: all-subdirs.pre all-Gdraws all-viewman \
- all-view2D all-view3D all-viewAlone
-
-
-<<viewmandir>>
-<<Gdrawsdir>>
-<<view3Ddir>>
-<<view2Ddir>>
-<<viewAlonedir>>
-
-<<fileformats>>
-
-mostlyclean-local:
-
-clean-local: mostlyclean-local
- @rm -f parabola/data parabola/graph0
-
-distclean-local: clean-local
-
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}