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と解釈します。