メソッド
|
説明
|
isMouseListener
|
boolean isMouseListener(MouseListener listener)
ListenerPanelにMouseListenerが設定されているかの問い合わせ。
|
isMouseMotionListener
|
public boolean isMouseMotionListener(MouseMotionListener listener)
ListenerPanelにMouseMotionListenerが設定されているかの問い合わせ。
|
activateListener
|
private void activateListener(boolean activate)
MouseListener, MouseMotionListenerをListenerPanelに設定する/解除する。
|
addConnection
Listener |
public void addConnectionListener(ConnectionListener listener)
ConnectionLSオブジェクトが図形を選択したときにイベントを受け取るために、ConnectionListenerをインプリメントしたオブジェクトを登録する。 |
removeConnection
Listener |
public void removeConnectionListener(ConnectionListener listener)
上記登録したオブジェクトをlistenerListから削除する。 |
removeConnection
Listener |
public void removeConnectionListener()
listenerListからすべてのオブジェクトを削除する。 |
fireEvent |
public void fireEvent(ConnectionEvent event)
ConnectionLSオブジェクトが図形を選択したときに、listenerListに登録されているオブジェクトに通知する。 |
mousePressed
|
public void mousePressed(MouseEvent e)
drawMouseHitPTメソッドを呼んで戻り値をmouseHitPointにセットする。
startPointを設定する。
|
mouseDragged
|
public void mouseDragged(MouseEvent e)
drawMouseHitPTメソッドを呼んで戻り値をmouseHitPointにセットする。
endPointを設定する。
|
mouseReleased
|
public void mouseReleased(MouseEvent e)
fireEventメソッドでマウスの現在点または
mouseHitPointの点を
ConnectionListenerをインプリメントしたオブジェクトへ送る。
|
mouseClicked
|
public void mouseClicked(MouseEvent e)
fireEventメソッドでマウスの現在点または
mouseHitPointの点をConnectionListenerを
インプリメントしたオブジェクトへ送る。
|
mouseEntered
|
public void mouseEntered(MouseEvent e)
なにもしない
|
mouseExited
|
public void mouseExited(MouseEvent e)
なにもしない
|
mouseMoved
|
public void mouseMoved(MouseEvent e)
なにもしない
|
drawMouseHitPT
|
public CurvePT drawMouseHitPT(int ctrl, Point2D mousePT, Vector2D vec, ShapeContainer movingContainer)
引数:
ctrl - Shift/Ctrl/Alt keyキーを押しながらマウスドラッグすると, 1/2/3の値が渡される。
mousePT - マウス位置。
vec - マウス位置から接続点を探す方向。この引数がnullならばマウス位置から図形境界への最短点を探す。
boundaryTol - mousePTが境界上にありと見なすトレランス
pointTol - mousePTが図形の特徴点に一致すると見なすトレランス
movingContainer - この図形は接続点探索の対象としない。
|
drawMouseHitPT |
private CurvePT drawMouseHitPT(Point2D mousePT, Vector2D vec, double boundaryTol,
double pointTol, ShapeContainer[] exculudingContainers)
引数:
mousePT - マウス位置。
vec - マウス位置から接続点を探す方向。この引数がnullならばマウス位置から図形境界への最短点を探す。
boundaryTol - mousePTが境界上にありと見なすトレランス
pointTol - mousePTが図形の特徴点に一致すると見なすトレランス
movingContainer - この図形は接続点探索の対象としない。
:
図形作成の場合、作成されている図形は除外される。また図形を移動/リサイズする場合、
その対象となっている図形は除外される、など。
戻り値:
もし接続点が図形境界上に見つかったらその点をCurvePTオブジェクトで返す。
見つからなければnullを返す、
処理:
∙ MousePsotionLSの
getAllMousePositionInfoメソッドを呼ぶ。
マウスが十分に図形境界に近ければ、
MousePositionInfoオブジェクトが戻る。
∙ MousePositionInfoオブジェクトから
マウスに近い図形を取り出しgetHitPTメソッドを呼んで接続点を取得する。
∙ 接続点が見つかればDrawShapeUtilオブジェクトの
drawTempShapeメソッドで
マーク(
または)を描画する。
どちらのマークを描くかは、getCloseCharacteristicPointメソッド
の戻り値で判断する。
|
getHitPT |
private CurvePT getHitPT(Point2D mousePT, Vector2D vec, double boundaryTol,
ShapeContainer target)
引数:
mousePT - マウス位置。
vec - マウス位置から接続点を探す方向。この引数がnullならばマウス位置から図形境界への最短点を探す。
boundaryTol - mousePTが境界上にありと見なすトレランス
target - 接続点探索の対象図形。
戻り値:
もし接続点が図形境界上に見つかったらその点をCurvePTオブジェクトで返す。
見つからなければnullを返す。
処理:
∙ もしvecがnullでなく0ベクトルでもないならば、
Curve2DUtil.getProjectionLinesメソッド
でmousePTのvec方向投影点をtarget境界上のに求める。投影点がないときはnullを返す。
∙ もしvecがnullか0ベクトルならば、
Curve2DUtil.getShortestLineメソッドで
mousePTからtarget境界上の最短点を計算する最短点は必ず存在する。
|
getCloseCharacteristic Point |
public double getCloseCharacteristicPoint(ShapeContainer container, double t, double pointTol)
引数:
container - 対象図形
t - 対象図形境界上の点を表す曲線パラメータ値。
pointTol - mousePTが図形の特徴点に一致すると見なすトレランス
戻り値:
tで表される点が、その図形の特徴点に近ければ、特徴点の曲線パラメータ値を返す。近くなければ-1.0を返す。
処理:
Curve2D.getCharacteristicPointsメソッドで
境界の特徴点を取得。tで表される点と特徴点との距離が、
DrawParameters.ConnectionSmallTolerance以下ならば、
その特徴点の曲線パラメータを返す。
|
drawMark |
private void drawMark(Point2D connectionPT, int type)
type=0ならばマークを、
type=1ならばマークを
connectionPTの位置に表示する。描画メソッドはDrawPanelUtil.drawTempShapel。
|