NURBS_Func.h

Summary
NURBS_Func.h
Constants
General Defines
NURBS_FuncNURBS曲線/曲面の操作を集めたクラス
Functions
CalcNurbsCCoord指定したtでのNURBS曲線の座標値を求める
CalcNurbsCCoords指定したt群でのNURBS曲線の座標値群を求める
CalcNurbsSCoord指定したu,vでのNURBS曲面の座標点を求める
CalcNurbsSCoords指定したu,v群でのNURBS曲面の座標値群を求める
GenNurbsC1つのNURBS曲線を生成する
GenNurbsC1つのNURBS曲線を生成する(NURBS曲線のコピー)(オーバーロード)
GenNurbsS1つのNURBS曲面を生成する
GenNurbsS1つのNURBS曲面を生成する(NURBS曲面のコピー)(オーバーロード)
GenRotNurbsS1つのNURBS曲線をある軸回りにある角度だけ回転させた回転サーフェスを生成する
GenSweepNurbsS1つのNURBS曲線からある軸方向にある距離だけスイープさせたスイープサーフェスを生成する
GenIsoparamCurveUNURBS曲面上のu方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成
GenIsoparamCurveVNURBS曲面上のv方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成
GenTrimdNurbsSトリム面を生成する
DelTrimdNurbsSトリム面を削除(メモリー解放)する
DelNurbsCNURBS曲線を削除する
DelNurbsSNURBS曲面を削除する
CalcBSbasisBスプライン基底関数を計算し、計算結果を返す
CalcDiffBSbasisBスプライン基底関数の1階微分係数を求める
CalcDiffBSbasisNBスプライン基底関数のN階微分係数を求める
CalcDiffNurbsCNURBS曲線の1階微分係数を求める
CalcDiff2NurbsCNURBS曲線の2階微分係数を求める
CalcDiffNNurbsCNURBS曲線のr階微分係数を求める
CalcDiffuNurbsSNURBS曲面のu方向1階微分係数を求める
CalcDiffvNurbsSNURBS曲面のv方向1階微分係数を求める
CalcDiffNNurbsSNURBS曲面の各方向を任意階微分したときの微分係数を求める
CalcNormVecOnNurbsSNURBS曲面上の(u,v)における法線ベクトルをもとめる
CalcDiffuNormVecOnNurbsSNURBS曲面上の(u,v)における法線ベクトルのu方向1階微分をもとめる
CalcDiffvNormVecOnNurbsSNURBS曲面上の(u,v)における法線ベクトルのv方向1階微分をもとめる
CalcMeanCurvatureNURBS曲面上の(u,v)における平均曲率を求める
CalcMeanCurvatureオーバーロード
CalcMeanCurvatureNormVecNURBS曲面上の(u,v)における平均曲率法線ベクトルを求める
CalcGaussCurvatureNURBS曲面上の(u,v)におけるガウス曲率を求める
CalcGaussCurvatureオーバーロード
CalcGaussCurvatureNormVecNURBS曲面上の(u,v)におけるガウス曲率法線ベクトルを求める
CalcuIntersecPtNurbsLineNURBS曲面と直線の交点を算出
CalcIntersecPtNurbsPt空間上の1点からNURBS曲面上の最近傍点を求める(ニュートン法)
CalcIntersecPtNurbsPt空間上の1点からNURBS曲線上の最近傍点を求める(ニュートン法)(オーバーロード)
CalcIntersecPtNurbsPtDescrete空間上の1点からNURBS曲面上の最近傍点を求める(離散的)
CalcIntersecPtNurbsPtDescrete空間上の1点からNURBS曲線上の最近傍点を求める(離散的)
CalcIntersecIsparaCurveUu方向アイソパラ曲線と平面との交点を求める(ニュートン法)
CalcIntersecIsparaCurveVv方向アイソパラ曲線と平面との交点を求める(ニュートン法)
CalcIntersecCurveNURBS曲線と平面との交点を求める(ニュートン法)
CalcIntersecCurve33次以下のNURBS曲線と平面との交点を求める
CalcIntersecPtsPlaneV3V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する
CalcIntersecPtsPlaneU3V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する
CalcIntersecPtsPlaneVV方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する
CalcIntersecPtsPlaneUU方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する
CalcIntersecPtsPlaneSearchNURBS曲面と平面との交点群を交線追跡法で求める
CalcIntersecPtsOffsetPlaneSearchオフセットNURBS曲面と平面との交点群を交線追跡法で求める(準備中)
CalcIntersecPtsNurbsSNurbsCNURBS曲面とNURBS曲線との交点を求める(ニュートン法)
CalcIntersecPtsNurbsSGeomNURBS曲面同士の交線上の点を幾何学的にいくつか求める
CalcIntersecPtsNurbsSSearchNURBS曲面同士の交線(交点群)を交線追跡法で求める
CalcIntersecPtsNurbsCNurbsCParam2次元NURBS曲線同士の交点を求める
CalcIntersecPtsNurbsCLine2次元NURBS曲線と直線との交点を求める
CalcIntersecPtsNurbsCLineSeg2次元NURBS曲線と線分との交点を求める
SearchExtremum_BSBulirsch-Stoer法により極地探索を行う
GetBSplCoef33次のBスプライン曲線の各係数を求める (at^3 + bt^2 + ct + dの係数a,b,c,dを返す)
GetBSplCoef22次のBスプライン曲線の各係数を求める (at^2 + bt + cの係数a,b,cを返す)
GetBSplCoef11次のBスプライン曲線の各係数を求める (at + bの係数a,bを返す)
ShiftNurbsSNURBS曲面のシフト
ShiftNurbsCNURBS曲線のシフト
ChRatioNurbsSNURBS曲面の倍率を変更する
ChRatioNurbsCNURBS曲線の倍率を変更する
RotNurbsSNURBS曲面を回転
RotNurbsCNURBS曲線を回転
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内外周トリム面内の点のみ残す
DetectInterfereNurbsSNURBS曲面(トリム無)同士の干渉検出
DetectInterfereTrmSNURBS曲面(トリム有)同士の干渉検出
CalcIntersecPtsPlaneGeomNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)
CalcNurbsCLengthNURBS曲線の線分長を求める
CalcNurbsCLengthNURBS曲線の指定区間の線分長を求める
CalcDeltaPtsOnNurbsC指定した分割数でNURBS曲線上の座標値を求める
CalcDeltaPtsOnNurbsS指定した分割数でNURBS曲面上の座標値を求める
CalcExtremumNurbsCNURBS曲線の指定した方向における極値の座標値を得る
GetEqIntervalKont曲線/曲面パラメータから等間隔なノットベクトルを算出
ChangeKnotVecRangeノットベクトルのパラメータ定義域を変更する
New_NurbsCNURBS曲線のメモリー確保
Free_NurbsC_1DArrayNURBS曲線配列のメモリー解放
Free_NurbsCNURBS曲線のメモリー解放
New_NurbsSNURBS曲面のメモリー確保
Free_NurbsS_1DArrayNURBS曲面配列のメモリー解放
Free_NurbsSNURBS曲面のメモリー解放
New_TrmSトリム面のメモリー確保
Free_TrmS_1DArrayトリム面配列のメモリー解放
Free_TrmSトリム面のメモリー解放
New_CompC複合曲線のメモリー確保
Free_CompC_1DArray複合曲線配列のメモリー解放
Free_CompC複合曲線のメモリー解放
DebugForNurbsCNURBS曲線情報をデバッグプリント
DebugForNurbsSNURBS曲面情報をデバッグプリント
CalcIntersecPtsOffsetPlaneGeomオフセットNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)(準備中)
CalcTanVecOnNurbsCNURBS曲線上のtにおける単位接ベクトルをもとめる
ConnectNurbsSU2枚のNURBS曲面を連結する(U方向に長くなる)(S1_U1とS2_U0を連結)
ConnectNurbsSV2枚のNURBS曲面を連結する(V方向に長くなる)(S1_V1とS2_V0を連結)
CalcCurvatureNurbsCNURBS曲線の曲率を求める
DivNurbsCParamNURBS曲線を指定したパラメータ値で分割する
DivNurbsCNURBS曲線を指定した位置(端からの距離)で分割する
ConnectNurbsCNURBS曲線の連結
ReverseNurbsCNURBS曲線のノットベクトル向きを反転する
CalcParamLengthOnNurbsCNURBS曲線において一端からの指定距離におけるパラメータ値を返す
CalcDeltaPtsOnNurbsC指定した間隔でNURBS曲線上の座標値を求める
CalcConstScallop等スキャロップ点を算出
CalcConstPitch等ピッチ点を算出
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関数(連結後の曲線のコントロールポイントとウェイトを設定する)

Constants

General Defines

PTNUMMAXNURBSの点列の最大数(10000)
RANKMAXNURBSの階数の最大値(9)
INTERSECPTNUMMAX交点格納配列長(1000)
NEAREST_GAP2点が同一点とみなす距離(0.01)
CONVERG_GAPニュートン法の収束を判別する閾値(0.00001)
CONVDIVNUM収束計算用のパラメータ分割数(100)
TRM_BORDERDIVNUMトリム境界線上に生成する点の数(100)
FORWARD交線追跡の方向(順)(1)
INVERSE交線追跡の方向(逆)(-1)
PARAM_Uu方向を表すシンボル(0)
PARAM_Vv方向を表すシンボル(1)
OUTTER_TRIM外周トリミング領域(0)
INNER_TRIM内周トリミング領域(1)
PARAMDIVNUM初期値探索用のパラメータ分割数(10)
RUNGE_KUTTARunge-Kutta法のシンボル(0)
BULIRSH_STOERBulirsch-Stoer法のシンボル(1)
CALC_OFFSETオフセット曲面計算のシンボル(2)
BS_DIVBulirsch-Stoer法の刻み数(11)

NURBS_Func

class NURBS_Func

NURBS曲線/曲面の操作を集めたクラス

Summary
Functions
CalcNurbsCCoord指定したtでのNURBS曲線の座標値を求める
CalcNurbsCCoords指定したt群でのNURBS曲線の座標値群を求める
CalcNurbsSCoord指定したu,vでのNURBS曲面の座標点を求める
CalcNurbsSCoords指定したu,v群でのNURBS曲面の座標値群を求める
GenNurbsC1つのNURBS曲線を生成する
GenNurbsC1つのNURBS曲線を生成する(NURBS曲線のコピー)(オーバーロード)
GenNurbsS1つのNURBS曲面を生成する
GenNurbsS1つのNURBS曲面を生成する(NURBS曲面のコピー)(オーバーロード)
GenRotNurbsS1つのNURBS曲線をある軸回りにある角度だけ回転させた回転サーフェスを生成する
GenSweepNurbsS1つのNURBS曲線からある軸方向にある距離だけスイープさせたスイープサーフェスを生成する
GenIsoparamCurveUNURBS曲面上のu方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成
GenIsoparamCurveVNURBS曲面上のv方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成
GenTrimdNurbsSトリム面を生成する
DelTrimdNurbsSトリム面を削除(メモリー解放)する
DelNurbsCNURBS曲線を削除する
DelNurbsSNURBS曲面を削除する
CalcBSbasisBスプライン基底関数を計算し、計算結果を返す
CalcDiffBSbasisBスプライン基底関数の1階微分係数を求める
CalcDiffBSbasisNBスプライン基底関数のN階微分係数を求める
CalcDiffNurbsCNURBS曲線の1階微分係数を求める
CalcDiff2NurbsCNURBS曲線の2階微分係数を求める
CalcDiffNNurbsCNURBS曲線のr階微分係数を求める
CalcDiffuNurbsSNURBS曲面のu方向1階微分係数を求める
CalcDiffvNurbsSNURBS曲面のv方向1階微分係数を求める
CalcDiffNNurbsSNURBS曲面の各方向を任意階微分したときの微分係数を求める
CalcNormVecOnNurbsSNURBS曲面上の(u,v)における法線ベクトルをもとめる
CalcDiffuNormVecOnNurbsSNURBS曲面上の(u,v)における法線ベクトルのu方向1階微分をもとめる
CalcDiffvNormVecOnNurbsSNURBS曲面上の(u,v)における法線ベクトルのv方向1階微分をもとめる
CalcMeanCurvatureNURBS曲面上の(u,v)における平均曲率を求める
CalcMeanCurvatureオーバーロード
CalcMeanCurvatureNormVecNURBS曲面上の(u,v)における平均曲率法線ベクトルを求める
CalcGaussCurvatureNURBS曲面上の(u,v)におけるガウス曲率を求める
CalcGaussCurvatureオーバーロード
CalcGaussCurvatureNormVecNURBS曲面上の(u,v)におけるガウス曲率法線ベクトルを求める
CalcuIntersecPtNurbsLineNURBS曲面と直線の交点を算出
CalcIntersecPtNurbsPt空間上の1点からNURBS曲面上の最近傍点を求める(ニュートン法)
CalcIntersecPtNurbsPt空間上の1点からNURBS曲線上の最近傍点を求める(ニュートン法)(オーバーロード)
CalcIntersecPtNurbsPtDescrete空間上の1点からNURBS曲面上の最近傍点を求める(離散的)
CalcIntersecPtNurbsPtDescrete空間上の1点からNURBS曲線上の最近傍点を求める(離散的)
CalcIntersecIsparaCurveUu方向アイソパラ曲線と平面との交点を求める(ニュートン法)
CalcIntersecIsparaCurveVv方向アイソパラ曲線と平面との交点を求める(ニュートン法)
CalcIntersecCurveNURBS曲線と平面との交点を求める(ニュートン法)
CalcIntersecCurve33次以下のNURBS曲線と平面との交点を求める
CalcIntersecPtsPlaneV3V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する
CalcIntersecPtsPlaneU3V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する
CalcIntersecPtsPlaneVV方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する
CalcIntersecPtsPlaneUU方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する
CalcIntersecPtsPlaneSearchNURBS曲面と平面との交点群を交線追跡法で求める
CalcIntersecPtsOffsetPlaneSearchオフセットNURBS曲面と平面との交点群を交線追跡法で求める(準備中)
CalcIntersecPtsNurbsSNurbsCNURBS曲面とNURBS曲線との交点を求める(ニュートン法)
CalcIntersecPtsNurbsSGeomNURBS曲面同士の交線上の点を幾何学的にいくつか求める
CalcIntersecPtsNurbsSSearchNURBS曲面同士の交線(交点群)を交線追跡法で求める
CalcIntersecPtsNurbsCNurbsCParam2次元NURBS曲線同士の交点を求める
CalcIntersecPtsNurbsCLine2次元NURBS曲線と直線との交点を求める
CalcIntersecPtsNurbsCLineSeg2次元NURBS曲線と線分との交点を求める
SearchExtremum_BSBulirsch-Stoer法により極地探索を行う
GetBSplCoef33次のBスプライン曲線の各係数を求める (at^3 + bt^2 + ct + dの係数a,b,c,dを返す)
GetBSplCoef22次のBスプライン曲線の各係数を求める (at^2 + bt + cの係数a,b,cを返す)
GetBSplCoef11次のBスプライン曲線の各係数を求める (at + bの係数a,bを返す)
ShiftNurbsSNURBS曲面のシフト
ShiftNurbsCNURBS曲線のシフト
ChRatioNurbsSNURBS曲面の倍率を変更する
ChRatioNurbsCNURBS曲線の倍率を変更する
RotNurbsSNURBS曲面を回転
RotNurbsCNURBS曲線を回転
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内外周トリム面内の点のみ残す
DetectInterfereNurbsSNURBS曲面(トリム無)同士の干渉検出
DetectInterfereTrmSNURBS曲面(トリム有)同士の干渉検出
CalcIntersecPtsPlaneGeomNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)
CalcNurbsCLengthNURBS曲線の線分長を求める
CalcNurbsCLengthNURBS曲線の指定区間の線分長を求める
CalcDeltaPtsOnNurbsC指定した分割数でNURBS曲線上の座標値を求める
CalcDeltaPtsOnNurbsS指定した分割数でNURBS曲面上の座標値を求める
CalcExtremumNurbsCNURBS曲線の指定した方向における極値の座標値を得る
GetEqIntervalKont曲線/曲面パラメータから等間隔なノットベクトルを算出
ChangeKnotVecRangeノットベクトルのパラメータ定義域を変更する
New_NurbsCNURBS曲線のメモリー確保
Free_NurbsC_1DArrayNURBS曲線配列のメモリー解放
Free_NurbsCNURBS曲線のメモリー解放
New_NurbsSNURBS曲面のメモリー確保
Free_NurbsS_1DArrayNURBS曲面配列のメモリー解放
Free_NurbsSNURBS曲面のメモリー解放
New_TrmSトリム面のメモリー確保
Free_TrmS_1DArrayトリム面配列のメモリー解放
Free_TrmSトリム面のメモリー解放
New_CompC複合曲線のメモリー確保
Free_CompC_1DArray複合曲線配列のメモリー解放
Free_CompC複合曲線のメモリー解放
DebugForNurbsCNURBS曲線情報をデバッグプリント
DebugForNurbsSNURBS曲面情報をデバッグプリント
CalcIntersecPtsOffsetPlaneGeomオフセットNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)(準備中)
CalcTanVecOnNurbsCNURBS曲線上のtにおける単位接ベクトルをもとめる
ConnectNurbsSU2枚のNURBS曲面を連結する(U方向に長くなる)(S1_U1とS2_U0を連結)
ConnectNurbsSV2枚のNURBS曲面を連結する(V方向に長くなる)(S1_V1とS2_V0を連結)
CalcCurvatureNurbsCNURBS曲線の曲率を求める
DivNurbsCParamNURBS曲線を指定したパラメータ値で分割する
DivNurbsCNURBS曲線を指定した位置(端からの距離)で分割する
ConnectNurbsCNURBS曲線の連結
ReverseNurbsCNURBS曲線のノットベクトル向きを反転する
CalcParamLengthOnNurbsCNURBS曲線において一端からの指定距離におけるパラメータ値を返す
CalcDeltaPtsOnNurbsC指定した間隔でNURBS曲線上の座標値を求める
CalcConstScallop等スキャロップ点を算出
CalcConstPitch等ピッチ点を算出
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関数(連結後の曲線のコントロールポイントとウェイトを設定する)

Functions

CalcNurbsCCoord

Coord CalcNurbsCCoord(NURBSC *,
 double)

指定したtでのNURBS曲線の座標値を求める

CalcNurbsCCoords

void CalcNurbsCCoords(NURBSC *,
 int,
double *,
Coord *)

指定したt群でのNURBS曲線の座標値群を求める

CalcNurbsSCoord

Coord CalcNurbsSCoord(NURBSS *,
 double,
 double)

指定したu,vでのNURBS曲面の座標点を求める

CalcNurbsSCoords

void CalcNurbsSCoords(NURBSS *,
 int,
Coord *,
Coord *)

指定したu,v群でのNURBS曲面の座標値群を求める

GenNurbsC

int GenNurbsC(NURBSC *,
 int,
 int,
 int,
double [],
double [],
Coord [],
double [],
 int[],
 int)

1つのNURBS曲線を生成する

GenNurbsC

int GenNurbsC(NURBSC *,
 NURBSC)

1つのNURBS曲線を生成する(NURBS曲線のコピー)(オーバーロード)

GenNurbsS

int GenNurbsS(NURBSS *,
 int,
 int,
 int,
 int,
double *,
double *,
double **,
Coord **,
 double,
 double,
 double,
 double)

1つのNURBS曲面を生成する

GenNurbsS

int GenNurbsS(NURBSS *,
 NURBSS)

1つのNURBS曲面を生成する(NURBS曲面のコピー)(オーバーロード)

GenRotNurbsS

int GenRotNurbsS(NURBSS *,
 NURBSC,
 Coord,
 double)

1つのNURBS曲線をある軸回りにある角度だけ回転させた回転サーフェスを生成する

GenSweepNurbsS

int GenSweepNurbsS(NURBSS *,
 NURBSC,
 Coord,
 double)

1つのNURBS曲線からある軸方向にある距離だけスイープさせたスイープサーフェスを生成する

GenIsoparamCurveU

int GenIsoparamCurveU(NURBSS *,
 double,
NURBSC *)

NURBS曲面上のu方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成

GenIsoparamCurveV

int GenIsoparamCurveV(NURBSS *,
 double,
NURBSC *)

NURBS曲面上のv方向パラメータ値を固定したときのアイソパラメトリックNURBS曲線を生成

GenTrimdNurbsS

int GenTrimdNurbsS(TRIMD_NURBSS *,
 TRIMD_NURBSS)

トリム面を生成する

DelTrimdNurbsS

int DelTrimdNurbsS(TRIMD_NURBSS *)

トリム面を削除(メモリー解放)する

DelNurbsC

void DelNurbsC(NURBSC *)

NURBS曲線を削除する

DelNurbsS

void DelNurbsS(NURBSS *)

NURBS曲面を削除する

CalcBSbasis

double CalcBSbasis( double,
double [],
 int,
 int,
 int)

Bスプライン基底関数を計算し、計算結果を返す

CalcDiffBSbasis

double CalcDiffBSbasis( double,
double [],
 int,
 int,
 int)

Bスプライン基底関数の1階微分係数を求める

CalcDiffBSbasisN

double CalcDiffBSbasisN( double,
double [],
 int,
 int,
 int,
 int)

Bスプライン基底関数のN階微分係数を求める

CalcDiffNurbsC

Coord CalcDiffNurbsC(NURBSC *,
 double)

NURBS曲線の1階微分係数を求める

CalcDiff2NurbsC

Coord CalcDiff2NurbsC(NURBSC *,
 double)

NURBS曲線の2階微分係数を求める

CalcDiffNNurbsC

Coord CalcDiffNNurbsC(NURBSC *,
 int,
 double)

NURBS曲線のr階微分係数を求める

CalcDiffuNurbsS

Coord CalcDiffuNurbsS(NURBSS *,
 double,
 double)

NURBS曲面のu方向1階微分係数を求める

CalcDiffvNurbsS

Coord CalcDiffvNurbsS(NURBSS *,
 double,
 double)

NURBS曲面のv方向1階微分係数を求める

CalcDiffNNurbsS

Coord CalcDiffNNurbsS(NURBSS *,
 int,
 int,
 double,
 double)

NURBS曲面の各方向を任意階微分したときの微分係数を求める

CalcNormVecOnNurbsS

Coord CalcNormVecOnNurbsS(NURBSS *,
 double,
 double)

NURBS曲面上の(u,v)における法線ベクトルをもとめる

CalcDiffuNormVecOnNurbsS

Coord CalcDiffuNormVecOnNurbsS(NURBSS *,
 double,
 double)

NURBS曲面上の(u,v)における法線ベクトルのu方向1階微分をもとめる

CalcDiffvNormVecOnNurbsS

Coord CalcDiffvNormVecOnNurbsS(NURBSS *,
 double,
 double)

NURBS曲面上の(u,v)における法線ベクトルのv方向1階微分をもとめる

CalcMeanCurvature

double CalcMeanCurvature(NURBSS *,
 double,
 double)

NURBS曲面上の(u,v)における平均曲率を求める

CalcMeanCurvature

double CalcMeanCurvature(SFQuant)

オーバーロード

CalcMeanCurvatureNormVec

Coord CalcMeanCurvatureNormVec(NURBSS *,
 double,
 double)

NURBS曲面上の(u,v)における平均曲率法線ベクトルを求める

CalcGaussCurvature

double CalcGaussCurvature(NURBSS *,
 double,
 double)

NURBS曲面上の(u,v)におけるガウス曲率を求める

CalcGaussCurvature

double CalcGaussCurvature(SFQuant)

オーバーロード

CalcGaussCurvatureNormVec

Coord CalcGaussCurvatureNormVec(NURBSS *,
 double,
 double)

NURBS曲面上の(u,v)におけるガウス曲率法線ベクトルを求める

CalcuIntersecPtNurbsLine

int CalcuIntersecPtNurbsLine(NURBSS *,
 Coord,
 Coord,
 int,
Coord *,
 int,
 int)

NURBS曲面と直線の交点を算出

CalcIntersecPtNurbsPt

int CalcIntersecPtNurbsPt(NURBSS *,
 Coord,
 int,
 int,
Coord *)

空間上の1点からNURBS曲面上の最近傍点を求める(ニュートン法)

CalcIntersecPtNurbsPt

int CalcIntersecPtNurbsPt(NURBSC *,
 Coord,
 int,
 int,
double *)

空間上の1点からNURBS曲線上の最近傍点を求める(ニュートン法)(オーバーロード)

CalcIntersecPtNurbsPtDescrete

void CalcIntersecPtNurbsPtDescrete(NURBSS *,
Coord ,
int ,
int ,
double ,
double ,
double ,
double ,
Coord *)

空間上の1点からNURBS曲面上の最近傍点を求める(離散的)

CalcIntersecPtNurbsPtDescrete

void CalcIntersecPtNurbsPtDescrete(NURBSC *,
Coord ,
int ,
int ,
double ,
double ,
double *)

空間上の1点からNURBS曲線上の最近傍点を求める(離散的)

CalcIntersecIsparaCurveU

int CalcIntersecIsparaCurveU(NURBSS *,
 double,
 Coord,
 Coord,
 int,
double *,
 int)

u方向アイソパラ曲線と平面との交点を求める(ニュートン法)

CalcIntersecIsparaCurveV

int CalcIntersecIsparaCurveV(NURBSS *,
 double,
 Coord,
 Coord,
 int,
double *,
 int)

v方向アイソパラ曲線と平面との交点を求める(ニュートン法)

CalcIntersecCurve

int CalcIntersecCurve(NURBSC *,
 Coord,
 Coord,
 int,
double *,
 int,
 int)

NURBS曲線と平面との交点を求める(ニュートン法)

CalcIntersecCurve3

int CalcIntersecCurve3(NURBSC *,
 Coord,
 Coord,
double *,
 int)

3次以下のNURBS曲線と平面との交点を求める

CalcIntersecPtsPlaneV3

int CalcIntersecPtsPlaneV3(NURBSS *,
 Coord,
 Coord,
 int,
Coord *,
 int)

V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する

CalcIntersecPtsPlaneU3

int CalcIntersecPtsPlaneU3(NURBSS *,
 Coord,
 Coord,
 int,
Coord *,
 int)

V方向のアイソパラ曲線を指定した分割数で生成し,各3次以下の曲線とNURBS曲面との交点を代数計算で算出する

CalcIntersecPtsPlaneV

int CalcIntersecPtsPlaneV(NURBSS *,
 Coord,
 Coord,
 int,
Coord *,
 int)

V方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する

CalcIntersecPtsPlaneU

int CalcIntersecPtsPlaneU(NURBSS *,
 Coord,
 Coord,
 int,
Coord *,
 int)

U方向のアイソパラ曲線を指定した分割数で生成し,各曲線とNURBS曲面との交点を算出する

CalcIntersecPtsPlaneSearch

int CalcIntersecPtsPlaneSearch(NURBSS *,
 Coord,
 Coord,
 double,
 int,
Coord *,
 int,
 int)

NURBS曲面と平面との交点群を交線追跡法で求める

CalcIntersecPtsOffsetPlaneSearch

int CalcIntersecPtsOffsetPlaneSearch(NURBSS *,
 double,
 Coord,
 Coord,
 double,
 int,
Coord *,
 int)

オフセットNURBS曲面と平面との交点群を交線追跡法で求める(準備中)

CalcIntersecPtsNurbsSNurbsC

int CalcIntersecPtsNurbsSNurbsC(NURBSS *,
NURBSC *,
 int,
Coord *,
 int)

NURBS曲面とNURBS曲線との交点を求める(ニュートン法)

CalcIntersecPtsNurbsSGeom

int CalcIntersecPtsNurbsSGeom(NURBSS *,
NURBSS *,
 int,
 int,
Coord *,
Coord *,
 int)

NURBS曲面同士の交線上の点を幾何学的にいくつか求める

CalcIntersecPtsNurbsSSearch

int CalcIntersecPtsNurbsSSearch(NURBSS *,
NURBSS *,
 int,
 double,
Coord *,
Coord *,
 int)

NURBS曲面同士の交線(交点群)を交線追跡法で求める

CalcIntersecPtsNurbsCNurbsCParam

int CalcIntersecPtsNurbsCNurbsCParam(NURBSC *,
NURBSC *,
 int,
Coord *,
 int)

2次元NURBS曲線同士の交点を求める

CalcIntersecPtsNurbsCLine

2次元NURBS曲線と直線との交点を求める

CalcIntersecPtsNurbsCLineSeg

2次元NURBS曲線と線分との交点を求める

SearchExtremum_BS

int SearchExtremum_BS(NURBSS *,
 Coord,
 double,
 double,
 double,
 int,
 int,
Coord *)

Bulirsch-Stoer法により極地探索を行う

GetBSplCoef3

int GetBSplCoef3( int,
 int,
 int,
double *,
double **)

3次のBスプライン曲線の各係数を求める (at^3 + bt^2 + ct + dの係数a,b,c,dを返す)

GetBSplCoef2

int GetBSplCoef2( int,
 int,
 int,
double *,
double **)

2次のBスプライン曲線の各係数を求める (at^2 + bt + cの係数a,b,cを返す)

GetBSplCoef1

int GetBSplCoef1( int,
 int,
 int,
double *,
double **)

1次のBスプライン曲線の各係数を求める (at + bの係数a,bを返す)

ShiftNurbsS

void ShiftNurbsS(NURBSS *,
 Coord)

NURBS曲面のシフト

ShiftNurbsC

void ShiftNurbsC(NURBSC *,
 Coord)

NURBS曲線のシフト

ChRatioNurbsS

void ChRatioNurbsS(NURBSS *,
 Coord)

NURBS曲面の倍率を変更する

ChRatioNurbsC

void ChRatioNurbsC(NURBSC *,
 Coord)

NURBS曲線の倍率を変更する

RotNurbsS

void RotNurbsS(NURBSS *,
 Coord,
 double)

NURBS曲面を回転

RotNurbsC

void RotNurbsC(NURBSC *,
 Coord,
 double)

NURBS曲線を回転

SetCPNurbsS

int SetCPNurbsS(NURBSS *,
 NURBSS)

コントロールポイントを代入する

GenInterpolatedNurbsC1

int GenInterpolatedNurbsC1(NURBSC *,
Coord *,
 int,
 int)

与えられた点列を補間するn階のNURBS曲線を生成する

GenInterpolatedNurbsC2

int GenInterpolatedNurbsC2(NURBSC *,
Coord *,
 int,
 int)

与えられた点列を補間するn階のNURBS曲線を生成する(閉じた曲線)

GenApproximationNurbsC

int GenApproximationNurbsC(NURBSC *,
Coord *,
 int,
 int)

与えられた点列を近似するn階のNURBS曲線を生成する

GenNurbsCfromCP

int GenNurbsCfromCP(NURBSC *,
Coord *,
 int,
 int)

コントロールポイントからNURBS曲線を生成する

GenPolygonalLine

int GenPolygonalLine(NURBSC *,
Coord *,
 int)

折れ線を生成する

GenInterpolatedNurbsS1

int GenInterpolatedNurbsS1(NURBSS *,
Coord **,
 int,
 int,
 int,
 int)

与えられた点列を補間するn階NURBS曲面を生成する

GenPolygonalSurface

int GenPolygonalSurface(NURBSS *,
Coord **,
 int,
 int)

折れ面を生成する

GenApproximationNurbsS

int GenApproximationNurbsS(NURBSS *,
Coord **,
 int,
 int,
 int,
 int)

与えられた点列を近似するn階のNURBS曲面を生成する

GenNurbsSfromCP

int GenNurbsSfromCP(NURBSS *,
Coord **,
 int,
 int,
 int,
 int)

与えられたコントロールポイントからn階のNURBS曲面を生成する

DetermPtOnTRMSurf

int DetermPtOnTRMSurf(TRMS *,
 double,
 double)

注目中のNURBS曲面上の1点(u,v)がトリミング領域内にあるのかを判定する

GetPtsOnOuterTRMSurf

int GetPtsOnOuterTRMSurf(TRMS *,
Coord *,
 int)

外周トリム面内の点のみ残す

GetPtsOnInnerTRMSurf

int GetPtsOnInnerTRMSurf(TRMS *,
Coord *,
 int)

内周トリム面外の点のみ残す

GetPtsOnInnerOuterTRMSurf

int GetPtsOnInnerOuterTRMSurf(TRMS *,
Coord *,
 int)

内外周トリム面内の点のみ残す

DetectInterfereNurbsS

int DetectInterfereNurbsS(NURBSS *,
NURBSS *,
 int)

NURBS曲面(トリム無)同士の干渉検出

DetectInterfereTrmS

int DetectInterfereTrmS(TRIMD_NURBSS *,
TRIMD_NURBSS *,
 int)

NURBS曲面(トリム有)同士の干渉検出

CalcIntersecPtsPlaneGeom

int CalcIntersecPtsPlaneGeom(NURBSS *,
 Coord,
 Coord,
 int,
 int,
Coord *,
 int)

NURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)

CalcNurbsCLength

double CalcNurbsCLength(NURBSC *)

NURBS曲線の線分長を求める

CalcNurbsCLength

double CalcNurbsCLength(NURBSC *,
 double,
 double)

NURBS曲線の指定区間の線分長を求める

CalcDeltaPtsOnNurbsC

int CalcDeltaPtsOnNurbsC(NURBSC *,
 int,
Coord *)

指定した分割数でNURBS曲線上の座標値を求める

CalcDeltaPtsOnNurbsS

int CalcDeltaPtsOnNurbsS(NURBSS *,
 int,
 int,
Coord **)

指定した分割数でNURBS曲面上の座標値を求める

CalcExtremumNurbsC

int CalcExtremumNurbsC(NURBSC *,
 Coord,
double *,
 int)

NURBS曲線の指定した方向における極値の座標値を得る

GetEqIntervalKont

void GetEqIntervalKont(int,
int,
Vector)

曲線/曲面パラメータから等間隔なノットベクトルを算出

ChangeKnotVecRange

void ChangeKnotVecRange(Vector,
int,
int,
int,
double,
double)

ノットベクトルのパラメータ定義域を変更する

New_NurbsC

int New_NurbsC(NURBSC *,
 int,
 int)

NURBS曲線のメモリー確保

Free_NurbsC_1DArray

void Free_NurbsC_1DArray(NURBSC *,
 int)

NURBS曲線配列のメモリー解放

Free_NurbsC

void Free_NurbsC(NURBSC *)

NURBS曲線のメモリー解放

New_NurbsS

int New_NurbsS(NURBSS *,
int [],
int [])

NURBS曲面のメモリー確保

Free_NurbsS_1DArray

void Free_NurbsS_1DArray(NURBSS *,
 int)

NURBS曲面配列のメモリー解放

Free_NurbsS

void Free_NurbsS(NURBSS *)

NURBS曲面のメモリー解放

New_TrmS

int New_TrmS(TRMS *,
 int)

トリム面のメモリー確保

Free_TrmS_1DArray

void Free_TrmS_1DArray(TRMS *,
 int)

トリム面配列のメモリー解放

Free_TrmS

void Free_TrmS(TRMS *)

トリム面のメモリー解放

New_CompC

int New_CompC(COMPC *,
 int)

複合曲線のメモリー確保

Free_CompC_1DArray

void Free_CompC_1DArray(COMPC *,
 int)

複合曲線配列のメモリー解放

Free_CompC

void Free_CompC(COMPC *)

複合曲線のメモリー解放

DebugForNurbsC

void DebugForNurbsC(NURBSC *)

NURBS曲線情報をデバッグプリント

DebugForNurbsS

void DebugForNurbsS(NURBSS *)

NURBS曲面情報をデバッグプリント

CalcIntersecPtsOffsetPlaneGeom

int CalcIntersecPtsOffsetPlaneGeom(NURBSS *,
 double,
 Coord,
 Coord,
 int,
Coord *,
 int)

オフセットNURBS曲面と平面と交点追跡用初期点を得る(補助平面を用いた方法)(準備中)

CalcTanVecOnNurbsC

Coord CalcTanVecOnNurbsC(NURBSC *,
 double)

NURBS曲線上のtにおける単位接ベクトルをもとめる

ConnectNurbsSU

int ConnectNurbsSU(NURBSS *,
NURBSS *,
NURBSS *)

2枚のNURBS曲面を連結する(U方向に長くなる)(S1_U1とS2_U0を連結)

ConnectNurbsSV

int ConnectNurbsSV(NURBSS *,
NURBSS *,
NURBSS *)

2枚のNURBS曲面を連結する(V方向に長くなる)(S1_V1とS2_V0を連結)

CalcCurvatureNurbsC

double CalcCurvatureNurbsC(NURBSC *,
 double)

NURBS曲線の曲率を求める

DivNurbsCParam

int DivNurbsCParam(NURBSC *,
NURBSC *,
NURBSC *,
 double)

NURBS曲線を指定したパラメータ値で分割する

DivNurbsC

int DivNurbsC(NURBSC *,
NURBSC *,
NURBSC *,
 double)

NURBS曲線を指定した位置(端からの距離)で分割する

ConnectNurbsC

int ConnectNurbsC(NURBSC *,
NURBSC *,
NURBSC *)

NURBS曲線の連結

ReverseNurbsC

void ReverseNurbsC(NURBSC *)

NURBS曲線のノットベクトル向きを反転する

CalcParamLengthOnNurbsC

double CalcParamLengthOnNurbsC(NURBSC *,
 double,
 double)

NURBS曲線において一端からの指定距離におけるパラメータ値を返す

CalcDeltaPtsOnNurbsC

int CalcDeltaPtsOnNurbsC(NURBSC *,
 double,
Coord *)

指定した間隔でNURBS曲線上の座標値を求める

CalcConstScallop

int CalcConstScallop(NURBSS *,
NURBSC *,
 double,
 double,
double *,
double *,
 int)

等スキャロップ点を算出

CalcConstPitch

int CalcConstPitch(NURBSS *,
NURBSC *,
 double,
 double,
double *,
 int)

等ピッチ点を算出

GetNurbsCCoef

int GetNurbsCCoef(NURBSC *,
double **,
 int,
Coord *,
double *)

(private)NURBS曲線の係数を求める(最高3次)

CalcEquation

int CalcEquation(double *,
double *,
 int)

(private)3次方程式までを判別して解く

GetNurbsSCoef

void GetNurbsSCoef( int,
double **,
double *,
Coord *,
 int,
Coord *,
double *)

(private)NURBS曲面においてuまたはvを固定した場合に得られるNURBS曲線C(u) or C(v)の分母分子の係数を求める

GetIntersecEquation

void GetIntersecEquation( int,
Coord *,
double *,
 Coord,
 Coord,
double *)

(private)NURBS曲線と平面の交線導出用3次方程式を得る

SearchIntersectPt

int SearchIntersectPt(NURBSS *,
 Coord,
 Coord,
 double,
double *,
double *,
 int)

(private)ニュートン法により交点を収束させる(NURBS曲面と平面)

SearchIntersectPt_RKM

int SearchIntersectPt_RKM(NURBSS *,
 Coord,
 Coord,
 double,
double *,
double *,
 int)

(private)4次のルンゲクッタ法により交点を収束させる(NURBS曲面と平面)

SearchIntersectPt_BS

int SearchIntersectPt_BS(NURBSS *,
 Coord,
 Coord,
 double,
double *,
double *,
 int)

(private)Bulirsch-Stoer法により交点を収束させる(NURBS曲面と平面)

SearchIntersectPt_OS

int SearchIntersectPt_OS(NURBSS *,
 Coord,
 Coord,
 double,
double *,
double *,
 int)

(private)4次のルンゲクッタ法により交点を収束させる(オフセットNURBS曲面と平面)

GetSIPParam1

int GetSIPParam1(NURBSS *,
double ,
double ,
Coord ,
Coord ,
int ,
Coord *)

(private)NURBS曲面と平面の交点を表す微分方程式の右辺の値を得る

SearchIntersectPt

int SearchIntersectPt(NURBSS *,
NURBSS *,
 double,
double *,
double *,
double *,
double *,
 int)

(private)ニュートン法により交点を収束させる(NURBS曲面同士)

DetermPtOnTRMSurf_sub

int DetermPtOnTRMSurf_sub(CONPS *,
 double,
 double)

(private)トリム境界線が複合曲線の場合のトリミング領域内外判定

ApproxTrimBorder

int ApproxTrimBorder(COMPC *,
Coord *)

(private)トリム境界線を点群で近似する

GetCurveKnotParam1

void GetCurveKnotParam1(Coord *,
 int,
 Vector)

(private)各通過点の曲線パラメータを算出(コード長の比から算出)

GetCurveKnotParam2

void GetCurveKnotParam2(Coord *,
 int,
 Vector)

(private)各通過点の曲線パラメータを算出(コード長の平方根の比から算出)

GetSurfaceKnotParam

void GetSurfaceKnotParam( Vector,
 Vector,
Coord **,
 int,
 int)

(private)各通過点の曲面パラメータを算出

GetInterpolatedKnot

void GetInterpolatedKnot(Vector,
int,
int,
int,
Vector)

(private)曲線/曲面パラメータから補間用ノットベクトルを算出

GetApproximatedKnot

void GetApproximatedKnot(Vector,
int,
int,
int,
Vector)

(private)曲線/曲面パラメータから近似用ノットベクトルを算出

SetApproximationCPnum

int SetApproximationCPnum(int)

(private)点列数から生成するコントロールポイント数を算定する

CalcApproximationCP_LSM

void CalcApproximationCP_LSM(Coord *,
 Vector,
 Vector,
 int,
 int,
 int,
 int,
Coord *)

(private)最小2乗法で近似コントロールポイントを求める

RemoveTheSamePoints

int RemoveTheSamePoints(NURBSS *,
Coord *,
 int)

(private)NURBS曲面上の同一点を除去する

CalcDiffNurbsSDenom

double CalcDiffNurbsSDenom(NURBSS *,
 int,
 int,
 double,
 double)

(private)NURBS曲面分母の各方向を任意階微分したときの微分係数を求める

CalcDiffNurbsSNumer

Coord CalcDiffNurbsSNumer(NURBSS *,
 int,
 int,
 double,
 double)

(private)NURBS曲面分子の各方向を任意階微分したときの微分係数を求める

TrimNurbsSPlaneSub1

Coord TrimNurbsSPlaneSub1(double,
double,
double,
double,
double,
double)

(private)TrimNurbsSPlaneのサブ関数(2直線の交点をもとめる)

CalcIntersecPtsPlaneSearch_Sub

Coord CalcIntersecPtsPlaneSearch_Sub(NURBSS *,
 double,
 double,
 Coord,
 Coord)

(private)面から飛び出した(u,v)を参考に面のエッジ部(new_u,new_v)を得る

GetMinDistance

Coord GetMinDistance( Coord,
Coord *,
 int)

(private)最小距離を持つ座標値を返す

CheckClossedPoints

int CheckClossedPoints(Coord,
Coord,
Coord)

(private)指定した点が他の2点を対角とする立方体の中に存在するかを調べる

GetSECParam1

int GetSECParam1(NURBSS *,
 double,
 double,
 Coord,
 int,
 int,
Coord *)

(private)極値探索線Sub関数1

GetMinDist

int GetMinDist(NURBSS *,
Coord ,
Coord *,
int ,
Coord *)

(private)最小距離を調べる

SetKnotVecSU_ConnectS

void SetKnotVecSU_ConnectS(NURBSS *,
NURBSS *,
NURBSS *)

(private)NURBS曲面連結用SUB関数(連結後の曲面のU方向ノット定義域を設定する)

SetKnotVecSV_ConnectS

void SetKnotVecSV_ConnectS(NURBSS *,
NURBSS *,
NURBSS *)

(private)NURBS曲面連結用SUB関数(連結後の曲面のV方向ノット定義域を設定する)

SetCPSU_ConnectS

void SetCPSU_ConnectS(NURBSS *,
NURBSS *,
NURBSS *)

(private)NURBS曲面連結用SUB関数(連結後の曲面のU方向コントロールポイントとウェイトを設定する)

SetCPSV_ConnectS

void SetCPSV_ConnectS(NURBSS *,
NURBSS *,
NURBSS *)

(private)NURBS曲面連結用SUB関数(連結後の曲面のV方向コントロールポイントとウェイトを設定する)

InsertNewKnotOnNurbsC

int InsertNewKnotOnNurbsC(NURBSC *,
NURBSC *,
 double,
 int)

(private)NURBS曲線に新たなノットを挿入する

SetKnotVecC_ConnectC

void SetKnotVecC_ConnectC(NURBSC *,
NURBSC *,
NURBSC *)

(private)NURBS曲線連結用SUB関数(連結後の曲線のノット定義域を設定する)

SetCPC_ConnectC

void SetCPC_ConnectC(NURBSC *,
NURBSC *,
NURBSC *)

(private)NURBS曲線連結用SUB関数(連結後の曲線のコントロールポイントとウェイトを設定する)

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