＜ＰＴＯＯＬ操作説明＞                                      ('94 Feb.)

  各ツールの実行には、操作をするポリゴンデータのファイル名と幾つかのオプション
を指定します。オプションとは、各操作に対するパラメータを指定するもので、指定順
は任意です。これは各コマンドによって色々異なったものがあります。
また、"-h","-H"オプションを指定すると簡単なオプションの説明が表示されます。
  なお、オプションは小文字大文字を区別しますので気をつけてください。
                    ￣￣￣￣￣￣￣￣￣￣￣￣
　（使用例：A:\>run386 -nocrt fractal cube.pol -l 2 -s 1.02 -o out.pol）

  以下に、各ツールの簡単な（オプションの）解説を記しますので参考にして下さい。
後は実際に実行しながら、その効果を確かめてみてください。


○ ＴＯ３．ＥＸＰ
  このツールは、ポリゴンデータに三角形以上のポリゴンが含まれる時、それらを
三角形に分割します。
  また、その元のポリゴンデータに凹ポリゴン(*1)が含まれる時、それらを凸ポリ
ゴン(*2)になるよう適当に分割します。

  ・オプション
      -o  : この後に出力先のファイル名を指定する。省略時は標準出力。
      -f  : 出力先の指定ファイルが既にある場合、通常は上書きして良いか
      　　　確認してくる。このオプションを指定すると確認無しで強制的に
      　　　上書きになる。
      -a  : この後に任意のポリゴンオプションを指定する。出力時には、これら
            のポリゴンオプションが自動的に全ポリゴンに追加される。
            ポリゴンオプションが複数の場合は「"n c col1"」のようにダブル
            クウォーテーションで囲む。
      -h  : これらのオプションの簡単な説明が表示される。
      -t  : これを指定すると、三角形分割はせずに凸分割のみ行う。
      -s  : 三角形分割で最適化処理(*3)を行う。
      -c  : 通常は、分割後に面積が０になったポリゴンを削除するが、このオプ
            ションを指定するとその削除処理を行わない。
      -n  : 通常は三角形以上のポリゴンは全て分割対象になるが、このオプション
            を指定すると歪んだポリゴン(*4)のみが分割対象になる。従って正常な
            （フラットな）ポリゴンは分割対象から外れる。
            "-n5" のようにｎのすぐ後ろに「正の整数」を指定すると、歪み判定の
            精度を調節できる。この数値が大きい程精度が高くなる。省略値は８。

  *1  内角が180度以上（鈍角）である角を含むポリゴン。例えばハートマークの
      ようなへこんだ部分のある形や文字フォントをポリゴンデータ化した時等に
      でき易い。

  *2  全ての角の内角が180度以下（鋭角）であるポリゴン。いわゆる通常な四角
      や三角, 正多角形等のような形状。

  *3  なるべく分割後の各ポリゴンの面積が大きくなるようなパターンで分割する。
      ....ように「一応」考てあるが、凝った事はしていないので場合によっては
      効果無しということも大いにあると思います。(^_^;)

  *4  データによっては、各頂点がきちんと一つの平面上に無いポリゴンを含む場合
      があります。このようなポリゴンは、データ処理上不都合を生じる場合がまま
      あります。

  ・使用例
  
   >run386 -nocrt to3 src.p -n6 -s -o src3.p -a "c red s"


○ ＷＩＳＥＭＴ．ＥＸＰ

  このツールは、ポリゴンデータの各ポリゴンの向き（表裏）(*5)をあるポリゴン
（参照ポリゴン）の向きに合わせます。但し、各ポリゴンは必ず参照するポリゴンと
（他のポリゴンを介する等して）地続きの関係でなければならなりません。

  ・オプション
      -o  : （TO3.EXP の項を参照）
      -f  :         〃
      -a  :         〃
      -h  :         〃
      -i  : この後に参照ポリゴンの番号を指定する。番号はファイルに書かれ
            ているポリゴンデータで、上から順に０から数る。省略値は０。
      -b  : 参照ポリゴンと逆向きに合わせる。参照ポリゴンも逆向きになる。
      -B  : 全ポリゴンを「無条件に」逆向きにする。向きを合わせる訳では無い
            ので注意してください。

  *5  ポリゴンデータによっては、各ポリゴンの向きがまちまちになっている場合
      があります。意識的にそうしている場合以外は、レンダリングした時に部分
      的に「抜け」ができたり等の不都合が起こる事が多くあります。

  ・使用例:
                                | ----test.pol-----
     0        1        2        |   p 0  x0 y0 z0
      +-------+-------+         |   p 1  x1 y1 z1
      |       |       |         |   p 2  x2 y2 z2
      |  P0   |  P1   |         |         .
      |       |       |         |         .
      |       |       |         |         .
     3+-------+-------+         |   P  0 3 4 1 ;
      |       | 4      5        |   P  1 4 5 2 ;
      |  P2   |                 |   P  3 4 7 6 ;
      |       |                 |
     6+-------+ 7               |
     
-------------------------------------------------------

  上図のようなオブジェクトについて、全てのポリゴンをP0の向き（左回り＝表向き）
に合わせたい場合
  
  >run386 wisemt test.pol -o test2.pol
  
のようにすれば、test2.polは

     -----test2.pol-----
       p 0  x0 y0 z0
             .
             .
             .
       P  0 3 4 1 ;
       P  1 4 5 2 ;
       P  6 7 4 3 ;

と、P2 が変更されて、全てのポリゴンが表向きに揃う。また
  
  A:\>run386 wisemt test.pol -i 2 -b -o test2.pol
  
でも、同じ結果になる。


○ ＦＲＡＣＴＡＬ．ＥＸＰ

  このツールは、ポリゴンデータに対して、中点変位法によるフラクタル分割変形(*6)
を行うものです。このコマンドを利用すると、山や岩のような形状を作成する事が
できます。
  但し、処理の都合上各ポリゴンは全て三角形である必要があります。

  ・オプション
      -o     : （TO3.EXP の項を参照）
      -f     :         〃
      -a     :         〃
      -h     :         〃
      -l     : この後に分割レベル(*6)を指定する。このオプションは必ず指定
               する必要がある。値は１以上を指定する（でないと効果無し）。
      -s     : この後に自己相似比(*6)を指定する。値は１以上（実数）を指定
      　　　　 する。省略値は１．０（この場合分割をするだけで、事実上変形
               は行われない）
      -r     : この後に乱数系列の初期化値（正の整数）を指定する。これは、
               変形時に使用する乱数発生の為の初期値として使用される。この
               値によって、変形の具合が変化する。
               このオプションが省略されると、初期値は不定になる。
      -x/y/z : 変形時の中点変移に対する変移軸(*6)の指定。実際には"-x","-y"
               ,"-z" のように指定する。このオプションが省略されると、各頂
               点における法線により軸が決定する。

  *6  簡単に説明すると下図のようになります。つまり、1 分割レベルごとに各
      ポリゴンの各辺上に新しい点が発生し、１つのポリゴンが４つのポリゴン
      に分割されることになります。
   
                          +                         +
                         /|                        /|
                        / |                       / |
                       /  |                      /  |
                      /   |                     /   |
                     /    |      ====>         +----+
                    /     |                   /|   /|
                   /      |                  / |  / |
                  /       |                 /  | /  |
                 /        |                /   |/   |
                +---------+               +----+----+
      
      変位軸は、新しく発生した点の座標変位する方向をきめるものです。これ
      を省略した場合は、その都度各頂点ごとにその点に対する法線（ポリゴン
      の法線とは少々意味あいが異なる）を計算し、それによって決定されます。
      
      また、自己相似比とは新しく発生した点の座標変位の割合で、これが大き
      い程よりオブジェクトが変形することになり、１．０だと変位量は０とい
      うことになります。大体目安としては、オプション"-x","-y","-z"を指定
      した場合1.1〜1.3程度、指定しない場合は1.01〜1.06程度の範囲が適当と
      思われます。
      これだけの説明では分かり難いと思いますが、後は色々試してみて下さい。
      
      なお、分割レベルが大きくなると、ポリゴン数は指数関数的に増えていく
      ので、注意してください。

  ・使用例
  
    >run386 -nocrt fractal src3.p -l 2 -s 1.02 -f -o src_f.p


○ ＦＩＲＥＴ．ＥＸＰ
　このツールは、複数のポリゴンが隣接することによって生じる角(*7)に対して、細
分割をかけることにより角取りを行います。
（｢ごりぽん君｣(*8)で言う所のグローバルスムースとほぼ同じ機能です）

  ・オプション
      -o  : （TO3.EXP の項を参照）
      -f  :         〃
      -a  :         〃
      -h  :         〃
      -n  : この後に任意のポリゴンオプションを指定する。このオプションは分割
            によってできた新しいポリゴンに対して設定される。ポリゴンオプショ
            ンが複数の場合は「"n c col1"」のようにダブルクウォーテーションで
            囲む。
            ポリゴンオプションは省略可でもある。つまり"-n"のみ指定された場合
            は、各角を構成しているポリゴンの内のいずれかのポリゴンに設定され
            ている、ポリゴンオプションが参照される。
      -l  : この後にまるめレベルを指定する。これで指定された回数だけ角取りの
            処理が行われる。数値は１以上を指定する（でないと効果無し）。
      -s  : この後にまるめ度を指定する。この数値が小さいほど、大きく角取りが
            行われる。数値は１．０以下を指定する（省略値は０．８）。

　*7  ここで言う角とは、「２つのポリゴンが接しているエッジ」「３つ以上の
      ポリゴンによって共有されている頂点」ということになっています。

  *8  ｢太っ腹FD｣にも収録されているR.KuMa（NIFTY:）氏作のポリゴンエディタ
      現在NIFTYのFPICSTのLIBにはバージョンアップ版も登録されている。

  ・使用例
  
    >run386 -nocrt firet src.p -l 1 -s 0.55 -o out.p


○ ＴＷＩＳＴ．ＥＸＰ
  このツールは、ポリゴンオブジェクトの頂点データに対して｢ひねり｣という変形を
加えます。これを利用する事によって、例えば円柱状の物体をバネのような形に変形
させる事が可能です。
  なお、入力データはあらかじめ全て三角形に分割されている必要があります。

  ・オプション
      -o  : （TO3.EXP の項を参照）
      -f  :         〃
      -a  :         〃
      -h  :         〃
      -s  : この後に傾斜次数(*9)を指定する。値は(-)1〜(-)4の整数値であること。
            この値が正の値か負の値かは、"-p"オプションが省略された場合に意味
            を持つ。省略値は１。
 -[x/y/z][x/y/z]: ツイスト軸(*10)および変数軸(*11)を指定する。"-"に続いて１
            文字目がツイスト軸で２文字目が変数軸である。"-xy"というような感
            じで指定する。省略すると入力を促される。
      -p  : この後にツイスト開始座標(*12)および終了座標(*13)を指定する。
            これを省略すると自動的に変数軸に対しての頂点データの最小値を開始
            座標, 最大値を終了座標として利用する。
            又"-s"オプションで傾斜次数に負の値が指定されている時は、逆に最大値
            を開始座標, 最小値を終了座標とする。
      -c  : この後に各軸に対するオフセット座標値(*14) x y z を指定する。
            省略値は各値とも０。
      -d  : この後にツイスト角度(*15)を指定する。値は0〜±3600で単位は[度]で
            ある。これを省略すると入力を促される。

   ・使用例
   
     >twist test1.pgn -o test2.pgn -xx -d 180 -p 550 -550 -s 4
   
     この場合、
       ソースファイル名=test1.pgn
       ソースファイル名=test2.pgn
       ツイスト軸= X
       変数軸= X
       ツイスト角度=180.000000 [deg]
       ツイスト開始座標= 550.000000 [X axis]
       ツイスト終了座標= -550.000000 [X axis]
       傾斜次数= 4 次
       Ｘ軸オフセット= 0.000000
       Ｙ軸オフセット= 0.000000
       Ｚ軸オフセット= 0.000000
     となります。


○ ＶＩＥＷＰ．ＥＸＰ

  （別途"VIEWP.MAN"を参照してください）


                                                        以  上

                             *** NIFTY:HBA00106／佐藤 雅弘／ＭＡＲＩＮ ***
