このバージョンのヘルプはこれ以降更新されません。最新のヘルプは https://www.jmp.com/support/help/ja/15.2   からご覧いただけます。


マウスの動作に対する処理は、2つのフィードバック関数によってサポートされています。Patch Editor.jslサンプルスクリプトでは、これらの関数を使って、点をドラッグ&ドロップする例を示しています。そのスクリプトの一部、マウス動作に対するコールバック関数について、以下に説明します。スクリプトを実行するには、JMPの「Sample Scripts」フォルダの「Scene3D」フォルダにある「PatchEditor.jsl」を開きます。
topClick2d = Function( {x, y, m, k},
	dragfunc( x, boxhigh - y, m, 1, 2 );
	1;
);
frontClick2d = Function( {x, y, m, k},
	dragfunc( x, boxhigh - y, m, 1, 3 );
	1;
);
rightClick2d = Function( {x, y, m, k},
	dragfunc( x, boxhigh - y, m, 2, 3 );
	1;
);
 
Click3d = Function( {x, y, m, k, hitlist},
	If( m == 1,
		If( N Items( hitlist ) > 0,
			CurrentPoint = hitlist[1][3], /* リスト内の最初の行列が最も近接している。行列の3番目の要素はID */
			CurrentPoint = 0
		);
		makePatch();
	);
	0; /* 0を戻すと、最初のマウスの押下時だけ処理。ドラッグ中も処理する場合は1を戻すようにする(その場合、マウスを放すと処理が終了。天体球は表示されない)。*/
);
 
/* 3つのClick2d関数から共通して呼び出される関数 */
dragfunc = function( { x, y, m, ix, iy}, /* ixとiyは、座標を含む行列において、X、Y、およびZの列を示すためのインデックス */
	If( CurrentPoint > 0,
		points[CurrentPoint, ix] = (x / boxwide) * (orthoright - ortholeft) + ortholeft;
		points[CurrentPoint, iy] = (y / boxhigh) * (orthotop - orthobottom) + orthobottom;
		makepatch();
	)
);
XYはマウスの座標です。
Mは、マウスとボタンの状態を示します。M=0は、マウスが放されていることを表します。M=1は、ボタンが押されたことを表します。M=2は、ボタンが押されたままマウスが移動していることを表します。M=3は、ボタンが放されたことを表します。
Kは、Shift、Alt、Ctrlの各キーに関連付けられます。K=1はShiftキー、K=2はCtrl(command)キー、K=3はAlt(Option)キーを表します。
3-D関数も同様の方法で呼び出されます。引数は、XYMKhitlistで、hitlistは行列のリストです。
[znear, zfar, id1, id2, id3, ...]
znearは、オブジェクトの近い頂点までの、カメラからのZ方向の距離、zfarは、オブジェクトの遠い頂点までの、カメラからのZ方向の距離です。行列は、znearzfarの中間ポイントを基準にして近い方から遠い方へと並べ替えられます。リスト内のidは、表示リストに格納したプッシュ名(pushname)、ロード名(loadname)、およびポップ名(popname)の値です。