● 例
6.7 ハイライトリスト
● 機能一覧
● ハイライトリスト
ハイライトリストとは選択されたアイテムや点列を画面に白色表示させるための情報を保持してお くもので、ハイライトリストに登録された情報はズームや再表示が行なわれたときにも白色表示さ れる。
ハイライトリストにはアイテムをハイライトさせる「アイテムリスト」と点列をハイライトさせる
「点列リスト」がある。
● アイテムリストの使用例
int nitm, id;
int *idptrs;
switch (token->typ) {
case TknCMD: /* コマンド */
break;
case TokCOD: /* 座標 */
case TokDIG: /* デジタイズ座標 */
id = IdentItem(...);
nitm = rptitmadd(1, 1, &id, 1);
break;
case TknBSP: /* バックスペース */
nitm = rptitmrel(1, (int *)NULL, -1);
break;
case TknEOC: /* CE */
nitm = rptitmnum(1);
idptrs = rptitmptr(1);
/* 処理を行う */
. . rptitmcla(1);
関数名 機能
rptitmadd アイテムリストにアイテムを追加する。
rptitmrel アイテムリストからアイテムを削除する。
rptitmnum アイテムリストのアイテム数を得る。
rptitmptr アイテムリストのポインタを得る。
rptitmcla アイテムリストの登録数を 0 にする。
rptpntadd 点列リストに点を追加する。
rptpntrel 点列リストから点を削除する。
rptpntnum 点列リストの点数を得る。
rptpntptr 点列リストのポインタを得る。
rptpntcla 点列リストの登録数を 0 にする。
6.7 ハイライトリスト
● 点列リストの使用例
int npnt;
DPOINT *pnts;
switch (token->typ) {
case TknCMD: /* コマンド */
break;
case TknCOD: /* 座標 */
case TknDIG: /* デジタイズ座標 */
npnt = rptpntadd(1, 1, token->pnt);
break;
case TknBSP: /* バックスペース */
npnt = rptpntrel(1, -1);
break;
case TknEOC: /* CE */
npnt = rptpntnum(1);
pnts = rptpntptr(1);
/* 処理を行う */
. . rptpntcla(1);
【関数名】
rptitmadd
【機能】
アイテムリストにアイテムを追加し、テンポラリプレーンにアイテム形状を表示する。
【呼出し形式】
int rptitmadd(int cmdlvl, int hmod, int *idptrs, int nidptr, int maxitm)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5) hmod 表示方法。
1 : 実際の図形を表示する。
0 : 実際の図形とノード点を表示する。
-1 : 始終点にマークを表示する。図形は表示しない
-2 : 表示しない。
idptrs 追加するアイテムのアイテム識別子の並び。負でも可(負で登録される)。
nidptr アイテムの数。
maxitm 登録可能なアイテム数の上限値。 (0, 1 - n)
0 : 無制限。
【返り値】
登録されているアイテムの数。 (-3, -2, -1, 0 - n) +n : 登録されているアイテム数。
-1 : 引数が不正。
-2 : アイテムの数が上限値を超える。
またはスワップ領域が不足。
-3 : 指定されたアイテムは既に登録されている。
6.7.1 アイテムリストにアイテムを追加
第6章 メッセージ・図形入出力モジュール
【関数名】
rptitmrel
【機能】
アイテムリストからアイテムを削除し、テンポラリプレーンのアイテム形状を 消去する。
【呼出し形式】
int rptitmrel(int cmdlvl, int *idptrs, int nidptr)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5) idptrs nidptr が正のとき
削除するアイテムのアイテム識別子の配列。
アイテム識別子は負でもよい。
nidptr が負のとき 使用しない。
nidptr アイテムの数。 (-2, -1, 1 - n) +n : 削除するアイテムの数。
-1 : 最後に追加したアイテムを削除する。
-2 : 全てのアイテムを削除する。
【返り値】
登録されているアイテムの数。 (-2, -1, 0 - n)
+n : 登録されているアイテム数。
-1 : 引数が不正。
-2 : 指定されたアイテムが登録されていない。
【関数名】
rptitmnum
【機能】
アイテムリストに登録されているアイテム数を得る。
【呼出し形式】
int rptitmnum(int cmdlvl)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5)
【返り値】
6.7.2 アイテムリストからアイテムを削除
6.7.3 登録アイテム数の取得
6.7 ハイライトリスト
登録されているアイテムの数。
+n : 登録されているアイテム数。
-1 : 引数が不正。
【関数名】
rptitmptr
【機能】
アイテムリストのポインタを得る。
【呼出し形式】
int *rptitmptr(int cmdlvl)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5)
【返り値】
アイテムリストのポインター。
NULL : 引数が不正。
【関数名】
rptitmcla
【機能】
アイテムリストの登録数を 0 にする。
アイテムリストの内容は変化しない。
画面は変化しない。
【呼出し形式】
void rptitmcla(int cmdlvl)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5)
【関数名】
rptpntadd
6.7.4 アイテムリストのポインタを取得
6.7.5 アイテムリストの登録数を 0 にする
6.7.6 点列リストに点を追加
第6章 メッセージ・図形入出力モジュール
【機能】
点列リストに点を追加し、テンポラリプレーンに点列形状を表示する。
【呼出し形式】
int rptpntadd(int cmdlvl, int hmod, DPOINT *pnt)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5) hmod 表示方法。
1 : 点列を結ぶ直線。
2 : 点数が 2 の時、矩形と1点目―2点目を結ぶ直線。
点数が 3 以上の時、点列を結ぶ直線。
3 : 点数が 2 の時、WCS にそった矩形と1点目―2点目を結ぶ直線。
点数が 3 以上の時、点列を結ぶ直線。
0 : 表示しない。
pnt 追加する点(モデル座標系)。
【返り値】
登録されている点列の数。 (-2, -1, 0 - n)
+n : 登録されている点数。
-1 : 引数が不正。
-2 : スワップ領域が不足。
【関数名】
rptpntrel
【機能】
点列リストから点を削除し、テンポラリプレーンの点列形状を消去する。
【呼出し形式】
int rptpntrel(int cmdlvl, int reltyp)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5) reltyp -1 : 最後に追加した点を削除する。
-2 : 全ての点を削除する。
【返り値】
登録されている点列の数。 (-2, -1, 0 - n)
+n : 登録されている点数。
-1 : 引数が不正。
-2 : 削除すべき点がない。
6.7.7 点列リストから点を削除
6.7.8 登録されている点数を取得
6.7 ハイライトリスト
【関数名】
rptpntnum
【機能】
点列リストに登録されている点数を得る。
【呼出し形式】
int rptpntnum(int cmdlvl)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5)
【返り値】
登録されている点列の数。 (-1, 0 - n)
+n : 登録されている点数。
-1 : 引数が不正。
【関数名】
rptpntptr
【機能】
点列リストのポインタを得る。
【呼出し形式】
DPOINT *rptpntptr(int cmdlvl)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5)
【返り値】
点列リストのポインター。
NULL : 引数が不正。
【関数名】
rptpntcla
【機能】
点列リストの点数を 0 にする。
点列リストの内容は変化しない。
画面は変化しない。
6.7.9 点列リストのポイントを取得
6.7.10 点列リストの点数を 0 にする
第6章 メッセージ・図形入出力モジュール
【呼出し形式】
void rptpntcla(int cmdlvl)
【入力引数】
cmdlvl コマンドレベル。(1, 3, 4, 5)