GHL 3.4.2 リリースノート

本ドキュメントでは、 GHL 3.4.1から 3.4.2 へのバージョンアップの内容 について述べています。



バージョンアップの概要

・3次元:スイーピイング曲面の追加バージョン(スイープパスが2本の場合)
3次元空間において、ある曲線A (プロファイル) を、別の2曲線B、C (スイープパス) に沿って 掃引した軌跡を表す曲面を生成するための 新たな関数を追加しました。 ここで、曲線A、B、Cは多項式/有理Bスプライン曲線、生成される曲面は多項式/有理Bスプライン曲面です。

GHLの既存のスイーピング曲面生成機能では、スイープパスが1本でしたが、 この関数は、2本のスイープパスに沿ってプロファイルを掃引します。

サンプルコード : ghlv3/examples/sweep_skin/sweeping3.c

・3次元:領域オクツリーを操作する関数群を追加
3次元空間の有効な領域を表す八分木 (オクツリー) を生成/管理する機能を持つ 関数群 を追加しました。

追加された関数

ユーティリティ



2次元



3次元

gh3rotAddTriangle	三角形をオクツリーに追加
gh3rotAllcSerializedOctree	シリアライズ構造体の獲得
gh3rotClearCCL		オクツリーの CCL を消去する
gh3rotConvTriangle	三角形をオクツリーに変換
gh3rotCountComponents	オクツリーの CCL の数を得る
gh3rotDispose		オクツリーを消去する
gh3rotFreeSerializedOctree	シリアライズ構造体の解放
gh3rotGetExtent		オクツリーの対象領域を得る
gh3rotGetMemSize		オクツリーの占めるメモリ領域のサイズを得る
gh3rotGetOctComponent	オクツリーの (あるオクタントが属する) CCL を得る
gh3rotGetPixLevel		オクツリーのピクセル (と見なす) レベルを得る
gh3rotGetRoot		オクツリーのルートオクタントを得る
gh3rotHasIntersection	オクツリーと曲面が交わるか否かを判定する
gh3rotIntersect		オクツリーと曲面の交わりを取り除く
gh3rotMakeCCL		オクツリーに CCL を作成する
gh3rotNew			オクツリーを生成する
gh3rotOctDivide		オクタントを分割する
gh3rotOctGetApplData1		オクタントのアプリケーションデータ1に設定された値を得る
gh3rotOctGetApplData2		オクタントのアプリケーションデータ2に設定された値を得る
gh3rotOctGetChild		オクタントの子を得る
gh3rotOctGetExtent		オクタントの領域を得る
gh3rotOctGetLevel		オクタントのレベルを得る
gh3rotOctGetMother		オクタントの親を得る
gh3rotOctGetTree		オクタントの属するオクツリーを得る
gh3rotOctGetType		オクタントのタイプを得る
gh3rotOctGetValue		オクタントの値を得る
gh3rotOctGtEqEdgeNeighbor	オクタントの辺隣接子を得る
gh3rotOctGtEqFaceNeighbor	オクタントの面隣接子を得る
gh3rotOctGtEqVrtxNeighbor	オクタントの頂点隣接子を得る
gh3rotOctHasIntersection	オクタントと曲面が交わるか否かを答える
gh3rotOctIsLeaf		オクタントがオクツリーの終端であるか否かを答える
gh3rotOctIsPixel		オクタントがピクセル (のレベル) か否かを答える
gh3rotOctMergeIfP		オクタントを (可能であれば) 統合する
gh3rotOctMergeIfP2		オクタントを (可能であれば) 統合する (タイプ2)
gh3rotOctSetApplData1		オクタントのアプリケーションデータ1に値を設定する
gh3rotOctSetApplData2		オクタントのアプリケーションデータ2に値を設定する
gh3rotOctSetValue		オクタントに値を設定する
gh3rotOctTraverse		オクタントより下の部分木を巡回する
gh3rotOctTraverse2		オクタントより下の部分木を巡回する (タイプ2)
gh3rotSerialize		オクツリーのシリアライズ (オクツリーデータの読み出し)
gh3rotSetOpIntersection	存在領域の等しいオクツリー同士の集合演算 - 積
gh3rotSetOpSubtraction	存在領域の等しいオクツリー同士の集合演算 - 差
gh3rotSetOpUnion		存在領域の等しいオクツリー同士の集合演算 - 和
gh3rotUnserialize	シリアライズされたオクツリーを再構築
gh3swp2BscCPY1	プロファイルを2本のスイープパスの接ベクトルの変化に応じてコピーする(Bスプライン曲線)
gh3swp2BscCPY2	プロファイルを局所座標系の上向き方向を指定してコピーする(Bスプライン曲線)
gh3swp2BscCPY3	プロファイルを局所座標系の法線ベクトルの方向を指定してコピーする(Bスプライン曲線)
gh3swp2RBscCPY1	プロファイルを2本のスイープパスの接ベクトルの変化に応じてコピーする(有理Bスプライン曲線)
gh3swp2RBscCPY2	プロファイルを局所座標系の上向き方向を指定してコピーする(有理Bスプライン曲線)
gh3swp2RBscCPY3	プロファイルを局所座標系の法線ベクトルの方向を指定してコピーする(有理Bスプライン曲線)
gh3swp2BscDIV1	2本のスイープパスをパラメータ等分割する(Bスプライン曲線)
gh3swp2BscDIV2	2本のスイープパスを等分割する(Bスプライン曲線)
gh3swp2BscDIV3	2本のスイープパスのノット点を求める(Bスプライン曲線)
gh3swp2BscDIV4	2本のスイープパスをポリライン近似する(Bスプライン曲線)
gh3swp2RBscDIV1	2本のスイープパスをパラメータ等分割する(有理Bスプライン曲線)
gh3swp2RBscDIV2	2本のスイープパスを等分割する(有理Bスプライン曲線)
gh3swp2RBscDIV3	2本のスイープパスのノット点を求める(有理Bスプライン曲線)
gh3swp2RBscDIV4	2本のスイープパスをポリライン近似する(有理Bスプライン曲線)

不具合の修正

以下は、GHL 3.4.1 以降の修正分です。
doc/*/HowToUse/FunctionList/FunctionList2.html
bss,bzsとあるべき部分がbsc,bzcになっていたのを修正しました。
gh2insk[R]Bsc, gh2divi[R]Bsc
閉じた形式で uicp = degree + 1 であるようなノット列に対してノットを挿入すると、 ノット挿入後のノット列がおかしくなることがあったのを修正しました。
gh2insk[R]Bsc, gh2divi[R]Bsc,gh3insk[R]Bsc, gh3divi[R]Bsc, gh3insk[R]Bss, gh3divi[R]Bss,
ノット点との差がちょうど GH__LMT_PTOL のパラメータを与えると落ちる ことがあったのを修正しました。
gh2ofstBscBsc3, gh2ofstRBscBsc3
もとの曲線に直線とみなせるような部分がある場合に、処理がおかしくなる 可能性があったのを修正しました。
gh2projPntLsg,gh3projPntLsg
縮退したセグメントへの投影点について、返ってくる パラメータ値が NaN 等になっていたのを修正しました。
gh3projCirPln{,2}
円弧を平面に投影したときに生成される楕円弧が逆側に生成される場合があったのを修正しました。
gh3projTrcPln2
メモリーリークを修正しました。
gh3makeWDRvl, gh3rottWDRvl
回転面の母線が直線の場合に、その回転面に点を投影する関数などが落ちる ことがあったのを修正しました。
gh3dvdbCbs
境界が自己干渉している場合に落ちることがあったのを修正しました。
gh3intsConCon
交線が正しく求められない場合があったのを修正しました。
gh[23]aprcQBsc4_Rev2
メモリーアクセス違反を修正しました。
貴重な時間を費やして、 不具合を御報告頂いた皆様に改めて感謝致します。 ありがとうございました。

GHL 企画/開発担当者

柿下 尚武	naokak@pml.co.jp	
長谷川 亨	hasegawa@sra.co.jp
徐 子韜		zitao@pml.co.jp
鹿野 信幸	shikano@pml.co.jp
伊藤 英明	hideit@pml.co.jp

今後ともよろしくお願い致します。


Copyright (c) 2000 Precision Modeling Laboratory,Inc., Tokyo, Japan. All Rights Reserved.