|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--jp.go.ipa.jgcl.JgclGeometrySchemaFunction
ISO 10303-42 4.6 geometry_schema function definitions の一部を実装したクラス。
ISO 10303-42:1994(E) の 95 ページからを参照のこと。
フィールドの概要 | |
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 |
フィールドの詳細 |
public static final JgclVector2D defaultRefDirection2D
public static final JgclVector3D defaultAxis3D
public static final JgclVector3D defaultRefDirection3D
メソッドの詳細 |
public static JgclVector2D[] baseAxis(JgclVector2D axis1, JgclVector2D axis2)
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次元ベクトルorthogonalComplement(JgclVector2D)
public static JgclVector3D[] baseAxis(JgclVector3D axis1, JgclVector3D axis2, JgclVector3D axis3)
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次元ベクトルfirstProjAxis(JgclVector3D, JgclVector3D)
,
secondProjAxis(JgclVector3D, JgclVector3D, JgclVector3D)
public static JgclVector2D[] build2Axes(JgclVector2D refDirection)
結果として得られる配列の要素数は 2 で、 最初の要素が局所座標系の X 軸を表す単位ベクトル、 二番目の要素が局所座標系の Y 軸を表す単位ベクトルを示す。
refDirection が null でなければ、 refDirection を単位化したベクトルを局所座標系の X 軸とする。 refDirection が null であれば、 グローバルな X 軸方向の単位ベクトルを局所座標系の X 軸とする。
局所座標系の Y 軸を示す単位ベクトルは、 常に局所座標系の X 軸を示す単位ベクトルを 反時計回りに 90°回転させたものである。
refDirection
- 局所座標系の X 軸を表す2次元ベクトルpublic static JgclVector3D[] buildAxes(JgclVector3D axis, JgclVector3D refDirection)
結果として得られる配列の要素数は 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次元ベクトルfirstProjAxis(JgclVector3D, JgclVector3D)
public static JgclVector2D orthogonalComplement(JgclVector2D vec)
vec
- ベクトルpublic static JgclVector3D firstProjAxis(JgclVector3D zAxis, JgclVector3D arg)
arg を、zAxis を法線方向とする平面に投影&単位化したベクトルを返す。
zAxis が null の場合には JgclFatal の例外を発生する。
zAxis を単位化したベクトルと arg の外積ベクトルの大きさが、 現在設定されている演算条件の距離の許容誤差よりも小さい場合には JgclFatal の例外を発生する。
arg が null であれば、 このメソッドの内部で zAxis と同一方向ではないベクトルを選択し、 それを arg として演算を進める。
zAxis
- 平面の法線方向を示すベクトルarg
- 投影されるベクトルpublic static JgclVector3D secondProjAxis(JgclVector3D zAxis, JgclVector3D xAxis, JgclVector3D arg)
arg を、 zAxis を法線方向とする平面に投影した後に、さらに xAxis を法線方向とする平面に投影&単位化したベクトルを返す。
zAxis, xAxis のいずれかが null の場合には JgclFatal の例外を発生する。
arg が null であれば、 グローバルな Y 軸方向の単位ベクトルを arg として演算を進める。
zAxis
- 第一の平面の法線方向を示すベクトルxAxis
- 第二の平面の法線方向を示すベクトルarg
- 投影されるベクトル
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |