--- /dev/null
+input texinfo @c -*-texinfo-*-
+@c %**start of header
+@setfilename ctsim.info
+@settitle CTSim Manual
+@c %**end of header
+
+@setchapternewpage odd
+
+@ifinfo
+Reference Manual for CTSim
+
+Copyright (c) 2000 Kevin Rosenberg
+@end ifinfo
+
+@titlepage
+@sp 10
+@comment The title is printed in a large font.
+@center @titlefont{CTSim Manual}
+
+@c The following two commands start the copyright page.
+@page
+@vskip 0pt plus 1filll
+Copyright @copyright{} 2000 Kevin Rosenberg
+@end titlepage
+
+@node Top, Computed Tomography Overview, (dir), (dir)
+@comment node-name, next, previous, up
+
+@menu
+* Computed Tomography Overview:: The first chapter
+* Algorithms:: Algorithms used by this program
+* Concept Index:: This index has two entries.
+@end menu
+
+@node Computed Tomography Overview, Algorithms, Top, Top
+@comment node-name, next, previous, up
+@chapter Computed Tomography Overview
+@cindex Overview
+
+@section Overview
+Computed Tomography is a process to reconstruction internal images of
+an object by taking projection data through that object.
+
+@cindex Another sample index entry
+
+Here is a numbered list.
+
+@enumerate
+@item
+This is the first item.
+
+@item
+This is the second item.
+@end enumerate
+
+The @code{makeinfo} and @code{texinfo-format-buffer}
+commands transform a Texinfo file such as this into
+an Info file; and @TeX{} typesets it for a printed
+manual.
+
+@node Algorithms , Concept Index , Computed Tomography Overview , Top
+
+@section Theory
+This is great.
+
+@node Concept Index, , Algorithms , Top
+@comment node-name, next, previous, up
+@unnumbered Concept Index
+
+@printindex cp
+
+@contents
+@bye
+
--- /dev/null
+ Simple Graphics Package (SGP) Documentation
+ -------------------------------------------
+
+
+ Documentation and Software Written by Kevin Rosenberg
+ Copyright (c) 1984, Kevin Rosenberg
+
+
+
+
+
+ OVERVIEW
+ --------
+
+ +------------------------+
+ | World Coordinate level |
+ +-----------+------------+
+ |
+ |
+ +------------+-------------+
+ | Convert to Normalized |
+ | device coordinates (NDC) |
+ +------------+-------------+
+ |
+ |
+ +------+-------+ +--------------+
+ | Segmentation +-----------+ Disk Storage |
+ +------+-------+ +--------------+
+ |
+ +------------+-------------+
+ | Convert to Physical |
+ | device coordinates (PDC) |
+ +--------------------------+
+
+
+World Coordinate Level
+----------------------
+ initgrf2 () Initialize 2 dimensional graphics
+ termgrf2 () Terminate 2 dimensional graphics
+ window2 (xmin, ymin, xmax, ymax) Set window for world coord
+ viewprt2 (xmin, ymin, xmax, ymax) Viewport for window in NDC
+ moveabs2 (x, y) Move graphics cursor
+ moverel2 (dx, dy)
+ pntabs2 (x, y) Plot point at current position
+ pntrel2 (dx, dy)
+ lineabs2 (x, y) Draw line from current point to point
+ linerel2 (dx, dy)
+ markabs2 (x, y) Draw marker at current position
+ markrel2 (dx, dy)
+ polylnabs (x[], y[], n) Draw a set of lines
+ polylnrel (dx[]. dy[]. n)
+ wc_to_ndc (xwc, ywc, xndc, yndc) Convert from world coord to NDC
+ ndc_to_wc (xndc, yndc, xwc, ywc) Convert from NDC to world coord
+ drawtext (str) Draw text string at current positon
+
+ INTERNAL:
+ calc_map () Calculate wc to ndc factors
+ clip(rectangle[4], x1, y1, x2, y2) Clip a line againt rectangle
+
+
+Normalized Coordinate level
+--------------------------
+ stylus (x, y, beam) Draw a line from current position
+ opendevice (device) Open a device for output
+ closedevice (device) Close a device for output
+ flushdevice (device) Put all pending data on device
+ inqdev (device, xmax, ymax) Return data on device
+ setcolor (color) Set current drawing color
+ setlinestyle (style) Set current line style
+ setlinewidth (width) Set current line width
+ settext (h, w, orientation, dir, font) Set text attributes
+ settextclr (foreground, background) If back=-1, then transparent backg
+ inqtext(h, w, o, dir, font, fore, back) Get current text attributes
+ charndc (c, xndc, yndc) Draw char at NDC position
+ textndc (str, xndc, yndc) Draw text string at NDC position
+
+ setmarker (marker_type, color) Set marker attibutes
+ markndc (xndc, yndc) Draw marker at NDC position
+
+ ndc_to_pdc (device, xndc, yndc, xpdc, ypdc)
+ savescrn (filename, xmin, ymin, xmax, ymax)
+ readscrn (filename)
+
+Physical Device Level
+---------------------
+ crtdot (x, y, c)
+ crtline (x1, y1, x2, y2, color, style)
+ wrtchar (char, x, y, dotfunc())
+ wrttext (str, x, y, dotfunc())
+
+ readblock (array, xmin, ymin, xmax, ymax)
+ writeblock (array, xmin, ymin, mode)
+
+ prtdot (x, y, c)
+ prtline (func, x1, y1, x2, y2, color, style)
+
+
+Input Functions
+---------------
+Physical device level
+ joystk (sticknum, x, y)
+
+Normalized Coordinate level
+ readloc (xndc, yndc)
+ inithcur (height, width, color) Initialize haircross cursor
+ movhcurabs (xndc, yndc) Move haircross cursor to point
+ movhcurrel (dxndc, dyndc) Move relatively
+ termhcur () Turn off haircross cursor
+ readpnt (xndc, yndc) Have cursor track joystick
+ User press button at desired point
+
+ DATA STRUCTURES
+ ---------------
+struct DEVICE {
+ int xsize, ysize; Size of device in pixels
+ int xmax, ymax; Maximum coordinates
+ int colormax; Maximum color number of device
+ int style; Current linestyle of device
+ int width; Current width of device
+ int color; Current color of device
+ int curx, cury; Current position
+ int charwidth, charheight; Size of characters in pixels
+ float aspt Aspect ratio Multiple coord
+ int (*dot)(); Dot function for device
+ int (*line)(); Line function for device
+ int mode; Device mode
+};
+
+struct CHARSPEC {
+ float width, height; size of characters in NDC
+ int dirflag, orientflag text direction, character orientation
+ int fore, back; foreground & background color
+};
+
+struct CURRENT {
+ int color;
+ int linestyle;
+ int linewidth;
+ float xndc, yndc;
+}
+
+ Map directly from world coords to physical device coords
+ --------------------------------------------------------
+
+Window: xwmin, xwmax, ywmin, ywmax
+Viewport: xvmin, xvmax, yvmin, yvmax
+Physical: xpmax, ypmax
+
+To convert from wc to ndc:
+ xndc = xvmin + (xwc - xwmin) / (xwmax - xwmin)
+ yndc = yvmin + (ywc - ywmin) / (ywmax - ywmin)
+
+To convert from ndc to pdc:
+ xpdc = xndc * xpmax
+ ypdc = yndc * ypmax
+
+So, for each device set up the following composite transformation:
+ xpdc = xpmax * (xvmin + (xwc - xwmin) / (xwmax - xwmin))
+ ypdc = ypmax * (yvmin + (ywc - ywmin) / (ywmax - ywmin))
+
+ xpdc = xpmax * xvmin + (xwc - xwmin) * (xpmax / (xwmax - xwmin))
+ = xadd + (xwc - xsub) * xfact
+
+Characters
+----------
+ Fonts:
+ NORMAL Regular character set
+ BOLD Overstike chars with x offset by 1 pixel
+ ITALICS Shear characters along character height
+
+ NORMAL BOLD ITALICS
+ X XX X
+ XXX XXXX XXX
+ X X XX XX X X
+ X X XX XX X X
+ XXXXX XXXXXX XXXXX
+ X X XX XX X X
+ X X XX XX X X
+
+
+
+
+
--- /dev/null
+% LaTeX style file
+% Name: texhelp.sty
+% Author: Julian Smart
+%
+% Purpose
+% -------
+% Style file to enable the simultaneous preparation of printed LaTeX and on-line
+% hypertext manuals.
+% Use in conjunction with Tex2RTF (see Tex2RTF documentation).
+%
+% Note that if a non-ASCII character starts a newline and there should be a space
+% between the last word on the previous line and the first word on this line,
+% you need to use \rtfsp to generate a space in Windows Help. \rtfsp is ignored
+% in all other formats.
+%
+% Julian Smart
+% Artificial Intelligence Applications Institute
+%
+%
+% ============== C++/CLIPS Documentation Facilities ==============
+%
+% Each class definition should be typeset with e.g.
+%
+% \section{\class{Name}: Parent}
+%
+% followed by a description of the class.
+% Each member should follow:
+%
+% \membersection{wxName::Member}
+%
+% with a description of what this member does.
+% Then, one (or more if overloaded) member (function) in detail:
+%
+% \func{return type}{name}{args}
+% or
+% \member{type}{name}
+%
+% where args is a list of \param{type}{name}, ...
+
+% Function, e.g.
+% e.g. to typeset
+%
+% void DoIt(char *string);
+%
+% write:
+%
+% \func{void}{DoIt}{\param{char *}{string}}
+%
+
+\newcommand{\func}[3]{\hangafter=1\noindent\hangindent=10mm
+{{\it #1} {\bf #2}\index{#2}}(#3)}
+
+% For function/type definition where the name is a pointer,
+% e.g. to typeset
+%
+% typedef void (*wxFunction)(wxObject&)
+%
+% write:
+%
+% \pfunc{typedef void}{wxFunction}{param{wxObject&}}
+
+\newcommand{\pfunc}[3]{\hangafter=1\noindent\hangindent=10mm
+{{\it #1} ({\bf *#2})\index{#2}}(#3)}
+
+% Use an ordinary \section command for class name definitions.
+
+% This is used for a member, such as wxBitmap: GetDepth
+\newcommand{\membersection}[1]{\subsection*{#1}\index{#1}}
+
+% CLIPS function
+\newcommand{\clipsfunc}[3]{\hangafter=1\noindent\hangindent=10mm
+{{\bf #1} ({\bf #2}\index{#2}}#3)}
+
+\newcommand{\clipssection}[1]{\chapter{#1}}
+
+% This is used for a CLIPS function name
+\newcommand{\functionsection}[1]{\subsection*{#1}}
+
+% Member: a type and a name
+\newcommand{\member}[2]{{\bf #1 \it #2}}
+
+% C++ Parameter: a type and a name (no intervening space)
+\newcommand{\param}[2]{{\it #1}{\bf #2}}
+
+% CLIPS Parameter: a type and a name (one intervening space)
+\newcommand{\cparam}[2]{{\bf #1} {\it #2}}
+
+% Class: puts in index
+\newcommand{\class}[1]{#1\index{#1}}
+
+%\newcommand{\docparam}[2]{\parskip=0pt {\it #1}\par\parskip=10pt\begin{indented}{1cm}{#2}\end{indented}}
+
+% Void type
+\newcommand{\void}{{\it void}}
+
+% Typeset destructor
+\newcommand{\destruct}[1]{{$\sim$}#1}
+
+% Typeset insert/extract operators
+\newcommand{\cinsert}{$<<$}
+\newcommand{\cextract}{$>>$}
+
+
+% =================== Hypertext facilities ===================
+%
+% To insert hyperlinks (or references, in Latex), \label the sections
+% or membersections \label{ref-label} immediately after the section, on the same line,
+% and use \helpref{text-to-show}{ref-label} to make a reference.
+%
+
+% Type text with section reference
+\newcommand{\helpref}[2]{{\it #1} (p.\ \pageref{#2}) }
+
+% Type text with URL in verbatim mode
+\newcommand{\urlref}[2]{#1 (\verb$#2$)}
+
+% Don't typeset section number in LaTeX
+\newcommand{\helprefn}[2]{{\it #1}}
+
+% Like helpref, but popup text in WinHelp instead of hyperlinked
+\newcommand{\popref}[2]{{\it #1}}
+
+% Like footnote, but popup text.
+\newcommand{\footnotepopup}[2]{{\it #1}\footnote{#2}}
+
+% =================== On-line help specific macros ===================
+%
+
+% Global document font size/family, help only.
+\newcommand{\helpfontsize}[1]{}
+\newcommand{\helpfontfamily}[1]{}
+
+% Ignore in all on-line help
+\newcommand{\helpignore}[1]{#1}
+% Only print in all on-line help
+\newcommand{\helponly}[1]{}
+
+% Ignore in LaTeX
+\newcommand{\latexignore}[1]{}
+% Only print in LaTeX
+\newcommand{\latexonly}[1]{#1}
+
+% Ignore in linear RTF
+\newcommand{\rtfignore}[1]{#1}
+% Only print in linear RTF
+\newcommand{\rtfonly}[1]{}
+
+% Ignore in WinHelp RTF
+\newcommand{\winhelpignore}[1]{#1}
+% Only print in WinHelp RTF
+\newcommand{\winhelponly}[1]{}
+
+% Ignore in wxHelp
+\newcommand{\xlpignore}[1]{#1}
+% Only print in wxHelp
+\newcommand{\xlponly}[1]{}
+
+% Ignore in HTML
+\newcommand{\htmlignore}[1]{#1}
+% Only print in HTML
+\newcommand{\htmlonly}[1]{}
+
+% Input a file only for help system (binder thickness is not a limitation
+% in help systems!)
+\newcommand{\helpinput}[1]{}
+
+\newcommand{\rtfsp}{ } % Force a space in RTF, ignore in Latex
+
+% =================== Miscellaneous macros ===================
+%
+% Headings consistent with generated ones
+\newcommand{\myheading}[1]{\vspace*{25pt}
+\begin{flushleft}
+{\LARGE \bf #1}
+\end{flushleft}
+\vskip 20pt
+}
+
+% Heading with entry in contents page.
+\newcommand{\chapterheading}[1]{\myheading{#1}
+\addcontentsline{toc}{chapter}{#1}}
+
+\newcommand{\sectionheading}[1]{\myheading{#1}
+\addcontentsline{toc}{section}{#1}}
+
+% Glossary environment
+\newenvironment{helpglossary}{\newpage\chapterheading{Glossary}\begin{description}}{\end{description}}
+
+% Glossary entry
+\newcommand{\gloss}[1]{\item[#1]\index{#1}}
+
+% Image: EPS in Latex, BMP or MF (whatever's available) in RTF. Requires psbox.
+\newcommand{\image}[2]{\psboxto(#1){#2}}
+
+% Image, left aligned (HTML)
+\newcommand{\imager}[2]{\psboxto(#1){#2}}
+
+% Image, right aligned (HTML)
+\newcommand{\imagel}[2]{\psboxto(#1){#2}}
+
+% Imagemap: principally for HTML only. In Latex,
+% acts like \image.
+\newcommand{\imagemap}[3]{\psboxto(#1){#2}}
+
+% Headers and footers
+% \setheader{EvenPageLeft}{EvenPageCentre}{EvenPageRight}
+% {OddPageLeft}{OddPageCentre}{OddPageRight}
+\newcommand{\setheader}[6]{
+\lhead[\fancyplain{}{#1}]{\fancyplain{}{#4}}
+\chead[\fancyplain{}{#2}]{\fancyplain{}{#5}}
+\rhead[\fancyplain{}{#3}]{\fancyplain{}{#6}}
+}
+
+% \setfooter{EvenPageLeft}{EvenPageCentre}{EvenPageRight}
+% {OddPageLeft}{OddPageCentre}{OddPageRight}
+\newcommand{\setfooter}[6]{
+\lfoot[\fancyplain{#1}{#1}]{\fancyplain{#4}{#4}}
+\cfoot[\fancyplain{#2}{#2}]{\fancyplain{#5}{#5}}
+\rfoot[\fancyplain{#3}{#3}]{\fancyplain{#6}{#6}}
+}
+
+% Needed for telling RTF where margin paragraph should go
+% in mirrored margins mode.
+\newcommand{\marginpareven}[1]{\hspace*{0pt}\marginpar{#1}}
+\newcommand{\marginparodd}[1]{\hspace*{0pt}\marginpar{#1}}
+
+% Environment for two-column table popular in WinHelp and manuals.
+\newcommand{\twocolwidtha}[1]{\def\twocolwidthaval{#1}}
+\newcommand{\twocolwidthb}[1]{\def\twocolwidthbval{#1}}
+\newcommand{\twocolspacing}[1]{\def\twocolspacingval{#1}}
+
+\twocolwidtha{3cm}
+\twocolwidthb{8.5cm}
+\twocolspacing{2}
+
+\newcommand{\twocolitem}[2]{#1 & #2\\}
+\newcommand{\twocolitemruled}[2]{#1 & #2\\\hline}
+
+\newenvironment{twocollist}{\renewcommand{\arraystretch}{\twocolspacingval}\begin{tabular}{lp{\twocolwidthbval}}}%
+{\end{tabular}\renewcommand{\arraystretch}{1}}
+
+% Specifying table rows for RTF compatibility
+\newcommand{\row}[1]{#1\\}
+
+% Use for the last ruled row for correct RTF generation.
+\newcommand{\ruledrow}[1]{#1\\\hline}
+
+% Indentation environment. Arg1 is left margin size
+\newenvironment{indented}[1]{\begin{list}{}{\leftmargin=#1}\item[]}%
+{\end{list}}
+
+% Framed box of text, normal formatting.
+\newcommand{\normalbox}[1]{\fbox{\vbox{#1}}}
+% Double-framed box of text.
+\newcommand{\normalboxd}[1]{\fbox{\fbox{\vbox{#1}}}}
+
+% WITHDRAWN -- can't do in RTF, easily.
+% Framed box of text, horizontally centred. Ragged right within box.
+% \newcommand{\centeredbox}[2]{\begin{center}\fbox{\parbox{#1}{\raggedright#2}}\end{center}}
+% Double-framed box of text, horizontally centred. Ragged right within box.
+% \newcommand{\centeredboxd}[2]{\begin{center}\fbox{\fbox{\parbox{#1}{\raggedright#2}}}\end{center}}
+
+% toocomplex environment: simply prints the argument in LaTeX,
+% comes out verbatim in all generated formats.
+\newenvironment{toocomplex}{}{}
+
+% Colour: dummy commands since LaTeX doesn't support colour.
+% \definecolour{name}{red}{blue}{green}
+% \fcol{name}{text} ; Foreground
+% \bcol{name}{text} ; Background
+\newcommand{\definecolour}[4]{}
+\newcommand{\definecolor}[4]{}
+\newcommand{\fcol}[2]{#2}
+\newcommand{\bcol}[2]{#2}
+\newcommand{\sethotspotcolour}[1]{}
+\newcommand{\sethotspotunderline}[1]{}
+\newcommand{\settransparency}[1]{}
+\newcommand{\backslashraw}[0]{}
+\newcommand{\lbraceraw}[0]{}
+\newcommand{\rbraceraw}[0]{}
+\newcommand{\registered}[0]{(r)}
+\newcommand{\background}[1]{}
+\newcommand{\textcolour}[1]{}
+\newcommand{\overview}[2]{See \helpref{#1}{#2}.}
+\newcommand{\docparam}[2]{{\it #1}\begin{list}{}{\leftmargin=1cm}\item[]
+#2%
+\end{list}}
+\newcommand{\wxheading}[1]{{\bf #1}}
+\newcommand{\const}[0]{{\bf const}}
+\newcommand{\constfunc}[3]{{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
+\newcommand{\windowstyle}[1]{{\bf #1}\index{#1}}
+
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-0.5in}
+\addtolength{\topmargin}{-0.5in}
+\addtolength{\textheight}{1in}
+\sloppy
+