jp.go.ipa.jgcl
クラス JgclSurfaceCurve3D

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

public class JgclSurfaceCurve3D
extends JgclParametricCurve3D

3次元 : 曲面上の曲線 (面上線) を表すクラス。

このクラスのインスタンスは以下の属性を保持する。

masterRepresentation の値は以下のいずれかでなければならない。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でなければ curve3d は null でも構わない。

basisSurface1 は null であってはならない。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_2D_1 でなければ curve2d1 は null でも構わない。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_2D_2 でなければ basisSurface2 は null でも構わない。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_2D_2 でなければ curve2d2 は null でも構わない。

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

コンストラクタの概要
  JgclSurfaceCurve3D(JgclParametricCurve3D curve3d, JgclParametricSurface3D basisSurface)
          面上線の3次元表現と一つの曲面を与えてオブジェクトを構築する。
  JgclSurfaceCurve3D(JgclParametricCurve3D curve3d, JgclParametricSurface3D basisSurface, JgclParametricCurve2D curve2d, int masterRepresentation)
          面上線の3次元表現と一つの曲面に対する2次元表現を与えてオブジェクトを構築する。
protected JgclSurfaceCurve3D(JgclParametricCurve3D curve3d, JgclParametricSurface3D basisSurface1, JgclParametricCurve2D curve2d1, JgclParametricSurface3D basisSurface2, JgclParametricCurve2D curve2d2, int masterRepresentation)
          面上線の3次元表現と二つの曲面に対する2次元表現を与えてオブジェクトを構築する。
  JgclSurfaceCurve3D(JgclParametricSurface3D basisSurface, JgclParametricCurve2D curve2d)
          面上線の一つの曲面に対する2次元表現だけを与えてオブジェクトを構築する。
 
メソッドの概要
 JgclParametricSurface3D basisSurface()
          この面上線が乗っている曲面 (basisSurface1) を返す。
 JgclParametricSurface3D basisSurface1()
          この面上線が乗っている曲面 (basisSurface1) を返す。
 JgclParametricSurface3D basisSurface2()
          この面上線が乗っているもう一方の曲面 (basisSurface2) を返す。
 JgclPoint3D coordinates(double param)
          この曲線の、与えられたパラメータ値での座標値を返す。
 JgclCurveCurvature3D curvature(double param)
          この曲線の、与えられたパラメータ値での曲率を返す。
 JgclParametricCurve2D curve2d()
          この面上線の basisSurface1 のパラメータ空間での2次元表現 (curve2d1) を返す。
 JgclParametricCurve2D curve2d1()
          この面上線の basisSurface1 のパラメータ空間での2次元表現 (curve2d1) を返す。
 JgclParametricCurve2D curve2d2()
          この面上線の basisSurface2 のパラメータ空間での2次元表現 (curve2d2) を返す。
 JgclParametricCurve3D curve3d()
          この面上線の3次元表現 (curve3d) を返す。
protected  JgclParametricCurve3D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          この曲線を、与えられた幾何的変換演算子で変換する。
 JgclCurveDerivative3D evaluation(double param)
          この曲線の、与えられたパラメータ値での導関数を返す。
 JgclPointOnCurve3D[] inflexion()
          この曲線の変曲点を返す。
 JgclIntersectionPoint3D[] intersect(JgclParametricCurve3D mate)
          この曲線と他の曲線の交点を求める。
 JgclIntersectionPoint3D[] intersect(JgclParametricSurface3D mate)
          この曲線と他の曲面の交点を求める。
 double length(JgclParameterSection pint)
          この曲線の、与えられたパラメータ区間における実空間上での長さ (道のり) を返す。
 int masterRepresentation()
          この面上線において、いずれの曲線表現を優先するかを示す整数を返す。
protected  void output(java.io.PrintWriter writer, int indent)
          出力ストリームに形状情報を出力する。
 JgclParametricCurve3D parallelTranslate(JgclVector3D moveVec)
          この曲線を、与えられたベクトルに従って平行移動した曲線を返す。
 JgclPointOnCurve3D[] projectFrom(JgclPoint3D point)
          与えられた点からこの曲線への投影点を求める。
 JgclPointOnCurve3D[] singular()
          この曲線の特異点を返す。
 JgclVector3D tangentVector(double param)
          この曲線の、与えられたパラメータ値での接ベクトルを返す。
 JgclBsplineCurve3D toBsplineCurve(JgclParameterSection pint)
          この曲線の指定の区間を厳密に再現する有理 Bspline 曲線を返す。
 JgclPolyline3D toPolyline(JgclParameterSection pint, JgclToleranceForDistance tol)
          この曲線の指定の区間を、与えられた誤差で直線近似するポリラインを返す。
 double torsion(double param)
          この曲線の、与えられたパラメータ値でのレイ率を返す。
 
クラス jp.go.ipa.jgcl.JgclParametricCurve3D から継承したメソッド
checkProjection, dimension, hasPolyline, identicalParameter, is3D, isComposedOfOnlyPolylines, nearestProjectFrom, nearestProjectWithDistanceFrom, pointToParameter, reverseTransformBy, transformBy, transformBy
 
クラス jp.go.ipa.jgcl.JgclParametricCurve から継承したメソッド
checkValidity, checkValidity, isClosed, isCurve, isFinite, isInfinite, isNonPeriodic, isOpen, isParametric, isPeriodic, isValid, 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
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

JgclSurfaceCurve3D

public JgclSurfaceCurve3D(JgclParametricCurve3D curve3d,
                          JgclParametricSurface3D basisSurface,
                          JgclParametricCurve2D curve2d,
                          int masterRepresentation)
面上線の3次元表現と一つの曲面に対する2次元表現を与えてオブジェクトを構築する。

構築するインスタンスの各フィールドに代入する値は以下の通り。

 		this.curve3d = curve3d;
 		this.basisSurface1 = basisSurface;
 		this.curve2d1 = curve2d;
 		this.basisSurface2 = null;
 		this.curve2d2 = null;
 		this.masterRepresentation = masterRepresentation;
 

curve3d, curve2d の両者の値がいずれも null の場合には JgclNullArgument の例外を発生する。

basisSurface は null であってはいけない。 basisSurface が null の場合には JgclNullArgument の例外を発生する。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_3D であるときには curve3d は null であってはいけない。 この条件が満たされない場合には JgclInvalidArgumentValue の例外を発生する。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_2D_1 であるときには curve2d は null であってはいけない。 この条件が満たされない場合には JgclInvalidArgumentValue の例外を発生する。

masterRepresentation の値が上記のいずれでもない場合には JgclInvalidArgumentValue の例外を発生する。

パラメータ:
curve3d - 3次元表現
basisSurface - 曲線が乗っている曲面
curve2d - basisSurface のパラメータ空間での2次元表現
masterRepresentation - curve3d と curve2d のどちらを優先するかを示す定数
関連項目:
JgclPreferredSurfaceCurveRepresentation, JgclNullArgument, JgclInvalidArgumentValue

JgclSurfaceCurve3D

protected JgclSurfaceCurve3D(JgclParametricCurve3D curve3d,
                             JgclParametricSurface3D basisSurface1,
                             JgclParametricCurve2D curve2d1,
                             JgclParametricSurface3D basisSurface2,
                             JgclParametricCurve2D curve2d2,
                             int masterRepresentation)
面上線の3次元表現と二つの曲面に対する2次元表現を与えてオブジェクトを構築する。

構築するインスタンスの各フィールドに代入する値は以下の通り。

 		this.curve3d = curve3d;
 		this.basisSurface1 = basisSurface1;
 		this.curve2d1 = curve2d1;
 		this.basisSurface2 = basisSurface2;
 		this.curve2d2 = curve2d2;
 		this.masterRepresentation = masterRepresentation;
 

curve3d, curve2d, curve3d の三者の値がいずれも null の場合には JgclNullArgument の例外を発生する。

basisSurface1, basisSurface2 のいずれかが null の場合には JgclNullArgument の例外を発生する。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_3D であるときには curve3d は null であってはいけない。 この条件が満たされない場合には JgclInvalidArgumentValue の例外を発生する。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_2D_1 であるときには curve2d1 は null であってはいけない。 この条件が満たされない場合には JgclInvalidArgumentValue の例外を発生する。

masterRepresentation の値が JgclPreferredSurfaceCurveRepresentation.CURVE_2D_2 であるときには curve2d2 は null であってはいけない。 この条件が満たされない場合には JgclInvalidArgumentValue の例外を発生する。

masterRepresentation の値が上記のいずれでもない場合には JgclInvalidArgumentValue の例外を発生する。

パラメータ:
curve3d - 3次元表現
basisSurface1 - 曲線が乗っている曲面
curve2d1 - basisSurface1 のパラメータ空間での2次元表現
basisSurface2 - 曲線が乗っているもう一方の曲面
curve2d2 - basisSurface2 のパラメータ空間での2次元表現
masterRepresentation - どの曲線表現を優先するかを示す定数
関連項目:
JgclPreferredSurfaceCurveRepresentation, JgclNullArgument, JgclInvalidArgumentValue

JgclSurfaceCurve3D

public JgclSurfaceCurve3D(JgclParametricCurve3D curve3d,
                          JgclParametricSurface3D basisSurface)
面上線の3次元表現と一つの曲面を与えてオブジェクトを構築する。

構築するインスタンスの各フィールドに代入する値は以下の通り。

 		this.curve3d = curve3d;
 		this.basisSurface1 = basisSurface;
 		this.curve2d1 = null;
 		this.basisSurface2 = null;
 		this.curve2d2 = null;
 		this.masterRepresentation = JgclPreferredSurfaceCurveRepresentation.CURVE_3D;
 

curve3d, basisSurface のいずれかが null の場合には JgclNullArgument の例外を発生する。

パラメータ:
curve3d - 3次元表現
basisSurface - 曲線が乗っている曲面
関連項目:
JgclPreferredSurfaceCurveRepresentation, JgclNullArgument

JgclSurfaceCurve3D

public JgclSurfaceCurve3D(JgclParametricSurface3D basisSurface,
                          JgclParametricCurve2D curve2d)
面上線の一つの曲面に対する2次元表現だけを与えてオブジェクトを構築する。

構築するインスタンスの各フィールドに代入する値は以下の通り。

 		this.curve3d = null;
 		this.basisSurface1 = basisSurface;
 		this.curve2d1 = curve2d;
 		this.basisSurface2 = null;
 		this.curve2d2 = null;
		this.masterRepresentation = JgclPreferredSurfaceCurveRepresentation.CURVE_2D_1;
 

curve2d, basisSurface のいずれかが null の場合には JgclNullArgument の例外を発生する。

パラメータ:
basisSurface - 曲線が乗っている曲面
curve2d - basisSurface のパラメータ空間での2次元表現
関連項目:
JgclPreferredSurfaceCurveRepresentation, JgclNullArgument
メソッドの詳細

curve3d

public JgclParametricCurve3D curve3d()
この面上線の3次元表現 (curve3d) を返す。

null が返ることもある。

戻り値:
3次元表現 (curve3d)

basisSurface1

public JgclParametricSurface3D basisSurface1()
この面上線が乗っている曲面 (basisSurface1) を返す。
戻り値:
曲線が乗っている曲面 (basisSurface1)

curve2d1

public JgclParametricCurve2D curve2d1()
この面上線の basisSurface1 のパラメータ空間での2次元表現 (curve2d1) を返す。

null が返ることもある。

戻り値:
basisSurface1 のパラメータ空間での2次元表現 (curve2d1)

basisSurface2

public JgclParametricSurface3D basisSurface2()
この面上線が乗っているもう一方の曲面 (basisSurface2) を返す。

null が返ることもある。

戻り値:
曲線が乗っているもう一方の曲面 (basisSurface2)

curve2d2

public JgclParametricCurve2D curve2d2()
この面上線の basisSurface2 のパラメータ空間での2次元表現 (curve2d2) を返す。

null が返ることもある。

戻り値:
basisSurface2 のパラメータ空間での2次元表現 (curve2d2)

basisSurface

public JgclParametricSurface3D basisSurface()
この面上線が乗っている曲面 (basisSurface1) を返す。
戻り値:
曲線が乗っている曲面 (basisSurface1)

curve2d

public JgclParametricCurve2D curve2d()
この面上線の basisSurface1 のパラメータ空間での2次元表現 (curve2d1) を返す。

null が返ることもある。

戻り値:
basisSurface1 のパラメータ空間での2次元表現 (curve2d1)

masterRepresentation

public int masterRepresentation()
この面上線において、いずれの曲線表現を優先するかを示す整数を返す。
戻り値:
いずれの曲線表現を優先するかを示す整数
関連項目:
JgclPreferredSurfaceCurveRepresentation

length

public double length(JgclParameterSection pint)
この曲線の、与えられたパラメータ区間における実空間上での長さ (道のり) を返す。
オーバーライド:
クラス JgclParametricCurve 内の length
パラメータ:
pint - 長さを求めるパラメータ区間
戻り値:
指定されたパラメータ区間における曲線の長さ

coordinates

public JgclPoint3D coordinates(double param)
この曲線の、与えられたパラメータ値での座標値を返す。
オーバーライド:
クラス JgclParametricCurve3D 内の coordinates
パラメータ:
param - パラメータ値
戻り値:
座標値

tangentVector

public JgclVector3D tangentVector(double param)
この曲線の、与えられたパラメータ値での接ベクトルを返す。
オーバーライド:
クラス JgclParametricCurve3D 内の tangentVector
パラメータ:
param - パラメータ値
戻り値:
接ベクトル

curvature

public JgclCurveCurvature3D curvature(double param)
この曲線の、与えられたパラメータ値での曲率を返す。

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の curvature
パラメータ:
param - パラメータ値
戻り値:
曲率
関連項目:
JgclNotSupported

evaluation

public JgclCurveDerivative3D evaluation(double param)
この曲線の、与えられたパラメータ値での導関数を返す。

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の evaluation
パラメータ:
param - パラメータ値
戻り値:
導関数
関連項目:
JgclNotSupported

torsion

public double torsion(double param)
この曲線の、与えられたパラメータ値でのレイ率を返す。

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の torsion
パラメータ:
param - パラメータ値
戻り値:
レイ率
関連項目:
JgclNotSupported

singular

public JgclPointOnCurve3D[] singular()
                              throws JgclIndefiniteSolution
この曲線の特異点を返す。

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

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の singular
戻り値:
特異点の配列
例外:
JgclIndefiniteSolution - 曲線全体が縮退している
関連項目:
JgclNotSupported

inflexion

public JgclPointOnCurve3D[] inflexion()
                               throws JgclIndefiniteSolution
この曲線の変曲点を返す。

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

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の inflexion
戻り値:
変曲点の配列
例外:
JgclIndefiniteSolution - 解が不定である (この曲線は直線状である)
関連項目:
JgclNotSupported

projectFrom

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

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

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の projectFrom
パラメータ:
point - 投影元の点
戻り値:
投影点の配列
関連項目:
JgclNotSupported

toPolyline

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

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

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の toPolyline
パラメータ:
section - 直線近似するパラメータ区間
tolerance - 距離の許容誤差
戻り値:
この曲線の指定の区間を直線近似するポリライン
関連項目:
JgclNotSupported

toBsplineCurve

public JgclBsplineCurve3D toBsplineCurve(JgclParameterSection pint)
この曲線の指定の区間を厳密に再現する有理 Bspline 曲線を返す。

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の toBsplineCurve
パラメータ:
pint - 有理 Bspline 曲線で再現するパラメータ区間
戻り値:
この曲線の指定の区間を再現する有理 Bspline 曲線
関連項目:
JgclNotSupported

intersect

public JgclIntersectionPoint3D[] intersect(JgclParametricCurve3D mate)
                                    throws JgclIndefiniteSolution
この曲線と他の曲線の交点を求める。

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

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の intersect
パラメータ:
mate - 他の曲線
戻り値:
交点の配列
例外:
JgclIndefiniteSolution - 解が不定である
関連項目:
JgclNotSupported

intersect

public JgclIntersectionPoint3D[] intersect(JgclParametricSurface3D mate)
                                    throws JgclIndefiniteSolution
この曲線と他の曲面の交点を求める。

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

いまのところ masterRepresentation が JgclPreferredSurfaceCurveRepresentation.CURVE_3D でない場合には JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の intersect
パラメータ:
mate - 他の曲面
戻り値:
交点の配列
例外:
JgclIndefiniteSolution - 解が不定である
関連項目:
JgclNotSupported

parallelTranslate

public JgclParametricCurve3D parallelTranslate(JgclVector3D moveVec)
この曲線を、与えられたベクトルに従って平行移動した曲線を返す。

いまのところ、このメソッドは常に JgclNotSupported の例外を発生する。

オーバーライド:
クラス JgclParametricCurve3D 内の parallelTranslate
パラメータ:
moveVec - 平行移動の方向と量を表すベクトル
戻り値:
平行移動後の曲線
関連項目:
JgclNotSupported

doTransformBy

protected 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 で変換したものを返す。

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

output

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