Sds draggen
- 構文
- int sds_draggen (const sds_name ss, const char *prompt, int cursor, int (*myfunction)(sds_point point, sds_matrix mt), sds_point p);
- 機能
- 選択セットをの表示を更新する。
- ユーザが選択セットをドラッグするようにうながす。
- 引数
-
- ss : 選択セットの名前
- *prompt : オプション。使用しない場合は null を指定。
- cursor : カーソルのタイプ。(下表参照)
- (*myfunction) : 機能へのポインタ。マウスが位置を変えるときに呼ばれる。
- (point と mt) : UCS座標によるマウスの位置と4x4変換マトリクス。選択セットのドラッギング表示をアップデートするのに使用される。
- p : 移動先の点
- 戻り値
- 成功なら RTNORM、失敗なら RTERROR、ユーザが機能を取り消すか、myfunction がRTERRORを返した場合は RTCAN。
| カーソルタイプ | |
|---|---|
| カーソル | 意味 |
| 0 | デフォルトカーソルを表示 |
| 1 | カーソル非表示 |
| 2 | 図形選択ボックスカーソル |
- サンプル
// draghelper は別でなんかしら定義しとく。
static int sample_sds_draggen(struct sds_resbuf *rb){
sds_name ss;
sds_name ent;
int ret = RTERROR;
if( sds_entsel( "\nSelect entity to draw: ", ent, basePoint ) == RTNORM ){
if (RTNORM == sds_ssadd(ent, NULL, ss)){
sds_point end;
ret = sds_draggen(ss, "\n新しい点を指示", 0, draghelper, end);
if(ret == RTNORM)
sds_printf( "\n%f %f %f", end[0], end[1], end[2] );
}
}
return 1;
}