% =========================================================================
% ieeetvcg.sty --- For formatting papers for the IEEE
%		transactions on visualization and computer graphics
%
%	This style file must be used with the ieee.cls document class.
%	
%===========================================================================
%
% Usage:
%	\documentclass[main-options,sub-options,misc-options]{ieee}
%	\usepackage{ieeetvcg}
%	... etc ...
%
%	more documentation for typesetting papers for journals and 
%	conferences may be found at the beginning of the ieee.cls file.
%===========================================================================
% created 9 Sept 1997
%===========================================================================
\typeout{`ieeetvcg' <Modified: Sept 1997, Gregory L. Plett>.}
\ProvidesPackage{ieeetvcg}[1997/09/05]     % Name of package provided, date
\ifx\i@@@cls\undefined
  \PackageError{ieeetvcg}{This package requires the ieee.cls file ^^Jin order
	to work correctly}{}\endinput\fi

\journal{IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS}
\def\journal#1{\relax}

\setcounter{secnumdepth}{3}

\ifev@l
\else
  \endinput
\fi 

  \def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth \def\@svsec{}
  \else
     \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\if@technote.\fi 
     \hskip 1em}
  \fi
  \@tempskipa #5\relax
  \ifdim \@tempskipa>\z@
     \begingroup #6\relax
       \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}
     \endgroup
     \csname #1mark\endcsname{#7}
     \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth\else
               \protect\numberline{\csname the#1\endcsname}\fi#7}
  \else
     \def\@svsechd{#6\hskip #3\@svsec #8\@punct\csname #1mark\endcsname{#7}
     \addcontentsline{toc}{#1}{\ifnum #2>\c@secnumdepth \else
               \protect\numberline{\csname the#1\endcsname}\fi#7}}
  \fi
  \@xsect{#5}}

  \def\authorinfo#1{\let\\\relax\nothanks{{\small$\bullet$\ }{#1}}}
 
  \def\nothanks#1{\begingroup
  \def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks
    \protect\authorinstext{#1}}\endgroup}

  \long\def\maketitle{\par
    \begingroup
      \let\@thanks\@empty
      \renewcommand\thefootnote{} % the \thanks{} mark type is empty
      
      \iftitlep@ge\begin{titlepage}\@maketitlepage\@thanks\end{titlepage}%
          \let\@thanks\@empty\fi
      \thispagestyle{titlepagestyle}
      \if@twocolumn
        \if@technote
           %\if@twoside\newpage\cleardoublepage\else\newpage\fi%
           \newpage\global\@topnum\z@\@maketitle
        \else
          \ifnum \col@number=\@ne \@maketitle
          \else \twocolumn[\@maketitle\ifx\save@bstract\undefined%
	     \else\expandafter\begin{ABSTRACT}\save@bstract\end{ABSTRACT}\fi%
             \ifx\savek@yw@rds\undefined%
	     \else\expandafter\begin{KEYWORDS}\savek@yw@rds\end{KEYWORDS}\fi%
             \diamondline\par\vspace{5mm}]%
          \fi
        \fi
      \else
        \newpage
        \global\@topnum\z@   % Prevents figures from going at top of page.
        \@maketitle
      \fi
      \thispagestyle{titlepagestyle}%
      \ifrepr@nt\ifx\@lognumber\undefined
        \typeout{ieee: Warning! No \noexpand\pubitemident
        or \noexpand\lognumber given!}\else\nothanks{\@lognumber}\fi\fi\@thanks
    \endgroup
    \setcounter{footnote}{0}%
    \global\let\thanks\relax \global\let\maketitle\relax
    \global\let\@maketitle\relax \global\let\@thanks\@empty
    \global\let\@author\@empty \global\let\@date\@empty
    \global\let\@title\@empty \global\let\title\relax
    \global\let\author\relax \global\let\date\relax
    \global\let\and\relax
  }

  \let\m@dm@ketitle\maketitle
  \def\maketitle{}

  \long\def\@maketitle{\newpage%
    \begin{center}\blsone
    \let \footnote \thanks
    \if@technote
      {\bfseries\sffamily\@title\par}\if@non\else\vskip 5mm{\lineskip .5em
      \noindent\sffamily\begin{tabular}[t]{@{}c@{}}\@author\end{tabular}}\fi\par
    \else
      \vskip0.2em{\Huge\sffamily\@title\par}\if@non\else\vskip1.0em%
      \noindent{\large\lineskip .5em\sffamily%
      \begin{tabular}[t]{@{}c@{}}\@author\end{tabular}}\fi\par%
    \fi
    \end{center}\par\vskip 1.4em}%

  % **************************************************************************
  % *****   Abstract and Keywords Definition   *******************************
  % **************************************************************************
  \newenvironment{ieeequote}{\def\baselinestretch{1.1875}\raggedright
	\list{}{\listparindent 3.5mm%
	\itemindent \z@ \rightmargin 9mm \leftmargin 9mm \parsep \z@ \@plus\p@} 
	\item[]\ignorespaces}
  {\unskip\endlist}

  \def\ABSTRACT{\begin{ieeequote}\small\sffamily{\bfseries\abstractname---}\ignorespaces}
  \def\endABSTRACT{\par\end{ieeequote}\vspace{2mm}\normalsize\normalstyle}

  \def\KEYWORDS{\vspace{2mm}\begin{ieeequote}\small\sffamily{\bfseries\keywordsname---}\ignorespaces}
  \def\endKEYWORDS{\par\end{ieeequote}\vspace{2mm}\normalsize\normalstyle}

  % some code adapted from "version.sty" to save the abstract and
  % keywords for later.
  \begingroup
    \catcode`@=11\relax%
    \catcode`{=12\relax\catcode`}=12\relax%
    \catcode`(=1\relax \catcode`)=2\relax%
    \gdef\abstract(\@bsphack\catcode`{=12\relax\catcode`}=12\relax\abstract@NOTE)
    \long\gdef\abstract@NOTE #1\end{abstract}(\gdef\save@bstract(#1)%
    	\abstractEND@NOTE)
    \gdef\abstractEND@NOTE(\@esphack\end(abstract))

    \gdef\keywords(\@bsphack\catcode`{=12\relax\catcode`}=12\relax
	\keywords@NOTE)
    \long\gdef\keywords@NOTE #1\end{keywords}(\gdef\savek@yw@rds(#1)%
    	\keywordsEND@NOTE)
    \gdef\keywordsEND@NOTE(\@esphack\end(keywords))
  \endgroup

  % **************************************************************************
  % *****   Section Definitions   ********************************************
  % **************************************************************************
  \def\diamond{\raisebox{0ex}{\small{\fontfamily{pzd}\fontencoding{U}%
  \fontseries{m}\fontshape{n}\selectfont\char117}}}
  \def\diamondline{\centerline{\rule[0.5ex]{33.5mm}%
	{0.4pt}\quad\diamond\quad\rule[0.5ex]{33.5mm}{0.4pt}}}

  \newif\if@@firstsec \@@firstsectrue

  \def\thesection{\arabic{section}}
  \def\thesubsection{\thesection.\arabic{subsection}}

  \def\first@separate{\@@firstsecfalse\m@dm@ketitle}
  \def\section{\if@@firstsec\first@separate\fi\@startsection 
     {section}{1}{\z@}{2.0ex plus .5ex
     minus .2ex}{1.0ex plus .2ex}{\large\scshape\sffamily\bfseries}}
  \def\subsection{\@startsection{subsection}{2}{\z@}{2.0ex plus .5ex
     minus .2ex}{1.0ex plus .2ex}{\normalsize\sffamily\bfseries}}
  \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{2.0ex plus .5ex
     minus .2ex}{1.0ex plus .2ex}{\normalsize\sffamily\itshape}}
  \def\paragraph{\@startsection{paragraph}{4}{\parindent}{1.0ex plus .5ex
     minus .2ex}{0ex}{\normalsize\bfseries}}

  % changed by GLP to allow table captions to be set to a specific maximum
  % width "\captionwidth", if defined.
  \long\def\@makecaption#1#2#3{
  \ifx\figurestring#3
      \vskip 5pt
      \setbox\@tempboxa\hbox{\small\sffamily #1.~ #2}
      \ifdim \wd\@tempboxa >\hsize
         \setbox\@tempboxa\hbox{\small\sffamily #1.~ }
         \setlength\captionindent{\wd\@tempboxa} \divide\captionindent by 2
         \parbox[t]{\hsize}{\small \hangindent \captionindent \hangafter=1%
         \unhbox\@tempboxa\sffamily#2}
      \else \hbox
          to\hsize{\small\ifc@ptionleft\else\hfil\fi\box\@tempboxa\hfil}
      \fi
  \else
    \begin{center}
    \ifx\captionwidth\undefined {\small\sffamily #1}\\{\small\sffamily\scshape 
	#2}
    \else
      \begin{minipage}{\captionwidth}
      \begin{center}{\small\sffamily #1}\\{\small\scshape\sffamily 
	#2}\end{center}
      \end{minipage}
    \fi
    \end{center}\vskip 4pt
  \fi}

  % **************************************************************************
  % *****   Footnote Definition   ********************************************
  % **************************************************************************
  \long\def\@makefntext#1{\@thefnmark. #1}
  \def\footnoterule{}

  \newinsert\authorins
  \skip\authorins 5mm plus 1pt minus 0.5pt
  \count\authorins=1000 % authorinfo magnification factor (1 to 1)
  \dimen\authorins=8in % maximum authorinfo per page

  \def\authorinsrule{\kern-3\p@\hbox to\hsize{\hss\rule{39mm}{0.4pt}\hss}\kern 
	2.5mm} 



\def\@makecol{
  \ifvoid\footins 
    \ifvoid\authorins 
      \setbox\@outputbox\box\@cclv
    \else
      \setbox\@outputbox\vbox{\boxmaxdepth \maxdepth
      \unvbox\@cclv\vskip\skip\authorins\authorinsrule\unvbox\authorins}
    \fi
  \else
     \setbox\@outputbox\vbox{\boxmaxdepth \maxdepth
     \unvbox\@cclv\vskip\skip\footins\footnoterule\unvbox\footins
     \ifvoid\authorins\else
	\vskip\skip\authorins\authorinsrule\unvbox\authorins\fi}
  \fi
  \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
  \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth
        \@texttop\dimen@\dp\@outputbox\unvbox\@outputbox
        \vskip-\dimen@\@textbottom}%
  \global\maxdepth\@maxdepth}

\long\def\@authorinstext#1{\insert\authorins{\reset@font\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
    {\rule{\z@}{\footnotesep}\ignorespaces
      #1\strut}}}

\def\authorinstext{\@ifnextchar [{\@xauthorinsnext}%
   {\begingroup\let\protect\noexpand
      \xdef\@thefnmark{\thempfn}\endgroup
    \@authorinstext}}

\def\@xauthorinsnext[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax
   \let\protect\noexpand
   \xdef\@thefnmark{\thempfn}\endgroup \@authorinstext}

%%%%%%%%%%%%%%%%%%%%%%% End of ieeetvcg.sty  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
