%表題   GRPH1 基本グラフィックルーチンライブラリ
%
%履歴
%\Drireki{
%         94/09/28 酒井敏
%        }
%
\section{サブルーチンの説明 : トーンプリミティブ}
\label{scpack.tone}

三形閉領域のぬりつぶし図形出力(tone primitive)に関するサブルーチン群.
% 使用例については\ref{sg.sgtone}節参照.

\vspace{1em}
3次元のトーンプリミティブは2次元のプリミティブと異なり, 
三角形の塗りつぶしのみ可能である.
これは, 基本的にトーンプリミティブはある2次元平面内の領域を塗りつぶす
ものであり, 3次元空間内でこれを行なうには, 2次元平面を特定しなければ
ならないからである.
\vspace{1em}

また, 面の表側が見えている場合と, 裏側が見えている場合があるので, 
トーンパターンは2種類指定する.
ここで, {\bf 表側とは頂点を反時計回りに見る側}である.
\vspace{1em}

そのほかの点に関しては2次元ルーチンと同様である.

%-----------------------------------------------------------------------
\subsection{SCTNZU/SCTNZV}
%\label{scpack.tone.sctnzu}
\begin{enumerate}
  \item 機能
  \begin{quote}
    U/V座標系で三角形閉領域をぬりつぶす.
    トーンパターン番号も同時に指定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SCTNZU(UPX,UPY,UPZ,ITPAT1,ITPAT2)} \\
    {\tt CALL SCTNZV(VPX,VPY,VPZ,ITPAT1,ITPAT2)} \\
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{9.5cm}}
      {\tt UPX}, {\tt UPY}, {\tt UPZ} & {\tt (R)} & 長さ{\tt 3}の配列.
        三角形を定義する頂点のU座標系における(X, Y, Z)座標の値を与える. \\
      {\tt VPX}, {\tt VPY}, {\tt VPZ} & {\tt (R)} & 長さ{\tt 3}の配列.
        三角形を定義する頂点のU座標系における(X, Y, Z)座標の値を与える. \\
      {\tt ITPAT1}, {\tt ITPAT2} 
         & {\tt (I)} & 表と裏のトーンパターン番号. {\tt SCSTNP}参照. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item ここで指定した
      {\tt ITPAT\it n}は, {\tt SCTNU}, {\tt SCTNV} が参照する
      {\tt ITPAT\it n}を変更しない.
  \end{enumerate}
\end{enumerate}
%-----------------------------------------------------------------------
\subsection{SCTNU/SCTNV}
%\label{scpack.tone.sctnu}
\begin{enumerate}
  \item 機能
  \begin{quote}
    U/V座標系で三角形閉領域をぬりつぶす.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SCTNU(UPX,UPY,UPZ)} \\
    {\tt CALL SCTNV(VPX,VPY,VPZ)} \\
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{9.5cm}}
      {\tt UPX}, {\tt UPY}, {\tt UPZ} & {\tt (R)} & 長さ{\tt 3}の配列.
        多角形を定義する頂点のU座標系における(X, Y, Z)座標の値を与える. \\
      {\tt VPX}, {\tt VPY}, {\tt VPZ} & {\tt (R)} & 長さ{\tt 3}の配列.
        多角形を定義する頂点のV座標系における(X, Y, Z)座標の値を与える. \\
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 領域をぬりつぶすトーンパターン番号は
      {\tt SCSTNP}で設定する.
  \end{enumerate}
\end{enumerate}

%-----------------------------------------------------------------------
\subsection{SCSTNP}
%\label{scpack.tone.scstnp}
\begin{enumerate}
  \item 機能
  \begin{quote}
    {\tt SCTNU}, {\tt SCTNV} で用いるトーンパターン番号を設定する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL SCSTNP(ITPAT1,ITPAT2)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{11cm}}
      {\tt ITPAT1, ITPAT2} & {\tt (I)} & 表と裏のトーンパターン番号(初期値は1).
         \ref{append.table.sgtone0}-
         \ref{append.table.sgtone6}節参照.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 表側とは, {\tt UPX}, {\tt UPY}, {\tt UPZ} を反時計周りに見る
          側である.
    \item {\tt ITPAT\it n}は1以上でなければならない.
      ただし{\tt ITPAT\it n}が0のとき, メッセージは出力されるがなにもしない.
    \item {\tt ITPAT\it n}の妥当性はこのルーチンでチェックされず,
      {\tt SCTNU}, {\tt SCTNV} を呼んだときにチェックされる.
    \item 現在設定されているトーンパターン番号は
      \begin{quote}
        {\tt CALL SCQTNP(ITPAT1, ITPAT2)}
      \end{quote}
      によって参照できる.
  \end{enumerate}
\end{enumerate}
