|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--jp.go.ipa.jgcl.JgclBsplineKnot
Bスプラインのノット列を表すクラス。
このクラスのインスタンスは、以下の属性値によってBスプラインのノット列を表す。
JgclKnotType
)
実際のノット列の長さは、 periodic が false であれば (degree + nControlPoints + 1)、 periodic が true であれば (2 * degree + nControlPoints + 1) になる。
degree は 1 以上でなければならない。
knotSpec が JgclKnotType.UNIFORM_KNOTS の場合には
knotSpec が JgclKnotType.UNSPECIFIED の場合には
knotSpec は JgclKnotType.QUASI_UNIFORM_KNOTS あるいは JgclKnotType.PICEWISE_BEZIER_KNOTS であってはならない。
コンストラクタの概要 | |
JgclBsplineKnot(int degree,
int knotSpec,
boolean periodic,
int[] knotMultiplicities,
double[] knots,
int nControlPoints)
各フィールドに設定する値を与えてオブジェクトを構築する。 |
メソッドの概要 | |
JgclBsplineKnot |
beautify()
ノット情報を整形する。 |
int |
degree()
このノット列の次数を返す。 |
boolean |
isNonPeriodic()
このノット列が開いた形式であるか否かを返す。 |
boolean |
isPeriodic()
このノット列が閉じた形式であるか否かを返す。 |
double |
knotAt(int i)
このノット列が持つノット値の配列の i 番目の値を返す。 |
int[] |
knotMultiplicities()
このノット列のノット多重度の配列を返す。 |
int |
knotMultiplicityAt(double knot)
このノット列の、指定のノット値に対応するノット多重度を返す。 |
int |
knotMultiplicityAt(int i)
このノット列が持つノット多重度の配列の i 番目の値を返す。 |
double[] |
knots()
このノット列のノット値の配列を返す。 |
int |
knotSpec()
このノット列のノットの種別を返す。 |
double |
knotValueAt(int n)
このノット列の n 番目のノット値を返す。 |
int |
nControlPoints()
このノット列の制御点の数を返す。 |
int |
nKnots()
このノット列のノット値の配列の長さを返す。 |
int |
nKnotValues()
このノット列のノットの数を返す。 |
int |
nSegments()
このノット列が示すBスプラインのセグメントの数を返す。 |
void |
output(java.io.OutputStream out)
出力ストリームに形状情報を出力する。 |
protected void |
output(java.io.PrintWriter writer,
int indent,
int index)
出力ストリームに形状情報を出力する。 |
JgclBsplineKnot |
reverse()
このノット列を反転したノット列を返す。 |
int |
segmentIndex(double param)
このノット列の、与えられたパラメータ値に対応するセグメントのインデックスを返す。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public JgclBsplineKnot(int degree, int knotSpec, boolean periodic, int[] knotMultiplicities, double[] knots, int nControlPoints)
引数の値が [属性間の拘束条件] を満たさない場合には、 JgclInvalidArgumentValue の例外を発生する。
degree
- 次数knotSpec
- ノットの種別 (JgclKnotType)periodic
- 閉じた形式か否かを表すフラグknotMultiplicities
- ノット多重度の配列knots
- ノット値の配列nControlPoints
- 制御点の数JgclKnotType
,
JgclInvalidArgumentValue
メソッドの詳細 |
public int degree()
public int nControlPoints()
public int knotSpec()
JgclKnotType
public int nKnots()
ノットの種別が JgclKnotType.UNSPECIFIED でない場合には JgclFatal の例外を発生する。
JgclFatal
public int[] knotMultiplicities()
ノットの種別が JgclKnotType.UNSPECIFIED でない場合には JgclFatal の例外を発生する。
JgclFatal
public double[] knots()
ノットの種別が JgclKnotType.UNSPECIFIED でない場合には JgclFatal の例外を発生する。
JgclFatal
public int knotMultiplicityAt(int i)
ノットの種別が JgclKnotType.UNSPECIFIED でない場合には JgclFatal の例外を発生する。
JgclFatal
public int knotMultiplicityAt(double knot)
与えられた値がノット値でない場合には 0 を返す。
なお、このメソッドに正しい値を返させるには ノット列が整形されている必要がある。
knot
- 多重度を調べるノット値beautify()
public double knotAt(int i)
ノットの種別が JgclKnotType.UNSPECIFIED でない場合には JgclFatal の例外を発生する。
JgclFatal
public boolean isPeriodic()
public boolean isNonPeriodic()
public int nSegments()
public int nKnotValues()
ここで言う「ノットの数」とは knots フィールドに設定されたノット値の配列の長さではなく、 Bスプラインのノット列本来のノットの数である。
public double knotValueAt(int n)
ここで言う「n 番目」とは knots フィールドに設定されたノット値の配列内のインデックスではなく、 Bスプラインのノット列本来の意味でのインデックスである。
n
- インデックスpublic int segmentIndex(double param)
param は
JgclParameterDomain.wrap(double)
あるいは
JgclParameterDomain.force(double)
を用いて正規化されている必要がある。
param
- パラメータ値public JgclBsplineKnot beautify()
与えられたノット列について多重度が knotMultiplicities で明示されていない箇所を修正する。
public JgclBsplineKnot reverse()
このメソッドが返すノット列のパラメータ定義域は 0 で始まる。
protected void output(java.io.PrintWriter writer, int indent, int index)
index の値は以下の意味を持つ。
0 : 曲線用の文字列で出力する 1 : 曲面の U 方向用の文字列で出力する 2 : 曲面の V 方向用の文字列で出力する
writer
- PrintWriterindent
- インデントの深さindex
- キーワードを選択する値public void output(java.io.OutputStream out)
out
- 出力ストリーム
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |