tpv形式(Topaz Vector Format)

tpv形式とは

 tpv形式はtopaz独自のベクトルデータ形式です。Topazはグラフイメージを線分や、円、テキスト等のプリミティフな図形要素に分解し、ビューア(tpvview)やポストスクリプトドライバ(tpv2ps)にエクスポートします。この際用いるデータ形式がtpv形式です。

tpv形式の構成

 tpv形式の構成を以下に示します。BGNまでが描画前のヘッダになります。 座標系は下方向がy軸の正方向desunode、Postscript形式のように上方向がy軸の正方向の座標系に座標変換する場合、用紙サイズの情報を用いることが必要になります。 また、Bounding box情報もPostscript形式への出力のために用いられます。 倍率/MAGやシフト量/SFTはビューアへの表示のために用いられています。


  /PAR                 用紙サイズ (1/20 points)
  int x, int y         
  /BBX                 Bounding box (1/20 points)
  int x1, int y1       x1 < x2, y1 < y2
  int x2, int y2       
  /MAG                 倍率
  double m             
  /SFT                 シフト量 (1/20 points)
  int x, int y
  BGN                  描画開始

  
  (描画処理)


  PNT                  描画終了(描画)

BGNからPNTの間に図形の描画命令が入ります。描画命令には以下のものがあります。

/BGP
パスの開始

 
/SRP
パスの描画

 
/MVT
int x, int y
カレントポイントの移動

 
/LNT
int x, int y
パスに線分の追加

 
/CSP
パスを閉じる

 
/LSY
int width
int cap
int join
int style
線の属性の設定

 
/FSY
int fillrule
int style
塗潰し属性の設定

 
/PLY
int length
int x1, int y1
int x2, int y2

 
int xlength-1, int ylength-1
int xlength, int ylength
polygonの描画

 
/ELP
int x1, int y1
int x2, int y2

 
楕円の描画

 
/FCL
int red, int green, int blue
前景色の設定

 
/BCL
int red, int green, int blue
背景色の設定

 
/PMD
int mode
描画モードの設定 (tpvview用)
0: copy 1: xor

 
/CRT
int x1, int y1
int x2, int y2

 
クリッピング領域の設定

 
/RCP
クリッピング領域のリセット

 
/LFT
int face, int size, int angle
フォントのロード

 
/DTX
int x, int y
string text
テキスト出力

 
/STD
線のスタイルを波線にする(tpvview用)

 
/RLS
線のスタイルをリストア(tpvview用)

 
/CLR
画面クリア(tpvview用)

 

 tpv2prnでは、BGNをページの始まり(StartPage API)、PNTをページの終り(EndPage API)と解釈します。tpvviewはPNTをXFlush APIと解釈します。