r151: Initial CVS import
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 18 Jul 2000 03:22:32 +0000 (03:22 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 18 Jul 2000 03:22:32 +0000 (03:22 +0000)
doc/Makefile.am [new file with mode: 0644]
doc/ctsim.tex [new file with mode: 0644]
doc/ctsim.texi [new file with mode: 0644]
doc/sgp.doc [new file with mode: 0644]
doc/texhelp.sty [new file with mode: 0644]

diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644 (file)
index 0000000..2f709d9
--- /dev/null
@@ -0,0 +1,4 @@
+EXTRA_DIST=sgp.1 ctsim.tex texhelp.sty
+
+dvi: ctsim.tex
+       latex ctsim.tex
diff --git a/doc/ctsim.tex b/doc/ctsim.tex
new file mode 100644 (file)
index 0000000..d4207ff
--- /dev/null
@@ -0,0 +1,20 @@
+\documentstyle[a4,texhelp]{report} 
+\title{CTSim - An Open-Source Computed Tomography Simulator} 
+\author{Kevin Rosenberg} 
+\date{July 2000} 
+\begin{document} 
+\maketitle 
+\chapter{Introduction} 
+Welcome to CT.
+\section{Theory} 
+Theory of CT.
+\chapter{The Programs}
+\centerline{This is a centered line}
+\begin{center}
+This is a 
+centered paragraph.
+\end{center}
+
+{\bf This is in bold font}
+
+\end{document} 
diff --git a/doc/ctsim.texi b/doc/ctsim.texi
new file mode 100644 (file)
index 0000000..f024f08
--- /dev/null
@@ -0,0 +1,74 @@
+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
+
diff --git a/doc/sgp.doc b/doc/sgp.doc
new file mode 100644 (file)
index 0000000..f6f56d6
--- /dev/null
@@ -0,0 +1,183 @@
+             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
+
+
+
+
+
diff --git a/doc/texhelp.sty b/doc/texhelp.sty
new file mode 100644 (file)
index 0000000..af91bd5
--- /dev/null
@@ -0,0 +1,298 @@
+% 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
+