NURBS_Func.h | |
Constants | |
General Defines | |
NURBS_Func | NURBS曲線/曲面の操作を集めたクラス |
Functions | |
CalcNurbsCCoord | 指定したtでのNURBS曲線の座標値を求める |
CalcNurbsCCoords | 指定したt群でのNURBS曲線の座標値群を求める |
CalcNurbsSCoord | 指定したu,vでのNURBS曲面の座標点を求める |
CalcNurbsSCoords | 指定したu,v群でのNURBS曲面の座標値群を求める |
GenNurbsC | 1つのNURBS曲線を生成する |
GenNurbsC | 1つのNURBS曲線を生成する(NURBS曲線のコピー)(オーバーロード) |
GenNurbsS | 1つのNURBS曲面を生成する |
GenNurbsS | 1つのNURBS曲面を生成する(NURBS曲面のコピー)(オーバーロード) |
GenRotNurbsS | 1つのNURBS曲線をある軸回りにある角度だけ回転させた回転サーフェスを生成する |
GenSweepNurbsS | 1つのNURBS曲線からある軸方向にある距離だけスイープさせたスイープサーフェスを生成する |
GenIsoparamCurveU | NURBS曲面上のu方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成 |
GenIsoparamCurveV | NURBS曲面上のv方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成 |
GenTrimdNurbsS | トリム面を生成する |
DelTrimdNurbsS | トリム面を削除(メモリー解放)する |
DelNurbsC | NURBS曲線を削除する |
DelNurbsS | NURBS曲面を削除する |
CalcBSbasis | Bスプライン基底関数を計算し、計算結果を返す |
CalcDiffBSbasis | Bスプライン基底関数の1階微分係数を求める |
CalcDiffBSbasisN | Bスプライン基底関数のN階微分係数を求める |
CalcDiffNurbsC | NURBS曲線の1階微分係数を求める |
CalcDiff2NurbsC | NURBS曲線の2階微分係数を求める |
CalcDiffNNurbsC | NURBS曲線のr階微分係数を求める |
CalcDiffuNurbsS | NURBS曲面のu方向1階微分係数を求める |
CalcDiffvNurbsS | NURBS曲面のv方向1階微分係数を求める |
CalcDiffNNurbsS | NURBS曲面の各方向を任意階微分したときの微分係数を求める |
CalcNormVecOnNurbsS | NURBS曲面上の(u,v)における法線ベクトルをもとめる |
CalcDiffuNormVecOnNurbsS | NURBS曲面上の(u,v)における法線ベクトルのu方向1階微分をもとめる |
CalcDiffvNormVecOnNurbsS | NURBS曲面上の(u,v)における法線ベクトルのv方向1階微分をもとめる |
CalcMeanCurvature | NURBS曲面上の(u,v)における平均曲率を求める |
CalcMeanCurvature | オーバーロード |
CalcMeanCurvatureNormVec | NURBS曲面上の(u,v)における平均曲率法線ベクトルを求める |
CalcGaussCurvature | NURBS曲面上の(u,v)におけるガウス曲率を求める |
CalcGaussCurvature | オーバーロード |
CalcGaussCurvatureNormVec | NURBS曲面上の(u,v)におけるガウス曲率法線ベクトルを求める |
CalcuIntersecPtNurbsLine | NURBS曲面と直線の交点を算出 |
CalcIntersecPtNurbsPt | 空間上の1点からNURBS曲面上の最近傍点を求める(ニュートン法) |
CalcIntersecPtNurbsPt | 空間上の1点からNURBS曲線上の最近傍点を求める(ニュートン法)(オーバーロード) |
CalcIntersecIsparaCurveU | u方向アイソパラ曲線と平面との交点を求める(ニュートン法) |
CalcIntersecIsparaCurveV | v方向アイソパラ曲線と平面との交点を求める(ニュートン法) |
CalcIntersecCurve | NURBS曲線と平面との交点を求める(ニュートン法) |
CalcIntersecCurve3 | 3次以下のNURBS曲線と平面との交点を求める |
CalcIntersecPtsPlaneV3 | V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する |
CalcIntersecPtsPlaneU3 | V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する |
CalcIntersecPtsPlaneV | V方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する |
CalcIntersecPtsPlaneU | U方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する |
CalcIntersecPtsPlaneSearch | NURBS曲面と平面との交点群を交線追跡法で求める |
CalcIntersecPtsOffsetPlaneSearch | オフセットNURBS曲面と平面との交点群を交線追跡法で求める(準備中) |
CalcIntersecPtsNurbsSNurbsC | NURBS曲面とNURBS曲線との交点を求める(ニュートン法) |
CalcIntersecPtsNurbsSGeom | NURBS曲面同士の交線上の点を幾何学的にいくつか求める |
CalcIntersecPtsNurbsSSearch | NURBS曲面同士の交線(交点群)を交線追跡法で求める |
CalcIntersecPtsNurbsCNurbsCParam | 2次元NURBS曲線同士の交点を求める |
CalcIntersecPtsNurbsCLine | 2次元NURBS曲線と直線との交点を求める |
CalcIntersecPtsNurbsCLineSeg | 2次元NURBS曲線と線分との交点を求める |
SearchExtremum_BS | Bulirsch-Stoer法により極地探索を行う |
GetBSplCoef3 | 3次のBスプライン曲線の各係数を求める (at^3 + bt^2 + ct + dの係数a,b,c,dを返す) |
GetBSplCoef2 | 2次のBスプライン曲線の各係数を求める (at^2 + bt + cの係数a,b,cを返す) |
GetBSplCoef1 | 1次のBスプライン曲線の各係数を求める (at + bの係数a,bを返す) |
ShiftNurbsS | NURBS曲面のシフト |
ShiftNurbsC | NURBS曲線のシフト |
ChRatioNurbsS | NURBS曲面の倍率を変更する |
ChRatioNurbsC | NURBS曲線の倍率を変更する |
RotNurbsS | NURBS曲面を回転 |
RotNurbsC | NURBS曲線を回転 |
SetCPNurbsS | コントロールポイントを代入する |
GenInterpolatedNurbsC1 | 与えられた点列を補間するn階のNURBS曲線を生成する |
GenInterpolatedNurbsC2 | 与えられた点列を補間するn階のNURBS曲線を生成する(閉じた曲線) |
GenApproximationNurbsC | 与えられた点列を近似するn階のNURBS曲線を生成する |
GenNurbsCfromCP | コントロールポイントからNURBS曲線を生成する |
GenPolygonalLine | 折れ線を生成する |
GenInterpolatedNurbsS1 | 与えられた点列を補間するn階NURBS曲面を生成する |
GenPolygonalSurface | 折れ面を生成する |
GenApproximationNurbsS | 与えられた点列を近似するn階のNURBS曲面を生成する |
GenNurbsSfromCP | 与えられたコントロールポイントからn階のNURBS曲面を生成する |
DetermPtOnTRMSurf | 注目中のNURBS曲面上の1点(u,v)がトリミング領域内にあるのかを判定する |
GetPtsOnOuterTRMSurf | 外周トリム面内の点のみ残す |
GetPtsOnInnerTRMSurf | 内周トリム面外の点のみ残す |
GetPtsOnInnerOuterTRMSurf | 内外周トリム面内の点のみ残す |
DetectInterfereNurbsS | NURBS曲面(トリム無)同士の干渉検出 |
DetectInterfereTrmS | NURBS曲面(トリム有)同士の干渉検出 |
CalcIntersecPtsPlaneGeom | NURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法) |
CalcNurbsCLength | NURBS曲線の線分長を求める |
CalcNurbsCLength | NURBS曲線の指定区間の線分長を求める |
CalcDeltaPtsOnNurbsC | 指定した分割数でNURBS曲線上の座標値を求める |
CalcDeltaPtsOnNurbsS | 指定した分割数でNURBS曲面上の座標値を求める |
CalcExtremumNurbsC | NURBS曲線の指定した方向における極値の座標値を得る |
GetEqIntervalKont | 曲線/曲面パラメータから等間隔なノットベクトルを算出 |
ChangeKnotVecRange | ノットベクトルのパラメータ定義域を変更する |
New_NurbsC | NURBS曲線のメモリー確保 |
Free_NurbsC_1DArray | NURBS曲線配列のメモリー解放 |
Free_NurbsC | NURBS曲線のメモリー解放 |
New_NurbsS | NURBS曲面のメモリー確保 |
Free_NurbsS_1DArray | NURBS曲面配列のメモリー解放 |
Free_NurbsS | NURBS曲面のメモリー解放 |
New_TrmS | トリム面のメモリー確保 |
Free_TrmS_1DArray | トリム面配列のメモリー解放 |
Free_TrmS | トリム面のメモリー解放 |
New_CompC | 複合曲線のメモリー確保 |
Free_CompC_1DArray | 複合曲線配列のメモリー解放 |
Free_CompC | 複合曲線のメモリー解放 |
DebugForNurbsC | NURBS曲線情報をデバッグプリント |
DebugForNurbsS | NURBS曲面情報をデバッグプリント |
CalcIntersecPtsOffsetPlaneGeom | オフセットNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)(準備中) |
CalcTanVecOnNurbsC | NURBS曲線上のtにおける単位接ベクトルをもとめる |
ConnectNurbsSU | 2枚のNURBS曲面を連結する(U方向に長くなる)(S1_U1とS2_U0を連結) |
ConnectNurbsSV | 2枚のNURBS曲面を連結する(V方向に長くなる)(S1_V1とS2_V0を連結) |
CalcCurvatureNurbsC | NURBS曲線の曲率を求める |
DivNurbsCParam | NURBS曲線を指定したパラメータ値で分割する |
DivNurbsC | NURBS曲線を指定した位置(端からの距離)で分割する |
ConnectNurbsC | NURBS曲線の連結 |
ReverseNurbsC | NURBS曲線のノットベクトル向きを反転する |
CalcParamLengthOnNurbsC | NURBS曲線において一端からの指定距離におけるパラメータ値を返す |
CalcDeltaPtsOnNurbsC | 指定した間隔でNURBS曲線上の座標値を求める |
GetNurbsCCoef | (private)NURBS曲線の係数を求める(最高3次) |
CalcEquation | (private)3次方程式までを判別して解く |
GetNurbsSCoef | (private)NURBS曲面においてuまたはvを固定した場合に得られるNURBS曲線C(u) or C(v)の分母分子の係数を求める |
GetIntersecEquation | (private)NURBS曲線と平面の交線導出用3次方程式を得る |
SearchIntersectPt | (private)ニュートン法により交点を収束させる(NURBS曲面と平面) |
SearchIntersectPt_RKM | (private)4次のルンゲクッタ法により交点を収束させる(NURBS曲面と平面) |
SearchIntersectPt_BS | (private)Bulirsch-Stoer法により交点を収束させる(NURBS曲面と平面) |
SearchIntersectPt_OS | (private)4次のルンゲクッタ法により交点を収束させる(オフセットNURBS曲面と平面) |
GetSIPParam1 | (private)NURBS曲面と平面の交点を表す微分方程式の右辺の値を得る |
SearchIntersectPt | (private)ニュートン法により交点を収束させる(NURBS曲面同士) |
DetermPtOnTRMSurf_sub | (private)トリム境界線が複合曲線の場合のトリミング領域内外判定 |
ApproxTrimBorder | (private)トリム境界線を点群で近似する |
GetCurveKnotParam1 | (private)各通過点の曲線パラメータを算出(コード長の比から算出) |
GetCurveKnotParam2 | (private)各通過点の曲線パラメータを算出(コード長の平方根の比から算出) |
GetSurfaceKnotParam | (private)各通過点の曲面パラメータを算出 |
GetInterpolatedKnot | (private)曲線/曲面パラメータから補間用ノットベクトルを算出 |
GetApproximatedKnot | (private)曲線/曲面パラメータから近似用ノットベクトルを算出 |
SetApproximationCPnum | (private)点列数から生成するコントロールポイント数を算定する |
CalcApproximationCP_LSM | (private)最小2乗法で近似コントロールポイントを求める |
RemoveTheSamePoints | (private)NURBS曲面上の同一点を除去する |
CalcDiffNurbsSDenom | (private)NURBS曲面分母の各方向を任意階微分したときの微分係数を求める |
CalcDiffNurbsSNumer | (private)NURBS曲面分子の各方向を任意階微分したときの微分係数を求める |
TrimNurbsSPlaneSub1 | (private)TrimNurbsSPlaneのサブ関数(2直線の交点をもとめる) |
CalcIntersecPtsPlaneSearch_Sub | (private)面から飛び出した(u,v)を参考に面のエッジ部(new_u,new_v)を得る |
GetMinDistance | (private)最小距離を持つ座標値を返す |
CheckClossedPoints | (private)指定した点が他の2点を対角とする立方体の中に存在するかを調べる |
GetSECParam1 | (private)極値探索線Sub関数1 |
GetMinDist | (private)最小距離を調べる |
SetKnotVecSU_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のU方向ノット定義域を設定する) |
SetKnotVecSV_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のV方向ノット定義域を設定する) |
SetCPSU_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のU方向コントロールポイントとウェイトを設定する) |
SetCPSV_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のV方向コントロールポイントとウェイトを設定する) |
InsertNewKnotOnNurbsC | (private)NURBS曲線に新たなノットを挿入する |
SetKnotVecC_ConnectC | (private)NURBS曲線連結用SUB関数(連結後の曲線のノット定義域を設定する) |
SetCPC_ConnectC | (private)NURBS曲線連結用SUB関数(連結後の曲線のコントロールポイントとウェイトを設定する) |
class NURBS_Func
NURBS曲線/曲面の操作を集めたクラス
Functions | |
CalcNurbsCCoord | 指定したtでのNURBS曲線の座標値を求める |
CalcNurbsCCoords | 指定したt群でのNURBS曲線の座標値群を求める |
CalcNurbsSCoord | 指定したu,vでのNURBS曲面の座標点を求める |
CalcNurbsSCoords | 指定したu,v群でのNURBS曲面の座標値群を求める |
GenNurbsC | 1つのNURBS曲線を生成する |
GenNurbsC | 1つのNURBS曲線を生成する(NURBS曲線のコピー)(オーバーロード) |
GenNurbsS | 1つのNURBS曲面を生成する |
GenNurbsS | 1つのNURBS曲面を生成する(NURBS曲面のコピー)(オーバーロード) |
GenRotNurbsS | 1つのNURBS曲線をある軸回りにある角度だけ回転させた回転サーフェスを生成する |
GenSweepNurbsS | 1つのNURBS曲線からある軸方向にある距離だけスイープさせたスイープサーフェスを生成する |
GenIsoparamCurveU | NURBS曲面上のu方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成 |
GenIsoparamCurveV | NURBS曲面上のv方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成 |
GenTrimdNurbsS | トリム面を生成する |
DelTrimdNurbsS | トリム面を削除(メモリー解放)する |
DelNurbsC | NURBS曲線を削除する |
DelNurbsS | NURBS曲面を削除する |
CalcBSbasis | Bスプライン基底関数を計算し、計算結果を返す |
CalcDiffBSbasis | Bスプライン基底関数の1階微分係数を求める |
CalcDiffBSbasisN | Bスプライン基底関数のN階微分係数を求める |
CalcDiffNurbsC | NURBS曲線の1階微分係数を求める |
CalcDiff2NurbsC | NURBS曲線の2階微分係数を求める |
CalcDiffNNurbsC | NURBS曲線のr階微分係数を求める |
CalcDiffuNurbsS | NURBS曲面のu方向1階微分係数を求める |
CalcDiffvNurbsS | NURBS曲面のv方向1階微分係数を求める |
CalcDiffNNurbsS | NURBS曲面の各方向を任意階微分したときの微分係数を求める |
CalcNormVecOnNurbsS | NURBS曲面上の(u,v)における法線ベクトルをもとめる |
CalcDiffuNormVecOnNurbsS | NURBS曲面上の(u,v)における法線ベクトルのu方向1階微分をもとめる |
CalcDiffvNormVecOnNurbsS | NURBS曲面上の(u,v)における法線ベクトルのv方向1階微分をもとめる |
CalcMeanCurvature | NURBS曲面上の(u,v)における平均曲率を求める |
CalcMeanCurvature | オーバーロード |
CalcMeanCurvatureNormVec | NURBS曲面上の(u,v)における平均曲率法線ベクトルを求める |
CalcGaussCurvature | NURBS曲面上の(u,v)におけるガウス曲率を求める |
CalcGaussCurvature | オーバーロード |
CalcGaussCurvatureNormVec | NURBS曲面上の(u,v)におけるガウス曲率法線ベクトルを求める |
CalcuIntersecPtNurbsLine | NURBS曲面と直線の交点を算出 |
CalcIntersecPtNurbsPt | 空間上の1点からNURBS曲面上の最近傍点を求める(ニュートン法) |
CalcIntersecPtNurbsPt | 空間上の1点からNURBS曲線上の最近傍点を求める(ニュートン法)(オーバーロード) |
CalcIntersecIsparaCurveU | u方向アイソパラ曲線と平面との交点を求める(ニュートン法) |
CalcIntersecIsparaCurveV | v方向アイソパラ曲線と平面との交点を求める(ニュートン法) |
CalcIntersecCurve | NURBS曲線と平面との交点を求める(ニュートン法) |
CalcIntersecCurve3 | 3次以下のNURBS曲線と平面との交点を求める |
CalcIntersecPtsPlaneV3 | V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する |
CalcIntersecPtsPlaneU3 | V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する |
CalcIntersecPtsPlaneV | V方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する |
CalcIntersecPtsPlaneU | U方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する |
CalcIntersecPtsPlaneSearch | NURBS曲面と平面との交点群を交線追跡法で求める |
CalcIntersecPtsOffsetPlaneSearch | オフセットNURBS曲面と平面との交点群を交線追跡法で求める(準備中) |
CalcIntersecPtsNurbsSNurbsC | NURBS曲面とNURBS曲線との交点を求める(ニュートン法) |
CalcIntersecPtsNurbsSGeom | NURBS曲面同士の交線上の点を幾何学的にいくつか求める |
CalcIntersecPtsNurbsSSearch | NURBS曲面同士の交線(交点群)を交線追跡法で求める |
CalcIntersecPtsNurbsCNurbsCParam | 2次元NURBS曲線同士の交点を求める |
CalcIntersecPtsNurbsCLine | 2次元NURBS曲線と直線との交点を求める |
CalcIntersecPtsNurbsCLineSeg | 2次元NURBS曲線と線分との交点を求める |
SearchExtremum_BS | Bulirsch-Stoer法により極地探索を行う |
GetBSplCoef3 | 3次のBスプライン曲線の各係数を求める (at^3 + bt^2 + ct + dの係数a,b,c,dを返す) |
GetBSplCoef2 | 2次のBスプライン曲線の各係数を求める (at^2 + bt + cの係数a,b,cを返す) |
GetBSplCoef1 | 1次のBスプライン曲線の各係数を求める (at + bの係数a,bを返す) |
ShiftNurbsS | NURBS曲面のシフト |
ShiftNurbsC | NURBS曲線のシフト |
ChRatioNurbsS | NURBS曲面の倍率を変更する |
ChRatioNurbsC | NURBS曲線の倍率を変更する |
RotNurbsS | NURBS曲面を回転 |
RotNurbsC | NURBS曲線を回転 |
SetCPNurbsS | コントロールポイントを代入する |
GenInterpolatedNurbsC1 | 与えられた点列を補間するn階のNURBS曲線を生成する |
GenInterpolatedNurbsC2 | 与えられた点列を補間するn階のNURBS曲線を生成する(閉じた曲線) |
GenApproximationNurbsC | 与えられた点列を近似するn階のNURBS曲線を生成する |
GenNurbsCfromCP | コントロールポイントからNURBS曲線を生成する |
GenPolygonalLine | 折れ線を生成する |
GenInterpolatedNurbsS1 | 与えられた点列を補間するn階NURBS曲面を生成する |
GenPolygonalSurface | 折れ面を生成する |
GenApproximationNurbsS | 与えられた点列を近似するn階のNURBS曲面を生成する |
GenNurbsSfromCP | 与えられたコントロールポイントからn階のNURBS曲面を生成する |
DetermPtOnTRMSurf | 注目中のNURBS曲面上の1点(u,v)がトリミング領域内にあるのかを判定する |
GetPtsOnOuterTRMSurf | 外周トリム面内の点のみ残す |
GetPtsOnInnerTRMSurf | 内周トリム面外の点のみ残す |
GetPtsOnInnerOuterTRMSurf | 内外周トリム面内の点のみ残す |
DetectInterfereNurbsS | NURBS曲面(トリム無)同士の干渉検出 |
DetectInterfereTrmS | NURBS曲面(トリム有)同士の干渉検出 |
CalcIntersecPtsPlaneGeom | NURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法) |
CalcNurbsCLength | NURBS曲線の線分長を求める |
CalcNurbsCLength | NURBS曲線の指定区間の線分長を求める |
CalcDeltaPtsOnNurbsC | 指定した分割数でNURBS曲線上の座標値を求める |
CalcDeltaPtsOnNurbsS | 指定した分割数でNURBS曲面上の座標値を求める |
CalcExtremumNurbsC | NURBS曲線の指定した方向における極値の座標値を得る |
GetEqIntervalKont | 曲線/曲面パラメータから等間隔なノットベクトルを算出 |
ChangeKnotVecRange | ノットベクトルのパラメータ定義域を変更する |
New_NurbsC | NURBS曲線のメモリー確保 |
Free_NurbsC_1DArray | NURBS曲線配列のメモリー解放 |
Free_NurbsC | NURBS曲線のメモリー解放 |
New_NurbsS | NURBS曲面のメモリー確保 |
Free_NurbsS_1DArray | NURBS曲面配列のメモリー解放 |
Free_NurbsS | NURBS曲面のメモリー解放 |
New_TrmS | トリム面のメモリー確保 |
Free_TrmS_1DArray | トリム面配列のメモリー解放 |
Free_TrmS | トリム面のメモリー解放 |
New_CompC | 複合曲線のメモリー確保 |
Free_CompC_1DArray | 複合曲線配列のメモリー解放 |
Free_CompC | 複合曲線のメモリー解放 |
DebugForNurbsC | NURBS曲線情報をデバッグプリント |
DebugForNurbsS | NURBS曲面情報をデバッグプリント |
CalcIntersecPtsOffsetPlaneGeom | オフセットNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)(準備中) |
CalcTanVecOnNurbsC | NURBS曲線上のtにおける単位接ベクトルをもとめる |
ConnectNurbsSU | 2枚のNURBS曲面を連結する(U方向に長くなる)(S1_U1とS2_U0を連結) |
ConnectNurbsSV | 2枚のNURBS曲面を連結する(V方向に長くなる)(S1_V1とS2_V0を連結) |
CalcCurvatureNurbsC | NURBS曲線の曲率を求める |
DivNurbsCParam | NURBS曲線を指定したパラメータ値で分割する |
DivNurbsC | NURBS曲線を指定した位置(端からの距離)で分割する |
ConnectNurbsC | NURBS曲線の連結 |
ReverseNurbsC | NURBS曲線のノットベクトル向きを反転する |
CalcParamLengthOnNurbsC | NURBS曲線において一端からの指定距離におけるパラメータ値を返す |
CalcDeltaPtsOnNurbsC | 指定した間隔でNURBS曲線上の座標値を求める |
GetNurbsCCoef | (private)NURBS曲線の係数を求める(最高3次) |
CalcEquation | (private)3次方程式までを判別して解く |
GetNurbsSCoef | (private)NURBS曲面においてuまたはvを固定した場合に得られるNURBS曲線C(u) or C(v)の分母分子の係数を求める |
GetIntersecEquation | (private)NURBS曲線と平面の交線導出用3次方程式を得る |
SearchIntersectPt | (private)ニュートン法により交点を収束させる(NURBS曲面と平面) |
SearchIntersectPt_RKM | (private)4次のルンゲクッタ法により交点を収束させる(NURBS曲面と平面) |
SearchIntersectPt_BS | (private)Bulirsch-Stoer法により交点を収束させる(NURBS曲面と平面) |
SearchIntersectPt_OS | (private)4次のルンゲクッタ法により交点を収束させる(オフセットNURBS曲面と平面) |
GetSIPParam1 | (private)NURBS曲面と平面の交点を表す微分方程式の右辺の値を得る |
SearchIntersectPt | (private)ニュートン法により交点を収束させる(NURBS曲面同士) |
DetermPtOnTRMSurf_sub | (private)トリム境界線が複合曲線の場合のトリミング領域内外判定 |
ApproxTrimBorder | (private)トリム境界線を点群で近似する |
GetCurveKnotParam1 | (private)各通過点の曲線パラメータを算出(コード長の比から算出) |
GetCurveKnotParam2 | (private)各通過点の曲線パラメータを算出(コード長の平方根の比から算出) |
GetSurfaceKnotParam | (private)各通過点の曲面パラメータを算出 |
GetInterpolatedKnot | (private)曲線/曲面パラメータから補間用ノットベクトルを算出 |
GetApproximatedKnot | (private)曲線/曲面パラメータから近似用ノットベクトルを算出 |
SetApproximationCPnum | (private)点列数から生成するコントロールポイント数を算定する |
CalcApproximationCP_LSM | (private)最小2乗法で近似コントロールポイントを求める |
RemoveTheSamePoints | (private)NURBS曲面上の同一点を除去する |
CalcDiffNurbsSDenom | (private)NURBS曲面分母の各方向を任意階微分したときの微分係数を求める |
CalcDiffNurbsSNumer | (private)NURBS曲面分子の各方向を任意階微分したときの微分係数を求める |
TrimNurbsSPlaneSub1 | (private)TrimNurbsSPlaneのサブ関数(2直線の交点をもとめる) |
CalcIntersecPtsPlaneSearch_Sub | (private)面から飛び出した(u,v)を参考に面のエッジ部(new_u,new_v)を得る |
GetMinDistance | (private)最小距離を持つ座標値を返す |
CheckClossedPoints | (private)指定した点が他の2点を対角とする立方体の中に存在するかを調べる |
GetSECParam1 | (private)極値探索線Sub関数1 |
GetMinDist | (private)最小距離を調べる |
SetKnotVecSU_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のU方向ノット定義域を設定する) |
SetKnotVecSV_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のV方向ノット定義域を設定する) |
SetCPSU_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のU方向コントロールポイントとウェイトを設定する) |
SetCPSV_ConnectS | (private)NURBS曲面連結用SUB関数(連結後の曲面のV方向コントロールポイントとウェイトを設定する) |
InsertNewKnotOnNurbsC | (private)NURBS曲線に新たなノットを挿入する |
SetKnotVecC_ConnectC | (private)NURBS曲線連結用SUB関数(連結後の曲線のノット定義域を設定する) |
SetCPC_ConnectC | (private)NURBS曲線連結用SUB関数(連結後の曲線のコントロールポイントとウェイトを設定する) |
NURBS曲線/曲面の操作を集めたクラス
class NURBS_Func
指定したtでのNURBS曲線の座標値を求める
Coord CalcNurbsCCoord( NURBSC * , double )
指定したt群でのNURBS曲線の座標値群を求める
void CalcNurbsCCoords( NURBSC * , int, double * , Coord * )
指定したu,vでのNURBS曲面の座標点を求める
Coord CalcNurbsSCoord( NURBSS * , double, double )
指定したu,v群でのNURBS曲面の座標値群を求める
void CalcNurbsSCoords( NURBSS * , int, Coord * , Coord * )
1つのNURBS曲線を生成する
int GenNurbsC( NURBSC * , int, int, int, double [], double [], Coord [], double [], int[], int )
1つのNURBS曲面を生成する
int GenNurbsS( NURBSS * , int, int, int, int, double * , double * , double ** , Coord ** , double, double, double, double )
1つのNURBS曲線をある軸回りにある角度だけ回転させた回転サーフェスを生成する
int GenRotNurbsS( NURBSS * , NURBSC, Coord, double )
1つのNURBS曲線からある軸方向にある距離だけスイープさせたスイープサーフェスを生成する
int GenSweepNurbsS( NURBSS * , NURBSC, Coord, double )
NURBS曲面上のu方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成
int GenIsoparamCurveU( NURBSS * , double, NURBSC * )
NURBS曲面上のv方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成
int GenIsoparamCurveV( NURBSS * , double, NURBSC * )
トリム面を生成する
int GenTrimdNurbsS( TRIMD_NURBSS * , TRIMD_NURBSS )
トリム面を削除(メモリー解放)する
int DelTrimdNurbsS( TRIMD_NURBSS * )
NURBS曲線を削除する
void DelNurbsC( NURBSC * )
NURBS曲面を削除する
void DelNurbsS( NURBSS * )
Bスプライン基底関数を計算し、計算結果を返す
double CalcBSbasis( double, double [], int, int, int )
Bスプライン基底関数の1階微分係数を求める
double CalcDiffBSbasis( double, double [], int, int, int )
Bスプライン基底関数のN階微分係数を求める
double CalcDiffBSbasisN( double, double [], int, int, int, int )
NURBS曲線の1階微分係数を求める
Coord CalcDiffNurbsC( NURBSC * , double )
NURBS曲線の2階微分係数を求める
Coord CalcDiff2NurbsC( NURBSC * , double )
NURBS曲線のr階微分係数を求める
Coord CalcDiffNNurbsC( NURBSC * , int, double )
NURBS曲面のu方向1階微分係数を求める
Coord CalcDiffuNurbsS( NURBSS * , double, double )
NURBS曲面のv方向1階微分係数を求める
Coord CalcDiffvNurbsS( NURBSS * , double, double )
NURBS曲面の各方向を任意階微分したときの微分係数を求める
Coord CalcDiffNNurbsS( NURBSS * , int, int, double, double )
NURBS曲面上の(u,v)における法線ベクトルをもとめる
Coord CalcNormVecOnNurbsS( NURBSS * , double, double )
NURBS曲面上の(u,v)における法線ベクトルのu方向1階微分をもとめる
Coord CalcDiffuNormVecOnNurbsS( NURBSS * , double, double )
NURBS曲面上の(u,v)における法線ベクトルのv方向1階微分をもとめる
Coord CalcDiffvNormVecOnNurbsS( NURBSS * , double, double )
NURBS曲面上の(u,v)における平均曲率を求める
double CalcMeanCurvature( NURBSS * , double, double )
NURBS曲面上の(u,v)における平均曲率法線ベクトルを求める
Coord CalcMeanCurvatureNormVec( NURBSS * , double, double )
NURBS曲面上の(u,v)におけるガウス曲率を求める
double CalcGaussCurvature( NURBSS * , double, double )
NURBS曲面上の(u,v)におけるガウス曲率法線ベクトルを求める
Coord CalcGaussCurvatureNormVec( NURBSS * , double, double )
NURBS曲面と直線の交点を算出
int CalcuIntersecPtNurbsLine( NURBSS * , Coord, Coord, int, Coord * , int, int )
空間上の1点からNURBS曲面上の最近傍点を求める(ニュートン法)
int CalcIntersecPtNurbsPt( NURBSS * , Coord, int, int, Coord * )
u方向アイソパラ曲線と平面との交点を求める(ニュートン法)
int CalcIntersecIsparaCurveU( NURBSS * , double, Coord, Coord, int, double * , int )
v方向アイソパラ曲線と平面との交点を求める(ニュートン法)
int CalcIntersecIsparaCurveV( NURBSS * , double, Coord, Coord, int, double * , int )
NURBS曲線と平面との交点を求める(ニュートン法)
int CalcIntersecCurve( NURBSC * , Coord, Coord, int, double * , int, int )
3次以下のNURBS曲線と平面との交点を求める
int CalcIntersecCurve3( NURBSC * , Coord, Coord, double * , int )
V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する
int CalcIntersecPtsPlaneV3( NURBSS * , Coord, Coord, int, Coord * , int )
V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する
int CalcIntersecPtsPlaneU3( NURBSS * , Coord, Coord, int, Coord * , int )
V方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する
int CalcIntersecPtsPlaneV( NURBSS * , Coord, Coord, int, Coord * , int )
U方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する
int CalcIntersecPtsPlaneU( NURBSS * , Coord, Coord, int, Coord * , int )
NURBS曲面と平面との交点群を交線追跡法で求める
int CalcIntersecPtsPlaneSearch( NURBSS * , Coord, Coord, double, int, Coord * , int, int )
オフセットNURBS曲面と平面との交点群を交線追跡法で求める(準備中)
int CalcIntersecPtsOffsetPlaneSearch( NURBSS * , double, Coord, Coord, double, int, Coord * , int )
NURBS曲面とNURBS曲線との交点を求める(ニュートン法)
int CalcIntersecPtsNurbsSNurbsC( NURBSS * , NURBSC * , int, Coord * , int )
NURBS曲面同士の交線上の点を幾何学的にいくつか求める
int CalcIntersecPtsNurbsSGeom( NURBSS * , NURBSS * , int, int, Coord * , Coord * , int )
NURBS曲面同士の交線(交点群)を交線追跡法で求める
int CalcIntersecPtsNurbsSSearch( NURBSS * , NURBSS * , int, double, Coord * , Coord * , int )
2次元NURBS曲線同士の交点を求める
int CalcIntersecPtsNurbsCNurbsCParam( NURBSC * , NURBSC * , int, Coord * , int )
Bulirsch-Stoer法により極地探索を行う
int SearchExtremum_BS( NURBSS * , Coord, double, double, double, int, int, Coord * )
3次のBスプライン曲線の各係数を求める (at^3 + bt^2 + ct + dの係数a,b,c,dを返す)
int GetBSplCoef3( int, int, int, double * , double ** )
2次のBスプライン曲線の各係数を求める (at^2 + bt + cの係数a,b,cを返す)
int GetBSplCoef2( int, int, int, double * , double ** )
1次のBスプライン曲線の各係数を求める (at + bの係数a,bを返す)
int GetBSplCoef1( int, int, int, double * , double ** )
NURBS曲面のシフト
void ShiftNurbsS( NURBSS * , Coord )
NURBS曲線のシフト
void ShiftNurbsC( NURBSC * , Coord )
NURBS曲面の倍率を変更する
void ChRatioNurbsS( NURBSS * , Coord )
NURBS曲線の倍率を変更する
void ChRatioNurbsC( NURBSC * , Coord )
NURBS曲面を回転
void RotNurbsS( NURBSS * , Coord, double )
NURBS曲線を回転
void RotNurbsC( NURBSC * , Coord, double )
コントロールポイントを代入する
int SetCPNurbsS( NURBSS * , NURBSS )
与えられた点列を補間するn階のNURBS曲線を生成する
int GenInterpolatedNurbsC1( NURBSC * , Coord * , int, int )
与えられた点列を補間するn階のNURBS曲線を生成する(閉じた曲線)
int GenInterpolatedNurbsC2( NURBSC * , Coord * , int, int )
与えられた点列を近似するn階のNURBS曲線を生成する
int GenApproximationNurbsC( NURBSC * , Coord * , int, int )
コントロールポイントからNURBS曲線を生成する
int GenNurbsCfromCP( NURBSC * , Coord * , int, int )
折れ線を生成する
int GenPolygonalLine( NURBSC * , Coord * , int )
与えられた点列を補間するn階NURBS曲面を生成する
int GenInterpolatedNurbsS1( NURBSS * , Coord ** , int, int, int, int )
折れ面を生成する
int GenPolygonalSurface( NURBSS * , Coord ** , int, int )
与えられた点列を近似するn階のNURBS曲面を生成する
int GenApproximationNurbsS( NURBSS * , Coord ** , int, int, int, int )
与えられたコントロールポイントからn階のNURBS曲面を生成する
int GenNurbsSfromCP( NURBSS * , Coord ** , int, int, int, int )
注目中のNURBS曲面上の1点(u,v)がトリミング領域内にあるのかを判定する
int DetermPtOnTRMSurf( TRMS * , double, double )
外周トリム面内の点のみ残す
int GetPtsOnOuterTRMSurf( TRMS * , Coord * , int )
内周トリム面外の点のみ残す
int GetPtsOnInnerTRMSurf( TRMS * , Coord * , int )
内外周トリム面内の点のみ残す
int GetPtsOnInnerOuterTRMSurf( TRMS * , Coord * , int )
NURBS曲面(トリム無)同士の干渉検出
int DetectInterfereNurbsS( NURBSS * , NURBSS * , int )
NURBS曲面(トリム有)同士の干渉検出
int DetectInterfereTrmS( TRIMD_NURBSS * , TRIMD_NURBSS * , int )
NURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)
int CalcIntersecPtsPlaneGeom( NURBSS * , Coord, Coord, int, int, Coord * , int )
NURBS曲線の線分長を求める
double CalcNurbsCLength( NURBSC * )
指定した分割数でNURBS曲線上の座標値を求める
int CalcDeltaPtsOnNurbsC( NURBSC * , int, Coord * )
指定した分割数でNURBS曲面上の座標値を求める
int CalcDeltaPtsOnNurbsS( NURBSS * , int, int, Coord ** )
NURBS曲線の指定した方向における極値の座標値を得る
int CalcExtremumNurbsC( NURBSC * , Coord, double * , int )
曲線/曲面パラメータから等間隔なノットベクトルを算出
void GetEqIntervalKont( int, int, Vector )
ノットベクトルのパラメータ定義域を変更する
void ChangeKnotVecRange( Vector, int, int, int, double, double )
NURBS曲線のメモリー確保
int New_NurbsC( NURBSC * , int, int )
NURBS曲線配列のメモリー解放
void Free_NurbsC_1DArray( NURBSC * , int )
NURBS曲線のメモリー解放
void Free_NurbsC( NURBSC * )
NURBS曲面のメモリー確保
int New_NurbsS( NURBSS * , int [], int [] )
NURBS曲面配列のメモリー解放
void Free_NurbsS_1DArray( NURBSS * , int )
NURBS曲面のメモリー解放
void Free_NurbsS( NURBSS * )
トリム面のメモリー確保
int New_TrmS( TRMS * , int )
トリム面配列のメモリー解放
void Free_TrmS_1DArray( TRMS * , int )
トリム面のメモリー解放
void Free_TrmS( TRMS * )
複合曲線のメモリー確保
int New_CompC( COMPC * , int )
複合曲線配列のメモリー解放
void Free_CompC_1DArray( COMPC * , int )
複合曲線のメモリー解放
void Free_CompC( COMPC * )
NURBS曲線情報をデバッグプリント
void DebugForNurbsC( NURBSC * )
NURBS曲面情報をデバッグプリント
void DebugForNurbsS( NURBSS * )
オフセットNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)(準備中)
int CalcIntersecPtsOffsetPlaneGeom( NURBSS * , double, Coord, Coord, int, Coord * , int )
NURBS曲線上のtにおける単位接ベクトルをもとめる
Coord CalcTanVecOnNurbsC( NURBSC * , double )
2枚のNURBS曲面を連結する(U方向に長くなる)(S1_U1とS2_U0を連結)
int ConnectNurbsSU( NURBSS * , NURBSS * , NURBSS * )
2枚のNURBS曲面を連結する(V方向に長くなる)(S1_V1とS2_V0を連結)
int ConnectNurbsSV( NURBSS * , NURBSS * , NURBSS * )
NURBS曲線の曲率を求める
double CalcCurvatureNurbsC( NURBSC * , double )
NURBS曲線を指定したパラメータ値で分割する
int DivNurbsCParam( NURBSC * , NURBSC * , NURBSC * , double )
NURBS曲線を指定した位置(端からの距離)で分割する
int DivNurbsC( NURBSC * , NURBSC * , NURBSC * , double )
NURBS曲線の連結
int ConnectNurbsC( NURBSC * , NURBSC * , NURBSC * )
NURBS曲線のノットベクトル向きを反転する
void ReverseNurbsC( NURBSC * )
NURBS曲線において一端からの指定距離におけるパラメータ値を返す
double CalcParamLengthOnNurbsC( NURBSC * , double, double )
(private)NURBS曲線の係数を求める(最高3次)
int GetNurbsCCoef( NURBSC * , double ** , int, Coord * , double * )
(private)3次方程式までを判別して解く
int CalcEquation( double * , double * , int )
(private)NURBS曲面においてuまたはvを固定した場合に得られるNURBS曲線C(u) or C(v)の分母分子の係数を求める
void GetNurbsSCoef( int, double ** , double * , Coord * , int, Coord * , double * )
(private)NURBS曲線と平面の交線導出用3次方程式を得る
void GetIntersecEquation( int, Coord * , double * , Coord, Coord, double * )
(private)ニュートン法により交点を収束させる(NURBS曲面と平面)
int SearchIntersectPt( NURBSS * , Coord, Coord, double, double * , double * , int )
(private)4次のルンゲクッタ法により交点を収束させる(NURBS曲面と平面)
int SearchIntersectPt_RKM( NURBSS * , Coord, Coord, double, double * , double * , int )
(private)Bulirsch-Stoer法により交点を収束させる(NURBS曲面と平面)
int SearchIntersectPt_BS( NURBSS * , Coord, Coord, double, double * , double * , int )
(private)4次のルンゲクッタ法により交点を収束させる(オフセットNURBS曲面と平面)
int SearchIntersectPt_OS( NURBSS * , Coord, Coord, double, double * , double * , int )
(private)NURBS曲面と平面の交点を表す微分方程式の右辺の値を得る
int GetSIPParam1( NURBSS * , double , double , Coord , Coord , int , Coord * )
(private)トリム境界線が複合曲線の場合のトリミング領域内外判定
int DetermPtOnTRMSurf_sub( CONPS * , double, double )
(private)トリム境界線を点群で近似する
int ApproxTrimBorder( COMPC * , Coord * )
(private)各通過点の曲線パラメータを算出(コード長の比から算出)
void GetCurveKnotParam1( Coord * , int, Vector )
(private)各通過点の曲線パラメータを算出(コード長の平方根の比から算出)
void GetCurveKnotParam2( Coord * , int, Vector )
(private)各通過点の曲面パラメータを算出
void GetSurfaceKnotParam( Vector, Vector, Coord ** , int, int )
(private)曲線/曲面パラメータから補間用ノットベクトルを算出
void GetInterpolatedKnot( Vector, int, int, int, Vector )
(private)曲線/曲面パラメータから近似用ノットベクトルを算出
void GetApproximatedKnot( Vector, int, int, int, Vector )
(private)点列数から生成するコントロールポイント数を算定する
int SetApproximationCPnum( int )
(private)最小2乗法で近似コントロールポイントを求める
void CalcApproximationCP_LSM( Coord * , Vector, Vector, int, int, int, int, Coord * )
(private)NURBS曲面上の同一点を除去する
int RemoveTheSamePoints( NURBSS * , Coord * , int )
(private)NURBS曲面分母の各方向を任意階微分したときの微分係数を求める
double CalcDiffNurbsSDenom( NURBSS * , int, int, double, double )
(private)NURBS曲面分子の各方向を任意階微分したときの微分係数を求める
Coord CalcDiffNurbsSNumer( NURBSS * , int, int, double, double )
(private)TrimNurbsSPlaneのサブ関数(2直線の交点をもとめる)
Coord TrimNurbsSPlaneSub1( double, double, double, double, double, double )
(private)面から飛び出した(u,v)を参考に面のエッジ部(new_u,new_v)を得る
Coord CalcIntersecPtsPlaneSearch_Sub( NURBSS * , double, double, Coord, Coord )
(private)最小距離を持つ座標値を返す
Coord GetMinDistance( Coord, Coord * , int )
(private)指定した点が他の2点を対角とする立方体の中に存在するかを調べる
int CheckClossedPoints( Coord, Coord, Coord )
(private)極値探索線Sub関数1
int GetSECParam1( NURBSS * , double, double, Coord, int, int, Coord * )
(private)最小距離を調べる
int GetMinDist( NURBSS * , Coord , Coord * , int , Coord * )
(private)NURBS曲面連結用SUB関数(連結後の曲面のU方向ノット定義域を設定する)
void SetKnotVecSU_ConnectS( NURBSS * , NURBSS * , NURBSS * )
(private)NURBS曲面連結用SUB関数(連結後の曲面のV方向ノット定義域を設定する)
void SetKnotVecSV_ConnectS( NURBSS * , NURBSS * , NURBSS * )
(private)NURBS曲面連結用SUB関数(連結後の曲面のU方向コントロールポイントとウェイトを設定する)
void SetCPSU_ConnectS( NURBSS * , NURBSS * , NURBSS * )
(private)NURBS曲面連結用SUB関数(連結後の曲面のV方向コントロールポイントとウェイトを設定する)
void SetCPSV_ConnectS( NURBSS * , NURBSS * , NURBSS * )
(private)NURBS曲線に新たなノットを挿入する
int InsertNewKnotOnNurbsC( NURBSC * , NURBSC * , double, int )
(private)NURBS曲線連結用SUB関数(連結後の曲線のノット定義域を設定する)
void SetKnotVecC_ConnectC( NURBSC * , NURBSC * , NURBSC * )
(private)NURBS曲線連結用SUB関数(連結後の曲線のコントロールポイントとウェイトを設定する)
void SetCPC_ConnectC( NURBSC * , NURBSC * , NURBSC * )