(57)【要約】【課題】複数の３Ｄ曲線から表面を生成するための、コンピュータによって実施される方法が提供される。【解決手段】方法は、複数の３Ｄ曲線を与えるステップ（Ｓ１０）と、曲線の対の間のクロッシングを決定するステップ（Ｓ２０）と、クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフを定義するステップ（Ｓ３０）と、グラフから、３Ｄの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ（Ｓ４０）と、メッシュに表面を当てはめるステップ（Ｓ５０）とを含む。  そのような方法は、複数の３Ｄ曲線からの表面の生成をより容易にする。【選択図】図１
2013114694.tif 000002
【特許請求の範囲】
【請求項１】
複数の３Ｄ曲線から表面を生成するための、コンピュータによって実施される方法であって、
複数の３Ｄ曲線を与えるステップ（Ｓ１０）と、
前記複数の３Ｄ曲線を土台に射影し、それによって、複数の対応する射影された曲線を得るステップ（Ｓ２２）、
射影された曲線の対の間のクロッシングを決定するステップ（Ｓ２３）、および
前記射影された曲線の対の間の前記クロッシングに対応する前記曲線の点の対を取得するステップ（Ｓ２４）
によって、前記曲線のそれぞれの対の間の少なくとも１つのクロッシングを、前記曲線の前記それぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む、前記曲線の対の間のクロッシングを決定するステップ（Ｓ２０）と、
前記クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフを定義するステップ（Ｓ３０）と、
前記グラフから、３Ｄの位置によって定義される頂点、および前記頂点の対を接続するエッジを含むメッシュを決定するステップ（Ｓ４０）と、
前記メッシュに表面を当てはめるステップ（Ｓ５０）と
を含むことを特徴とする方法。
【請求項２】
前記複数の３Ｄ曲線を土台に射影するステップ（Ｓ２２）は、前記複数の３Ｄ曲線を、線分の組に存するポリラインに離散化するステップ（Ｓ２２１）と、前記線分を前記土台に射影し、それによって、複数の対応する射影された線分を得るステップ（Ｓ２２２）とを含み、
射影された曲線の対の間のクロッシングを決定するステップ（Ｓ２３）は、同じボクセルに属する異なる曲線に対応する前記射影された線分の対を決定するステップ（Ｓ２３１）と、決定された射影された線分の対の間の両垂線を決定するステップ（Ｓ２３２）と、前記両垂線の末端を決定するステップ（Ｓ２３３）とを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記メッシュを決定するステップ（Ｓ４０）は、前記グラフのすべてのタイルが３つまたは４つの弧を有する面に分割されるまで前記グラフに弧および／またはノードを追加するステップ（Ｓ４０１）を含むことを特徴とする請求項１または２に記載の方法。
【請求項４】
前記メッシュを決定するステップ（Ｓ４０）は、Ｔ字型の接続がなくなるまで前記グラフに弧および／またはノードを追加するステップ（Ｓ４０２）を含むことを特徴とする請求項１から３のいずれかに記載の方法。
【請求項５】
前記メッシュを決定するステップ（Ｓ４０）は、メッシュの細分割スキームにしたがって前記グラフに弧および／またはノードを追加するステップ（Ｓ４０３）を含むことを特徴とする請求項１から４のいずれかに記載の方法。
【請求項６】
前記クロッシングは、前記曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、前記曲線の前記それぞれの対の間の少なくとも１つのクロッシングを含み、前記メッシュを決定するステップ（Ｓ４０）は、前記少なくとも１つのクロッシングを表すノードに前記点の対の中間の３Ｄの位置を関連付けるステップ（Ｓ４０６）を含むことを特徴とする請求項１から５のいずれかに記載の方法。
【請求項７】
前記メッシュを決定するステップ（Ｓ４０）は、前記グラフにノードを追加するステップ（Ｓ４０１、Ｓ４０２、Ｓ４０３）と、所与の追加されたノードに、ノードを追加する前の前記グラフに対する前記所与のノードのトポロジー上の位置に依存する３Ｄの位置を関連付けるステップ（Ｓ４０７）とを含むことを特徴とする請求項６に記載の方法。
【請求項８】
所与の追加されたノードに関連付けられる前記３Ｄの位置は、
前記所与の追加されたノードのトポロジー上の位置が、ノードを追加する前の前記グラフの弧の上である場合、前記弧の末端のノードに関連付けられる３Ｄの位置に応じて前記弧によって表される曲線をずらすことによって計算された位置であり、または
前記ノードのトポロジー上の位置が、４つの辺を持つ前記グラフにノードを追加する前の前記グラフのタイルの中にある場合、Ｃｏｏｎｓ法によって計算された位置であり、または
任意のその他の場合、隣接するノードの３Ｄの位置を平均することによって計算された位置であることを特徴とする請求項７に記載の方法。
【請求項９】
前記複数の３Ｄ曲線は、フリーハンドでスケッチされる曲線を含むことを特徴とする請求項１から８のいずれかに記載の方法。
【請求項１０】
請求項１から９のいずれかに記載の方法を実行するための命令をその上に記録する少なくとも１つのメモリと、
前記メモリに結合された少なくとも１つのプロセッサと、
前記プロセッサに結合され、前記命令の実行に好適な少なくとも１つのグラフィカルユーザインターフェースと
を含むことを特徴とするＣＡＤシステム。
【請求項１１】
請求項１から９のいずれかに記載の方法を実行するための命令を含むことを特徴とするコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムをその上に記録することを特徴とするコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、複数の３Ｄ曲線から表面を生成するための方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
オブジェクトの設計、エンジニアリング、および製造のためのいくつかのシステムおよびプログラムが、市場で提示されている。ＣＡＤはコンピュータ支援設計の頭字語であり、例えば、ＣＡＤはオブジェクトを設計するためのソフトウェアソリューションに関する。ＣＡＥはコンピュータ支援エンジニアリングの頭字語であり、例えば、ＣＡＥは将来の製品の物理的な挙動をシミュレーションするためのソフトウェアソリューションに関する。ＣＡＭはコンピュータ支援製造の頭字語であり、例えば、ＣＡＭは製造プロセスおよびオペレーションを定義するためのソフトウェアソリューションに関する。そのようなシステムにおいては、グラフィカルユーザインターフェース（ＧＵＩ）が、技法の効率に関する重要な役割を担う。これらの技法は、製品ライフサイクル管理（ＰＬＭ）システムに組み込まれる可能性がある。ＰＬＭは、企業が、拡張エンタープライズ（ｅｘｔｅｎｄｅｄ  ｅｎｔｅｒｐｒｉｓｅ）の概念全体にわたって構想から製品寿命の終わりまで、製品データを共有し、共通のプロセスを適用し、製品の開発に関する企業知識を利用することを支援するビジネス戦略を指す。
【０００３】
（ＣＡＴＩＡ、ＥＮＯＶＩＡ、およびＤＥＬＭＩＡの商標で）Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓによって提供されるＰＬＭソリューションは、製品エンジンニアリングの知識を体系化するエンジニアリングハブ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｈｕｂ）と、製造エンジニアリングの知識を管理する製造ハブ（Ｍａｎｕｆａｃｔｕｒｉｎｇ  Ｈｕｂ）と、エンジニアリングハブおよび製造ハブへの企業のインテグレーションおよび接続を可能にするエンタープライズハブ（Ｅｎｔｅｒｐｒｉｓｅ  Ｈｕｂ）とを提供する。システムは、製品、プロセス、リソースを結びつけるオープンなオブジェクトモデルを一緒になって提供して、最適化された製品定義、製造準備、生産、およびサービスを推進する動的で知識に基づいた製品作りおよび意志決定支援を可能にする。
【０００４】
これらのシステムの一部は、大きなくくりでは形状モデリング、より正確には表面設計に入る、複数の３Ｄ曲線からの表面の生成を可能にする。入門的な出版物がある（例えば、非特許文献１）。特に興味深いのは、任意の種類の複合的な表面（１つまたは複数の表面のキルト（ｑｕｉｌｔ））、特に、曲面、（平らなファセットからなる）三角形メッシュ表面、または細分割曲面（ｓｕｂｄｉｖｉｓｉｏｎ  ｓｕｒｆａｃｅ）のキルトである。
【０００５】
Ｂ−Ｒｅｐ（境界表現）は、すべての上述の表面を単一の概念にグループ化するので、ここで言及すべき数学的モデルである。Ｂ−Ｒｅｐは、Ｒ2の定義域およびＲ3の値域を有する１つまたは複数の関数ｆi（ｓ，ｔ）→（ｘ，ｙ，ｚ）と、これらの個々の部分がどのように一緒に「縫い合わされる」かについての論理的な情報とをまとめる。縫い合わせは、表面が「切り取られる」ようなものである可能性があり、表面が「切り取られる」とは、各関数のＲ2の定義域は、その全体が使用されないことを意味する。いかにして曲線の組からそのような表面のパッチワーク（ｐａｔｃｈｗｏｒｋ）を最も上手く生成するかは、形状モデリングの古くからの課題である。三角形メッシュの特別な場合、それぞれの個々の表面要素は、平らなファセット、言い換えると、平面である。Ｂ−Ｒｅｐの広く知られている定義は、ＳＴＥＰ  ＡＰ２０３である。これは、ＣＡＴＩＡ  Ｖ５およびＣＡＴＩＡ  Ｖ６がＣＡＴＰａｒｔを．ｓｔｐファイルとしてエクスポートするときに適用する規格である。Ｂ−Ｒｅｐは開いている可能性があり、その場合、それらのＢ−Ｒｅｐはその体積（ｖｏｌｕｍｅ）を取り囲まず、またはＢ−Ｒｅｐは閉じている可能性があり、その場合、それらのＢ−Ｒｅｐはその体積の境界を示し、したがって、ソリッドオブジェクトを表す可能性がある。ＳＴＥＰ  ＡＰ２０３において、それらのＢ−Ｒｅｐは、それぞれ、キーワードＯＰＥＮ＿ＳＨＥＬＬおよびＣＬＯＳＥＤ＿ＳＨＥＬＬによって言及される。しかし、用語Ｂ−Ｒｅｐが、ＡＰ２０３標準よりも広い意味で使用される可能性がある。ＡＰ２０３においては、開いているＢ−Ｒｅｐの場合は単に開いているシェル（ｏｐｅｎ  ｓｈｅｌｌ）と呼ばれ、（キーワード「ＡＤＶＡＮＣＥＤ＿ＢＲＥＰ＿ＳＨＡＰＥ＿ＲＥＰＲＥＳＥＮＴＡＴＩＯＮ」の）用語Ｂ−Ｒｅｐは、閉じているシェル（ｃｌｏｓｅｄ  ｓｈｅｌｌ）の場合のために残されている。体積を取り囲まないＢ−Ｒｅｐは、多くのサブ関数で構成されるときであっても、（単数形で）表面と呼ばれることが多い。これは、下位部分の間の結合部が滑らかであり、オブジェクトの複合的な性質をユーザに隠すときに特に当てはまる。エンジニアまたはデザイナーは、生成された複合的な形状を単一の表面と言うことが多い。
【０００６】
３Ｄモデル、特に、自由な形式の形状の構築を容易にするために、一部のＣＡＤシステムは、より低次元の入力の組からＢ−Ｒｅｐ（またはその一部）を生成するためのさまざまな方法を提供する。これらの入力は、規則的な間隔の点の組、点および接平面の組、プロファイルおよび突出の方向、スイーププロファイル（ｓｗｅｅｐ  ｐｒｏｆｉｌｅ）とスイープレール（ｓｗｅｅｐ  ｒａｉｌ）との組み合わせ、補間すべき曲線の組である可能性がある。曲線の組の場合、これらは、概して、完全に交わるか、または順番に並べられることが求められる。例えば、ＣＡＴＩＡ  Ｖ５／６のネットサーフェス（ＮＥＴ  ｓｕｒｆａｃｅ）は、交わる曲線の格子から表面を生成する。
【０００７】
Ｒ2からＲ3へと写像するさまざまな関数が、Ｂ−Ｒｅｐを形成するために使用され得る。これらは、（三角形メッシュにおけるような）単純な平面から非常に高次の多項式にまで及ぶことが可能であり、円柱などの正準表面も含まれる。例えば、ＣＡＴＩＡに統合されたＣａｔｍｕｌｌ−Ｃｌａｒｋ細分割曲面を利用することもできる（例えば、特許文献１および特許文献２参照）。これらのシステムにおいて、細分割曲面は、最初に、リアルタイムの視覚化のために三角形メッシュに変換され、次に、最終的な高品質の結果のためのＢ−スプライン曲面に変換される。
【０００８】
やはり言及しておくべきなのは、コンピュータ支援曲線スケッチング（Ｃｕｒｖｅ  Ｓｋｅｔｃｈｉｎｇ）である。曲線からの表面の生成は、曲線が素早く容易に作成され得る状況で最も上手く使用される。曲線スケッチングは、コンピュータグラフィックスの研究の豊富な分野である。曲線スケッチングを示す出版物がある（例えば、非特許文献２および非特許文献３参照）。これらの２つの出版物は、形状を定義する曲線のネットワークを扱うが、形状に表面を被せることは、このオペレーションが難しいために提案しない。
【０００９】
複数の３Ｄ曲線から表面を生成するための既存のソリューションの１つの問題は、形状を定義する際にアーティストまたはエンジニアにほとんど柔軟性が与えられないことである。既存のソリューションでは、制約のない設計のアクションが可能でない。通常、それらのソリューションは、製図版に新しいアイデアを書き留めるときにコンピュータシステムのどんな柔軟性のなさも（当然ながら）我慢することができない非常にクリエイティブなアーティストのユーザを満足させない。それらのソリューションは、試行錯誤、および形状の非常にインタラクティブな修正を許さない。それらのソリューションは、製品設計に携わる者なら誰によっても使用可能なのではなく、製品設計のアーティストによってのみ使用可能である。すべての人がアイデアを交換する可能性があり、したがって、アーティストと同じ、即座に作成することの制約を受けるので、製品設計に携わるあらゆる人によって使用可能なシステムが有益である。
【００１０】
曲線から表面を構築する従来技術の方法は、２つのカテゴリー、すなわち、スイープ／ロフト型の方法とネットサーフェス（ネットワークにおけるようなネット）とに分かれる。
【００１１】
スイープ／ロフトの方法は、２つの異なるカテゴリーに曲線を分けることを必要とし、通常、１つの曲線はガイドであり、その他の曲線は断面形状であるか、またはおそらくは、断面形状が与えられ、ガイドは与えられない。これらの場合のすべてにおいて、入力は慎重に編成されなければならず、結果として得られる表面は、真に自由な形式ではなく、むしろ、（１つの断面から次の断面までの、またはガイド曲線に沿った）所与の方向に向きを決められる、流れるような形状である。スイープおよびロフトは非常に有用であり、ＣＡＤシステムにおいてきわめて頻繁に使用されるが、得られるべき形状の詳細な図を必要とし、したがって、制約のない試行錯誤型のアプローチをサポートしないので、３Ｄ形状の真に自由な形式のスケッチングに適用可能ではない。
【００１２】
ネットワークサーフェス（ｎｅｔｗｏｒｋ  ｓｕｒｆａｃｅ）（略してネット）は、最もよく知られているのがＣｏｏｎｓ曲面である一群の技術である。Ｃｏｏｎｓ曲面の優れた論考を見つけることができる（例えば、非特許文献４参照）。上述のＣＡＴＩＡのネットサーフェス、または曲線に収束する特定の細分割スキームを定義することに基づく、細分割曲面を曲線に当てはめる方法を扱う出版物（例えば、非特許文献５参照）に記載の方法を含む多くのその他の種類のネットサーフェスが存在する。すべてのネットサーフェスは、それらが曲線のネットワークを補間するという点が共通している。表面が曲線を通過するので、曲線は互いに交わり、閉ループを有する格子を形成しなければならない。これは、曲線の組をそれらが互いに接触するように３Ｄで自由にスケッチすることは実際には不可能であるので、ほとんどの芸術的な作業にとって致命的な条件である。
【００１３】
やはり言及しておくべきなのは、当てはめに関する参考文献である（例えば、非特許文献６参照）。この参考文献に記載の方法は、全体的な目標（ｇｅｎｅｒａｌ  ｔａｒｇｅｔ）に対して働く（すべての点がそれらが到達すべき目標の位置を有する）。
【００１４】
このような状況の中で、複数の３Ｄ曲線から表面を生成するための改善されたソリューションに対するニーズが依然として存在する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】米国特許第７，５９５，７９９号明細書
【特許文献２】米国特許第７，４００，３２３号明細書
【非特許文献】
【００１６】
【非特許文献１】"Geometric Modeling", 3rd Edition, by Michael E. Mortenson, Industrial Press, May, 2006
【非特許文献２】"ILoveSketch: As-natural-as-possible sketching system for creating 3D curve models," ACM Symposium on User Interface Software and Technology 2008, Monterey, CA, USA, October 19-22, 2008
【非特許文献３】"EvcrybodyLovesSketch: 3D Sketching for a Broader Audience," Seok-Hyung Bae, Ravin Balakrishnan, and Karan Singh, Proceedings of ACM Symposium on User Interface Software and Technology 2009 (Victoria, BC, Canada, October 4-7, 2009, pp. 59-68
【非特許文献４】"Discrete Coons Patches" Farin & Hansford, Computer Aided Geometric Design 16 (1999) 691-700
【非特許文献５】"Interpolating Nets of Curves by Smooth Subdivision Surfaces", Levin, Siggraph 99
【非特許文献６】"fitting subdivision surfaces", by Litke, Levin and Schroder, Siggraph 2001
【発明の概要】
【発明が解決しようとする課題】
【００１７】
このような状況の中で、複数の３Ｄ曲線から表面を生成するための改善されたソリューションに対するニーズが依然として存在する。
【課題を解決するための手段】
【００１８】
１つの態様によれば、したがって、複数の３Ｄ曲線から表面を生成するための、コンピュータによって実施される方法が提供される。方法は、複数の３Ｄ曲線を与えるステップと、曲線の対の間のクロッシング（ｃｒｏｓｓｉｎｇ）を決定するステップと、クロッシングを表すノード、および隣り合うクロッシングを表すノードの対を接続する弧を含む基底グラフ（ｂａｓｅ  ｇｒａｐｈ）を定義するステップと、グラフから、３Ｄの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップと、メッシュに表面を当てはめるステップとを含む。
【００１９】
方法は、以下のうちの１つまたは複数を含み得る。
【００２０】
クロッシングを決定するステップは、曲線のそれぞれの対の間の少なくとも１つのクロッシングを、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む。
【００２１】
方法は、複数の３Ｄ曲線を土台（ｓｕｐｐｏｒｔ）に射影し、それによって、複数の対応する射影された曲線を得るステップと、射影された曲線の対の間のクロッシングを決定するステップと、射影された曲線の対の間のクロッシングに対応する曲線の点の対を取得するステップとを含む。
【００２２】
複数の３Ｄ曲線を土台に射影するステップは、複数の３Ｄ曲線を、線分（ｓｅｇｍｅｎｔ）の組に存するポリライン（ｐｏｌｙ−ｌｉｎｅ）に離散化するステップと、線分を土台に射影し、それによって、複数の対応する射影された線分を得るステップとを含み、射影された曲線の対の間のクロッシングを決定するステップは、同じボクセルに属する異なる曲線に対応する射影された線分の対を決定するステップと、決定された射影された線分の対の間の両垂線（ｂｉ−ｐｅｒｐｅｎｄｉｃｕｌａｒ）を決定するステップと、両垂線の末端を決定するステップとを含む。
【００２３】
メッシュを決定するステップは、グラフのすべてのタイル（ｔｉｌｅ）が３つまたは４つの弧を有する面に分割されるまでグラフに弧および／またはノードを追加するステップを含む。
【００２４】
メッシュを決定するステップは、Ｔ字型の接続がなくなるまでグラフに弧および／またはノードを追加するステップを含む。
【００２５】
メッシュを決定するステップは、メッシュの細分割スキームにしたがってグラフに弧および／またはノードを追加するステップを含む。
【００２６】
クロッシングは、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、曲線のそれぞれの対の間の少なくとも１つのクロッシングを含み、メッシュを決定するステップは、少なくとも１つのクロッシングを表すノードに点の対の中間の３Ｄの位置を関連付けるステップを含む。
【００２７】
メッシュを決定するステップは、グラフにノードを追加するステップと、所与の追加されたノードに、ノードを追加する前のグラフに対する所与のノードのトポロジー上の位置（ｔｏｐｏｌｏｇｉｃａｌ  ｐｏｓｉｔｉｏｎ）に依存する３Ｄの位置を関連付けるステップとを含む。
【００２８】
所与の追加されたノードに関連付けられる３Ｄの位置は、その所与の追加されたノードのトポロジー上の位置が、ノードを追加する前のグラフの弧の上である場合、その弧の末端のノードに関連付けられる３Ｄの位置に応じてその弧によって表される曲線をずらすことによって計算された位置であり、または、当該ノードのトポロジー上の位置が、４つの辺を持つグラフにノードを追加する前のグラフのタイルの中にある場合、Ｃｏｏｎｓ法（Ｃｏｏｎｓ  ｍｅｔｈｏｄ）によって計算された位置であり、または、任意のその他の場合、隣接するノードの３Ｄの位置を平均することによって計算された位置である。
【００２９】
複数の３Ｄ曲線は、フリーハンドでスケッチされる曲線を含む。
【００３０】
上述の方法を実行するための命令をその上に記録する少なくとも１つのメモリと、メモリに結合された少なくとも１つのプロセッサと、プロセッサに結合され、命令の実行に好適な少なくとも１つのグラフィカルユーザインターフェースとを含むＣＡＤシステムがさらに提案される。
【００３１】
上述の方法を実行するための命令を含むコンピュータプログラムが、さらに提案される。
【００３２】
上述のコンピュータプログラムをその上に記録するコンピュータ可読ストレージ媒体が、さらに提案される。
【００３３】
本発明の実施形態が、次に、非限定的な例として、添付の図面を参照して説明される。
【図面の簡単な説明】
【００３４】
【図１】方法の例の流れ図である。
【図２】グラフィカルユーザインターフェースの例を示す図である。
【図３】クライアントコンピュータシステムの例を示す図である。
【図４】方法の例の流れ図である。
【図５】方法の例を概略的に示す図である。
【図６】方法の例を概略的に示す図である。
【図７】方法の例を概略的に示す図である。
【図８】方法の例を概略的に示す図である。
【図９】方法の例を概略的に示す図である。
【図１０】方法の例を概略的に示す図である。
【図１１】方法の例を概略的に示す図である。
【図１２】方法の例を概略的に示す図である。
【図１３】方法の例を概略的に示す図である。
【図１４】方法の例を概略的に示す図である。
【発明を実施するための形態】
【００３５】
図１は、複数の３Ｄ曲線から表面を生成するための、コンピュータによって実施される方法の例の流れ図を示す。方法は、複数の３Ｄ曲線を与えるステップ（Ｓ１０）と、曲線の対の間のクロッシングを決定するステップ（Ｓ２０）と、基底グラフを定義するステップ（Ｓ３０）とを含む。基底グラフは、クロッシングを表すノードと、隣り合うクロッシングを表すノードの対を接続する弧とを含む。方法は、グラフから、３Ｄの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ（Ｓ４０）も含む。方法は、次に、メッシュに表面を当てはめるステップ（Ｓ５０）を含む。そのような方法は、複数の３Ｄ曲線からの表面の生成を改善する。
【００３６】
方法は、ＣＡＤでモデリングされるオブジェクトを設計するプロセスに含まれ得る。「ＣＡＤでモデリングされるオブジェクトを設計する」とは、ＣＡＤでモデリングされるオブジェクトを作り込むプロセスの少なくとも一部である任意のアクションまたは一連のアクションを指す。したがって、方法は、ＣＡＤでモデリングされるオブジェクトを一から作成することを含み得る。あるいは、方法は、既に作成されたＣＡＤでモデリングされるオブジェクトを与え、次いで、そのＣＡＤでモデリングされるオブジェクトを修正することを含み得る。いずれの場合も、方法によって生成される表面は、ＣＡＤでモデリングされるオブジェクト、または少なくともその一部、例えば、ＣＡＤでモデリングされるオブジェクトの境界を表すことができる。方法が複数の３Ｄ曲線からの表面の生成をより容易にするので、方法は、ＣＡＤでモデリングされるオブジェクトの設計もより容易にする。
【００３７】
モデリングされるオブジェクトは、ＣＡＤシステムのメモリに記憶されたデータによって定義される任意のオブジェクトである。その意味を拡張して、表現「モデリングされるオブジェクト」は、データ自体を表す。システムの種類に応じて、モデリングされるオブジェクトは、異なる種類のデータによって定義される可能性がある。ＣＡＤシステムは、少なくとも、ＣＡＴＩＡなどの、モデリングされるオブジェクトのグラフィカルな表現に基づいてモデリングされるオブジェクトを設計するのに好適な任意のシステムである。したがって、ＣＡＤでモデリングされるオブジェクトを定義するデータは、モデリングされるオブジェクトの表現を可能にするデータ（例えば、例えば空間内の相対的な位置を含む形状データ）を含む。ＣＡＤシステムは、例えば、エッジまたは線を、特定の場合には面または表面とともに用いて、ＣＡＤでモデリングされるオブジェクトを表すことができる。線、エッジ、または表面は、さまざまな方法、例えば、ＮＵＲＢＳ（ｎｏｎ−ｕｎｉｆｏｒｍ  ｒａｔｉｏｎａｌ  Ｂ−ｓｐｌｉｎｅ）で表され得る。特に、ＣＡＤファイルは、ジオメトリが生成され得る仕様を含むことができ、ひいては、そのジオメトリが、表現が生成されることを可能にする。モデリングされるオブジェクトの仕様は、単一のＣＡＤファイルまたは複数のＣＡＤファイルに記憶される可能性がある。ＣＡＤシステムにおいてモデリングされるオブジェクトを表すファイルの典型的なサイズは、部分ごとに１メガバイトの範囲内である。また、モデリングされるオブジェクトは、通常、数千個の部分を組み立てたものである可能性がある。
【００３８】
方法は、製造プロセスに含まれる可能性があり、製造プロセスは、方法を実行した後、ＣＡＤでモデリングされるオブジェクトに対応する物理的な製品を生産することを含み得る。どの場合でも、方法によって複数の３Ｄ曲線から生成される表面は、製造オブジェクト（ｍａｎｕｆａｃｔｕｒｉｎｇ  ｏｂｊｅｃｔ）、例えば、そのようなオブジェクトの境界を表すことができる。製造オブジェクトは、部品、または部品の組立体などの製品である可能性がある。方法は、設計をより容易にするので、製品の製造をより速くすることもでき、製造プロセスの生産性を高める。
【００３９】
方法は、コンピュータによって実施される。このことは、方法が少なくとも１つのコンピュータまたは同様の任意のシステムで実行されることを意味する。別途述べられない限り、方法のすべてのステップは、コンピュータによって、すなわち、ユーザの介入なしに実行される。例えば、決定するステップ（Ｓ２０）と、定義するステップ（Ｓ３０）と、決定するステップ（Ｓ４０）と、次いで、当てはめるステップ（Ｓ５０）とは、コンピュータ単独で実行される可能性がある一方、複数の３Ｄ曲線を与えるステップ（Ｓ１０）は、ユーザインタラクションによって実行される可能性がある。したがって、ユーザは、複数の３Ｄ曲線を与える（Ｓ１０）ために介入することができ、次いで、方法が、自動的に作動することができる。それによって、方法は、後で検討される決定するステップ（Ｓ２０）と、定義するステップ（Ｓ３０）と、決定するステップ（Ｓ４０）と、次いで、当てはめるステップ（Ｓ５０）とによって複数の３Ｄ曲線からの表面の自動生成を可能にする。方法のこれらのステップの一部がユーザの介入を認める可能性があることにも言及しておくべきである。例えば、決定するステップ（Ｓ２０）と、定義するステップ（Ｓ３０）と、決定するステップ（Ｓ４０）と、次いで、当てはめるステップ（Ｓ５０）とは、後で検討されるようにコンピュータ単独で自動的に実行され得るが、ユーザは（例えば、コンピュータによって実行されるアルゴリズムの結果を修正するため、例えば、（Ｓ３０）で定義された基底グラフを修正するために）介入する可能性がある。
【００４０】
方法のコンピュータによる実施の典型的な例は、この目的に好適なグラフィカルユーザインターフェース（ＧＵＩ）を含むＣＡＤシステムで方法を実行することである。ＣＡＤシステムは、ハードウェアを含み、ＧＵＩは、いかなるソフトウェアもインストールせずに方法を実行するのに好適である。換言すれば、ソフトウェアは、直ちに使用するためにＧＵＩ上で既に利用可能である（またはＧＵＩに結合されている）。言い換えると、システムは、プロセッサに結合されたメモリに符号化された命令を含み、命令が、方法を実行するための手段を提供する。そのようなシステムは、複数の３Ｄ曲線からの表面の生成が容易なツールである。したがって、そのようなシステムは、概してクリエイティブなアーティストのユーザであり、複雑なＣＡＤシステムに馴染みのない専門家のデザイナーを含む多様なユーザによって使用され得る。
【００４１】
システムは、ＣＡＥおよび／またはＣＡＭシステムである可能性もあり、ＣＡＤでモデリングされるオブジェクトは、ＣＡＥでモデリングされるオブジェクトおよび／またはＣＡＭでモデリングされるオブジェクトである可能性もある。実際、モデリングされるオブジェクトはＣＡＤ、ＣＡＥ、およびＣＡＭシステムの任意の組み合わせに対応するデータによって定義され得るので、これらのシステムは互いに排他的ではない。
【００４２】
曲線は３Ｄ（すなわち、３次元）であるので、方法によって生成される表面も３Ｄである可能性がある。これは、表面が、その表面の３Ｄ表現を可能にするデータによって定義されることを意味する。３Ｄ表現は、表現された表面をすべての角度から見ることを可能にする。例えば、３Ｄで表されるとき、３Ｄの表面は、その表面の軸のうちのいずれかのまわり、または表現が表示されるスクリーン内の任意の軸のまわりで処理され、回転されることができる。これは、３Ｄでモデリングされていない２Ｄアイコンをはっきりと除外する。３Ｄ表現の表示は、設計を容易にする（すなわち、デザイナーがそれらのデザイナーのタスクを統計的に完成する速さを上げる）。これは、製品の設計が製造プロセスの一部であるので、産業の製造プロセスの速度を上げる。
【００４３】
３Ｄ曲線および生成される表面は、パラメトリックである可能性がある。このことは、表面が、多様なＣＡＤのオペレーションで入力として使用できる状態にあることを保証する。パラメトリックな形状（曲線または表面）は、少なくとも１つのパラメータの少なくとも１つの関数によってモデリングされる形状である（すなわち、そのような関数がシステムのメモリに記憶される）。関数は、形状の点の位置を与えることができる。例えば、３Ｄパラメトリック曲線は、関数Ｃ（ｕ）＝（ｘ（ｕ），ｙ（ｕ），ｚ（ｕ））によってモデリングされることができ、３Ｄパラメトリック表面は、関数Ｓ（ｕ，ｖ）＝（ｘ（ｕ，ｖ），ｙ（ｕ，ｖ），ｚ（ｕ，ｖ））、例えば、ＮＵＲＢＳによってモデリングされることができる。ＣＡＤの分野において、パラメトリック関数による曲線または表面などのＣＡＤでモデリングされるオブジェクトのモデリングの要素は、形状に対してＣＡＤのオペレーションを実行することを可能にする。実際、ほとんどのＣＡＤシステムのＣＡＤのオペレーションは、オブジェクトの表現である単純なピクセルマップに対しては実行可能でない。換言すれば、ＣＡＤシステムのほとんどのＣＡＤのオペレーションは、実行されるべき入力としてパラメトリック関数を必要とする。
【００４４】
図２は、典型的なＣＡＤシステムのＧＵＩの例を示す。
【００４５】
ＧＵＩ２１００は、標準メニューバー２１１０、２１２０、ならびに下ツールバーおよび横ツールバー２１４０、２１５０を有する典型的なＣＡＤのようなインターフェースである可能性がある。そのようなメニューバーおよびツールバーは、当技術分野で知られているように、それぞれのアイコンが１つまたは複数のオペレーションまたは機能に関連付けられるユーザが選択可能なアイコンの組を含む。これらのアイコンの一部は、ＧＵＩ２１００に表示された３Ｄモデリングされるオブジェクト２０００を編集し、および／またはその３Ｄモデリングされるオブジェクトに作用するように適合されたソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化される可能性がある。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチのうちの１つは、モデリングされる製品２０００の形状的特徴を編集するのに好適な編集ワークベンチである。オペレーションにおいて、デザイナーは、例えば、オブジェクト２０００の一部を事前に選択し、それから、適切なアイコンを選択することによってオペレーションを開始する（例えば、寸法、色などを変更する）か、または形状の制約を編集することができる。例えば、典型的なＣＡＤのオペレーションは、スクリーン上に表示された３Ｄモデリングされるオブジェクトの穴開けまたは折り曲げのモデリングである。
【００４６】
ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示することができる。図２の例においては、「フィーチャーツリー（ｆｅａｔｕｒｅ  ｔｒｅｅ）」として表示されるデータ２５００およびそれらの３Ｄ表現２０００は、ブレーキキャリパーおよびディスクを含むブレーキ組立体に関する。ＧＵＩは、例えば、オブジェクトの３Ｄの向きを決めることを容易にするため、編集された製品のオペレーションのシミュレーションを引き起こすため、または表示された製品２０００のさまざまな属性をレンダリングするためのさまざまな種類のグラフィックツール２１３０、２０７０、２０８０をさらに示すことができる。カーソル２０６０は、ユーザがグラフィックツールとインタラクションすることを可能にするための触覚装置によって制御される可能性がある。
【００４７】
図３は、クライアントコンピュータシステム、例えば、ユーザのワークステーションとしてのシステムのアーキテクチャの例を示す。
【００４８】
クライアントコンピュータは、内部通信バス１０００に接続された中央演算処理装置（ＣＰＵ）１０１０と、やはりバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを含む。クライアントコンピュータは、バスに接続されたビデオランダムアクセスメモリ１１００に関連付けられるグラフィックス処理ユニット（ＧＰＵ）１１１０をさらに備える。ビデオＲＡＭ１１００は、当技術分野においてはフレームバッファとしても知られる。大容量ストレージデバイスコントローラ１０２０が、ハードドライブ１０３０などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形で具現化するのに好適な大容量メモリデバイスは、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび取り外し可能なディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭディスク１０４０を含むすべての形態の不揮発性メモリを含む。上記のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完されるか、または特別に設計されたＡＳＩＣ（特定用途向け集積回路）に組み込まれることができる。ネットワークアダプタ１０５０が、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボードなどの触覚装置１０９０も含み得る。カーソル制御デバイスは、ユーザが、図２を参照して言及されたようなスクリーン１０８０上の任意の所望の位置にカーソルを選択的に位置付けることを可能にするためにクライアントコンピュータで使用される。スクリーンとは、コンピュータモニタなどの、表示が行われ得る任意の補助装置を意味する。加えて、カーソル制御デバイスは、ユーザがさまざまなコマンドを選択し、制御信号を入力することを可能にする。カーソル制御デバイスは、システムへの入力制御信号に関するいくつかの信号生成デバイスを含む。概して、カーソル制御デバイスは、マウスである可能性があり、マウスのボタンが信号を生成するために使用される。
【００４９】
システムに方法を実行させるために、コンピュータによって実行するための命令を含むコンピュータプログラムが提供され、命令は、この目的のための手段を含む。プログラムは、例えば、デジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェアで、またはそれらの組み合わせで実装されることができる。本発明の装置は、プログラム可能なプロセッサによって実行するための機械可読ストレージデバイスに有形で具現化されたコンピュータプログラム製品で実装される可能性があり、本発明の方法のステップは、入力データに対してオペレーションを行い、出力を生成することによって本発明の機能を実行するための命令のプログラムを実行するプログラム可能なプロセッサによって実行され得る。有利なことに、命令は、データストレージシステム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するために結合された少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能である１つまたは複数のコンピュータプログラムで実施され得る。アプリケーションプログラムは、必要に応じて、高水準手続型もしくはオブジェクト指向プログラミング言語で、またはアセンブリもしくは機械語で実施される可能性があり、いずれの場合も、言語は、コンパイル型またはインタープリタ型言語である可能性がある。プログラムは、完全インストールプログラムであるか、または更新プログラムである可能性がある。後者の場合、プログラムは、既存のＣＡＤシステムを、システムが方法を実行するのに好適である状態に更新する。
【００５０】
方法は、複数の３Ｄ曲線を与えるステップ（Ｓ１０）を含む。例えば、複数の３Ｄ曲線が、ユーザによって与えられることができる。例えば、複数の３Ｄ曲線は、フリーハンドでスケッチされる曲線を含む。フリーハンドで曲線をスケッチするとは、ユーザが、パラメトリックである可能性がある曲線に変換されるストロークを描くことを意味する。ストロークは、例えばスクリーンが感知式スクリーンである場合にはスクリーン上に直接描かれることができ、または感知式のタブ上に描かれることができる。これは、表面の生成を、専門家のデザイナーなどの、紙に設計をスケッチすることに慣れているデザイナーにとって容易で直観的にする。
【００５１】
方法は、曲線の対の間のクロッシングを決定するステップ（Ｓ２０）も含む。曲線の所与の対の間のクロッシングは、曲線の所与の対が互いに特に近い区間の指示である。「互いに近い」とは、所与の対の２つの曲線の間の距離が所定の閾値未満であることを意味する。互いに「特に」近いとは、クロッシングにおける２つの曲線の間の距離がそれらの曲線のその他の区間に対してよりも短いことを意味する。２つの曲線の間のクロッシングは、２つの曲線の間の交差である可能性がある。しかし、曲線はユーザによって与えられる可能性があるので、ユーザがそれらの曲線を交わらせることを意図したが、それらの曲線は、通常、厳密には互いに交わらない可能性が高い。したがって、クロッシングは、典型的な交差の拡張であり、曲線を交わらせようとするユーザの意図をくみ取る。一例において、クロッシングを決定するステップ（Ｓ２０）は、曲線のそれぞれの対の間の少なくとも１つのクロッシングを、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定するステップを含む。言い換えると、少なくとも１つのクロッシングは、厳密な交差ではない。したがって、方法は、曲線が完全には交わらないが、曲線の間の意図される交差をとらえる。これは、曲線を与える（Ｓ１０）前に曲線を定義するときに高い柔軟性を与える。
【００５２】
次いで、方法は、基底グラフ（すなわち、初期グラフ）を定義するステップ（Ｓ３０）を含む。基底グラフは、クロッシングを表すノードと、隣り合うクロッシングを表すノードの対を接続する弧とを含む。２つのクロッシングは、それらのクロッシングが同じ曲線に関連付けられ、それらのクロッシングの間にその他のクロッシングが存在しない場合に隣り合うとみなされる。
【００５３】
次に、方法は、グラフから、３Ｄの位置によって定義される頂点、および頂点の対を接続するエッジを含むメッシュを決定するステップ（Ｓ４０）を含む。メッシュは、ＣＡＤで広く使用される特定の種類のグラフである。メッシュは、各ノード（メッシュの場合には「頂点」と呼ばれ、一方、弧は「エッジ」と呼ばれる）に関連する３Ｄの位置を有するグラフである。最後に、方法は、メッシュに表面を当てはめるステップ（Ｓ５０）を含む。
【００５４】
実際、ＣＡＤにおいては、メッシュが、メッシュに表面を当てはめることによって表面を生成するために広く使用される。方法は、メッシュに表面を当てはめるためのＣＡＤシステムの任意の既存のモジュールを適用することができる。当てはめる表面は、細分割曲面またはＮＵＲＢＳである可能性がある。そのような表面は、パラメトリックであり、それらの表面を単に表現するだけでなく表面の将来的な使用を可能にする。特に、生成されるべき表面が部品または部品の組立体などの製品を表すときは、細分割曲面が、そのようなモデリングされるオブジェクトに必要とされる高レベルの形状の精度を提供する。
【００５５】
したがって、方法は、クロッシングの概念の使用のおかげで、３Ｄで交わらない曲線の組への表面の当てはめを可能にする。曲線が互いに接触することを必要とする従来技術の方法とは対照的に、アーティストが曲線が厳密に交わることを気に掛けることなしに３Ｄで曲線を描くことを可能にすることには計り知れない利点がある。
【００５６】
さらに、方法は、曲線が与えられると、完全に自動であることができる。したがって、ユーザは、いかなるガイド曲線またはそれに類するものを示すことも必要としない。方法は、クロッシングを評価し、クロッシングからグラフを定義し、次いで、グラフからメッシュを生成することによってグラフに表面を当てはめる。メッシュがグラフから生成されるので、ユーザの意図が尊重される（すなわち、生成される表面が、与えられた曲線を表現する）ことが保証される。
【００５７】
次に、方法の例が、図４〜図１４を参照して説明される。図４は、方法の例の流れ図を示す。図５〜図１４は、図４の方法のステップの例を示す。
【００５８】
この例において、方法は、複数の３Ｄ曲線を土台に射影するステップ（Ｓ２２）を含む。土台は、ユーザが生成したい表面の形を（例えば、大まかに）表す３Ｄ形状（表面または体積）である。それによって、複数の対応する射影された曲線が得られる。次いで、この例の方法は、射影された曲線の対の間のクロッシングを決定するステップ（Ｓ２３）を含む。最後に、方法は、射影された曲線の対の間のクロッシングに対応する曲線の点の対を取得するステップ（Ｓ２４）を含む。換言すれば、３Ｄ曲線の間のクロッシングは、３Ｄ曲線の射影の間のクロッシングに対応するように決定される（Ｓ２０）。したがって、この例において、クロッシングを決定するステップ（Ｓ２０）は、土台を介して実行され、このことは、クロッシングが検出されるべき場所についてより優れた制御を可能にする。
【００５９】
実際、土台は、インジケータ形状（ｉｎｄｉｃａｔｏｒ  ｓｈａｐｅ）として働く。図５〜図７を参照すると、ユーザは、そのような初期のインジケータ形状５０（すなわち、土台）を作成するか、またはカタログから選択することができる。実際、任意的な前処理ステップとして、インジケータ形状が使用され得る。３Ｄ曲線を描く前に、ユーザは、最初に、３Ｄ形状を構築するための任意の迅速な方法を用いて大まかな初期の形状を作成するか、またはカタログから形状を取得することも可能である。ボリューメトリックなクレイモデリング（ｖｏｌｕｍｅｔｒｉｃ  ｃｌａｙ−ｍｏｄｅｌｉｎｇ）ソフトウェアが、インジケータ形状を作成する目的で使用され得る。次に、ユーザは、形状を実質的に黒板として使用して、インジケータ形状のまわりに、またはまさにインジケータ形状自体の上に曲線を３Ｄで描く。このように、ユーザは、曲線６２を作成することができ、曲線６２がインジケータ形状５０に射影される。特に、（図６においてインジケータ形状５０上の破線として示される）曲線の射影６２を介して曲線の間のクロッシングを決定した後に、最終的に、表面７０が、方法によって自動的に生成および更新されることができる。その後の表面７０の構築は、曲線６２にのみ依存する可能性がある。使用される場合、インジケータ形状５０は、曲線のクロッシングを検出するのを支援するように働くことができる。インジケータ形状が、クロッシングのより安定した検出を可能にし、したがって有益であることが分かっている。このようにして、ユーザは、曲線が互いにどのように交わるかをより思い通りに制御する。
【００６０】
複数の３Ｄ曲線を土台に射影するステップ（Ｓ２２）は、複数の３Ｄ曲線をポリラインに離散化するステップ（Ｓ２２１）（すなわち、サンプリングするステップ）を含み得る。ポリラインは、広く知られているように、線分の組である。次いで、射影するステップ（Ｓ２２）は、線分を土台に射影するステップ（Ｓ２２２）を含み得る。それによって、複数の対応する射影された線分（すなわち、線分の射影）が得られる。この時点で、３Ｄ曲線は、３Ｄ曲線の離散化から生じるポリラインの射影として表現される。土台は、ファセット（平面）を含むことができ、したがって、ポリラインの射影は、ポリライン自体である可能性がある。言い換えると、ポリラインの線分の射影、すなわち、「射影された線分」は、やはり線分である可能性がある。また、射影された曲線の対の間のクロッシングを決定するステップ（Ｓ２３）は、同じボクセルに属する異なる曲線に対応する射影された線分の対を決定するステップ（Ｓ２３１）と、次いで、決定された射影された線分の対の間の両垂線を決定するステップ（Ｓ２３２）と、最後に、両垂線の末端を決定するステップ（Ｓ２３３）とを含み得る。このような進行の方法は、高速なクロッシングの決定（Ｓ２０）を可能にする。
【００６１】
ユーザが３Ｄ曲線をスケッチするとき、通常、それらの３Ｄ曲線は、厳密には互いに交わらず、アルゴリズムが、（クロッシングの概念を介して）これらの交差を評価し、デザイナーが何を表したいと望むのかを見つけ出さなければならない。この例の方法は、各曲線をポリラインの形態（多くの小さな線分）に変換して近さの計算のコストを削減し、線分の間のクロッシングの探索のためにそれらの線分を土台に射影する。次いで、方法は、２つの射影された線分ＤａおよびＤｂに関して図８に示されるように、両方の線分に交わり、それらの線分の両方に垂直である一意的な線（両垂線）を計算することによって線分の間のクロッシングを探索する。２つの交点（図８のｘおよびｙ）が線分ＤａおよびＤｂ上にあり、これらの交点の間の距離が閾値よりも小さい場合、方法は、そのことを２つの線分が互いに交わるかのように解釈する可能性がある（言い換えると、クロッシングが決定される）。方法は、２つの曲線上の点ｘおよびｙによって説明されるクロッシングを保存することができる。このテストの時間的コストを削減するために、図９に示されるように、方法はボクセルを使用する可能性がある。そのような場合、方法は、空間を立方体９０の格子に分割することができ、同じキューブ９２の中にある線分９４だけが（それらの線分９４の間にクロッシングがあるかどうかについて）テストされる。
【００６２】
この例において、メッシュを決定するステップ（Ｓ４０）は、グラフのすべてのタイルが３つまたは４つの弧を有する面に分割されるまでグラフに弧および／またはノードを追加するステップ（Ｓ４０１）を含む。決定されるべきメッシュ（Ｓ４０）は、（面ごとに３つまたは４つのエッジをそれぞれ有する）三角形メッシュまたは四角形メッシュである可能性がある。四角形メッシュは、高品質な最終的な表面をもたらす。追加するステップ（Ｓ４０１）は、グラフが「不規則」であり、直接メッシュになれる状態にない場合に、面ごとのエッジの数を減らすことを可能にする。グラフが３つまたは４つの弧だけを有するタイル（すなわち、ループ）を持つと、グラフは、三角形または四角形メッシュになることに近づく。
【００６３】
クロッシングが決定される（Ｓ２０）と、方法は、各クロッシングに関して隣接するクロッシングを示すグラフを生成する。２つのクロッシングは、同じ曲線上にあり、間にその他の交差がない場合、隣接している。このグラフから、第１の中間段階のメッシュが生成される。再帰的なアルゴリズムを用いて、方法は、グラフ内のタイルと解釈されるグラフ内のサイクルを検出する。タイルは、３から６個の辺を有するグラフの面である。したがって、この時点で、メッシュがタイルで構成されるが、それらのメッシュは、方法がこの暫定的なメッシュ（ｉｎｔｅｒｎ  ｍｅｓｈ）を細分割メッシュ（ｓｕｂｄｉｖｉｓｉｏｎ  ｍｅｓｈ）などの基本的なモデルに変換することができるように分割される。以下で、分割されていないタイルは、「基底タイル（ｂａｓｅ  ｔｉｌｅ）」と呼ばれる。それぞれの分割されたタイルに関して、方法は、その分割されたタイルを作成するためにどの基底タイルが分割されたのかについての情報を保持する。
【００６４】
潜在的に、タイルは、３から６個以外の辺を有する可能性があるが、任意の数の辺に関して分割スキームが考案され得ることは以下の内容から明らかであろう。実際、その他の場合が滅多になく、デザイナーにとってそれほど役に立たないので、３から６個の辺の範囲をカバーするための最良のあり得る方策の１つが重要であることが分かった。したがって、この例の方法は、最初に、六角形および五角形を三角形または四角形に切り分ける。図１０に示されるように、五角形１００は、１つのエッジ１０４を追加することによって１つの四角形１０２と１つの三角形１０３とに分割されるか、または１つの頂点１０７および５つのエッジ１０８を追加することによって５つの四角形１０６に分割される可能性がある。図１１に示されるように、六角形１１０は、１つのエッジ１１３を追加することによって２つの四角形１１２に分割され得る。
【００６５】
この例の方法において、メッシュを決定するステップ（Ｓ４０）は、Ｔ字型の接続がなくなるまでグラフに弧および／またはノードを追加するステップ（Ｓ４０２）をさらに含む。Ｔ字型の接続は、曲線が別の曲線とぶつかり（すなわち、別の曲線とのクロッシングを有し）、次いで、終わるときに発生する。曲線が終わる場所が表面の外縁でない場合、Ｔ字型の接続がメッシュ内に作られる。Ｔ字型の接続は、基本的なサーフェスモデルでいつも許されるとは限らない。この例の方法の目的の１つは、完全に普遍的なままであり、すべての種類のサーフェスモデルをサポートすることである。そのために、方法は、方法がネットワーク全体にすべての切り分けを伝播させ、実質的にＴ字型の接続をなくすモードを提供する。これは、最終的により高い品質の表面をもたらす。
【００６６】
これは、メッシュが四角形および三角形のみを含むときに、トポロジー（ｔｏｐｏｌｏｇｙ）の生成の最後のステップとして行われ得る。そのためのアルゴリズムは、反対側のエッジ上のＴ字型の接続を、アルゴリズムがその上でループすることができるまで、またはアルゴリズムが表面の限界に到達するときに、Ｔ字型の接続がもはや問題にならないときまで伝播させることである。アルゴリズムの無限ループを防ぐために、方法は、アルゴリズムが最初の基底タイルに再び到達する場合は伝播を停止することができる。
【００６７】
しかし、別の例においては、方法は、Ｔ−スプラインなどのＴ字に接続されたサーフェスモデルを実施する可能性がある。そのような場合、ステップ（Ｓ４０２）は不要であるが、方法の残りは完全に適用可能である。伝播が単純に無効にされ、Ｔ字型の接続が残される。
【００６８】
図１２および図１３は、追加するステップ（Ｓ４０２）の例を示す。どちらの図においても、メッシュ１２０が、Ｔ字型の接続１２２を有する。図１２の場合、Ｔ字型の接続１２２は、エッジ１２４を追加することによって解消され、一方、図１３の場合、Ｔ字型の接続１２２は、エッジ１２６および頂点１２８を追加することによって解消される。
【００６９】
この例の方法において、メッシュを決定するステップ（Ｓ４０）は、メッシュの細分割スキームにしたがってグラフに弧および／またはノードを追加するステップ（Ｓ４０３）も含む。メッシュの細分割スキームは、任意の知られているメッシュの細分割スキーム、例えば、Ｃａｔｍｕｌｌ−Ｃｌａｒｋ細分割スキームである可能性がある。これは、メッシュの改善と、面ごとに決まった数のエッジを得ることとを可能にする。これは、表面を当てはめるステップ（Ｓ５０）を見越してメッシュを平滑化し、それによってより滑らかな表面をもたらす。
【００７０】
クロッシングが、曲線のそれぞれの対のうちの異なる曲線にそれぞれが属する点の対として決定された、曲線のそれぞれの対の間の少なくとも１つのクロッシングを含む場合が、次に検討される。言い換えると、これは、曲線が互いに完全には交わらないが、互いに交わるように意図されている場合である。そのような場合、メッシュを決定するステップ（Ｓ４０）は、図４の例にあるように、少なくとも１つのクロッシングを表すノードに点の対の中間の３Ｄの位置を関連付けるステップ（Ｓ４０６）を含み得る。実際、メッシュに表面を当てはめる（Ｓ５０）ために、方法は、前もってメッシュの頂点に３Ｄの位置を関連付ける可能性がある（Ｓ４０６、Ｓ４０７）。クロッシング表す頂点に関して、クロッシングを形成する２つの点の中間が、方法によって使用され得る。もちろん、（一例においては起こり得ない）完全な交差であるクロッシングに関しては、交差の位置が使用されることができる。
【００７１】
（メッシュを決定するステップ（Ｓ４０）がグラフにノードを追加するステップ（Ｓ４０１、Ｓ４０２、Ｓ４０３）を含む場合の）メッシュのその他の頂点に関して、方法は、所与の追加されたノードに、ノードを追加する前のグラフに対する所与のノードのトポロジー上の位置に依存する３Ｄの位置を関連付けるステップ（Ｓ４０７）を含み得る。例えば、所与の追加されたノードに関連付けられる３Ｄの位置は、その所与の追加されたノードのトポロジー上の位置が、ノードを追加する前のグラフの弧の上である場合、その弧の末端のノードに関連付けられる３Ｄの位置に応じてその弧によって表される曲線をずらすことによって計算された位置である可能性がある。
【００７２】
この場合が、図１４に示される。図１４を参照すると、３つの曲線１４０、１４２、および１４４が示されている。曲線１４０と曲線１４２の間のクロッシング（ｘ１，ｙ１）、および曲線１４０と曲線１４４の間のクロッシング（ｘ２，ｙ２）が、決定されている。これらのクロッシングは、ＡおよびＢと表記され、それぞれ、ｘ１とｙ１との中間の位置、次いで、ｘ２とｙ２との中間の位置が関連付けられる、メッシュのそれぞれの最終的な頂点に対応する。この例において、方法は、頂点Ｘをメッシュに追加している。頂点Ｘは、トポロジー上、曲線１４０に属する。頂点Ｘに関連付けられる３Ｄの位置は、この場合、ＡおよびＢの３Ｄの位置のそばを通るように曲線１４０をずらし、曲線上のＸのトポロジー上の位置に対応するずらされた曲線上の位置を求めることによって計算される（後者は、Ｘがメッシュに追加された方法によって与えられる）。
【００７３】
所与の追加されたノードのトポロジー上の位置が、４つの辺を持つグラフにノードを追加する前のグラフのタイルの中にある場合、所与の追加されたノードに関連付けられる３Ｄの位置は、よく知られているＣｏｏｎｓ法によって計算された位置である可能性がある。任意のその他の場合、所与の追加されたノードに関連付けられる３Ｄの位置は、隣接するノードの３Ｄの位置を平均することによって計算される可能性がある。後者の場合、意図される結果に収束させるより滑らかな結果を得るために、平均が繰り返される可能性があり、計算された３Ｄの位置は毎回線を引き直される。
【００７４】
当業者が理解するであろうように、方法は、このように、各頂点がどの基底タイルに属するかを追跡することができる。さらに、４つの辺を持つタイルの場合、（タイルが分割されるときに必ず更新される）（ｕ，ｖ）座標もメモリに保持される可能性がある。
【図１】
2013114694.tif 000003
【図２】
2013114694.tif 000004
【図３】
2013114694.tif 000005
【図４】
2013114694.tif 000006
【図５】
2013114694.tif 000007
【図６】
2013114694.tif 000008
【図７】
2013114694.tif 000009
【図８】
2013114694.tif 000010
【図９】
2013114694.tif 000011
【図１１】
2013114694.tif 000012
【図１０】
2013114694.tif 000013
【図１２】
2013114694.tif 000014
【図１３】
2013114694.tif 000015
【図１４】
2013114694.tif 000016
【外国語明細書】
2013114694000001.pdf