jp.co.melco.preserv
クラス psvAbstractAppLineProcessor

java.lang.Object
  拡張jp.co.melco.preserv.psvAbstractAppLineProcessor
すべての実装インタフェース:
psvAppLineProcessor
直系の既知のサブクラス:
psvDefaultAppLineProcessor

public abstract class psvAbstractAppLineProcessor
extends java.lang.Object
implements psvAppLineProcessor

psvAppLineProcessorの抽象実装クラスです。

導入されたバージョン:
V6.0
作成者:
PreSerV Development Team

フィールドの概要
protected static int E270
          線分終了点から270度の方向にマージンを取った点のインデックスを表します。
protected static int E90
          線分終了点から90度の方向にマージンを取った点のインデックスを表します。
protected static int S270
          線分開始点から270度の方向にマージンを取った点のインデックスを表します。
protected static int S90
          線分開始点から90度の方向にマージンを取った点のインデックスを表します。
 
コンストラクタの概要
psvAbstractAppLineProcessor()
           
 
メソッドの概要
protected static psvCoordinate calculateAwayPoint(psvCoordinate pointA, psvCoordinate pointB, double distance)
          pointAからpointBへの向きで、pointBからdisctance離れた点を計算して返します。
protected static double calculateIntersectsX(double dx, double dy, double dxNext, double dyNext, psvCoordinate point, psvCoordinate nextPoint)
          線分1の増分dx,dyと線分2の変化率dxNext,dyNext、線分1上の点point、 線分2上の点nextPointから、線分1と線分2の交点x座標を返します。
protected static double calculateIntersectsY(double dx, double dy, double dxNext, double dyNext, psvCoordinate point, psvCoordinate nextPoint)
          線分1の増分dx,dyと線分2の変化率dxNext,dyNext、線分1上の点point、 線分2上の点nextPointから、線分1と線分2の交点y座標を返します。
protected  void drawDcDividedLine(psvScreen screen, psvCoordinate[] lineCoordinates, float[] dcIntervals)
          screenに対して、dcIntervalsで指定したインターバルで破線等を描画します.
 void drawDcDividedLine(psvScreen screen, psvCoordinate[] lineCoordinates, int[] dcIntervals)
          screenに対して、dcIntervalsで指定したインターバルで破線等を描画します。
 void drawWcDividedLine(psvScreen screen, psvCoordinate[] lineCoordinates, double[] wcIntervals)
          screenに対して、wcIntervalsで指定したインターバルで破線等を描画します。
protected  psvCoordinate[] getDcDrawRangeCoordinates(psvAppLineData appLineData)
          DC描画の範囲座標をappLineDataから取得して返します
protected static double getDistance(psvCoordinate coordinate1, psvCoordinate coordinate2, psvCoordinate coordinate)
          coordinate1とcoordinate2が表す線分とcoordinateとの距離を返します。
protected static double getLength(psvCoordinate coordinate1, psvCoordinate coordinate2)
          coordinate1からcoordinate2までの距離を計算して返します。
protected static double getVectorAngle(psvCoordinate startPoint, psvCoordinate endPoint)
          startPointからendPointへのベクトルとして、角度を計算して返します.
protected static double getVectorAngle(psvCoordinate startPoint, psvCoordinate endPoint, psvScreen screen)
          startPointからendPointへのベクトルとして、角度を計算して返します.
protected static boolean isIntersects(double dx, double dy, psvCoordinate point, double dxNext, double dyNext, psvCoordinate nextPoint)
          線分1の増分dx,dyと線分2の変化率dxNext,dyNext、線分1上の点point、 線分2上の点nextPointから、線分1と線分2が交わるかを返します。
protected static boolean isNearyEqual(double value1, double value2)
          値1と値2がナノ単位の誤差で等しいかを返します。
protected static boolean isPolygonInner(psvCoordinate[] polygonCoordinates, psvRegion range)
          ポリゴン領域を表すpolygonCoordinatesにrangeの一部が含まれるかを返します。
 void storeDcDrawRangeCoordinates(psvCoordinate[] dcDrawRangeCoordinates, psvAppLineData appLineData)
          DC描画の範囲座標をappLineDataに保持します
static psvCoordinate[] toMarginedCoordinates(psvCoordinate[] lineCoordinates, double wcMargin)
          線分を表すpointsにwcMarginで指定したマージンの分幅があるポリゴンの構成点を計算して返します。
protected static psvCoordinate[] toMarginedLineCoordinates(psvCoordinate[][] rectCoordinates)
          推奨されていません。 線分同士の交点を算出するロジックが含まれ、傾きの似た線分同士は領域制限が無い為、算出される領域は保証されません。
protected static psvCoordinate[] toMarginedLineCoordinates(psvCoordinate[][] rectCoordinates, double wcLimit90, double wcLimit270)
          toMarginRectsで計算された矩形の配列から連続する矩形同士の交点を計算し、外周座標配列として返します。
protected static psvCoordinate[][] toMarginedRects(psvCoordinate[] lineCoordinates, double wcMargin90, double wcMargin270)
          線分の構成点lineCoordinatesから、wcMargin90,wcMargin270幅を取った矩形の座標配列を返します.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース jp.co.melco.preserv.psvAppLineProcessor から継承したメソッド
createAWTShape, distance, draw, getDrawRangeCoordinates, getRehashBoundingBox, isInner
 

フィールドの詳細

S90

protected static final int S90
線分開始点から90度の方向にマージンを取った点のインデックスを表します。

関連項目:
定数フィールド値

E90

protected static final int E90
線分終了点から90度の方向にマージンを取った点のインデックスを表します。

関連項目:
定数フィールド値

S270

protected static final int S270
線分開始点から270度の方向にマージンを取った点のインデックスを表します。

関連項目:
定数フィールド値

E270

protected static final int E270
線分終了点から270度の方向にマージンを取った点のインデックスを表します。

関連項目:
定数フィールド値
コンストラクタの詳細

psvAbstractAppLineProcessor

public psvAbstractAppLineProcessor()
メソッドの詳細

toMarginedCoordinates

public static psvCoordinate[] toMarginedCoordinates(psvCoordinate[] lineCoordinates,
                                                    double wcMargin)
線分を表すpointsにwcMarginで指定したマージンの分幅があるポリゴンの構成点を計算して返します。

パラメータ:
lineCoordinates - 線分の構成点
wcMargin - WC座標での幅
戻り値:
pointsにマージン幅を加えたポリゴンの構成点

drawWcDividedLine

public void drawWcDividedLine(psvScreen screen,
                              psvCoordinate[] lineCoordinates,
                              double[] wcIntervals)
screenに対して、wcIntervalsで指定したインターバルで破線等を描画します。

パラメータ:
screen - 描画対象スクリーン
lineCoordinates - 線分の構成点
wcIntervals - 線分と空白の描画間隔.
線分、空白を順にメートル単位で指定します。配列長は偶数のみです。

drawDcDividedLine

public void drawDcDividedLine(psvScreen screen,
                              psvCoordinate[] lineCoordinates,
                              int[] dcIntervals)
screenに対して、dcIntervalsで指定したインターバルで破線等を描画します。

パラメータ:
screen - 描画対象スクリーン
lineCoordinates - 線分の構成点
dcIntervals - 線分と空白の描画間隔.
線分、空白を順にDC座標単位で指定します。配列長は偶数のみです。

drawDcDividedLine

protected void drawDcDividedLine(psvScreen screen,
                                 psvCoordinate[] lineCoordinates,
                                 float[] dcIntervals)
screenに対して、dcIntervalsで指定したインターバルで破線等を描画します.

パラメータ:
screen - 描画対象スクリーン
lineCoordinates - 線分の構成点
dcIntervals - 線分と空白の描画間隔.
線分、空白を順にDC座標単位で指定します。配列長は偶数のみです。

toMarginedRects

protected static psvCoordinate[][] toMarginedRects(psvCoordinate[] lineCoordinates,
                                                   double wcMargin90,
                                                   double wcMargin270)
線分の構成点lineCoordinatesから、wcMargin90,wcMargin270幅を取った矩形の座標配列を返します.
線分開始点lineCoordinates[n]から線分終了点lineCoordinates[n+1]までを一つのベクトルとし、 ベクトルの角度に+90度した方向にwcMargin90、+270度した方向にwcMargin270で指定したマージンを取ります.
戻り値の配列は、psvCoordinate[lineCoordinates.length - 1][index]となり、 indexはそれぞれS90、E90、S270、E270の何れかの値を取ります。

パラメータ:
lineCoordinates - 線分の構成点
wcMargin90 - ベクトル角度+90度側のマージン
wcMargin270 - ベクトル角度+270度側のマージン
戻り値:
lineCoordinatesにマージンを取った矩形の座標配列

toMarginedLineCoordinates

protected static psvCoordinate[] toMarginedLineCoordinates(psvCoordinate[][] rectCoordinates)
推奨されていません。 線分同士の交点を算出するロジックが含まれ、傾きの似た線分同士は領域制限が無い為、算出される領域は保証されません。

toMarginRectsで計算された矩形の配列から連続する矩形同士の交点を計算し、外周座標配列として返します。

パラメータ:
rectCoordinates - toMarginRectsで計算された矩形座標配列
戻り値:
外周座標配列
関連項目:
toMarginedRects(psvCoordinate[], double, double), toMarginedLineCoordinates(psvCoordinate[][], double, double)

toMarginedLineCoordinates

protected static psvCoordinate[] toMarginedLineCoordinates(psvCoordinate[][] rectCoordinates,
                                                           double wcLimit90,
                                                           double wcLimit270)
toMarginRectsで計算された矩形の配列から連続する矩形同士の交点を計算し、外周座標配列として返します。

パラメータ:
rectCoordinates - toMarginRectsで計算された矩形座標配列
wcLimit90 - 90度側のマージン制限(0以上の場合、制限として有効)
wcLimit270 - 270度側のマージン制限(0以上の場合、制限として有効)
戻り値:
外周座標配列
関連項目:
toMarginedRects(psvCoordinate[], double, double)

calculateAwayPoint

protected static psvCoordinate calculateAwayPoint(psvCoordinate pointA,
                                                  psvCoordinate pointB,
                                                  double distance)
pointAからpointBへの向きで、pointBからdisctance離れた点を計算して返します。

パラメータ:
pointA - 点A
pointB - 点B
distance - pointBからの距離(メートル)
戻り値:
計算された点

isNearyEqual

protected static boolean isNearyEqual(double value1,
                                      double value2)
値1と値2がナノ単位の誤差で等しいかを返します。

パラメータ:
value1 - 値1
value2 - 値2
戻り値:
true:誤差以内で等しい false:不等

calculateIntersectsX

protected static double calculateIntersectsX(double dx,
                                             double dy,
                                             double dxNext,
                                             double dyNext,
                                             psvCoordinate point,
                                             psvCoordinate nextPoint)
線分1の増分dx,dyと線分2の変化率dxNext,dyNext、線分1上の点point、 線分2上の点nextPointから、線分1と線分2の交点x座標を返します。

パラメータ:
dx - 線分1のx増分
dy - 線分1のy増分
dxNext - 線分2のx増分
dyNext - 線分2のy増分
point - 線分1上の点
nextPoint - 線分2上の点
戻り値:
線分1と線分2の交点x座標

calculateIntersectsY

protected static double calculateIntersectsY(double dx,
                                             double dy,
                                             double dxNext,
                                             double dyNext,
                                             psvCoordinate point,
                                             psvCoordinate nextPoint)
線分1の増分dx,dyと線分2の変化率dxNext,dyNext、線分1上の点point、 線分2上の点nextPointから、線分1と線分2の交点y座標を返します。

パラメータ:
dx - 線分1のx増分
dy - 線分1のy増分
dxNext - 線分2のx増分
dyNext - 線分2のy増分
point - 線分1上の点
nextPoint - 線分2上の点
戻り値:
線分1と線分2の交点y座標

isIntersects

protected static boolean isIntersects(double dx,
                                      double dy,
                                      psvCoordinate point,
                                      double dxNext,
                                      double dyNext,
                                      psvCoordinate nextPoint)
線分1の増分dx,dyと線分2の変化率dxNext,dyNext、線分1上の点point、 線分2上の点nextPointから、線分1と線分2が交わるかを返します。

パラメータ:
dx - 線分1のx増分
dy - 線分1のy増分
dxNext - 線分2のx増分
dyNext - 線分2のy増分
point - 線分1上の点
nextPoint - 線分2上の点
戻り値:
true:線分1と線分2が交わる false:交わらない

isPolygonInner

protected static boolean isPolygonInner(psvCoordinate[] polygonCoordinates,
                                        psvRegion range)
ポリゴン領域を表すpolygonCoordinatesにrangeの一部が含まれるかを返します。

パラメータ:
polygonCoordinates - ポリゴン領域座標
range - 領域
戻り値:
true:polygonCoordinatesにrangeの一部が含まれる false:含まれない

getVectorAngle

protected static double getVectorAngle(psvCoordinate startPoint,
                                       psvCoordinate endPoint,
                                       psvScreen screen)
startPointからendPointへのベクトルとして、角度を計算して返します.
描画スクリーンの回転角度も加えられます.

パラメータ:
startPoint - 開始点
endPoint - 終了点
screen - 描画スクリーン
戻り値:
計算された角度

getVectorAngle

protected static double getVectorAngle(psvCoordinate startPoint,
                                       psvCoordinate endPoint)
startPointからendPointへのベクトルとして、角度を計算して返します.

パラメータ:
startPoint - 開始点
endPoint - 終了点
戻り値:
計算された角度

getLength

protected static double getLength(psvCoordinate coordinate1,
                                  psvCoordinate coordinate2)
coordinate1からcoordinate2までの距離を計算して返します。

パラメータ:
coordinate1 - 座標1
coordinate2 - 座標2
戻り値:
両座標間の距離

getDistance

protected static double getDistance(psvCoordinate coordinate1,
                                    psvCoordinate coordinate2,
                                    psvCoordinate coordinate)
coordinate1とcoordinate2が表す線分とcoordinateとの距離を返します。

パラメータ:
coordinate1 - 線分の端点1
coordinate2 - 線分の端点2
coordinate - 点
戻り値:
線分と点との距離
関連項目:
Line2D.ptSegDist(double, double, double, double, double, double)

getDcDrawRangeCoordinates

protected psvCoordinate[] getDcDrawRangeCoordinates(psvAppLineData appLineData)
DC描画の範囲座標をappLineDataから取得して返します

パラメータ:
appLineData - DC描画の範囲座標を保持しているアプリケーションライン
戻り値:
appLineDataに保持されたDC描画の範囲座標

storeDcDrawRangeCoordinates

public void storeDcDrawRangeCoordinates(psvCoordinate[] dcDrawRangeCoordinates,
                                        psvAppLineData appLineData)
DC描画の範囲座標をappLineDataに保持します

パラメータ:
dcDrawRangeCoordinates - DC描画の範囲座標
appLineData - DC描画の範囲座標を保持するアプリケーションライン