jp.go.ipa.jgcl
クラス JgclGeometrySchemaFunction

java.lang.Object
  |
  +--jp.go.ipa.jgcl.JgclGeometrySchemaFunction

public class JgclGeometrySchemaFunction
extends java.lang.Object

ISO 10303-42 4.6 geometry_schema function definitions の一部を実装したクラス。

ISO 10303-42:1994(E) の 95 ページからを参照のこと。

バージョン:
$Revision: 1.11 $, $Date: 2000/04/26 09:38:56 $
作成者:
Information-technology Promotion Agency, Japan

フィールドの概要
static JgclVector3D defaultAxis3D
          3次元 : axis が指定されないときのデフォルト値
static JgclVector2D defaultRefDirection2D
          2次元 : refDirection が指定されないときのデフォルト値
static JgclVector3D defaultRefDirection3D
          3次元 : refDirection が指定されないときのデフォルト値
 
メソッドの概要
static JgclVector2D[] baseAxis(JgclVector2D axis1, JgclVector2D axis2)
          ISO 10303-42 4.6.6 項 (その1) : 与えられた二つのベクトルから正規化された2次元直交軸を求める。
static JgclVector3D[] baseAxis(JgclVector3D axis1, JgclVector3D axis2, JgclVector3D axis3)
          ISO 10303-42 4.6.6 項 (その2) : 与えられた三つのベクトルから正規化された3次元直交軸を求める。
static JgclVector2D[] build2Axes(JgclVector2D refDirection)
          ISO 10303-42 4.6.7 項 : 与えられたベクトルから、局所座標系の X/Y 軸を表す単位ベクトルを求める。
static JgclVector3D[] buildAxes(JgclVector3D axis, JgclVector3D refDirection)
          ISO 10303-42 4.6.8 項 : 与えられたベクトルから、局所座標系の X/Y/Z 軸を表す単位ベクトルを求める。
static JgclVector3D firstProjAxis(JgclVector3D zAxis, JgclVector3D arg)
          ISO 10303-42 4.6.10 項 : 与えられたベクトルをある平面に投影したベクトルを求める。
static JgclVector2D orthogonalComplement(JgclVector2D vec)
          ISO 10303-42 4.6.9 項 : 与えられたベクトルを左回り (反時計回り) に 90°回転させたベクトルを求める。
static JgclVector3D secondProjAxis(JgclVector3D zAxis, JgclVector3D xAxis, JgclVector3D arg)
          ISO 10303-42 4.6.11 項 : 与えられたベクトルをある二つの平面に投影したベクトルを求める。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

defaultRefDirection2D

public static final JgclVector2D defaultRefDirection2D
2次元 : refDirection が指定されないときのデフォルト値

defaultAxis3D

public static final JgclVector3D defaultAxis3D
3次元 : axis が指定されないときのデフォルト値

defaultRefDirection3D

public static final JgclVector3D defaultRefDirection3D
3次元 : refDirection が指定されないときのデフォルト値
メソッドの詳細

baseAxis

public static JgclVector2D[] baseAxis(JgclVector2D axis1,
                                      JgclVector2D axis2)
ISO 10303-42 4.6.6 項 (その1) : 与えられた二つのベクトルから正規化された2次元直交軸を求める。

axis1, axis2 を元に直交する二つの単位ベクトル U1, U2 を求める。 結果として得られる配列の要素数は 2 で、 最初の要素が第一軸を表す単位ベクトル U1、 二番目の要素が第一軸に直交する第二軸を表す単位ベクトル U2 を表す。

axis1 が null でなければ、 axis1 を単位化したベクトルを U1 とし、 U1 を反時計回りに 90°回転させたベクトルを U2 とする。 このときに axis2 が null でなく、 axis2 と U2 の内積の値が負であれば、U2 を 180°回転させる。

axis1 が null であり、かつ axis2 が null でなければ、 axis2 を単位化したベクトルを U2 とし、 U2 を時計回りに 90°回転させたベクトルを U1 とする。

axis1, axis2 がともに null であれば、 グローバルな X 軸方向の単位ベクトルを U1、 グローバルな Y 軸方向の単位ベクトルを U2 とする。

なお、上記で明らかなように、 このメソッドが返す直交軸は、左手系となる場合がある。

パラメータ:
axis1 - 第一軸の方向を規定する2次元ベクトル
axis2 - 第二軸の方向を規定する2次元ベクトル
戻り値:
2次元の直交軸の配列
関連項目:
orthogonalComplement(JgclVector2D)

baseAxis

public static JgclVector3D[] baseAxis(JgclVector3D axis1,
                                      JgclVector3D axis2,
                                      JgclVector3D axis3)
ISO 10303-42 4.6.6 項 (その2) : 与えられた三つのベクトルから正規化された3次元直交軸を求める。

axis1, axis2, axis3 を元に互いに直交する三つの単位ベクトル U1, U2, U3 を求める。 結果として得られる配列の要素数は 3 で、 最初の要素が第一軸を表す単位ベクトル U1、 二番目の要素が第二軸を表す単位ベクトル U2、 最後の要素が第三軸を表す単位ベクトル U3 を表す。

まず axis3 が null でなければ、 axis3 を単位化したベクトルを U3 とする。 axis3 が null であれば、 グローバルな Z 軸方向の単位ベクトルを U3 とする。

次に U1 を以下の処理で決定する。

 	U1 = firstProjAxis(U3, axis1)
 

最後に U2 を以下の処理で決定する。

 	U2 = secondProjAxis(U3, U1, axis2)
 

なお、このメソッド内では、 firstProjAxis(JgclVector3D, JgclVector3D) および secondProjAxis(JgclVector3D, JgclVector3D, JgclVector3D) で発生する例外を catch していない。

なお、上記で明らかなように、 このメソッドが返す直交軸は、左手系となる場合がある。

パラメータ:
axis1 - 第一軸の方向を規定する3次元ベクトル
axis2 - 第二軸の方向を規定する3次元ベクトル
axis3 - 第三軸の方向を規定する3次元ベクトル
戻り値:
3次元の直交軸の配列
関連項目:
firstProjAxis(JgclVector3D, JgclVector3D), secondProjAxis(JgclVector3D, JgclVector3D, JgclVector3D)

build2Axes

public static JgclVector2D[] build2Axes(JgclVector2D refDirection)
ISO 10303-42 4.6.7 項 : 与えられたベクトルから、局所座標系の X/Y 軸を表す単位ベクトルを求める。

結果として得られる配列の要素数は 2 で、 最初の要素が局所座標系の X 軸を表す単位ベクトル、 二番目の要素が局所座標系の Y 軸を表す単位ベクトルを示す。

refDirection が null でなければ、 refDirection を単位化したベクトルを局所座標系の X 軸とする。 refDirection が null であれば、 グローバルな X 軸方向の単位ベクトルを局所座標系の X 軸とする。

局所座標系の Y 軸を示す単位ベクトルは、 常に局所座標系の X 軸を示す単位ベクトルを 反時計回りに 90°回転させたものである。

パラメータ:
refDirection - 局所座標系の X 軸を表す2次元ベクトル
戻り値:
局所座標系の X/Y 軸を表す単位ベクトルの配列

buildAxes

public static JgclVector3D[] buildAxes(JgclVector3D axis,
                                       JgclVector3D refDirection)
ISO 10303-42 4.6.8 項 : 与えられたベクトルから、局所座標系の X/Y/Z 軸を表す単位ベクトルを求める。

結果として得られる配列の要素数は 3 で、 最初の要素が局所座標系の X 軸を表す単位ベクトル U1、 二番目の要素が局所座標系の Y 軸を表す単位ベクトル U2、 最後の要素が局所座標系の Z 軸を表す単位ベクトル U3 を示す。

まず、axis が null でなければ、 axis を単位化したベクトルを U3 とする。 axis が null であれば、 グローバルな Z 軸方向の単位ベクトルを U3 とする。

次に、U1 を以下の処理で決定する。

 	U1 = firstProjAxis(U3, refDirection)
 

最後に U3 と U1 の外積を単位化したベクトルを U2 とする。

なお、このメソッド内では、 firstProjAxis(JgclVector3D, JgclVector3D) で発生する例外を catch していない。

パラメータ:
axis - Z 軸を規定する3次元ベクトル
refDirection - X 軸を規定する2次元ベクトル
戻り値:
X/Y/Z 軸を表す単位ベクトルの配列
関連項目:
firstProjAxis(JgclVector3D, JgclVector3D)

orthogonalComplement

public static JgclVector2D orthogonalComplement(JgclVector2D vec)
ISO 10303-42 4.6.9 項 : 与えられたベクトルを左回り (反時計回り) に 90°回転させたベクトルを求める。
パラメータ:
vec - ベクトル
戻り値:
左回り (反時計回り) に 90°回転させたベクトル

firstProjAxis

public static JgclVector3D firstProjAxis(JgclVector3D zAxis,
                                         JgclVector3D arg)
ISO 10303-42 4.6.10 項 : 与えられたベクトルをある平面に投影したベクトルを求める。

arg を、zAxis を法線方向とする平面に投影&単位化したベクトルを返す。

zAxis が null の場合には JgclFatal の例外を発生する。

zAxis を単位化したベクトルと arg の外積ベクトルの大きさが、 現在設定されている演算条件の距離の許容誤差よりも小さい場合には JgclFatal の例外を発生する。

arg が null であれば、 このメソッドの内部で zAxis と同一方向ではないベクトルを選択し、 それを arg として演算を進める。

パラメータ:
zAxis - 平面の法線方向を示すベクトル
arg - 投影されるベクトル
戻り値:
投影後のベクトル

secondProjAxis

public static JgclVector3D secondProjAxis(JgclVector3D zAxis,
                                          JgclVector3D xAxis,
                                          JgclVector3D arg)
ISO 10303-42 4.6.11 項 : 与えられたベクトルをある二つの平面に投影したベクトルを求める。

arg を、 zAxis を法線方向とする平面に投影した後に、さらに xAxis を法線方向とする平面に投影&単位化したベクトルを返す。

zAxis, xAxis のいずれかが null の場合には JgclFatal の例外を発生する。

arg が null であれば、 グローバルな Y 軸方向の単位ベクトルを arg として演算を進める。

パラメータ:
zAxis - 第一の平面の法線方向を示すベクトル
xAxis - 第二の平面の法線方向を示すベクトル
arg - 投影されるベクトル
戻り値:
投影後のベクトル