jp.go.ipa.jgcl
クラス JgclParametricCurve3D

java.lang.Object
  |
  +--jp.go.ipa.jgcl.JgclGeometry
        |
        +--jp.go.ipa.jgcl.JgclParametricCurve
              |
              +--jp.go.ipa.jgcl.JgclParametricCurve3D
すべての実装インタフェース:
java.io.Serializable
直系の既知のサブクラス:
JgclBoundedCurve3D, JgclConic3D, JgclLine3D, JgclPolynomialCurve3D, JgclSurfaceCurve3D

public abstract class JgclParametricCurve3D
extends JgclParametricCurve

3次元のパラメトリックな曲線のクラス階層のルートとなる抽象クラス。

このクラスは、一つの実数値で表されるパラメータ t の値によって、 位置が決定される3次元の曲線 P(t) 全般が持つ性質を表現する。

バージョン:
$Revision: 1.56 $, $Date: 2000/08/11 06:18:54 $
作成者:
Information-technology Promotion Agency, Japan
関連項目:
JgclParametricCurve2D, 直列化された形式

コンストラクタの概要
protected JgclParametricCurve3D()
          オブジェクトを構築する。
 
メソッドの概要
protected  JgclPointOnCurve3D checkProjection(double Bparam, JgclPoint3D p, double dTol2)
          与えられたパラメータ値の点が、 ある点をこの曲線に投影した点 (つまり、ある点からこの曲線への垂線の足) で あるかどうかを返す。
abstract  JgclPoint3D coordinates(double param)
          この曲線の、与えられたパラメータ値での座標値を返す抽象メソッド。
abstract  JgclCurveCurvature3D curvature(double param)
          この曲線の、与えられたパラメータ値での曲率を返す抽象メソッド。
 int dimension()
          この曲線の次元を返す。
protected abstract  JgclParametricCurve3D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この曲線を、与えられた幾何的変換演算子で変換する。
abstract  JgclCurveDerivative3D evaluation(double param)
          この曲線の、与えられたパラメータ値での導関数を返す抽象メソッド。
protected  boolean hasPolyline()
          この曲線がポリラインの部分を含むか否かを返す。
 boolean identicalParameter(double own_prm1, double own_prm2)
          与えられた二つのパラメータ値がこの曲線上で同一の点とみなせるかどうかを返す。
abstract  JgclPointOnCurve3D[] inflexion()
          この曲線の変曲点を返す抽象メソッド。
abstract  JgclIntersectionPoint3D[] intersect(JgclParametricCurve3D mate)
          この曲線と他の曲線の交点を求める抽象メソッド。
abstract  JgclIntersectionPoint3D[] intersect(JgclParametricSurface3D mate)
          この曲線と他の曲面の交点を求める抽象メソッド。
 boolean is3D()
          この曲線が3次元か否かを返す。
protected  boolean isComposedOfOnlyPolylines()
          この曲線がポリラインの部分だけでできているか否かを返す。
 JgclPointOnCurve3D nearestProjectFrom(JgclPoint3D pnt)
          与えられた点 P からこの曲線への投影点の内で、P に最も近い点を返す。
 JgclPointOnCurve3D nearestProjectWithDistanceFrom(JgclPoint3D pnt, double distance)
          与えられた点 P からこの曲線への投影点の内で、P からの距離が指定の値に最も近い点を返す。
abstract  JgclParametricCurve3D parallelTranslate(JgclVector3D moveVec)
          この曲線を、与えられたベクトルに従って平行移動した曲線を返す抽象メソッド。
 double pointToParameter(JgclPoint3D pnt)
          与えられた線上点の、この曲線でのパラメータ値を求める。
abstract  JgclPointOnCurve3D[] projectFrom(JgclPoint3D point)
          与えられた点からこの曲線への投影点を求める抽象メソッド。
 JgclParametricCurve3D reverseTransformBy(JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この曲線を、与えられた幾何的変換演算子で逆変換する。
abstract  JgclPointOnCurve3D[] singular()
          この曲線の特異点を返す抽象メソッド。
abstract  JgclVector3D tangentVector(double param)
          この曲線の、与えられたパラメータ値での接ベクトルを返す抽象メソッド。
abstract  JgclBsplineCurve3D toBsplineCurve(JgclParameterSection pint)
          この曲線の指定の区間を厳密に再現する有理 Bspline 曲線を返す抽象メソッド。
abstract  JgclPolyline3D toPolyline(JgclParameterSection pint, JgclToleranceForDistance tol)
          この曲線の指定の区間を、与えられた誤差で直線近似するポリラインを返す抽象メソッド。
abstract  double torsion(double param)
          この曲線の、与えられたパラメータ値でのレイ率を返す抽象メソッド。
 JgclParametricCurve3D transformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この曲線を、与えられた幾何的変換演算子で変換する。
 JgclParametricCurve3D transformBy(JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この曲線を、与えられた幾何的変換演算子で変換する。
 
クラス jp.go.ipa.jgcl.JgclParametricCurve から継承したメソッド
checkValidity, checkValidity, isClosed, isCurve, isFinite, isInfinite, isNonPeriodic, isOpen, isParametric, isPeriodic, isValid, length, parameterDomain
 
クラス jp.go.ipa.jgcl.JgclGeometry から継承したメソッド
getClassName, getToleranceForAngle, getToleranceForAngleAsObject, getToleranceForDistance, getToleranceForDistance2, getToleranceForDistanceAsObject, getToleranceForParameter, getToleranceForParameterAsObject, getToleranceForRealNumber, getToleranceForRealNumberAsObject, is1D, is2D, isFreeform, isPlacement, isPoint, isSurface, isTransformationOperator, isVector, makeIndent, output, output
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

JgclParametricCurve3D

protected JgclParametricCurve3D()
オブジェクトを構築する。
メソッドの詳細

coordinates

public abstract JgclPoint3D coordinates(double param)
この曲線の、与えられたパラメータ値での座標値を返す抽象メソッド。
パラメータ:
param - パラメータ値
戻り値:
座標値

tangentVector

public abstract JgclVector3D tangentVector(double param)
この曲線の、与えられたパラメータ値での接ベクトルを返す抽象メソッド。
パラメータ:
param - パラメータ値
戻り値:
接ベクトル

curvature

public abstract JgclCurveCurvature3D curvature(double param)
この曲線の、与えられたパラメータ値での曲率を返す抽象メソッド。
パラメータ:
param - パラメータ値
戻り値:
曲率

torsion

public abstract double torsion(double param)
この曲線の、与えられたパラメータ値でのレイ率を返す抽象メソッド。
パラメータ:
param - パラメータ値
戻り値:
レイ率

evaluation

public abstract JgclCurveDerivative3D evaluation(double param)
この曲線の、与えられたパラメータ値での導関数を返す抽象メソッド。
パラメータ:
param - パラメータ値
戻り値:
導関数

singular

public abstract JgclPointOnCurve3D[] singular()
                                       throws JgclIndefiniteSolution
この曲線の特異点を返す抽象メソッド。

特異点とは、 接ベクトルの大きさが 0 になる点、 あるいはその前後で接ベクトルが不連続となる点である。

特異点が存在しないときは長さ 0 の配列を返す。

戻り値:
特異点の配列
例外:
JgclIndefiniteSolution - 解が不定である

inflexion

public abstract JgclPointOnCurve3D[] inflexion()
                                        throws JgclIndefiniteSolution
この曲線の変曲点を返す抽象メソッド。

変曲点とは、その前後で曲率中心の存在するサイドが移動する点である。

変曲点が存在しないときは長さ 0 の配列を返す。

戻り値:
変曲点の配列
例外:
JgclIndefiniteSolution - 解が不定である

checkProjection

protected JgclPointOnCurve3D checkProjection(double Bparam,
                                             JgclPoint3D p,
                                             double dTol2)
与えられたパラメータ値の点が、 ある点をこの曲線に投影した点 (つまり、ある点からこの曲線への垂線の足) で あるかどうかを返す。

与えられたパラメータ値の点が投影点であれば、その点を表す線上点を返す。 与えられたパラメータ値の点が投影点でなければ null を返す。

パラメータ:
Bparam - 投影点のパラメータ値
p - 投影元の点
dTol2 - 距離の許容誤差の自乗
戻り値:
投影点オブジェクト
関連項目:
projectFrom(JgclPoint3D)

identicalParameter

public boolean identicalParameter(double own_prm1,
                                  double own_prm2)
与えられた二つのパラメータ値がこの曲線上で同一の点とみなせるかどうかを返す。

二つのパラメータ値の間の曲線の道のりが、 現在設定されている演算条件の距離の許容誤差よりも小さければ 二つのパラメータ値は同一の点を表しているものとする。

パラメータ:
own_prm1 - パラメータ値 1
own_prm2 - パラメータ値 2
戻り値:
同一の点とみなせるならば true、そうでなければ false

projectFrom

public abstract JgclPointOnCurve3D[] projectFrom(JgclPoint3D point)
                                          throws JgclIndefiniteSolution
与えられた点からこの曲線への投影点を求める抽象メソッド。

投影点が存在しないときは長さ 0 の配列を返す。

パラメータ:
point - 投影元の点
戻り値:
投影点の配列
例外:
JgclIndefiniteSolution - 解が不定である

toPolyline

public abstract JgclPolyline3D toPolyline(JgclParameterSection pint,
                                          JgclToleranceForDistance tol)
この曲線の指定の区間を、与えられた誤差で直線近似するポリラインを返す抽象メソッド。

結果として返されるポリラインを構成する点は JgclPointOnCurve3D で あることを期待できる。

パラメータ:
pint - 直線近似するパラメータ区間
tol - 距離の許容誤差
戻り値:
この曲線の指定の区間を直線近似するポリライン
関連項目:
JgclPointOnCurve3D

toBsplineCurve

public abstract JgclBsplineCurve3D toBsplineCurve(JgclParameterSection pint)
この曲線の指定の区間を厳密に再現する有理 Bspline 曲線を返す抽象メソッド。
パラメータ:
pint - 有理 Bspline 曲線で再現するパラメータ区間
戻り値:
この曲線の指定の区間を再現する有理 Bspline 曲線

intersect

public abstract JgclIntersectionPoint3D[] intersect(JgclParametricCurve3D mate)
                                             throws JgclIndefiniteSolution
この曲線と他の曲線の交点を求める抽象メソッド。

交点が存在しないときは長さ 0 の配列を返す。

パラメータ:
mate - 他の曲線
戻り値:
交点の配列
例外:
JgclIndefiniteSolution - 解が不定である

intersect

public abstract JgclIntersectionPoint3D[] intersect(JgclParametricSurface3D mate)
                                             throws JgclIndefiniteSolution
この曲線と他の曲面の交点を求める抽象メソッド。

交点が存在しないときは長さ 0 の配列を返す。

パラメータ:
mate - 他の曲面
戻り値:
交点の配列
例外:
JgclIndefiniteSolution - 解が不定である

parallelTranslate

public abstract JgclParametricCurve3D parallelTranslate(JgclVector3D moveVec)
この曲線を、与えられたベクトルに従って平行移動した曲線を返す抽象メソッド。
パラメータ:
moveVec - 平行移動の方向と量を表すベクトル
戻り値:
平行移動後の曲線

dimension

public int dimension()
この曲線の次元を返す。

常に 3 を返す。

オーバーライド:
クラス JgclGeometry 内の dimension
戻り値:
3次元なので、常に 3

is3D

public boolean is3D()
この曲線が3次元か否かを返す。

常に true を返す。

オーバーライド:
クラス JgclGeometry 内の is3D
戻り値:
3次元なので、常に true

nearestProjectFrom

public JgclPointOnCurve3D nearestProjectFrom(JgclPoint3D pnt)
与えられた点 P からこの曲線への投影点の内で、P に最も近い点を返す。

投影点が存在しない場合には null を返す。

パラメータ:
pnt - 投影元の点
戻り値:
投影元の点に最も近い投影点
関連項目:
projectFrom(JgclPoint3D), nearestProjectWithDistanceFrom(JgclPoint3D, double)

nearestProjectWithDistanceFrom

public JgclPointOnCurve3D nearestProjectWithDistanceFrom(JgclPoint3D pnt,
                                                         double distance)
与えられた点 P からこの曲線への投影点の内で、P からの距離が指定の値に最も近い点を返す。

投影点が存在しない場合には null を返す。

パラメータ:
pnt - 投影元の点
distance - 距離
戻り値:
指定した距離に最も近い投影点
関連項目:
projectFrom(JgclPoint3D), nearestProjectFrom(JgclPoint3D)

pointToParameter

public double pointToParameter(JgclPoint3D pnt)
与えられた線上点の、この曲線でのパラメータ値を求める。

与えられた点がこの曲線上に乗っているものとして、 その点に対応するパラメータ値を求める。

このメソッドの内部処理は以下の通り。

パラメータ:
pnt - 曲線上の点
戻り値:
対応するパラメータ値
関連項目:
JgclInvalidArgumentValue, nearestProjectFrom(JgclPoint3D), JgclConditionOfOperation

doTransformBy

protected abstract JgclParametricCurve3D 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 JgclParametricCurve3D 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 JgclParametricCurve3D 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 JgclParametricCurve3D reverseTransformBy(JgclCartesianTransformationOperator3D transformationOperator,
                                                java.util.Hashtable transformedGeometries)
この曲線を、与えられた幾何的変換演算子で逆変換する。

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

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

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

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

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

hasPolyline

protected boolean hasPolyline()
この曲線がポリラインの部分を含むか否かを返す。

結果が true の場合、 この曲線は JgclBoundedCurve3D であるはずである。

戻り値:
この曲線がポリラインであるか、 または自身を構成する部品としてポリラインを含むならば true、 そうでなければ false

isComposedOfOnlyPolylines

protected boolean isComposedOfOnlyPolylines()
この曲線がポリラインの部分だけでできているか否かを返す。

結果が true の場合、 この曲線は JgclBoundedCurve3D であるはずである。

戻り値:
この曲線がポリラインであるか、 または自身を構成する部品としてポリラインだけを含むならば true、 そうでなければ false