JP5848030B2 - 第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面の計算 - Google Patents

第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面の計算 Download PDF

Info

Publication number
JP5848030B2
JP5848030B2 JP2011116005A JP2011116005A JP5848030B2 JP 5848030 B2 JP5848030 B2 JP 5848030B2 JP 2011116005 A JP2011116005 A JP 2011116005A JP 2011116005 A JP2011116005 A JP 2011116005A JP 5848030 B2 JP5848030 B2 JP 5848030B2
Authority
JP
Japan
Prior art keywords
triangle
modeled object
polygon
modeled
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011116005A
Other languages
English (en)
Other versions
JP2011248889A (ja
Inventor
シャザル フレデリック
シャザル フレデリック
リュティエ アンドレ
リュティエ アンドレ
モンタナ ニコラス
モンタナ ニコラス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2011248889A publication Critical patent/JP2011248889A/ja
Application granted granted Critical
Publication of JP5848030B2 publication Critical patent/JP5848030B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Architecture (AREA)

Description

本発明は、コンピュータプログラムおよびシステムの分野に関連し、より具体的には、計算機支援幾何学的デザイン(CAGD)および3次元多面立体のシミュレーションの分野に関する。
計算機支援技法は、CADおよびCAMシステムにおけるコンピュータ計算に適した形でオブジェクトを表すソフトウェアソリューションに関する計算機支援幾何学的デザイン、すなわちCAGDを含むことで知られている。計算機支援設計(すなわちCAD)は、製品デザインをオーサリングするソフトウェアソリューションにも関連する。同様にCAEは、計算機支援エンジニアリングを表す頭字語であり、たとえば、将来の製品の物理的挙動をシミュレートするソフトウェアソリューションに関する。CAMは、計算機支援製造を表し、通常、製造プロセスおよび製造工程を定義するソフトウェアソリューションを含む。
ダッソー・システムズ(Dassault Systemes)によってCATIA(登録商標)(Computer Aided Three Dimensional Interactive Application)という商標で提供されているものなど、部品、部品アセンブリ(assemblies、組立部)およびその製品のデザインのための多くのシステムおよびプログラムが、市場で提供されている。CATIAとは、マルチプラットフォームCAGD/CAD/CAM/CAEソフトウェア・スイートであり、一般に3D製品ライフサイクル管理(PLM)ソフトウェア・スイートと呼ばれる。CATIAは、オブジェクト形状(CAGD)の概念化から、設計(CAD)および製造(CAM)を介し、分析(CAE)にまで渡る、多段階の製品開発(CAx)をサポートする。このソフトウェア・スイートは、アプリケーションプログラミングインタフェース(API)によりカスタマイズ可能である。一部のバージョンは、専用のAPIの下で、様々なプログラミング言語で適合され得る。
こうしたいわゆるCAGD/CADシステムは特に、ユーザが、オブジェクトまたはオブジェクトのアセンブリの、複雑な3次元(3D)モデルを構築し操作することを可能にする。CADシステムはこのように、エッジまたはラインを使って、ある場合には面を用いて、モデル化オブジェクトの表現を提供する。こうしたCADシステムは、部品または部品アセンブリを、主としてジオメトリ(geometry)の仕様であるモデル化オブジェクトとして管理する。具体的には、CADファイルは仕様を含み、仕様からジオメトリが生成される。ジオメトリから、表現が生成される。仕様、ジオメトリおよび表現は、単一のCADファイルまたは複数のファイルに記憶することができる。CADシステムは、設計者に対して、モデル化オブジェクトを表すグラフィックツールを含む。こうしたツールは、複雑なオブジェクトの表示のために設けられる。CADシステムにおいてオブジェクトを表すファイルの典型的なサイズは、部分的にはメガバイトの範囲まで拡張し、アセンブリは、数千の部品を含み得る。CADシステムは、オブジェクトのモデルを管理し、モデルは電子ファイルに記憶される。
公知のCAGD/CADシステムでの機械部品のデザインは、上記部品の幾何学的形状および寸法を、機能要件および製造要件に合わせるように定義することと見なされ得る。主として、結果として得られる形状は、設計者によって作成される、たとえば座、ポケット、溝、シャフトなどの基本特徴の組合せである。複雑な幾何学的計算およびトポロジー計算(topological computations)を通して、CAGD/CADシステムは、立体(機械部品)の境界表現を、たとえば、閉配向面(closed and oriented surface)として生み出す。
たとえば、幾何学的デザイン(CAGD)、機械加工シミュレーション、ロボット工学、またはデジタルモックアップの分野において、掃引容積(swept volumes)の概念が知られている。以下で「プロファイル」と呼ばれる立体、およびその軌道が与えられると、掃引容積を、その軌道に沿ったプロファイルのすべての位置の和集合と呼ぶ。掃引容積の表現は、動く部品および機構において、形状をデザインし、材料除去または追加のプロセスをシミュレートし、不調和を検出し、隙間を計算するのに使われ得る。たとえば、掃引容積の算出は、動作中に振動する車両モータの必要空間を判定するのに有用である。または、掃引容積の算出は、その車輪が緩衝装置のおかげで左右に曲がり、上下に動く間に車両の車輪の必要空間を判定するのに有用である。また、掃引容積は、製造ツールの必要空間を判定するのに有用である。
いわゆる掃引容積の計算は、2008年11月7日の特許文献1に提示されている。
多面体モデリングおよび処理は、CAGDのコンテキストにおいて至る所で見られる。多面立体に関して堅牢かつ正確なブール演算(たとえば、和集合、積集合、差集合)を実際に実施することは、このコンテキストにおける本質的要件である。このような演算子の産業的実施では、座標の浮動小数点表現または整数表現を、いわゆるイプシロンプログラミングの経験則(epsilon-programming heuristics)とともに利用する。
一般に、イプシロンプログラミングは、等値性テスト(equality tests)x=yを、等値性テスト|x−y|≦ε「イプシロンまで(up to epsilon)」で置き換えることであり、ここでεは、従来の数値閾値表記である。詳細については、たとえば非特許文献1に見ることができる。
理論的観点からは、浮動小数点パラダイムに基づく通常の幾何学モデリングおよび処理には、正確かつ科学的な基盤が欠けている。実際に、浮動小数点フレームワークに基づく正確なブール演算子の開発は困難であり、コストがかかり、科学よりもむしろ芸術である。実際、浮動小数点丸め誤差は、組合せの矛盾、たとえば、トポロジーの矛盾を誘発し得る。
イプシロンプログラミングパラダイムにより、こうした矛盾を克服することができるが、イプシロンプログラミングに基づく技法は、信頼できる理論的フレームワークによってサポートされない。実際、こうした技法は、場合によっては、十分な堅牢性の達成のためには、際限の無いタスクを要する専門技術を必要とする。
あるいは、最近の実装では、たとえば非特許文献2、非特許文献3、および非特許文献4に詳述されているように、正確な述語技術(exact predicates technology)に基づく正確な計算パラダイムを用いる。
正確な計算パラダイムでは、あるジオメトリを構築する必要があるとき、結果には有理数または代数表現を使う必要があるが、これは時間および空間を消費するアルゴリズムにつながる。現実のCAGDアプリケーションでは、幾何学処理アルゴリズムの入力は、一般に、その前のアルゴリズムの出力であり、純粋かつ正確な計算手法は、数表現の指数関数的増加を生じさせることになるため可能ではない。
したがって、出力の座標を、有理数から浮動小数点数に「丸める」ことが必要である。しかし、このような丸め手順は一般に安全ではない。実際、この丸めは、図1に示すように、局所的な自己積集合(local self-intersection)を生成する場合がある。多角形4は、自己積集合がないので有効な多角形である。背景のグリッドは、丸められた数値を表す。丸めは、初期多角形の各頂点を、それに最も近いグリッド点で置き換えることである。ドットによる多角形2は、黒い多角形の丸め結果であり、この多角形2は、自己積集合3のため無効である。
このような自己積集合は、自己積集合が認められていないため結果が意味の無いものとなる。また、自己積集合は、さらにアルゴリズムを失敗させる可能性がある。
多面体鎖(polyhedral chains)をもつ立体の従来の多面体表現の間の自然な関係は、たとえば非特許文献5および非特許文献6という2つの論文に取り上げられている。
第1の論文において、著者は、ある種のCSG(構築的立体ジオメトリ)を通して立体を表すことを提案している。鎖は、多面体の線形組合せとして表され、各多面体は、それに関連づけられた半空間の有限族(finite family of half-spaces)によって表される。この手法の堅牢性が厳密には頂点ベースの表現を避けることにあるため、この表現に対するブール演算などのモデリング演算子の実行は、いかなる明確な頂点の構築も必要としない。
第2の論文は、対応する鎖に対する、特に「正規鎖(normal chain)」と呼ばれる表現に対するブール演算子と代数演算との間の単純な関係を示しているが、鎖とは、原点すべてを、その頂点の1つとして共有する配向された単体の線形組合せとして表される。たとえば、それぞれn個およびm個の四面体の鎖の形式和(formal sum)で表される2つの立体の積集合は、対応するn×m個の四面体ペアの積集合の、n×mの三角形分割の形式和にある。
両方の論文は、多面体鎖をもつ立体の従来の多面体表現の間の自然な関係に焦点を当てている。ただし、こうした論文は、一般化されたブール演算子ではないブール演算に依拠している。
実際、すべてのCAGDシステムは、同一構造によりブール演算を実行する。アルゴリズムの詳細は、個々のCAGDシステムによって変わり得るが、主なステップは同じである。ブール演算の入力は、立体の有効な境界表現によって定義される2つの立体A、Bである。有効な境界表現は、立体の境界が、自己積集合をもたない閉面(closed surface)であることを意味する。標準ブール演算は、和集合、積集合および差集合であり、一般に∪、∩および−と記される。
従来のアルゴリズムは、入力される立体が有効であるという前提に強く依存し、有効な立体を提供する。言い換えると、境界立体A、Bは、いかなる自己積集合ももたない。従来のアルゴリズムのステップは、図2〜7と関連して、以下の通りである。
1.立体の有効な境界表現によって定義される2つの立体A、Bを入力する(図2)。
2.立体Aの境界を立体Bの境界で、およびその反対でトリミングする(図3)。
3.立体Bに対して、立体Aの境界の各部分を位置決めする。立体Aの境界部分は、立体Bの内側または外側である(図4)。
4.立体Aに対して、立体Bの境界の各部分を位置決めする。立体Bの境界部分は、立体Aの内側または外側である(図5)。
5.ブール演算タイプに依存して、境界の無用な部分を破棄する。
(i)和集合A+B:立体Bの内側にある立体Aの境界部分および立体Aの内側にある立体Bの境界部分を破棄する。
(ii)積集合A・B:立体Bの外側にある立体Aの境界部分および立体Aの外側にある立体Bの境界部分を破棄する。
(iii)差集合A−B:立体Bの内側にある立体Aの境界部分および立体Aの外側にある立体Bの境界部分を破棄する(図6)。
6.得られた立体を、上のステップで与えられた境界部分をマージすることによって合成する(図7)。
上記分析を要約すると、通常の多面体表現は数値に依存するので、従来技術は、丸め誤差に関して過度に敏感である。実際、最先端の多面体は、自己積集合を生じ得るので、その結果、最先端の有効性の基準によると矛盾のあるものになる。したがって、従来技術の解決策は、有効性が影響を受け得るので、堅牢性に欠ける場合がある。
したがって、堅牢な一般化ブール演算子により、モデル化オブジェクトの境界を計算する、こうした堅牢な一般化ブール演算子および正確な方法の必要性が残されている。
European Patent Application No. 08291047.2
"Robustness and Randomness", D. Michelucci, J.M. Moreau, S. Foufou - Lecture Notes In Computer Science, 2008, Springer "Robustness in geometric computations", C.M. Hoffmann, Journal of Computing and Information Science in Engineering, 1:143, 2001 "Robust geometric computation", C.K. Yap, Handbook of discrete and computational geometry, pages 653-668, 1997 "Efficient Delaunay triangulation using rational arithmetic", M. Karasick, D. Lieber, and L.R. Nackman, ACM Transactions on Graphics (TOG), 10(1):71-91, 1991 "Convex polyhedral chains: a representation for geometric data", O. Gunther and E. Wong, Computer Aided design, volume 21 number 3 april 1989 "Geometric modelling Based on simplicial chains", F. R. Feito and M. Rivero, Comput. & Graphics, Vol. 22, No. 5, pp. 611-619, 1998 chapters 4 and 5 of John Willard Milnor's book "Topology from the differentiable point of view", Princeton University Press; Revised edition (November 24, 1997), ISBN-13: 978-0691048338 "simulation of simplicity", H. Edelsbrunner, EP. Mucke - ACM Transactions on Graphics (TOG), Volume 9, Issue 1, January 1990, pages: 66 - 104, ISSN:0730-0301 "Polyhedral modelling with multiprecision integer arithmetic", S. Fortune, Computer Aided Design, 29 (2), pages 123-133, 1997 "Efficient exact arithmetic for computational geometry", S. Fortune and C.J. Van Wyk, Proceedings of the ninth annual symposium on Computational geometry, pages 163-172, ACM New York, NY, USA, 1993 "A lazy exact arithmetic", Mohand Ourabah Benouamer, P. Jaillon, Dominique Michelucci, and Jean-Michel Moreau, IEEE Symposium on Computer Arithmetic, pages 242-249, 1993 "Solid Representation and Operation Using-Extended Octrees", P. Brunet and I. Navazo, ACM Transactions on Graphics, 9(2) pages 170-197, 1990 "Fundamental techniques for geometric and solid modeling" and C.M. Hoffmann and G. Vanecek, Manufacturing and Automation Systems: Techniques and Technologies, 48 pages 347-356, 1990. Paragraph II.B
第1の態様によると、本発明は、計算機支援幾何学的デザインシステムにおける、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割された多面体の閉面(closed triangulated polyhedral surface、以下、三角形分割多面体閉面)を計算するコンピュータ実行プロセスとして実行され、
第1のモデル化オブジェクトは、第1の三角形分割多面体閉面によってモデル化され、第2のモデル化オブジェクトは、第2の三角形分割多面体閉面によってモデル化され、本プロセスは、
第1のモデル化オブジェクトの三角形と第2のモデル化オブジェクトの三角形との間の積集合を計算すること、
第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの三角形を、上記積集合に隣接する多角形ファセットに分割すること、
各三角形および各多角形ファセット用に、2つの巻き数(winding number)対p、qを計算することであって、各巻き数対の第1の巻き数は、第1の三角形分割多面体閉面から計算され、各巻き数対の第2の巻き数は、第2の三角形分割多面体閉面から計算されること、
各三角形および各多角形ファセット用に係数kを計算することであって、係数は、各三角形および各多角形ファセットの2つの巻き数対p、qを入力としてもつ関数φを用いて計算されること、
計算された係数に従って、三角形および多角形ファセットを選択すること、
前期選択された多角形ファセットを三角形分割すること、ならびに
選択された三角形および三角形分割された選択多角形ファセットをもつ、三角形分割多面体閉面結果を取得することを含む。
実施形態において、本プロセスは、以下の特徴の1つまたは複数を含み得る。
三角形分割多面体閉面によってモデル化された第1のモデル化オブジェクトまたは第2のモデル化オブジェクトの少なくとも一方は、自己積集合を含み、三角形の間の積集合を計算するステップは、三角形分割多面体閉面によってモデル化された第1のモデル化オブジェクトまたは第2のモデル化オブジェクトの上記少なくとも一方の三角形の間の積集合を計算することをさらに含む。
少なくとも1つの領域を計算することであって、領域は、互いと隣接しかつ計算された積集合の1つによって区切られる、三角形および/または多角形ファセットの集合を含む。
上記領域のすべての三角形および/または多角形ファセットを判定し、三角形および/または多角形ファセットは、計算された共通の積集合に隣接し、各三角形および/または多角形ファセットは、上記各三角形および/または多角形ファセットの独自のジオメトリおよび独自の配向に従って定義される法線ベクトルと、所与の三角形ファセットまたは所与の多角形ファセット用に2つの巻き数対p、qを計算することと、所与の三角形または多角形ファセットから開始して、上記計算された積集合の周りを動径方向に従って回転することと、上記計算された積集合に隣接する他の三角形および/または多角形ファセットの交差を検出することと、各交差の後に、上記交差される三角形および/または多角形ファセットの法線ベクトルの配向に従って、上記2つの巻き数対p、qを更新することとを含む。
第1の巻き数対Cbelowは、上記三角形および多角形ファセットの法線ベクトルに従って、上記三角形および多角形ファセットの下であり、第2の巻き数対Caboveは、上記三角形および多角形ファセットの法線ベクトルに従って、上記三角形および多角形ファセットの上である。
各三角形および各多角形ファセットの2つの巻き数対p、qを入力としてもつ関数φは、
φ(p,q)=min(1,p+q)
φ(p,q)=p×q
φ(p,q)=max(0,p−q)
という演算の1つを実行する。
三角形および多角形ファセットは、計算された係数kがゼロとは異なるときに選択される。
積集合を計算するステップで、第1のモデル化オブジェクトの三角形と第2のモデル化オブジェクトの三角形との間の三角形の共通エッジまたは共通頂点は除外される。
積集合を計算するステップは、精密な算術を用いて実行される。
三角形を分割するステップの後で、計算された積集合を表すオーバーレイを計算するステップ。
計算されたオーバーレイは、有理座標をもつ。
別の態様によると、本発明は、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面を計算する、コンピュータ可読媒体に記憶されるコンピュータプログラムとして実施され、第1のモデル化オブジェクトは、第1の三角形分割多面体閉面によってモデル化され、第2のモデル化オブジェクトは、第2の三角形分割多面体閉面によってモデル化され、コンピュータプログラムは、コンピュータに上記プロセスのステップをとらせるコード手段を含む。
別の態様によると、本発明は、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面を計算する機器として実施され、第1のモデル化オブジェクトは第1の三角形分割多面体閉面によってモデル化され、第2のモデル化オブジェクトは第2の三角形分割多面体閉面によってモデル化され、機器は、上記プロセスのステップを実行する手段を含む。
本発明を実施するシステムおよび本発明によるプロセスを、非限定的実施例として、かつ添付の図面を参照して以下に記載する。
有理数から浮動小数点数への座標の丸めによって生成される軌跡の自己相互作用関係(local self-interaction)の例を示す図である。 立体の2つの境界に対してブール演算を実行する従来のアルゴリズムのステップを例示する図である。 立体の2つの境界に対してブール演算を実行する従来のアルゴリズムのステップを例示する図である。 立体の2つの境界に対してブール演算を実行する従来のアルゴリズムのステップを例示する図である。 立体の2つの境界に対してブール演算を実行する従来のアルゴリズムのステップを例示する図である。 立体の2つの境界に対してブール演算を実行する従来のアルゴリズムのステップを例示する図である。 立体の2つの境界に対してブール演算を実行する従来のアルゴリズムのステップを例示する図である。 単体2環(simplicial 2-cycle)の支持集合(support)および補集合の例を示す図である。 単体2環の支持集合および補集合の例を示す図である。 図8、9の自己交差型(self intersecting)単体2環の巻き数を示す図である。 図10の正の巻き数によって定義される立体を例示する図である。 一般化されたブール演算の定義を示す実施例を示す図である。 一般化されたブール演算の定義を示す実施例を示す図である。 一般化されたブール演算の定義を示す実施例を示す図である。 一般化されたブール演算の定義を示す実施例を示す図である。 一般化されたブール演算の定義を示す実施例を示す図である。 一般化されたブール演算の定義を示す実施例を示す図である。 本発明を実施する、三角形分割多面体閉面の結果を計算するプロセスを示すフローチャートである。 図18に示すプロセスを示す実施例である。 図18に示すプロセスを示す実施例である。 図18に示すプロセスを示す実施例である。 図18に示すプロセスを示す実施例である。 図18に示すプロセスを示す実施例である。 多様体エッジおよび非多様体エッジの例を示す図である。 多様体エッジおよび非多様体エッジの例を示す図である。 巻き数伝播(propagation)アルゴリズムの例を示す図である。 巻き数伝播アルゴリズムの例を示す図である。 図12から15、図19から22に示されるオブジェクトの3次元表現を示す図である。 図12から15、図19から22に示されるオブジェクトの3次元表現を示す図である。 図12から15、図19から22に示されるオブジェクトの3次元表現を示す図である。
本発明は、計算機支援幾何学的デザインシステムにおける、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面を計算するコンピュータ実施プロセスを対象とする。第1のモデル化オブジェクトは、第1の三角形分割多面体閉面によってモデル化され、第2のモデル化オブジェクトは、第2の三角形分割多面体閉面によってモデル化される。このプロセスは、第1のモデル化オブジェクトの三角形と第2のモデル化オブジェクトの三角形との間の積集合を計算するステップを含む。次に、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの三角形は、その積集合に隣接する多角形ファセットに分割される。次いで、2つの巻き数対(p、qと記す)が、各三角形および各多角形ファセット用に計算される。各巻き数対の第1の巻き数は、第1の三角形分割多面体閉面から計算され、各巻き数対の第2の巻き数は、第2の三角形分割多面体閉面から計算される。次いで、係数(kと記す)が、各三角形および各多角形ファセット用に計算される。この係数は、各三角形および各多角形ファセットの2つの巻き数対(p、qと記す)を入力としてもつ関数φで計算される。次に、三角形および多角形ファセットが、計算された係数に従って選択される。多角形ファセットは三角形分割され、結果として得られる三角形分割多面体閉面が、選択された三角形および三角形分割された選択多角形ファセットを用いて取得される。
有利には、本発明は、三角形分割多面体閉面によってモデル化されるとともに、たとえば、単体2環などの多面体環(polyhedral cycle)として表される第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの間のブール演算を素早く正確に計算するのに適した、一般的、効率的かつ堅牢な方法を提供する。被演算子の有効性チェックは、第1のモデル化オブジェクトおよび/または第2のモデル化オブジェクトが自己積集合をもつかどうかを検証するのにさほど必要がないため、比較的速い。したがって、チェックするための一意の基準は、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの密閉性(watertightness)である。さらに、この密閉性基準が遵守される場合、本発明は、それゆえに、その結果の品質を保証することができる。
言い換えると、第1のモデル化オブジェクトおよび/または第2のモデル化オブジェクトに対する連続的演算は、失敗を発生することなく実施することができる。したがって、いくつかの演算が連続して実行され得るので、堅牢性が増す。さらに、こうした演算は、たとえば、正の巻き数のみを保つことによって、巻き数対を計算することにより取得される内部空間および外部空間の概念のおかげで一般化される。
単体的複体(simplicial complex)とは、点、線分、三角形、およびより一般的にはそのp次元の等価物を「貼り合わせる(gluing together)」ことによって構築される位相空間である。単体的複体を使う利点の1つは、こうした複体のプロパティが、任意の次元mに関しても一般化され得ることである。単体的複体は、2008年11月7日の特許文献1の2から5ページに記載されている他の方法より資源を必要としない単純な算術演算によりモデル化オブジェクトの境界を計算することを可能にする。具体的には、単体的複体は、トポロジー的(topologically)に矛盾のない閉多面体表現を提供する。この表現は、それ自体と交わり得るが、組合せとして密閉(combinatorial watertight)である。具体的には、微小摂動または浮動小数点の丸めが出力に適用される場合、有効な(トポロジーとして正しく、密閉な)ままであるので、堅牢性をもたらす。
単体的2鎖とは、単体的複体の特定のケースである。3次元ユークリッド空間内の単体的2鎖は、三角形の集合とともに、3D空間内の座標によって与えられる有限の頂点集合によって定義される。各三角形は、頂点のインデックスからなる順序付けられた3つ組と、その多重度を定義する整数とによって定義される。三角形の多重度の符号と、その三角形を定義する組の順序とを同時に変えることからなる演算は、鎖を変えない。単体2環とは、以下で定義されるゼロ境界条件(zero boundary condition)を満足する単体的2鎖である。
有利には、立体を表す単体2環の有効性の基準は純粋に組合せであり、すなわち通常の多面体表現とは異なり、数値に依存しないので、本発明は、従来技術と比較して堅牢性を提供する。
具体的には、提案される一般化されたブール演算子は、数の丸めに耐性があり、座標の丸めは、被演算子の有効性に影響しない。たとえば、被演算子の頂点に対して、浮動小数点算術計算を使って回転を適用すると、組合せの構造を維持するので、その有効性には影響しない。逆に、最先端の多面体に同じ回転(実際には、きわめて通常の演算)を適用すると、自己積集合を生じる可能性があるので、最先端の有効性の基準(図1を参照して上述した)に従うと、その結果は矛盾するものになる。
言い換えると、本発明は、頂点座標が整数や浮動小数点などの固定長の数表現を使う単体2環による立体の表現に適合する、一般化されたブール演算子である。一般に、単体2環とは、自己積集合を特徴とし得る三角形分割多面体閉面である。
ここで図8を参照し、Cで記す単体2環が与えられると、Cの支持集合|C|は、単体2環Cの三角形すべての和集合として定義される。支持集合|C|はしたがって、3D空間R3の部分集合である。図8において、|C|は、2つの自己積集合81、82を特徴とするCの支持集合である。
多面体環のすべての三角形の和集合であるものは、「多面体環」(たとえば、Cで記す単体2環)の「支持集合」と定義される。3D空間内の、多面体環の支持集合の補集合の結合された要素は、3Dセルと呼ばれる。1つの3Dセルだけが、境界されず、「外部セル」と呼ばれる。
ここで図9を参照すると、R3−|C|と記す、|C|の3D補集合は、少なくとも2つの結合要素を含む。グレーエリアは、|C|の補集合の結合された要素を表す。4つの結合要素91、92、93、94がある。4つの要素を越えると、「外側」91には境界がない。
|C|の補集合の各点には、図10に示すように、巻き数と呼ばれる、明確に定義された整数が関連づけられる。巻き数は、|C|の補集合の各結合要素92、93、94に対する定数であり、|C|に対してはいかなる巻き数も定義されない。
Cと記す、単体2環などの多面体環が与えられると、Cの各三角形が、その3つの頂点によって順序づけによって配向され、この順序づけは法線ベクトルを定義することを思い起こされたい。さらに、Cの各三角形は、整数の多重度をもつ。Cにある任意の三角形にも属さない、3次元空間内の点Xが与えられると、Cに関するXの巻き数は、以下のように定義される整数Wである。
説明のために、多面体 −環(たとえば、単体2環)は、ゼロ境界条件と呼ばれる条件を遵守することを思い出されたい。多面体 −環がゼロ境界条件を満たすと、密閉特性が多面体 −環に授けられる。
実際、多面体 −環は、符号つき整数をもち、多重度と呼ばれ、各単体に割り当てられ、配向された単体の集合である。たとえば、エッジの多重度は、同じ端頂点(end vertices)を共有する複数のエッジの数である。
図10に表すように、Xで始まり、
Figure 0005848030
にあるどのエッジとも交わらない、配向された半直線Δを検討する。このような半直線Δは常に存在する。δを、Xから無限大の方を指すΔの向きを定義する単位ベクトルと呼ぶ。Δが、Cにある三角形Tと交わると、Δは、Tの法線nTとのδのドット積が正である場合はTと前方交差し、負である場合は後方交差すると言う。ドット積は、ΔがCにある少なくとも1つのエッジと交わることを意味しており、ゼロになることはない。
整数Wを、値W=0で初期化する。Δが、Cにある三角形Tと多重度μTで交差する度に、ΔがTと前方交差する場合はμTのWを増分し、ΔがTと後方交差する場合はμTのWを減分する。このことは、W:=W+sign(nT・δ)μTと記すことができる。
結果として得られる数W(X,C)は、所与の点、すなわちCに対する3次元空間内の点Xの巻き数(3D巻き数という場合もある)と呼ばれる。この数は、半直線Δに依存せず、どの3Dセル内でも一定であり、このことは、W(X,C)が同じ3Dセル内のすべての点Xに対して同じ値をもつことを意味する。具体的には、外部セル内のすべての点Xに対してW(X,C)=0である。
本発明は、巻き数概念を利用する。巻き数の概念の2次元バージョンは、従来技術において十分に解説されている。3次元巻き数も、数学的「位相次数(topological degree)」の適用として、従来技術において解説されており、たとえば、非特許文献7を参照されたい。本説明の残りの部分では、巻き数および3次元巻き数という用語は、区別なく使われる。
図10は、自己と二度交わる平面輪郭を用いた巻き数計算を示す。線分の配向が、法線ベクトルを定義する。平面輪郭は、右から左に配向される。半直線Δ上で点Xが与えられると、その巻き数Wの計算は、初期化W:=0を行い、半直線Δに沿ってXから無限大に向かって(図の右側に向かって)動くことである。この動きの間、輪郭と交差するとき、(図に示すように)増分W:=W+1を行い、または減分W:=W−1を行う。
巻き数計算の結果、単体2環Cが、立体を次のように定義する。すなわち、立体は、図11に示すように、正の巻き数をもつ点集合の閉包(closure)である。このような単体2環の集合は、頂点が浮動小数点座標をもつ通常の多面体の配向された境界の集合を含む。ただし、従来の多面体境界とは異なり、単体2環は、一般に自己と交わることが認められる。
さらに進む前に、「内側」、「外側」およびブール演算というよく知られている概念を一般化するためのいくつかの定義が必要である。
単体2環Aを図12に、2単体2環(two simplicial 2-cycle)Bを図13に示す。3次元オブジェクトを、図12〜17、19〜23で論じるが、簡略化のために、2次元オブジェクトのみを示してある。ついでながら、図28〜30はそれぞれ、図12、図13、および図14、19に示すオブジェクトの3次元表現を示す。Aは矩形であり、Bは二重の三角形(double triangle)である。A、Bは、それぞれの配向および巻き数とともに別々に表される。Aは正(regular、正多角形の正)であり、正多面体の境界を表す。Bは、自己積集合をもち、したがって、先に論じたように、立体の従来技術の有効性の基準に従って正(regular、正多角形の正)である。
それぞれの巻き数関数を、wA:R3−|A|→ZおよびwB:R3−|B|→Zと記す。φ:Z×Z→Zを、2つの整数を与えられると1つの整数を計算する関数とする。関数φおよび巻き数、すなわちψ(x)=φ(wA(x),wB(x))を構成することによって、関数ψ:D→Zを定義することとするが、ここでD=R3−(|A|∪|B|)は、wAおよびwBの両方が明確に定義される3D定義域(domain)である。明らかに、関数ψは、D=R3−(|A|∪|B|)の各結合要素に渡って一定である。関数ψは、すべての0<ε≦ε0に対して、O(x,ε)と記される、xを中心とする半径εの開球体(ε-radius open ball)へのψの制約が一価関数である実数ε0>0が存在する場合、点x∈|A|∪|B|の近傍において局地的に一定であると言われる。言い換えると、関数ψは、x∈|A|∪|B|の「各辺」において同じ定数値をもつ。
次いで、定義により、関数ψの境界δψは、点xの集合∈|A|∪|B|であり、ここでψは局地的に一価ではない。これは、結果として得られる単体2環の幾何学的軌跡を定義する。x∈δψを、ψが局地的に二価である点とする。ψ+、ψ-を、初期被演算子の結果として得られる配向に従って、ψ+(またはψ-)がδψの正辺(またはδψの反対辺)における値である、こうした2つの値とする。次いで、差ψ-−ψ+は、点xでの符号つき多重度を定義する。したがって、δψのすべての三角形に対する多重度がセットされる。
したがって、2つの単体2環AとBとの間の一般化されたブール演算を定義することは、関数φを定義することである。結果として得られる単体2環はしたがって、三角形の多重度に関連づけられたδψである。
ここで図14を参照すると、2つの単体2環A、Bが、演算、たとえば、AとBの和集合の計算のための位置に、D=R3−(|A|∪|B|)の各結合要素に対する値対(wA,wB)とともに表されている。値対の第1の数は、単体2環Aから計算され、各巻き数対の第2の巻き数は、単体2環Bから計算される。図15において、値対(wA,wB)は、関数φを通した結果で置き換えられているが、この結果は、この例では、積φ(wA,wB)=wABと定義される。
図16において、点線は、関数ψ(x)=wA(x)wB(x)が局地的に一価である、|A|∪|B|の部分を表し、|A|∪|B|が、ψが同じ値をもつ2つの領域を、局地的に分離させることを意味する。
図17において、図面は、2つの単体2環A、Bに対して実行される演算の結果を表す。すなわち、関数ψが局地的に一価でない|A|∪|B|の部分を保持することによって、新たな環が取得される。初期配向および関数ψの値により、上方の三角形エッジの多重度は、被演算子Bから継承されるエッジに対しては0−(−1)=1、被演算子Aから継承されるエッジに対しては−1−0=−1である。下方の三角形エッジの多重度は、1−0=1である。
したがって、2つの単体2環A、Bが与えられ、関数φが与えられると、本発明によるプロセスは、δψによって定義される、単体2環結果を計算する。以下の関数φは、正多面体に対する通常のブール演算を再定義することが理解されよう。すなわち、2つの立体の和集合は関数φ(p,q)=min(1,p+q)によって、積集合は関数φ(p,q)=pqによって、差集合は関数φ(p,q)=max(0,p−q)によって定義される。
さらに、ブール演算子は、何らかの弦誤差基準(chordal error criterion)によって駆動されるエッジ消去手順を適用することによって取得される結果を簡略化し得る。たとえば、座標の丸めによって誘発される摂動と長さが同程度の規模であるエッジは、幾何情報を大幅に損失することなく消去され得る。有利には、本発明のプロセスの結果として得られる単体2環は、自己積集合を特徴とし得る三角形分割多面体閉面であるため、2つの単体2環A、Bに対する演算が、境界の自己積集合を誘発しそうな場合であっても、結果は、無効にされない。
ここで図18を参照して、本発明によるプロセスの実施形態を説明する。
ステップS10、S12で、第1の三角形分割多面体閉面によってモデル化された第1のモデル化オブジェクト、および第2の三角形分割多面体閉面によってモデル化された第2のモデル化オブジェクトを入力する。通常、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトは、単体2環である。必要であれば、符号つき整数を、第1および第2の三角形分割多面体閉面の三角形に関連づけ、配向反転および/または多重度を取り込むことができる。
ステップS20で、関数φ:Z×Z→Zを選択する。関数φの選択により、第1のモデル化オブジェクトと第2のモデル化オブジェクトとの間で実行するための演算を選択することができる。一般に、関数φは、2つの立体の和集合、積集合、および差集合など、通常のブール演算を再定義する。本発明を用いるアプリケーションの目的に依存して、どの関数φを定義してもよい。たとえば、(空間掃引の結果として得られる)自己と交わるオブジェクトを扱うとき、関数φの定義により、対象となっている空間領域は、巻き数が正である場所であると決めることができ、関数φの別の定義により、対象となっている空間領域は、巻き数がゼロでない場所であると決めることができる。通常のブール演算を再定義すると、関数φの制約のない定義は、本発明によって与えられる設計上の柔軟性となる。
実際に、関数φは、設計セッション中にユーザによって選択される。関数φは、CAGDシステムによってデフォルトで選択することもできる。
次いで、ステップS30で、第1のモデル化オブジェクトの三角形と第2のモデル化オブジェクトの三角形との間の積集合を計算する。積集合とは、2つの三角形が出会う点、エッジまたは多角形である。したがってステップS30は、第1のモデル化オブジェクトまたは第2のモデル化オブジェクトの三角形の共通エッジまたは頂点にはない、三角形の積集合をすべて見つけることである。
積集合を計算するのに、いくつかの方法を用いることができ、たとえば、標準浮動小数点算術をイプシロンプログラミングとともに使う。実際に、積集合の計算は、精密な算術を用いて実行される。精密な算術は、数値計算を実行するときに丸めおよび切捨てを利用しない。精密な算術手法を用い、数値的に堅牢な幾何学的アルゴリズムを実行する。有利には、精密な算術は、オブジェクトの正しい位相構造を取得することを可能にするので、こうした構造には矛盾がない。
さらに、先に見たように、単体2環とは、自己積集合を特徴とし得る三角形分割多面体閉面である。実際に、第1のモデル化オブジェクトおよび/または第2のモデル化オブジェクトは、自己積集合を含み得るので、三角形の間の積集合の計算は、第1のモデル化オブジェクトの三角形の間、および/または第2のモデル化オブジェクトの三角形の間の積集合を計算することをさらに含む。
ここで図19を参照すると、2つの単体2環A、Bが入力済みである。第1のオブジェクトAは、図12に示した矩形であり、第2のオブジェクトBは、図13に示した自己積集合を含む二重三角形である。オブジェクトA、Bは、図28〜30に示すように、3次元オブジェクトであるが、簡略化のために、図面19〜23では2次元オブジェクトが使われることを思い出されたい。実際に、ユーザは、当該分野において公知であるように2つのオブジェクトを入力する。さらに、オブジェクトA、Bは、オブジェクトBがオブジェクトAの上になるように、互いに位置決めされている。通常、この位置決めもユーザによって実行される。
図20に、オブジェクトAとオブジェクトBとの間の積集合200、202、204、および206を表してある。さらに、オブジェクトBの自己積集合208も表してある。簡略化のために、オブジェクトA、Bの表現は、図19〜23では2D表現であり、3DオブジェクトA、Bの三角形の間で計算される積集合は、エッジまたは頂点であることを思い出されたい。積集合の計算は、当該分野において公知であるように、たとえば、精密な算術を使って実行される。
図18に参照を戻すと、ステップS40で、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの三角形が、その計算された積集合に隣接する多角形ファセットに分割される。つまり、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトA、Bは、ステップS30で計算された積集合に従って細分化される(subdivided)と言う。
たとえば、図21において、オブジェクトAとオブジェクトBとの間の計算された積集合は、オブジェクトAを、隣接する4つの部分(2、10、4、5)に細分化し、オブジェクトBを、隣接する6つの部分(1、7、9、3、8、6)に分割する。
次に、ステップS50で、少なくとも1つの領域を計算する。領域は、互いと隣接するとともに計算された積集合の1つで区切られる三角形および/または多角形ファセットの集合を含む。言い換えると、領域とは、計算された積集合に沿った、第1のモデル化オブジェクトAおよび第2のモデル化オブジェクトBの境界の一部である。つまり、第1のモデル化オブジェクトAおよび第2のモデル化オブジェクトBがその上で出会い、または自己と交わる頂点もしくはエッジに隣接する三角形および/または多角形ファセットの集合が、領域を形成すると言う。
実際に、各三角形を多角形ファセットに分割する、計算された積集合の配置のオーバーレイが築かれる。オーバーレイの確立は、当該分野において公知であるように、計算された積集合を組み合わせることになる。この段階で、初期オブジェクトA、Bの各三角形を、オブジェクトA、Bの同じ多面体環を数学的に定義する新規表現が取得されるように、多角形ファセットに細分化される。有利には、多面体環の支持複体(supporting complex)は、周囲の3次元空間に組み込まれる。言い換えると、新たな環の多角形ファセットまたはエッジのどの交わるペアも、共通エッジもしくは頂点に沿って交わる。この構築は、「精密に」行われ、有利には、エッジおよび三角形の積集合、または3つの三角形の積集合の結果として得られる頂点が有理座標(rational coordinates)をもつことを含意する。新規表現の構築は記号を使って管理されるが、このことは、ほとんどの場合、こうした有理座標が明示的には計算されないことを含意する。有利には、こうした有理座標は計算される必要がないので、CAGDシステムのリソースは維持される(たとえばCPU、メモリなど)。 一般的でない状況が起こる場合があり、こうした状況は、当該分野において公知であるように解決される。たとえば、三角形が重なる場合があり、いくつかのエッジが同じ点で三角形と交わり、または3つより多い三角形が一地点で出会う場合がある。こうした一般的でない状況の中で、重複三角形が新規多角形ファセットを生じる特定の状況がある。このようなケースでは、計算された新規係数k(ステップS70で論じる)は、2つの重複三角形のそれぞれの係数kの和である。
次に、ステップS60で、2つの巻き数対(つまり、3D巻き数)p、qを、各三角形および各多角形ファセット用に計算する。3次元オブジェクトの巻き数(または3D巻き数)により、多角形 −環の内部空間および外部空間の概念が一般化される。各巻き数対ごとに、第1の巻き数が第1の三角形分割多面体閉面から計算され、第2の巻き数が第2の三角形分割多面体閉面から計算される。少なくとも一回のレイトレーシングが、このステップで三角形に対して実行される。有利には、完全な堅牢性のために、このステップは、精密な算術および「単純さのシミュレーション」の両方を必要とする。「単純さのシミュレーション」は、たとえば、非特許文献8において教示されるように、幾何学的アルゴリズムにおいて縮退ケース(degenerate cases)に取り組むための技法である。
実際に、第1の巻き数対および第2の巻き数対は、それぞれ三角形および多角形ファセットの各辺用に計算される。多角形ファセットの第1の辺(同じことが三角形に当てはまる)は下と呼ばれ、第2の辺は上と呼ばれる。多角形ファセットの下および上という概念は、各多角形ファセットの法線ベクトルに基づく任意の取り決め(arbitrary convention)に依拠する。
実際、多面体環(たとえば、単体2環)の各三角形は、その3つの頂点の順序づけによって配向され、3つの頂点の順序づけは任意選択であることを思い起こされたい。また、この順序づけが法線ベクトルを定義する。
たとえば、図26に、共通エッジEをもつ三角形の集合が表示されている。各三角形は、図に示すように、それ自体の法線ベクトルをもつ。三角形260は配向され、この配向に基づいて、法線ベクトルが定義され、三角形の「上」を指示する。
したがって、Cbelowと記す第1の巻き数対は、その三角形および多角形ファセットの法線ベクトルにより、その三角形および多角形ファセットの下である。反対に、Caboveと記す第2の巻き数対は、その三角形および多角形ファセットの法線ベクトルにより上記三角形および多角形ファセットの上である。
図22を参照すると、第1のモデル化オブジェクトAおよび第2のモデル化オブジェクトBの巻き数の値対(wA,wB)が示されている。オブジェクトBの部分1は、2つの巻き数対をもつ。部分1の第1の対は、Cbelow=(0,0)と記され、第2の対はCabove=(0,−1)と記される。この例では、部分1の法線ベクトル(図21に表す)は、対(0,−1)を部分1の上であると任意に見なすことを引き起こす。オブジェクトA、Bの他の部分については、下の表で論じる。
実際に、ステップ(S50)で計算された各領域に、2つの(3D)巻き数対を関連づける。第1の巻き数対は、計算された領域(の法線ベクトル)のすぐ下のCbelow=(wA,wB)であり、第2の巻き数対は、領域(の法線ベクトル)のすぐ上のCabove=(wA,wB)である。計算された各領域に関連づけられる2つの対Cbelow=(wA,wB)およびCabove=(wA,wB)は、その領域に属す多角形ファセット(または三角形)用に計算される2つの巻き数対である。次いで、(3D)巻き数CbelowおよびCaboveの対は、隣接する領域および三角形に伝播される。伝播という用語は、第1の対Cbelowおよび第2の対Caboveが、計算された新規多角形ファセットおよび/または三角形に広がることを意味する。言い換えると、専用のアルゴリズムを用い、領域の他の多角形ファセットの(3D)巻き数の対を計算する。このアルゴリズムはしたがって、計算された領域に依拠し、領域に属す多角形ファセットの巻き数対の計算を実行する。このアルゴリズムを、ここで詳述する。
このアルゴリズムは、第1の計算領域に属す多角形ファセット(または三角形)のCbelowおよびCaboveの計算で始まる。多角形ファセットの選択は任意であり、このアルゴリズムの出力に影響を与えない。次いで、こうした2つの巻き数対CbelowおよびCaboveの値が、隣接する多角形ファセットに対して計算される(伝播されると言うこともできよう)。この段階で、隣接する多角形ファセットは、別の計算領域でも三角形でもよい。定義により、2つの多角形は、少なくとも1つのエッジを共有する場合は隣接することを思い起こされたい。さらに、やはり定義により、正確に2つの多角形によって共有されるエッジは、図24に表すように多様体エッジである。やはり定義により、3つ以上の多角形によって共有されるエッジは非多様体エッジである。図25で、非多様体エッジが、4つの付随多角形を有して描画されている。
ここで、図26、27を参照して、隣接するファセットの巻き数対CbelowおよびCaboveの計算(または伝播)について詳述する。
図26において、Eを、4つの多角形によって共有される非多様体エッジとする。このエッジは、第1のモデル化オブジェクトAおよび第2のモデル化オブジェクトBとの間の計算された積集合であり、すなわち、2つの水平多角形260、262は第1のモデル化オブジェクトAに属し、2つの垂直多角形264、266は第2のモデル化オブジェクトBに属す。ついでながら、各多角形は、先に論じたように、そのジオメトリおよび配向により法線ベクトルを含むことに気付かれよう。
ここで図27を参照し、1つの隣接多角形に対する2つの巻き数対CbelowおよびCabove、たとえば、多角形260の巻き数対Cbelow=(wA,wB)およびCabove=(wA,wB)が分かっていると仮定する。多角形は、エッジEの周りを動径方向にソートされる。動径方向は、エッジEの周りの回転に従って選ぶことができる。たとえば、多角形260から反時計回転268を始めると、エッジEに隣接する多角形の動径方向は、260、266、262、264となる。
次いで、所与の三角形または所与の多角形ファセットから開始すると、回転が、計算された積集合の周りを動径方向に従って実行される。これは、多角形260から開始して、多角形266、262、264が連続して交差されることになる。
次に、計算された積集合に隣接する他の三角形および/または多角形ファセットの交差が検出される。各交差検出の後、2つの巻き数対が更新される。更新は、交差される三角形および/または多角形ファセットの法線ベクトルの配向に従って実行される。
更新を、以下の3つの規則に基づいて実行することができる。
(i)第1のモデル化オブジェクトAの多角形の法線ベクトルが動径方向(または反動径方向)に配向される場合、その多角形との交差は、巻き数wAをwA+1(またはwA−1)に変える。
(ii)第2のモデル化オブジェクトBの多角形の法線ベクトルが動径方向(または反動径方向)に配向される場合、その多角形との交差は、巻き数wBをwB+1(またはwB−1)に変える。
(iii)第1のモデル化オブジェクトA(またはB)にある多角形との交差は、巻き数wB(またはwA)を変えない。
図27は、上述した規則の適用を示す。簡略化のために、巻き数対Cabove=(wA,wB)の計算(または伝播)に例を限定する。巻き数対Cabove=(wA,wB)をもつ多角形260から開始すると、最初に交差される多角形は、多角形266である。多角形266の交差が検出されると、巻き数対が更新され、その結果更新により巻き数wBがwB−1に変わる。多角形266の計算された巻き数対はしたがって、Cabove=(wA,wB−1)となる。同様に、多角形262が交差され、多角形262の計算された巻き数対はそれに従ってCabove=(wA+1,wB−1)となる。次に、多角形264と交差した後、多角形264の計算された巻き数対はCabove=(wA+1,wB)となる。
したがって、巻き数の変動が分かっているので、多様体または非多様体の計算された積集合に隣接する、計算されたすべての領域の巻き数対CbelowおよびCaboveを更新するのは容易である。このアルゴリズムの利点は、巻き数の計算回数が減少することであることが理解されよう。これは、システムのリソースが維持され、計算時間が大きく削減されるので、特に有利である。
巻き数対の計算は、拡張領域(extended regions)に対して実施することもできる。拡張領域は、領域に隣接する三角形および/または多角形ファセットの集合を含まない。拡張領域とは、第2のモデル化オブジェクトの多角形とも接せず、自己積集合とも接しない第1のモデル化オブジェクトの隣接三角形の集合からなる。したがって、拡張領域内の三角形のCbelowおよびCaboveの初期値は、同じ拡張領域内ですべての三角形に対して同じであることが理解されよう。つまり、拡張領域は、同じCbelowおよびCaboveをもつモデル化オブジェクトの結合三角形の最大数を含むと言うことができる。したがって、拡張領域内では、計算された初期巻き数対CbelowおよびCaboveは、モデル化オブジェクトの結合三角形全体に容易に計算されることができる(伝播すると言うこともできよう)。したがって、拡張領域内での計算手順は、モデル化オブジェクトの各結合三角形に対して繰り返される。繰り返しになるが、有利には本発明によるプロセスの性能を向上させ、かつCAGDシステムのリソースを維持することができることが理解されよう。
次いで、図18のステップS70で、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの各三角形および各多角形ファセット用に係数kを計算する。定義により、関数ψの境界δψは、点x∈|A|∪|B|の集合であり、ここでψは局地的に一価ではないので、結果として得られる単体2環δψの幾何学的軌跡を定義すること、ならびにψ+およびψ-は、初期被演算子の結果として得られる配向に従って、ψ+(またはψ-)がδψの正辺(positive side)(またはδψの反対辺(opposite side))における値である2つの値であることを思い出されたい。次いで、差ψ-−ψ+が、点xでの符号つき多重度を定義し、したがって、δψのすべての三角形に対する多重度が設定される。結果として得られる単体2環はしたがって、三角形の多重度に関連づけられたδψである。多重度により有利には、整数値をもつ関数ψの場合において単体2環が取得され得ることが理解されよう。そうでなければ、関数ψは、0または1のみを値としてもつことになる。
係数kは、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの各三角形および各多角形ファセット用に計算される2つの巻き数対p、qを入力としてもつ関数φで計算される。実際に、係数kは、k=φ(Cbelow)−φ(Cabove)のように計算され、これはつまり、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの各三角形および各多角形ファセットに対する符号つき多重度を計算することである。
次に、ステップS80で、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトの三角形および多角形ファセットが、計算された係数に従って選択される。ここでの選択は、選択された三角形および多角形ファセットが、単体2環結果を取得するために保たれることを意味する。実際に、三角形および多角形ファセットは、計算された係数kがゼロとは異なるときに選択される。
次に、ステップS90で、三角形ではない多角形ファセットを、三角形分割する。三角形分割は、当該分野において公知であるように実行される。
次いで、ステップ100で、結果として三角形分割多面体閉面を、選択された三角形および三角形分割された選択多角形ファセットを有して取得する。ステップS60からS100は、図20〜23で示される。
図20で、オブジェクトAとBとの間の積集合200、202、204、206、210およびオブジェクトBの自己積集合208が表され、第1のモデル化オブジェクトAおよび第2のモデル化オブジェクトBが、計算された積集合に従って細分化される。
次いで、図21に、拡張領域を示してある。拡張領域は、図において、数値1から10で識別される。この例では、オブジェクトAの隣接する4つの部分(2、10、4、5)および部分Bの隣接する6つの部分(1、7、9、3、8、6)が拡張領域である。ここで、次の表に集められるように、結果として得られる単体2環、すなわちCbelow、Caboveおよびk=φ(Cbelow)−φ(Cabove)を選択するのに使われる係数すべてを各拡張領域に関連づけることが可能である。
次の表の例では、φ(wA,wB)=wABをとる。結果として得られる単体2環に属す拡張領域は、一番右の列に見られる。
Figure 0005848030
図23には、拡張領域5、6、7、8、9、10によって定義される、結果として得られる単体2環を示してある。拡張領域5は、上の表中のφ(Cbelow)−φ(Cabove)の符号によって取り込まれる反対配向(新規配向を示してある)に従って、作用しなければならないことに気付かれよう。こうすることにより、結果として得られる単体2環の面の配向は大域的に矛盾がないことが保証できるようになる。
上記方法は、どのCAGDシステムにも適用され得ることを理解されたい。本発明は、システム、方法、またはコンピュータプログラムとして実施することができる。本発明は、デジタル電子回路機構において、もしくはコンピュータハードウェア、ファームウェア、常駐ソフトウェア、マイクロコード、ソフトウェアにおいて、またはその組合せにおいて実施することができる。本発明の装置は、プログラム制御可能なプロセッサによる実行のためにマシン可読記憶装置内で有形に実施されるコンピュータプログラム製品で実施することができる。また、本発明の方法ステップは、入力データに対して作用し出力を生成することによって、本発明の機能を実施するための命令からなるプログラムを実行するプログラム可能プロセッサによって実行することができる。
本発明は有利には、データ記憶システム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信するとともに、データおよび命令を送信するように結合された少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能な1つまたは複数のコンピュータプログラムで実施することができる。アプリケーションプログラムは、高度手続き型プログラミング言語もしくはオブジェクト指向プログラミング言語で、または所望される場合はアセンブリ言語もしくはマシン言語で実施することができる。いずれのケースでも、言語は、コンパイラ型言語またはインタープリタ型言語でよい。
一般に、プロセッサが、リードオンリメモリおよび/またはランダムアクセスメモリから命令およびデータを受信することになる。1つまたは複数のコンピュータ可読媒体のどの組合せも、命令を記憶するのに使用することができる。コンピュータ可読媒体は、コンピュータ可読記憶媒体でよい。コンピュータ可読記憶媒体は、たとえば、電子、磁気、光学、電磁気、赤外線、または半導体システム、機器、もしくは装置、あるいは上記の適切な任意の組合せだが、それに限定されない。コンピュータプログラム命令およびデータを有形に実施するのに適した記憶装置は、例としてEPROM、EEPROM、およびフラッシュメモリ素子などの半導体メモリ素子と、内部ハードディスクおよび取外し可能ディスクなどの磁気ディスクと、光磁気ディスクと、CD−ROMディスクとを含むすべての形の不揮発性メモリを含む。上記のいずれも、特殊設計ASIC(特定用途向け集積回路)によって補われ、またはそこに組み込まれ得る。
コンピュータ可読媒体は、コンピュータ可読信号媒体でよい。コンピュータ可読信号媒体は、媒体中で実施されるコンピュータ可読プログラムコードをもつ伝播データ信号を、たとえば、ベースバンド中に、または搬送波の一部として含み得る。このような伝播信号は、電磁気、光学、またはこれらの適切な任意の組合せを含むが、それに限定されない様々な形のいずれもとり得る。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、機器、または装置による、またはこれらと関連して使用するためのプログラムを伝達し、伝播し、または移送し得るどのコンピュータ可読媒体でもよい。本発明の好ましい実施形態について記載してきた。本発明の精神および範囲から逸脱することなく、様々な修正が行われ得ることが理解されよう。したがって、他の実施形態も、添付の請求項の範囲内である。たとえば、本発明によるプロセス全体の性能を、最適化により向上させることが可能である。第1の最適化は、たとえば、非特許文献9、非特許文献10および非特許文献11に記載されている、フィルタリングされた述語(predicate)の概念を用いることにあり得る。
さらに、構築された頂点の重心座標は、区間算術で計算される。述語が呼び出される度に、通常は行列式の符号を戻すが、こうした区間座標を使って符号を判定しようとし、この判定が可能でない場合は、述語の有理数演算バージョンを呼び出し、この呼出しが以前行われたことがない場合は、影響を受ける構築された頂点の求められる重心座標を最初に計算する。
図18に示すプロセスのステップS30で、第1のモデル化オブジェクトの三角形と第2のモデル化オブジェクトの三角形との間の積集合の計算は、以下のように定義され、パッチと呼ばれる、三角形の集合にある被演算子の区画を使って加速され得る。
(i)パッチの配向された三角形の法線ベクトルすべてをもつ、正のドット積を特徴とするベクトルdが存在する。
(ii)パッチの境界のdと直交する面の上の向きdに沿った投影(projection)、自己積集合をもたない。
実際、この場合、パッチが自己積集合をもたず、別個のパッチの三角形の間の可能な積集合を検査するのに十分であることが示され得る。こうしたパッチが、ボクセルや八文木などの空間区画構造においてローカライズされる場合、たとえば非特許文献12および非特許文献13に記載されているように、ステップS30は大幅に高速化され得る。
たとえば、ボクセルがただ1つのパッチを含む場合、積集合はあり得ない。
さらに、別の最適化は、弦誤差によって駆動される一連のエッジ消去によって、結果として得られる三角形分割多面体閉面を簡略化する(S100)ことにあり得る。実際、上記ステップS30〜S90で実行される演算は精密であるため、極めて小さい、おそらく入力被演算子の頂点の座標を定義する浮動小数点数の最終桁の重みよりはるかに小さい三角形が起こり得る。本発明のプロセスでは、この簡略化手順は、浮動小数点における数の丸めに相当する組み合わせ物である。

Claims (13)

  1. 計算機支援幾何学的デザインシステムにおける、第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから、前記第1のモデル化オブジェクトを第1の三角形分割多面体閉面によってモデル化し、前記第2のモデル化オブジェクトを第2の三角形分割多面体閉面によってモデル化し、結果として得られる三角形分割多面体閉面を計算するためのコンピュータ実行する方法であって、
    前記第1のモデル化オブジェクトの三角形と、前記第2のモデル化オブジェクトの三角形との間の積集合を計算するステップ(S30)と、
    前記第1のモデル化オブジェクトの三角形および第2のモデル化オブジェクトの三角形を、前記積集合に隣接する多角形ファセットに分割するステップ(S40)と、
    各三角形および各多角形ファセット用に、2つの巻き数対p、qを計算するステップ(S60)であって、各巻き数対の第1の巻き数を、前記第1の三角形分割多面体閉面から計算し、各巻き数対の第2の巻き数を、前記第2の三角形分割多面体閉面から計算するステップと、
    各三角形および各多角形ファセット用に係数kを計算するステップ(S70)であって、前記係数を、各三角形および各多角形ファセットの前記2つの巻き数対p、qを入力としてもつ関数φで計算するステップと、
    三角形および多角形ファセットを、前記計算された係数に従って、選択するステップ(S80)と、
    前記選択された多角形ファセットを三角形分割するステップ(S90)と、
    前記選択された三角形および前記三角形分割された選択された多角形ファセットをもつ、結果として得られる前記三角形分割多面体閉面を取得するステップ(S100)と
    を備えたことを特徴とする方法。
  2. 三角形分割多面体閉面によってモデル化された前記第1のモデル化オブジェクトまたは三角形分割多面体閉面によってモデル化された前記第2のモデル化オブジェクトの少なくとも一方は、自己積集合を含み、
    前記三角形の間の積集合を計算するステップは、三角形分割多面体閉面によってモデル化された前記第1のモデル化オブジェクトまたは三角形分割多面体閉面によってモデル化された前記第2のモデル化オブジェクトの前記少なくとも一方の三角形の間の積集合を計算するステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記三角形を分割するステップの後に、
    少なくとも1つの領域を計算するステップであって、領域は互いに隣接し、かつ前記計算された積集合の1つによって区切られる、三角形および/または多角形ファセットの集合を有するステップをさらに含むことを特徴とする請求項1または2に記載の方法。
  4. 前記領域のすべての三角形および/またはすべての多角形ファセットを判定するステップであって、前記三角形および/または多角形ファセットは、計算された共通の積集合に隣接し、各三角形および/または各多角形ファセットは、前記各三角形および/または前記各多角形ファセットの独自のジオメトリおよび独自の配向に従って定義される法線ベクトルを有するステップと、
    所与の三角形ファセットまたは所与の多角形ファセット用に2つの巻き数対p、qを計算するステップと、
    前記所与の三角形または多角形ファセットから開始して、前記計算された積集合の周りを動径方向に従って回転するステップと、
    前記計算された積集合に隣接する他の三角形および/または他の多角形ファセットの交差を検出するステップと、
    各交差の後に、前記交差した三角形および/または前記交差した多角形ファセットの前記法線ベクトルの配向に従って、前記2つの巻き数対p、qを更新するステップと
    をさらに備えたことを特徴とする請求項3に記載の方法。
  5. 前記2つの巻き数対を計算するステップにおいて、
    前記第1の巻き数対Cbelowは、前記三角形および前記多角形ファセットの法線ベクトルに従って、前記三角形および前記多角形ファセットの下であり、
    前記第2の巻き数対Caboveは、前記三角形および多角形ファセットの前記法線ベクトルに従って、前記三角形および多角形ファセットの上であることを特徴とする請求項1乃至4のいずれかに記載の方法。
  6. 各三角形および各多角形ファセットの前記2つの巻き数対p、qを入力としてもつ前記関数φは、
    φ(p,q)=min(1,p+q)
    φ(p,q)=p×q
    φ(p,q)=max(0,p−q)
    という演算の1つを実行することを特徴とする請求項1乃至5のいずれかに記載の方法。
  7. 前記三角形および前記多角形ファセットは、前記計算された係数kがゼロとは異なるときに選択されることを特徴とする請求項1乃至6のいずれかに記載の方法。
  8. 前記積集合を計算するステップにおいて、前記第1のモデル化オブジェクトの前記三角形と前記第2のモデル化オブジェクトの前記三角形との間の三角形の共通エッジまたは共通頂点は除外されることを特徴とする請求項1乃至7のいずれかに記載の方法。
  9. 前記積集合を計算するステップは、精密な算術を用いて実施されることを特徴とする請求項8に記載の方法。
  10. 前記三角形を分割するステップの後で、前記計算された積集合を表すオーバーレイを計算するステップをさらに含むことを特徴とする請求項1乃至9のいずれかに記載の方法。
  11. 前記計算されたオーバーレイは、有理座標を有することを特徴とする請求項10に記載の方法。
  12. 第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから、前記第1のモデル化オブジェクトを第1の三角形分割多面体閉面によってモデル化し、前記第2のモデル化オブジェクトを第2の三角形分割多面体閉面によってモデル化し、結果として得られる三角形分割多面体閉面を計算するコンピュータ可読媒体に記憶されるコンピュータプログラムであって、前記コンピュータプログラムは、請求項1乃至11のいずれかに記載の方法をコンピュータに実行させるコードを備えたことを特徴とするコンピュータプログラム。
  13. 第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから、前記第1のモデル化オブジェクトを第1の三角形分割多面体閉面によってモデル化し、前記第2のモデル化オブジェクトを第2の三角形分割多面体閉面によってモデル化し、結果として得られる三角形分割多面体閉面を計算する機器であって、請求項1乃至11のいずれかに記載の方法を実行する手段を備えたことを特徴とする機器。
JP2011116005A 2010-05-25 2011-05-24 第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面の計算 Active JP5848030B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10305555.4A EP2400410B1 (en) 2010-05-25 2010-05-25 Computing of a resulting closed triangulated polyhedral surface from a first and a second modeled object
EP10305555.4 2010-05-25

Publications (2)

Publication Number Publication Date
JP2011248889A JP2011248889A (ja) 2011-12-08
JP5848030B2 true JP5848030B2 (ja) 2016-01-27

Family

ID=42799764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011116005A Active JP5848030B2 (ja) 2010-05-25 2011-05-24 第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面の計算

Country Status (6)

Country Link
US (1) US8854367B2 (ja)
EP (1) EP2400410B1 (ja)
JP (1) JP5848030B2 (ja)
KR (1) KR101754581B1 (ja)
CN (1) CN102262694B (ja)
CA (1) CA2740669A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9607111B2 (en) * 2010-11-29 2017-03-28 Autodesk, Inc. Spatial information modeling of buildings using non-manifold topology via a 3D geometric modeling kernel and designscript
EP2811463B1 (en) * 2013-06-04 2018-11-21 Dassault Systèmes Designing a 3d modeled object with 2d views
JP6182473B2 (ja) * 2013-09-25 2017-08-16 日本電信電話株式会社 データ分析装置及び方法及びプログラム
EP2874118B1 (en) 2013-11-18 2017-08-02 Dassault Systèmes Computing camera parameters
US10255383B2 (en) * 2014-10-10 2019-04-09 Autodesk, Inc. Rule based three-dimensional (3D) intersection model
EP3032495B1 (en) 2014-12-10 2019-11-13 Dassault Systèmes Texturing a 3d modeled object
US9836874B2 (en) 2015-01-27 2017-12-05 Splunk Inc. Efficient polygon-clipping technique to reduce data transfer requirements for a viewport
US9916326B2 (en) 2015-01-27 2018-03-13 Splunk, Inc. Efficient point-in-polygon indexing technique for facilitating geofencing operations
US9767122B2 (en) 2015-01-27 2017-09-19 Splunk Inc. Efficient point-in-polygon indexing technique to facilitate displaying geographic data
US10026204B2 (en) 2015-01-27 2018-07-17 Splunk Inc. Efficient point-in-polygon indexing technique for processing queries over geographic data sets
US9607414B2 (en) * 2015-01-27 2017-03-28 Splunk Inc. Three-dimensional point-in-polygon operation to facilitate displaying three-dimensional structures
EP3188033B1 (en) 2015-12-31 2024-02-14 Dassault Systèmes Reconstructing a 3d modeled object
US10109105B2 (en) * 2016-07-12 2018-10-23 Nature Simulation Systems Inc. Method for immediate boolean operations using geometric facets
EP4131172A1 (en) 2016-09-12 2023-02-08 Dassault Systèmes Deep convolutional neural network for 3d reconstruction of a real object
CN106325211B (zh) * 2016-11-16 2019-01-04 清华大学 一种基于stl模型交线环的材料去除算法
US10834413B2 (en) * 2018-08-24 2020-11-10 Disney Enterprises, Inc. Fast and accurate block matching for computer generated content
WO2020122882A1 (en) * 2018-12-11 2020-06-18 Hewlett-Packard Development Company, L.P. Determination of vertices of triangular grids for three-dimensional object representations
CN109782272A (zh) * 2018-12-30 2019-05-21 中国电子科技集团公司第十五研究所 三维雷达体的布尔融合方法
EP3825956B1 (en) * 2019-11-21 2022-06-22 Dassault Systèmes Processing a 3d signal of a shape attribute over a real object
CN111159850B (zh) * 2019-12-09 2021-06-01 北京航空航天大学 一种面向平面散点数据的沿流向沟槽叶栅自动生成方法
CN111474899B (zh) * 2020-04-29 2021-02-19 大连理工大学 一种基于三角化的复杂型腔高速数控铣削螺旋路径生成方法
CN116322564A (zh) 2020-11-20 2023-06-23 易美构有限公司 通过基于虚拟桥的多集合运算生成用于数字牙科的三维模型的方法
CN115272379B (zh) * 2022-08-03 2023-11-28 上海新迪数字技术有限公司 一种基于投影的三维网格模型外轮廓提取方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445390B1 (en) * 1997-12-29 2002-09-03 The United States Of America As Represented By The Adminstrator Of The National Aeronautics And Space Administration Triangle geometry processing for surface modeling and cartesian grid generation
US6392646B1 (en) * 1999-12-22 2002-05-21 General Electric Co. Iterative determination of the shortest path between two points on a polygonal surface
CA2430068C (en) * 2002-05-30 2013-04-16 Universite Laval Construction members for three-dimensional assemblies
JP4301791B2 (ja) * 2002-10-04 2009-07-22 三菱重工業株式会社 Cadシステム及びcadプログラム
JP3950976B2 (ja) 2004-01-09 2007-08-01 独立行政法人情報通信研究機構 3次元幾何データの無矛盾化方法及びそのシステム
US7408548B2 (en) * 2005-06-30 2008-08-05 Microsoft Corporation Triangulating procedural geometric objects
JP4759614B2 (ja) * 2006-05-11 2011-08-31 パナソニック株式会社 処理装置
US20080225037A1 (en) * 2007-03-15 2008-09-18 Basimah Khulusi Apparatus and method for truncating polyhedra
JP2010026636A (ja) 2008-07-16 2010-02-04 Mitsutoyo Corp 領域間の集合演算方法および集合演算処理装置
EP2189918A1 (en) * 2008-11-07 2010-05-26 Dassault Systèmes Computer-implemented method of computing, in a computer aided design system, of a boundary of a modeled object.

Also Published As

Publication number Publication date
CN102262694B (zh) 2016-11-23
EP2400410B1 (en) 2014-01-08
JP2011248889A (ja) 2011-12-08
US8854367B2 (en) 2014-10-07
US20110295564A1 (en) 2011-12-01
CN102262694A (zh) 2011-11-30
EP2400410A1 (en) 2011-12-28
KR20110129359A (ko) 2011-12-01
KR101754581B1 (ko) 2017-07-19
CA2740669A1 (en) 2011-11-25

Similar Documents

Publication Publication Date Title
JP5848030B2 (ja) 第1のモデル化オブジェクトおよび第2のモデル化オブジェクトから結果として得られる三角形分割多面体閉面の計算
CN109767495B (zh) 3d部件的增材制造
Liu et al. Automatic polyhedral mesh generation and scaled boundary finite element analysis of STL models
Carter et al. Automated 3‐D crack growth simulation
JP4783100B2 (ja) 境界データのセル内形状データへの変換方法とその変換プログラム
Kuo et al. A Delaunay-based region-growing approach to surface reconstruction from unorganized points
EP1710720B1 (en) Method of computer-aided design of a modeled object having several faces
Zaharescu et al. Topology-adaptive mesh deformation for surface evolution, morphing, and multiview reconstruction
Lou et al. Merging enriched finite element triangle meshes for fast prototyping of alternate solutions in the context of industrial maintenance
Elsheikh et al. A reliable triangular mesh intersection algorithm and its application in geological modelling
US8502818B1 (en) System and method for surface tracking
Capizzano Automatic generation of locally refined Cartesian meshes: Data management and algorithms
Alliez et al. CGAL: the computational geometry algorithms library
Ahn et al. Geometric algorithms for 3D interface reconstruction
CN109983509B (zh) 一种使用几何面的即时布尔运算方法
Schifko et al. Industrial application of exact boolean operations for meshes
Lee et al. Continuous penetration depth computation for rigid models using dynamic Minkowski sums
Kase et al. Volume CAD—CW-complexes based approach
Milenkovic et al. Geometric rounding and feature separation in meshes
Georgiadis et al. Indirect all-quadrilateral meshing based on bipartite topological labeling
Pons et al. A Lagrangian approach to dynamic interfaces through kinetic triangulation of the ambient space
Sacks et al. Robust cascading of operations on polyhedra
Leconte et al. Exact and efficient booleans for polyhedra
Smith et al. Sealing faceted surfaces to achieve watertight CAD models
Du et al. Robust computation of implicit surface networks for piecewise linear functions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140521

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150924

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151126

R150 Certificate of patent or registration of utility model

Ref document number: 5848030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250