|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--jp.go.ipa.jgcl.JgclGeometry | +--jp.go.ipa.jgcl.JgclParametricSurface | +--jp.go.ipa.jgcl.JgclParametricSurface3D | +--jp.go.ipa.jgcl.JgclBoundedSurface3D | +--jp.go.ipa.jgcl.JgclMesh3D
3次元 : 格子状点網を表すクラス。
このクラスは位相的に格子状の構造を持つ点群を補間する曲面を表す。
メッシュは、格子点の2次元配列 points と U/V 各々の方向に閉じた形式であるか否かを表すフラグ uClosed/vClosed で定義される。
points は、U 方向のインデックスが先、V 方向のインデックスが後。 つまり、U 方向に i 番目、V 方向に j 番目の点は points[i][j] に格納される。
メッシュの U 方向のパラメータ定義域は、 隣接する格子点の間のパラメータ区間の大きさを常に 1 として、 曲面全域では [0, N] となる。 ここで N は、 メッシュが U 方向に開いた形式であれば (格子点の U 方向の数 - 1)、 閉じた形式であれば (格子点の U 方向の数 - 1) になる。
V 方向のパラメータ定義域についても、同様である。
(u, v) をパラメータとする平面 P(u, v) のパラメトリック表現は、以下の通り。
P(u, v) = (1 - lv) * ((1 - lu) * points[i][j] + lu * points[i + 1][j]) + lv * ((1 - lu) * points[i][j + 1] + lu * points[i + 1][j + 1])ここで i は u を越えない最大の整数、 j は v を越えない最大の整数。 さらに lu = (u - i), lv = (v - j) である。
コンストラクタの概要 | |
JgclMesh3D(JgclBoundedSurface3D surface,
JgclToleranceForDistance tol)
ある有限な曲面の全体を、与えられた許容誤差で近似するオブジェクトを構築する。 |
|
JgclMesh3D(JgclParametricSurface3D surface,
JgclParameterSection uPint,
JgclParameterSection vPint,
JgclToleranceForDistance tol)
ある曲面の指定の (パラメータ的な) 矩形区間を、 与えられた許容誤差で近似するオブジェクトを構築する。 |
|
JgclMesh3D(JgclPoint3D[][] points)
格子点を与えて U/V 方向ともに開いた形式でオブジェクトを構築する。 |
|
JgclMesh3D(JgclPoint3D[][] points,
boolean uClosed,
boolean vClosed)
格子点、U/V 方向の開閉情報を与えてオブジェクトを構築する。 |
メソッドの概要 | |
JgclPoint3D |
coordinates(double uParam,
double vParam)
この曲面の、与えられたパラメータ値での座標値を返す。 |
protected JgclParametricSurface3D |
doTransformBy(boolean reverseTransform,
JgclCartesianTransformationOperator3D transformationOperator,
java.util.Hashtable transformedGeometries)
この曲面を、与えられた幾何的変換演算子で変換する。 |
JgclSurfaceDerivative3D |
evaluation(double uParam,
double vParam)
この曲面の、与えられたパラメータ値での導関数を返す。 |
JgclIntersectionPoint3D[] |
intersect(JgclParametricCurve3D mate)
この曲面と他の曲線の交点を求める。 |
JgclSurfaceSurfaceInterference3D[] |
intersect(JgclParametricSurface3D mate)
この曲面と他の曲面との交線を求める。 |
boolean |
isFreeform()
この幾何要素が自由形状か否かを返す。 |
JgclBsplineSurface3D |
offsetByBsplineSurface(JgclParameterSection uPint,
JgclParameterSection vPint,
double magni,
int side,
JgclToleranceForDistance tol)
この曲面の指定の (パラメータ的な) 矩形区間をオフセットした曲面を 与えられた誤差で近似する Bspline 曲面を求める。 |
protected void |
output(java.io.PrintWriter writer,
int indent)
出力ストリームに形状情報を出力する。 |
JgclPoint3D |
pointAt(int i,
int j)
このメッシュの (i, j) 番目の格子点を返す。 |
JgclPoint3D[][] |
points()
このメッシュの格子状点網の配列を返す。 |
JgclPointOnSurface3D[] |
projectFrom(JgclPoint3D point)
与えられた点からこの曲面への投影点を求める。 |
JgclVector3D[] |
tangentVector(double uParam,
double vParam)
この曲面の、与えられたパラメータ値での接ベクトルを返す。 |
JgclBsplineSurface3D |
toBsplineSurface(JgclParameterSection uPint,
JgclParameterSection vPint)
この曲面の指定の (パラメータ的な) 矩形区間を厳密に再現する 有理 Bspline 曲面を返す抽象メソッド。 |
JgclMesh3D |
toMesh(JgclParameterSection uPint,
JgclParameterSection vPint,
JgclToleranceForDistance tol)
ある矩形部分を与えられた誤差で格子点群に分割する 格子点群を構成する点はJgclPointOnSurface3Dであることを期待できる この機能はサポートされていない |
JgclMesh3D |
toMesh(JgclToleranceForDistance tol)
この (矩形のパラメータ定義域を持つ) 有限曲面全体を、与えられた誤差で平面近似する 格子点群を返す抽象メソッド。 |
java.util.Vector |
toNonStructuredPoints(JgclParameterSection uParameterSection,
JgclParameterSection vParameterSection,
double tolerance,
double[] scalingFactor)
この曲面の指定の (パラメータ的な) 矩形区間を、 与えられた誤差で平面近似する点群を返す。 |
JgclSetOfTriangles3D |
toSetOfTriangles()
このメッシュを三角形の集合に変換する。 |
boolean |
uClosed()
このメッシュが U 方向に閉じた形式か否かを返す。 |
JgclParametricCurve3D |
uIsoParametricCurve(double parameter)
この曲面の U パラメータ一定の位置にある等パラメータ曲線を返す抽象メソッド。 |
int |
uNPoints()
このメッシュの U 方向の格子の数を返す。 |
int |
uNSegments()
このメッシュの U 方向のセグメントの数を返す。 |
boolean |
vClosed()
このメッシュが V 方向に閉じた形式か否かを返す。 |
JgclParametricCurve3D |
vIsoParametricCurve(double parameter)
この曲面の V パラメータ一定の位置にある等パラメータ曲線を返す抽象メソッド。 |
int |
vNPoints()
このメッシュの V 方向の格子の数を返す。 |
int |
vNSegments()
このメッシュの V 方向のセグメントの数を返す。 |
クラス jp.go.ipa.jgcl.JgclBoundedSurface3D から継承したメソッド |
fillet, offsetByBsplineSurface, toBsplineSurface |
クラス jp.go.ipa.jgcl.JgclParametricSurface3D から継承したメソッド |
curvature, dimension, fillet, is3D, nearestProjectFrom, nearestProjectWithDistanceFrom, normalVector, pointToParameter, reverseTransformBy, transformBy, transformBy |
クラス jp.go.ipa.jgcl.JgclParametricSurface から継承したメソッド |
checkUValidity, checkUValidity, checkVValidity, checkVValidity, isParametric, isSurface, isUFinite, isUInfinite, isUNonPeriodic, isUPeriodic, isValidUParameter, isValidVParameter, isVFinite, isVInfinite, isVNonPeriodic, isVPeriodic, uParameterDomain, vParameterDomain |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public JgclMesh3D(JgclPoint3D[][] points, boolean uClosed, boolean vClosed)
points は U 方向のインデックスが先、V 方向のインデックスが後。 つまり、U 方向に i 番目、V 方向に j 番目の点は points[i][j] に格納されているものとする。
U 方向の点の数を n として、 points[i] (i = 0, ..., (n - 1)) の要素数が等しくない場合には JgclInvalidArgumentValue の例外を発生する。
U 方向の点の数を n、V 方向の点の数を m として、 points[i][j] (i = 0, ..., (n - 1), j = 0, ..., (m - 1)) の値に null がある場合には JgclInvalidArgumentValue の例外を発生する。
points
- 格子状点網の配列uClosed
- U 方向に閉じた形式か否かを表すフラグvClosed
- V 方向に閉じた形式か否かを表すフラグJgclInvalidArgumentValue
public JgclMesh3D(JgclPoint3D[][] points)
points は U 方向のインデックスが先、V 方向のインデックスが後。 つまり、U 方向に i 番目、V 方向に j 番目の点は points[i][j] に格納されているものとする。
U 方向の点の数を n として、 points[i] (i = 0, ..., (n - 1)) の要素数が等しくない場合には JgclInvalidArgumentValue の例外を発生する。
U 方向の点の数を n、V 方向の点の数を m として、 points[i][j] (i = 0, ..., (n - 1), j = 0, ..., (m - 1)) の値に null がある場合には JgclInvalidArgumentValue の例外を発生する。
points
- 格子状点網の配列JgclInvalidArgumentValue
public JgclMesh3D(JgclBoundedSurface3D surface, JgclToleranceForDistance tol)
surface
- 有限な曲面tol
- 距離の許容誤差JgclBoundedSurface3D.toMesh(JgclToleranceForDistance)
public JgclMesh3D(JgclParametricSurface3D surface, JgclParameterSection uPint, JgclParameterSection vPint, JgclToleranceForDistance tol)
surface
- 曲面uPint
- 近似する U 方向のパラメータ区間vPint
- 近似する V 方向のパラメータ区間tol
- 距離の許容誤差JgclParametricSurface3D.toMesh(JgclParameterSection, JgclParameterSection, JgclToleranceForDistance)
メソッドの詳細 |
public JgclPoint3D[][] points()
public JgclPoint3D pointAt(int i, int j)
U 方向に i 番目、V 方向に j 番目の格子点を返す。
public boolean uClosed()
public boolean vClosed()
public int uNPoints()
public int vNPoints()
public int uNSegments()
public int vNSegments()
public JgclPoint3D coordinates(double uParam, double vParam)
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の coordinates
uParam
- U 方向のパラメータ値vParam
- V 方向のパラメータ値JgclNotSupported
public JgclVector3D[] tangentVector(double uParam, double vParam)
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の tangentVector
uParam
- U 方向のパラメータ値vParam
- V 方向のパラメータ値JgclNotSupported
public JgclSurfaceDerivative3D evaluation(double uParam, double vParam)
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の evaluation
uParam
- U 方向のパラメータ値vParam
- V 方向のパラメータ値JgclNotSupported
public JgclPointOnSurface3D[] projectFrom(JgclPoint3D point)
投影点が存在しないときは長さ 0 の配列を返す。
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の projectFrom
point
- 投影元の点JgclNotSupported
public JgclMesh3D toMesh(JgclParameterSection uPint, JgclParameterSection vPint, JgclToleranceForDistance tol)
JgclParametricSurface3D
内の toMesh
uPint
- U方向のパラメータ区間vPint
- V方向のパラメータ区間tol
- 誤差JgclParameterSection
,
JgclToleranceForDistance
,
JgclMesh3D
,
JgclPointOnSurface3D
public JgclMesh3D toMesh(JgclToleranceForDistance tol)
結果として返される格子点群を構成する点は、 この曲面をベースとする JgclPointOnSurface3D で あることを期待できる。
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclBoundedSurface3D
内の toMesh
tol
- 距離の許容誤差JgclPointOnSurface3D
,
JgclNotSupported
public JgclBsplineSurface3D toBsplineSurface(JgclParameterSection uPint, JgclParameterSection vPint)
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の toBsplineSurface
uPint
- U 方向のパラメータ区間vPint
- V 方向のパラメータ区間JgclNotSupported
public JgclIntersectionPoint3D[] intersect(JgclParametricCurve3D mate)
交点が存在しないときは長さ 0 の配列を返す。
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の intersect
mate
- 他の曲線JgclNotSupported
public JgclSurfaceSurfaceInterference3D[] intersect(JgclParametricSurface3D mate)
交線が存在しないときは長さ 0 の配列を返す。
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の intersect
mate
- 他の曲面JgclNotSupported
public JgclBsplineSurface3D offsetByBsplineSurface(JgclParameterSection uPint, JgclParameterSection vPint, double magni, int side, JgclToleranceForDistance tol)
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の offsetByBsplineSurface
uPint
- U 方向のパラメータ区間vPint
- V 方向のパラメータ区間magni
- オフセット量side
- オフセットの向き (JgclWhichSide.FRONT/BACK)tol
- 距離の許容誤差JgclWhichSide
,
JgclNotSupported
public JgclParametricCurve3D uIsoParametricCurve(double parameter)
JgclParametricSurface3D
の記述: JgclParametricSurface3D
内の uIsoParametricCurve
jp.go.ipa.jgcl.JgclParametricSurface3D
からコピーされたタグ:uParam
- U 方向のパラメータ値public JgclParametricCurve3D vIsoParametricCurve(double parameter)
JgclParametricSurface3D
の記述: JgclParametricSurface3D
内の vIsoParametricCurve
jp.go.ipa.jgcl.JgclParametricSurface3D
からコピーされたタグ:vParam
- V 方向のパラメータ値public JgclSetOfTriangles3D toSetOfTriangles()
JgclSetOfTriangles3D.JgclSetOfTriangles3D(JgclMesh3D)
public java.util.Vector toNonStructuredPoints(JgclParameterSection uParameterSection, JgclParameterSection vParameterSection, double tolerance, double[] scalingFactor)
処理結果として得られる点群は一般に、位相的にも幾何的にも、格子状ではない。
scalingFactor は、入力用ではなく、出力用の引数である。 scalingFactor には、要素数 2 の配列を与える。 scalingFactor[0] には U 方向の縮尺倍率、 scalingFactor[1] には V 方向の縮尺倍率が返る。 これらの値は何らかの絶対値ではなく、 パラメータの進む速度 T に対して、 U/V 両方向について実空間上で曲面上の点が進む速度 Pu/Pv を表す相対値である。 つまり、パラメータが T だけ進むと、 実空間上での曲面上の点は U 方向では Pu (scalingFactor[0])、 V 方向では Pv (scalingFactor[1]) だけ進むことを表している。 T の大きさは明示されないので、この値を参照する際には、 scalingFactor[0] と scalingFactor[1] の比だけを用いるべきである。 なお、これらの値はあくまでも目安であり、厳密な速度を示すものではない。
結果として返る Vector に含まれる各要素は この曲面をベースとする JgclPointOnSurface3D であることが期待できる。
いまのところ、この機能はサポートされていないため JgclNotSupported の例外を発生する。
JgclParametricSurface3D
内の toNonStructuredPoints
uParameterSection
- U 方向のパラメータ区間vParameterSection
- V 方向のパラメータ区間tolerance
- 距離の許容誤差scalingFactor
- 点群を三角形分割する際に有用と思われる U/V の縮尺倍率JgclPointOnSurface3D
,
JgclNotSupported
public boolean isFreeform()
JgclGeometry
内の isFreeform
protected JgclParametricSurface3D doTransformBy(boolean reverseTransform, JgclCartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
transformedGeometries は、 変換前の幾何要素をキーとし、 変換後の幾何要素を値とするハッシュテーブルである。
this が transformedGeometries 内にキーとして存在しない場合には、 this を transformationOperator で変換したものを返す。 この際にメソッド内部では this をキー、 変換結果を値として transformedGeometries に追加する。
this が transformedGeometries 内に既にキーとして存在する場合には、 実際の変換は行なわず、そのキーに対応する値を返す。 この処理は再帰的に行なわれる。
transformedGeometries は null でも構わない。 transformedGeometries は null の場合には、 常に this を transformationOperator で変換したものを返す。
JgclParametricSurface3D
内の doTransformBy
reverseTransform
- 逆変換するのであれば true、そうでなければ falsetransformationOperator
- 幾何的変換演算子transformedGeometries
- 既に同様の変換を施した幾何要素を含むハッシュテーブルprotected void output(java.io.PrintWriter writer, int indent)
JgclGeometry
内の output
writer
- PrintWriterindent
- インデントの深さJgclGeometry
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |