マウスボタン割当て

HITrackballは内部でDVKeyMouseCallbackを継承します. SetKeyMouseによりDVKeyMouseにコールバック登録すると, マウスカーソルが移動するたびにOnMouseMoveイベントハンドラが呼び出され,トラックボールの内部状態が更新されます. マウス移動時のボタン状態に応じてトラックボールのどの状態が変化するかはある程度カスタマイズが可能です. 以下に関連する機能を示します.

HITrackballDesc

int

rotMask

回転操作のボタン割当て

int

zoomMask

ズーム操作のボタン割当て

int

trnMask

平行移動操作のボタン割当て

HITrackballIf

void

SetRotMask(int mask)

void

SetZoomMask(int mask)

void

SetTrnMask(int mask)

rotMask, zoomMask, trnMaskはそれぞれ 回転操作,ズーム操作,平行移動操作に割り当てたいマウスボタンに対応する OnMouseMovebutton引数の値を表します. 以下に対応関係をまとめます.

マウス移動方向

button

変化量

左右

rotMask

経度

上下

rotMask

緯度

上下

zoomMask

距離

左右

trnMask

注視点x座標

上下

trnMask

注視点y座標

デフォルトのボタン割当ては以下の通りです.

rotMask

LBUTTON

zoomMask

RBUTTON

trnMask

LBUTTON + ALT

したがって,左ボタンドラッグで回転操作,右ボタンドラッグでズーム操作,[ALT]キー+左ドラッグで平行移動となります.

なお,現状ではマウスの移動方向との対応をカスタマイズすることはできません. また,マウスホイールの回転とトラックボールを連動させる機能も未実装です.