« C.O.F.F.E.E.プラグインでダイアログを使うには…復習 | トップページ | レンダリングできる「軸」が必要になったので作ってみた。 »

以前にも取り上げた、SendModelingCommand()でスプラインのポイントを追加する

SendModelingCommand()でスプラインのポイントを追加するには、どうするんでしたっけ?
BaseContainerにセグメント番号とセグメント上の位置(%)だったよね…

VariableChangedを使っても良いんだけど、スプラインの最後尾に追加されるんだよね。追加した後、マッピングして所定の位置に移動しなければいけなく面倒なので…
有るものは有効に使いましょう…という事で…

/*
SendModelingCommand()スプラインにポイントを追加
2009.2.9
*/


main(doc , op){
  if(!instanceof(op , SplineObject))return;//スプライン以外は中止。
  //セグメントと追加位置の指定。
  var ct = new(BaseContainer);//指定するためのコンテナ
  ct->SetData(MDATA_SPLINE_ADDPOINTSEGMENT , 0);//セグメント番号。
  ct->SetData(MDATA_SPLINE_ADDPOINTPOSITION , 0.5);//ポイントを追加する位置。

  //ポイントの追加
  SendModelingCommand(MCOMMAND_SPLINE_ADDPOINT , doc , op , ct , MODIFY_POINTSELECTION);
}

こんな感じだったね。

これを実行すると、ポイントを追加してくれるわけだが、ポイントの選択状態はどうなるんだっけ?これが今日の確認事項の一つ。

なるほど、追加されたポイントは選択された状態だね。

Add_01 Add_02

では、次の確認事項。
セグメント上の位置0.0又は1.0の場合、必ず既存のポイントの後ろに追加されるのか?

では、追加位置を0.0、1.0を試してみよう。

Add_03

Add_04

Add_05

なるほど、0.0の場合でも既存のポイントの後ろに追加されるんですね。

|

« C.O.F.F.E.E.プラグインでダイアログを使うには…復習 | トップページ | レンダリングできる「軸」が必要になったので作ってみた。 »