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