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; }