jp.go.ipa.jgcl
クラス JgclAxis2Placement3D

java.lang.Object
  |
  +--jp.go.ipa.jgcl.JgclGeometry
        |
        +--jp.go.ipa.jgcl.JgclPlacement
              |
              +--jp.go.ipa.jgcl.JgclPlacement3D
                    |
                    +--jp.go.ipa.jgcl.JgclAxis2Placement3D
すべての実装インタフェース:
java.io.Serializable

public class JgclAxis2Placement3D
extends JgclPlacement3D

3次元 : 原点の座標とZ軸およびX軸を指定する方向で定義された局所座標系 (配置情報) を表すクラス。

このクラスは、 円錐曲線や二次曲面の位置や傾きを示したり、 座標変換の変換行列の指示などに利用されます。

このクラスのインスタンスは、 局所座標系の原点となる点 location と、 局所座標系のZ軸の方向を示すベクトル axis および axis を法線方向とする平面に正投影されることで X軸の方向を決定するベクトル refDirection を保持します。 この局所座標系は、右手系の直交座標系を表すので、 Y軸の方向は、Z軸/X軸の方向より自動的に決定されます。 Z軸とX軸の外積方向がY軸の方向になります。 XYZの各基底ベクトルは、常にその大きさを 1 に単位化して扱います。 なお、これらのベクトルは JgclGeometrySchemaFunction.buildAxes(axis, refDirection) によって求めています。

location に与える点には特に制限はなく、 JgclPoint3D クラスの任意の点を与えることができますが、 null を指定することはできません。 axis および refDirection に与えるベクトル JgclVector3D は特に単位化されている必要はありませんが、 ゼロベクトルを与えることはできません。 なお、axis および refDirection に与えるベクトルを 指定しない (null を指定する) こともできます。 axis を null とすると、Z軸の方向は (0, 0, 1) に等しいものと解釈されます。 refDirection を null とすると、 refDirection の方向は (1, 0, 0) に等しいものと解釈されます。

また、axis と refDirection は、逆向きを含めて、 同一の方向を指してはいけません。

バージョン:
$Revision: 1.31 $, $Date: 2000/04/26 09:38:41 $
作成者:
Information-technology Promotion Agency, Japan
関連項目:
JgclAxis1Placement3D, JgclAxis2Placement2D, 直列化された形式

フィールドの概要
static JgclAxis2Placement3D origin
          原座標系。
 
コンストラクタの概要
JgclAxis2Placement3D(JgclPoint3D location, JgclVector3D axis, JgclVector3D refDirection)
          局所座標系の原点となる点と Z軸の方向を示すベクトルおよび X軸の方向を決定するベクトルを与えて、 オブジェクトを構築する。
 
メソッドの概要
 JgclVector3D[] axes()
          この局所座標系のX/Y/Z軸を表す単位ベクトルを返す。
 JgclVector3D axis()
          この局所座標系のZ軸の方向を表すベクトルを返す。
protected  JgclAxis2Placement3D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
 JgclVector3D effectiveAxis()
          この局所座標系のZ軸の方向を表す (実質的な) ベクトルを返す。
 JgclVector3D effectiveRefDirection()
          この局所座標系のX軸の方向を決定する (実質的な) ベクトルを返す。
protected  void output(java.io.PrintWriter writer, int indent)
          出力ストリームに形状情報を出力する。
 JgclAxis2Placement3D parallelTranslate(JgclVector3D moveVec)
          この局所座標系の原点となる点を、与えられたベクトルに従って 平行移動させた局所座標系を返す。
 JgclVector3D refDirection()
          この局所座標系のX軸の方向を決定するベクトルを返す。
 JgclAxis2Placement3D reverseTransformBy(JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で逆変換する。
 JgclCartesianTransformationOperator3D toCartesianTransformationOperator()
          この局所座標系から大域的な座標系への座標変換演算子 (縮尺比 1 : 1) を返す。
 JgclCartesianTransformationOperator3D toCartesianTransformationOperator(double scale)
          この局所座標系から大域的な座標系への座標変換演算子を返す。
 JgclAxis2Placement3D transformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
 JgclAxis2Placement3D transformBy(JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この点を、与えられた幾何的変換演算子で変換する。
 JgclVector3D x()
          この局所座標系のX軸を表す単位ベクトルを返す。
 JgclVector3D y()
          この局所座標系のY軸を表す単位ベクトルを返す。
 JgclVector3D z()
          この局所座標系のZ軸を表す単位ベクトルを返す。
 
クラス jp.go.ipa.jgcl.JgclPlacement3D から継承したメソッド
dimension, is3D, location
 
クラス jp.go.ipa.jgcl.JgclPlacement から継承したメソッド
isPlacement
 
クラス jp.go.ipa.jgcl.JgclGeometry から継承したメソッド
getClassName, getToleranceForAngle, getToleranceForAngleAsObject, getToleranceForDistance, getToleranceForDistance2, getToleranceForDistanceAsObject, getToleranceForParameter, getToleranceForParameterAsObject, getToleranceForRealNumber, getToleranceForRealNumberAsObject, is1D, is2D, isCurve, isFreeform, isParametric, isPoint, isSurface, isTransformationOperator, isVector, makeIndent, output
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

origin

public static final JgclAxis2Placement3D origin
原座標系。

(0, 0, 0) を原点、 (0, 0, 1) を Z 軸の方向、 (1, 0, 0) を X 軸の方向とする座標系。

コンストラクタの詳細

JgclAxis2Placement3D

public JgclAxis2Placement3D(JgclPoint3D location,
                            JgclVector3D axis,
                            JgclVector3D refDirection)
局所座標系の原点となる点と Z軸の方向を示すベクトルおよび X軸の方向を決定するベクトルを与えて、 オブジェクトを構築する。

location が null の場合には、 JgclInvalidArgumentValue の例外を発生する。

axis は null でも構わない。 axis が null の場合には、 Z軸の方向は (0, 0, 1) に等しいものと解釈される。

refDirection は null でも構わない。 refDirection が null の場合には、 refDirection の方向は (1, 0, 0) に等しいものと解釈される。

axis あるいは refDirection の大きさが、 現在設定されている演算条件の距離の許容誤差以下の場合には、 JgclInvalidArgumentValue の例外を発生する。

さらに、axis と refDirection の外積の大きさが 現在設定されている演算条件の距離の許容誤差以下の場合にも、 JgclInvalidArgumentValue の例外を発生する。

パラメータ:
location - 局所座標系の原点
axis - Z軸の方向を示すベクトル
refDirection - X軸の方向を決定するベクトル
関連項目:
JgclConditionOfOperation, JgclInvalidArgumentValue
メソッドの詳細

axis

public JgclVector3D axis()
この局所座標系のZ軸の方向を表すベクトルを返す。

オブジェクトの構築時に与えられた axis を返す。 よって、null が返ることもありうる。

戻り値:
Z軸の方向を表すベクトル

effectiveAxis

public JgclVector3D effectiveAxis()
この局所座標系のZ軸の方向を表す (実質的な) ベクトルを返す。

axis が null でなければ、axis を返す。 axis が null ならば、(0, 0, 1) のベクトルを返す。

戻り値:
Z軸の方向を表す (実質的な) ベクトル

refDirection

public JgclVector3D refDirection()
この局所座標系のX軸の方向を決定するベクトルを返す。

オブジェクトの構築時に与えられた refDirection を返す。 よって、null が返ることもありうる。

戻り値:
X軸の方向を決定するベクトル

effectiveRefDirection

public JgclVector3D effectiveRefDirection()
この局所座標系のX軸の方向を決定する (実質的な) ベクトルを返す。

refDirection が null でなければ、refDirection を返す。 refDirection が null ならば、(1, 0, 0) のベクトルを返す。

戻り値:
X軸の方向を決定する (実質的な) ベクトル

x

public JgclVector3D x()
この局所座標系のX軸を表す単位ベクトルを返す。
戻り値:
X軸を表す単位ベクトル

y

public JgclVector3D y()
この局所座標系のY軸を表す単位ベクトルを返す。
戻り値:
Y軸を表す単位ベクトル

z

public JgclVector3D z()
この局所座標系のZ軸を表す単位ベクトルを返す。
戻り値:
Z軸を表す単位ベクトル

axes

public JgclVector3D[] axes()
この局所座標系のX/Y/Z軸を表す単位ベクトルを返す。

結果として返る配列の最初の要素がX軸、 二番目の要素がY軸、 三番目の要素がZ軸を表す。

戻り値:
X/Y/Z軸を表す単位ベクトルの配列
関連項目:
JgclGeometrySchemaFunction.buildAxes(JgclVector3D, JgclVector3D)

parallelTranslate

public JgclAxis2Placement3D parallelTranslate(JgclVector3D moveVec)
この局所座標系の原点となる点を、与えられたベクトルに従って 平行移動させた局所座標系を返す。
パラメータ:
moveVec - 平行移動する方向と量を指定するベクトル
戻り値:
平行移動後の局所座標系

toCartesianTransformationOperator

public JgclCartesianTransformationOperator3D toCartesianTransformationOperator(double scale)
この局所座標系から大域的な座標系への座標変換演算子を返す。
パラメータ:
scale - スケーリングの量を規定する値
戻り値:
スケーリングを含む座標変換演算子
関連項目:
toCartesianTransformationOperator()

toCartesianTransformationOperator

public JgclCartesianTransformationOperator3D toCartesianTransformationOperator()
この局所座標系から大域的な座標系への座標変換演算子 (縮尺比 1 : 1) を返す。
戻り値:
スケーリングを含まない座標変換演算子
関連項目:
toCartesianTransformationOperator(double)

doTransformBy

protected JgclAxis2Placement3D doTransformBy(boolean reverseTransform,
                                             JgclCartesianTransformationOperator3D transformationOperator,
                                             java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。

パラメータ:
reverseTransform - 逆変換するのであれば true、そうでなければ false
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
変換後の幾何要素

transformBy

public JgclAxis2Placement3D transformBy(boolean reverseTransform,
                                        JgclCartesianTransformationOperator3D transformationOperator,
                                        java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。

パラメータ:
reverseTransform - 逆変換するのであれば true、そうでなければ false
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
変換後の幾何要素

transformBy

public JgclAxis2Placement3D transformBy(JgclCartesianTransformationOperator3D transformationOperator,
                                        java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。

パラメータ:
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
変換後の幾何要素

reverseTransformBy

public JgclAxis2Placement3D reverseTransformBy(JgclCartesianTransformationOperator3D transformationOperator,
                                               java.util.Hashtable transformedGeometries)
この点を、与えられた幾何的変換演算子で逆変換する。

transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。

this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で逆変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。

this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。

transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で逆変換したものを返す。

パラメータ:
transformationOperator - 幾何的変換演算子
transformedGeometries - 既に同様の変換を施した幾何要素を含むハッシュテーブル
戻り値:
逆変換後の幾何要素

output

protected void output(java.io.PrintWriter writer,
                      int indent)
出力ストリームに形状情報を出力する。
オーバーライド:
クラス JgclGeometry 内の output
パラメータ:
writer - PrintWriter
indent - インデントの深さ
関連項目:
JgclGeometry