"データ処理システムにおけるデータの再構成方法であって、データ処理システムが、複数のエッジおよびコエッジを含む、グラフィックモデルのB-Repデータを受け取るステップと、前記データ処理システムが、前記B-Repデータから、前記グラフィックモデルの複数のバーテックスの座標を含むバーテックステーブルを構成するステップと、前記データ処理システムが、前記B-Repデータから、前記グラフィックモデルの各エッジを前記グラフィックモデルの複数のバーテックスの少なくとも1つと関連付けるエッジテーブルを構成するステップと、前記データ処理システムが、前記構成されたエッジテーブルおよびバーテックステーブルを前記B-Repデータとともに保存するステップと、を含む、ことを特徴とする方法。前記受け取られたB-Repデータはエッジテーブル情報またはバーテックステーブル情報を含まない、請求項1記載の方法。前記受け取られたB-Repデータは、前記グラフィックモデルに関するエッジテーブル情報またはバーテックステーブル情報を含まない、データ処理システムの記録装置から受け取られる、請求項1記載の方法。前記グラフィックモデルの複数のバーテックスのそれぞれに結合されている前記複数のエッジをそれぞれ識別するステップをさらに含む、請求項1記載の方法。前記データ処理システムが各エッジをスキャンし、これにより、該エッジに関するスタートバーテックスおよびエンドバーテックスを決定するステップをさらに含む、請求項1記載の方法。各エッジは、少なくとも1つの対応するコエッジを有し、各コエッジはコエッジループに含まれている、請求項1記載の方法。前記データ処理システムが、第1のエッジから対応する第1のコエッジへ、該第1のコエッジから該第1のコエッジを含むコエッジループ中の第2のコエッジへ、さらに、該第2のコエッジから対応する第2のエッジへとスキャンを行い、これにより、該第1のエッジと該第2のエッジとの間に共通するバーテックスを識別するステップをさらに含む、請求項1に記載の方法。プロセッサとアクセス可能メモリとを有するデータ処理システムであって、前記データ処理システムが、特に、複数のエッジおよびコエッジを含む、グラフィックモデルのB-Repデータを受け取るステップと、前記B-Repデータから、前記グラフィックモデルの複数のバーテックスの座標を含むバーテックステーブルを構成するステップと、前記B-Repデータから、前記グラフィックモデルの各エッジを前記グラフィックモデルの複数のバーテックスの少なくとも1つと関連付けるエッジテーブルを構成するステップと、前記構成されたエッジテーブルおよびバーテックステーブルを前記B-Repデータとともに保存するステップと、を実行するように構成されている、ことを特徴とするデータ処理システム。前記受け取られたB-Repデータはエッジテーブル情報またはバーテックステーブル情報を含まない、請求項8記載のデータ処理システム。前記受け取られたB-Repデータは、前記グラフィックモデルに関するエッジテーブル情報またはバーテックステーブル情報を含まない、データ処理システムの記録装置から受け取られる、請求項8記載のデータ処理システム。前記グラフィックモデルの複数のバーテックスのそれぞれに結合されている前記複数のエッジをそれぞれ識別するステップをさらに含む、請求項8記載のデータ処理システム。各エッジをスキャンし、これにより、該エッジに関するスタートバーテックスおよびエンドバーテックスを決定するステップを実行するようにさらに構成されている、請求項8記載のデータ処理システム。各エッジは、少なくとも1つの対応するコエッジを有し、各コエッジはコエッジループに含まれている、請求項8記載のデータ処理システム。第1のエッジから対応する第1のコエッジへ、該第1のコエッジから該第1のコエッジを含むコエッジループ中の第2のコエッジへ、さらに、該第2のコエッジから対応する第2のエッジへとスキャンを行い、これにより、該第1のエッジと該第2のエッジとの間に共通するバーテックスを識別するステップを実行するようにさらに構成されている、請求項8に記載のデータ処理システム。コンピュータにより実行可能な命令がコードされたコンピュータ読み取り可能な記録媒体であって、前記命令は実行時にデータ処理システムに、複数のエッジおよびコエッジを含む、グラフィックモデルのB-Repデータを受け取るステップと、前記B-Repデータから、前記グラフィックモデルの複数のバーテックスの座標を含むバーテックステーブルを構成するステップと、前記B-Repデータから、前記グラフィックモデルの各エッジを前記グラフィックモデルの複数のバーテックスの少なくとも1つと関連付けるエッジテーブルを構成するステップと、前記構成されたエッジテーブルおよびバーテックステーブルを前記B-Repデータとともに保存するステップと、を実行させる、ことを特徴とするコンピュータ読み取り可能な記録媒体。前記受け取られたB-Repデータはエッジテーブル情報またはバーテックステーブル情報を含まない、請求項15記載のコンピュータ読み取り可能な記録媒体。前記受け取られたB-Repデータは、前記グラフィックモデルに関するエッジテーブル情報またはバーテックステーブル情報を含まない、データ処理システムの記録装置から受け取られる、請求項15記載のコンピュータ読み取り可能な記録媒体。前記グラフィックモデルの複数のバーテックスのそれぞれに結合されている前記複数のエッジをそれぞれ識別するステップを前記データ処理システムに実行させる命令をさらに含む、請求項15記載コンピュータ読み取り可能な記録媒体。各エッジをスキャンし、これにより、該エッジに関するスタートバーテックスおよびエンドバーテックスを決定するステップを前記データ処理システムに実行させる命令をさらに含む、請求項15記載のコンピュータ読み取り可能な記録媒体。各エッジは、少なくとも1つの対応するコエッジを有し、各コエッジはコエッジループに含まれている、請求項15記載のコンピュータ読み取り可能な記録媒体。第1のエッジから対応する第1のコエッジへ、該第1のコエッジから該第1のコエッジを含むコエッジループ中の第2のコエッジへ、さらに該第2のコエッジから対応する第2のエッジへとスキャンを行い、これにより、該第1のエッジと該第2のエッジとの間に共通するバーテックスを識別するステップを前記データ処理システムに実行させる命令をさらに含む、請求項15に記載のコンピュータ読み取り可能な記録媒体。下記において説明する図1から図8、また本明細書に開示されている原理を説明するために用いられる種々の実施の形態は単に説明を目的としたものに過ぎず、本発明の範囲を限定するものと解するべきではない。当業者であれば、本発明の原理は適切に構成されたあらゆる装置によって実現できることが分かるであろう。以下では、限定を意図したものではない実施例を参照しながら、本発明の多くの革新的な教示について説明する。3D設計の協同的ビジュアル化は、拡大した企業体のPLMプロダクトライフサイクルマネジメント環境において重要な役割を果たすものであり、このような企業体においては、機能的に不均一であり物理的に分散している異なる組織間での3D製品情報の効率的な伝達が不可欠である。1枚の絵が千の言葉の価値がある百聞は一見にしかずといえる場合、3Dビジュアル情報の有用性は千枚の絵の価値があるといえる。3D情報は設計や製造などの伝統的なエンジニアリング目的で多く用いられてきたものの、その使用はトレーニング、メンテナンス、マーケッティングなどのプロダクトライフサイクルにおける非エンジニアリング活動に速やかに拡張されている。したがって、PLM環境において3Dビジュアル情報が容易に使用可能であることは、拡大した企業体の多くの部分にとって大きな生産的価値をもたらす。PLM環境において、3Dビジュアルデータはたとえばデータ処理システムのサーバに保存され、サーバにLANまたはWANを介して接続されたクライアントデータ処理システムによってアクセスされる。クライアントは、世界中の様々な場所に配置可能であり、多くのクライアントのために、対応するサーバが異なる地域さらには異なる国にも遠隔に配置される。3Dビジュアルデータの記録サイズを低減することは、サーバからクライアントへの、特に帯域制限のあるネットワークを介したデータ伝送に必要とされる時間が短縮されるため、クライアント-サーバ構造におけるアクセス性を向上させる。したがって、有効な3Dビジュアルフォーマットは、ディスク上に軽量に記録されるべきであり、一方で、複雑なビジュアル表示およびジオメトリ分析のタスクをサポートするべきである。境界表現BoundaryRepresentation、B-Repは、最新のCADパッケージにおける3Dジオメトリ表現のための産業界のデファクトスタンダードである。B-Repにより、自由形状のカーブおよびサーフェスの、通常はNURBS非一様有理Bスプラインの形での表現が可能となり、3Dジオメトリ設計情報の正確な表現のために用いることができる。従来のB-Repにはビジュアル表現としての望ましくない巨大な記録上の制約があることが知られていた。開示の実施形態には、ディスク上の軽量の保存を実現するための、B-Repに高度な圧縮を適用することによる、超軽量かつ正確なUltraLightandPrecise、ULP3Dビジュアルフォーマットが含まれる。ULPはNURBSNonUniformRationalBSpline、非一様有理Bスプラインに基づくB-Repと同じ数学的基礎を共有するため、これが1つのB-Repサーフェスにおける連続性をサポートし、そのフォーマットが主流のソリッドモデリングカーネルたとえば、シーメンスPLMソフトウェア社のParasolidソフトウェア製品により容易にサポート可能である、という利点がある。図1は、一つの実施の形態を実施することができる、例えばCADシステムとしてのデータ処理システムのブロック回路図を示す。図示されているデータ処理システムはプロセッサ102を含んでおり、このプロセッサ102は2次キャッシュ/ブリッジ104に接続されている。2次キャッシュ/ブリッジ104はさらにローカルシステムバス106に接続されている。ローカルバスシステム106は、例えば、PCIperipheralcomponentinterconnectアーキテクチャバスである。図示されている実施例におけるローカルバスシステムには、メインメモリ108及びグラフィックアダプタ110も接続されている。グラフィックアダプタ110をディスプレイ111に接続することもできる。他の周辺装置、例えばローカルエリアネットワークLAN/ワイドエリアネットワーク/ワイヤレス例えばWiFiアダプタ112もローカルバスシステム106に接続することができる。拡張バスインタフェース114は、ローカルバスシステム106を入力/出力I/Oバス116に接続させる。I/Oバス116にはキーボード/マウスアダプタ118、ディスクコントローラ120及びI/Oアダプタ122が接続されている。ディスクコントローラ120を記録装置126に接続することができ、この記録装置126は機械使用可能又は機械読み出し可能なあらゆる適切な記憶媒体で良く、不揮発性のハードコーディングタイプの媒体、例えば読み出し専用メモリROM又は電気的に消去及びプログラミング可能な読み出し専用メモリEEPROM、磁気タイプの記録装置及びユーザ記録可能なタイプの媒体、例えばフロッピーディスク、ハードディスクドライブ及びコンパクトディスク読み出し専用メモリCD-ROM又はディジタル多目的ディスクDVD及び他の公知の光学的、電気的又は磁気的な記録装置がこれに含まれるが、記憶媒体はこれらの例に限定されるものではない。図示されている例におけるI/Oバス116にはオーディオアダプタ124も接続されており、このオーディオアダプタ124には音声を再生するためにスピーカ図示せずを接続することができる。キーボード/マウスアダプタ118は、例えばマウス、トラックボール、トラックポインタ等のポインティングデバイス図示せずのためのコネクションを提供する。当業者には、図1に図示されているハードウェアを特定の実施の形態のために変更できることは明らかである。例えば、他の周辺装置、例えば光学ディスクドライブ等も付加的に使用することができるか、又は、図示されているハードウェアの代わりに使用することができる。図示されている実施例は説明を目的としたものに過ぎず、本発明に関する構造的な制限を暗示することを意図したものではない。本発明の実施の形態によるデータ処理システムは、グラフィカルユーザインタフェースを使用するオペレーティングシステムを含んでいる。オペレーティングシステムは複数のディスプレイウィンドウをグラフィカルユーザインタフェースにおいて同時に表示することができ、各ディスプレイウィンドウは種々のアプリケーションへのインタフェース又は同一のアプリケーションの種々のインスタンスへのインタフェースを提供する。ユーザはポインティングデバイスを介してグラフィカルユーザインタフェースにおけるカーソルを操作することができる。カーソルの位置を変更することができる、及び/又は、カーソルの位置として所望のレスポンスを起動させるために行なわれたイベント、例えばマウスボタンのクリックが考えられる。商用の種々のオペレーティングシステムの内の一つ、例えばMicrosoftWindows登録商標のバージョンレドモンドワシントン州に位置するMicrosoft社の製品を、適切に変更されている場合には使用することができる。オペレーティングシステムは、本明細書において説明する本発明に従い修正又は作成されている。LAN/WAN/ワイヤレスアダプタ112をデータ処理システム100の一部ではないネットワーク130に接続することができ、このネットワーク130として、当業者には周知であるような、公共又は私用のあらゆるデータ処理システムネットワーク、又は、ネットワークの組み合わせが考えられ、例えばインターネットが含まれる。データ処理システム100はネットワーク130を介してサーバシステム140と通信することができ、このサーバシステム140もまたデータ処理システム100の一部ではないが、例えば、別個のデータ処理システム100として実施することができる。図2は種々のB-Repトポロジ要素間のトポロジ関係を表すB-Repトポロジを示す。ここでは、モデルトポロジ205とCADジオメトリ210との間の、リージョン、シェル、フェース、ループ、コエッジ、エッジおよびバーテックスのトポロジ情報が、本明細書中に開示される種々の実施形態に関連して示されている。ここに示されるように、フェーストポロジはサーフェスジオメトリによって表され、コエッジトポロジはUVカーブジオメトリUVカーブネットワークはカーブの構成により表されるBスプラインサーフェスを定義するによって表され、エッジトポロジはXYZカーブジオメトリによって表され、バーテックストポロジはポイントジオメトリによって表される。B-Repにおいて、各エッジカーブは2つの表現を有する。そのモデル空間ジオメトリはXYZカーブにより表され、一方で、そのパラメタ空間ジオメトリはその2つの関連する各サーフェスに関するUVカーブにより表される。UVカーブは関連するコエッジのジオメトリ表現として考えることができ、一方、XYZカーブは関連するエッジのジオメトリ表現として考えることができる。NURBSサーフェスと関連する全てのUVカーブの集合は、NURBSサーフェスのパラメタドメインにおける1つ以上の閉ループを形成する。さらに、これらのループはNURBSサーフェスジオメトリをトリミングする1つ以上のリージョンを形成する。モデル空間において、トリミングされたサーフェスジオメトリはXYZカーブの集合により境界付けられる。トリミングされたサーフェスジオメトリはB-Repフェースのジオメトリ表現であると見なされる。あるULP技術によって、以下で引用されるTruformの記事に記載のように、要素を適当に組織化することにより、非常に効率的にいくつかのトポロジ情報たとえばリージョン-シェル、シェル-フェース、フェース-ループ、ループ-コエッジの関係が圧縮される。このようなアプローチにより、同じリージョンに属する全てのシェルはシェルアレイ中で連続しており、同じシェルに属する全てのフェースはフェースアレイ中で連続しており、同じフェースに属する全てのループはループアレイ中で連続しており、同じループに属する全てのコエッジはコエッジアレイ中で連続している。一般に、コエッジはフェースまたはワイヤによるエッジの使用を表す。同じフェースが1つのエッジの両側にある場合、該エッジはフェースによって2回使用され、該エッジは該フェースを参照する2つのコエッジを有する。1つのフェースが1つのエッジの1つの側にのみある場合、該エッジは該フェースによって1回使用され、それは該フェースを参照するただ1つのコエッジを有する。1つのエッジが複数のフェースに存在する場合、該エッジは該フェースによるそれぞれの使用について1つのコエッジを有する。1つのフェースに存在する各コエッジは該フェースの1つのループに属する。1つのループ内の複数のコエッジは一周を形成し、各コエッジの先頭は次のコエッジの末尾につながっている。1つのループ内の複数のコエッジは該ループ内の次のコエッジと前のコエッジとに向かう各コエッジを含む二重結合リストを形成する。トポロジテーブル中、各トポロジ要素は親要素ではなく子要素に関する情報を保存している。全ての子はアレイ中で連続しているため、子情報を子アレイ中の最後の子の索引を用いて表すことで十分である。これは最初の要素の開始子索引が常に0であり、任意の他の要素の開始索引が同じアレイ中の前の要素の最後の子索引からわかるからである。最後の子索引は各要素の種類に関して単調に増加するため、よりよいアプローチは2つの連続する子索引、すなわち各要素の子の数の差を符号化することである。より詳細には、1つのリージョンに属するシェルは該リージョン内のシェルの数により表される。1つのシェルに属するフェースは該シェル内のフェースの数により表される。1つのフェースに属するループは該フェース内のループの数により表される。1つのループに属するコエッジは、該ループ内のコエッジの数により表される。しかし、他のトポロジ情報たとえば、フェース結合情報を表すコエッジ-エッジおよびエッジ結合情報を表すエッジ-バーテックスは、既知の技術を用いて効率的に圧縮することはできない。ULPでの他のトポロジ情報の効率的な圧縮とともに、フェース結合情報およびエッジ結合情報は記録媒体におけるULPトポロジの非常に重要な部分となる。開示のシステムおよび方法は、B-Rep中のフェース結合情報およびエッジ結合情報のより効率的な圧縮を実現する。図3Aおよび3Bは、開示の実施形態によるフェース結合情報圧縮を示す。これらの図において、実線はエッジを表し、破線はコエッジを表す。フェース結合情報各コエッジにおいてエッジ索引参照番号により表されているは、エッジが任意に索引付けされる場合には、記録するには過ぎたものとなりうる。これは、2つのコエッジが同じエッジを参照し、他のトポロジ情報よりも低い数値相関性が存在するからである。図3Aおよび3Bは3つのフェースを有する簡単なモデル305および315を示し、これらのフェース間の結合は各コエッジからエッジを参照することにより表される。エッジが任意に索引付けされ、単純な方法がモデル305に用いられる場合、12個の数字が図3Aのテーブル310に示されるように保存されなければならない。この例において、1番目のテーブル入力はコエッジ0に関してエッジ7を参照し、2番目のテーブル入力はコエッジ1に関してエッジ5を参照している。3番目および6番目の入力は、コエッジ2および5に関してそれぞれ共通のエッジ6を参照している。2つの近接するフェースにより保有されるコエッジが同じエッジ索引を参照する限り、この例のエッジアレイにおける正確な索引付けは重要ではないことに留意されたい。図3Bに示されるように、エッジ索引は、コエッジが順にアクセスされる際の親コエッジからの参照の順に基づいて選択される。未だ参照されていないエッジを参照する各コエッジたとえばエッジ2を参照するコエッジ2に関しては、アレイをループ処理する際に、-1のカウントのトラックを保持することにより実際のエッジ索引が推論可能であるため、-1のような無効な索引を記録することで十分である。既に参照されているエッジを参照する各コエッジたとえば共通のエッジ2を参照するコエッジ5に関しては、エッジ2に関する-1の入力がコエッジ2に関して既に用いられているため、実際のエッジ索引が保存される。図3Bのテーブル320に示されるように、それでも12個の数字が保存される必要がある。しかし、これらの数字の半分以上が同じ値であるため、アレイのエントロピーは大きく低減される。ハフマン符号化器や算術符号化器などのエントロピー符号化器を用いることにより、フェース結合情報はこの空間エッジ索引付けspatialedgeindexingを用いてディスク上で50以上低減可能である。図4は、B-Repモデル405を表すために使用可能な、エッジ結合表現の例のモデル405および対応するエッジテーブル410およびバーテックステーブル415を示す。図4に示されるように、モデル405の各B-Repエッジは、2つの境界バーテックス、すなわち、スタートバーテックスとエンドバーテックスとを有する。各エッジは、バーテックスジオメトリが表されているバーテックステーブル415に対するそれらの索引により、エッジテーブル410中のそのスタートバーテックスおよびエンドバーテックスを参照する。各エッジの向きは、任意に選択可能である。エッジ結合情報は間接的に表されている。すなわち、2つのエッジはこれらが同じバーテックスを共有する場合に互いに接続されている。たとえば、エッジ1とエッジ2とはバーテックス3を共有するため、結合している。バーテックステーブル中のバーテックスの正確な順序は重要ではなく、バーテックスの索引はエッジテーブル内のバーテックスジオメトリの重複を避けるためのツールとして機能する。しかし、エッジテーブルおよび/またはバーテックステーブルのエントロピーが大きく低減可能なようにバーテックスを順序づけるための、当業者に既知の効果的な方法は存在しない。したがって、エッジテーブルおよびバーテックステーブルのサイズはディスク上のULP表現の重要部分となる。開示の実施形態では、システムは記録装置から完全にエッジテーブルおよびバーテックステーブルを省くことができ、既に保存された他のB-Rep情報に基づいてオンザフライで情報を再構成することができる。各エッジに関して、その2つの境界バーテックスのジオメトリが関連するXYZカーブのジオメトリから計算可能であり、他のエッジとの結合はループ-コエッジおよびコエッジ-エッジのトポロジ情報から効率的に計算可能である。図5はモデル505を用いたエッジ結合の例を示し、開示の実施形態による処理を説明するために用いることができる。図6は、開示の実施形態による、エッジテーブルおよびバーテックステーブルの再構成を示す。エッジ結合およびバーテックスジオメトリを再構成するための処理は、図5に示す例を用いて順に説明される。定義により1つのループ内におけるコエッジは先頭と末尾とが結合を形成する。システムは全てのエッジについて順に処理し、エッジが順に処理される際に既に計算されていない限り、各エッジについてスタートおよびエンドバーテックス情報を計算する。バーテックス情報が計算されていない場合、システムはバーテックステーブルにバーテックスを形成し、フェース結合およびループ-コエッジトポロジ情報を用いて同じバーテックスを端点とするhingedエッジの全てについて順に処理し、全てのエッジについてバーテックスを設定する。各エッジのXYZカーブはバーテックスジオメトリについての値を与え、全エッジから計算されたバーテックスジオメトリが平均化されて、バーテックステーブルにおける最終的なバーテックスジオメトリを生成する。バーテックス情報が既に計算されている場合には、次のエッジが処理される。様々な実施形態においておおまかに説明したが、システムはエッジおよびコエッジを含むグラフィックモデルのB-Repデータを受け取り、それからグラフィックモデルの複数のバーテックスの座標を含むバーテックステーブル、および、グラフィックモデルの各エッジとグラフィックモデルの複数のバーテックスの少なくとも1つとを関連付けるエッジテーブルを構成し、このエッジテーブルはその後システムに保存される。このようにして、エッジテーブルおよびバーテックステーブルはB-Repデータから再構成され、モデルとともに常に保存する、または、他のB-Repデータとともに伝送する必要がない。いくつかの実施形態では、B-Repデータは元々のデータ記録装置または記録装置からの伝送においてエッジテーブル情報またはバーテックス情報テーブルを含まない。システムは各エッジをスキャンtraverseして、該エッジに関するスタートバーテックスおよびエンドバーテックスを決定する。多くの場合、各エッジは少なくとも1つの対応するコエッジを含み、各コエッジは1つのコエッジループに含まれる。以下に詳細に示すスキャンは、通常、各エッジから対応するコエッジへのスキャン、該コエッジからそのコエッジループ内の第2のコエッジへのスキャン、および、該第2のコエッジから対応する第2のエッジへのスキャンを含む。システムは、したがって、第1のエッジと第2のエッジとの間に共通するバーテックスを識別し、エッジテーブルおよびバーテックステーブルへの1つ以上の入力としてこの共通のバーテックスを用いることができる。図5に示す各バーテックスの計算は、個別のステップとして図6に示されている。各ステップでは、所定バーテックスを端点とする全てのエッジのスキャンについて、各ステップ後の更新されたエッジテーブルおよびバーテックステーブルの結果とともに示されている。この図において、太字の矢印はフェース結合を示し、通常の矢印は同じループ内の次のコエッジを示し、破線の矢印は同じループ内の前のコエッジを示す。より大きい文字で示されているエッジは、エンドバーテックスが現在計算されていることを示すステップ605のe1およびe8、ステップ610のe0およびe3、ステップ615のe5、ステップ620のe2、ステップ625のe4、ステップ630のe6、ステップ635のe7。eは番号付けされたエッジを示し、cは番号付けされたコエッジを示し、vは番号付けされたバーテックスを示す。ステップ605において、エッジe0のスタートバーテックスv5が計算される。エッジe0についてのスタートバーテックスv5がエッジテーブルに保存され、v5の座標がバーテックステーブルに保存される。システムは、コエッジをスキャンして他のいずれのエッジがv5に接続しているかを決定する。エッジe0はc0とのフェース結合を有しており、このc0は次のc1に向かっている。コエッジc1はエッジe1とフェース結合を有している。システムはエッジe1もv5と結合しているべきことを決定し、エッジe1をエンドバーテックスとしてのv5とともにエッジテーブルに保存する。システムは、エッジe1がコエッジc10も有し、c10がc11に向かっており、このc11がエッジe8とフェース結合を有していることを決定する。システムはエッジe8もv5と結合しているべきであることを決定し、エッジe8をエンドバーテックスとしてのv5とともにエッジテーブルに保存する。ステップ610において、システムは、e0から、c0の前のコエッジを続け、コエッジc3を探し、このコエッジc3はエッジe3とフェース結合を有しているため、e3とe0とはバーテックスv6を共有しているべきである。エッジe0に関するエンドバーテックスv6はエッジテーブルに保存され、v6の座標はバーテックステーブルに保存される。バーテックスv6もエッジe3についてのエンドバーテックスとしてエッジテーブルに保存される。ステップ615において、システムはエッジe1からコエッジc1、次のコエッジc2へと移り、このコエッジc2はエッジe2とフェース結合を有しているため、エッジe1とバーテックスv3を共有している。v3はe2に関するスタートバーテックスとしてエッジテーブルに保存され、その座標はバーテックステーブルに保存される。e2はまたコエッジc5とフェース結合を有し、システムは次のコエッジc6を続け、エッジe5を探し、このエッジe5はコエッジc6とフェース結合を有している。したがって、バーテックスv3はエッジe5に関するエンドバーテックスとしてエッジテーブルに保存される。システムはエッジe5の他のコエッジc9を探し、次のコエッジc10を続け、このコエッジc10は既にエッジテーブルにあるエッジe1とフェース結合を共有している。したがって、バーテックスv3は、エッジe1に関するスタートバーテックスとして既知となり、これはエッジテーブルに保存される。ステップ620において、システムは、スタートバーテックスv3のみについて既知のエッジe2から移り、コエッジc5、その前のコエッジc4と続け、このコエッジc4はエッジe4とフェース結合を有している。したがってバーテックスv0はエッジe2のエンドバーテックスとして、および、エッジe4についてのスタートバーテックスとして見いだされ、これらはエッジテーブルに保存され、また、バーテックスv0の座標はバーテックステーブルに保存される。システムはエッジe2の他方のコエッジc2、その次のコエッジc3と続け、エッジe3を見いだし、エッジe3がさらにスタートバーテックスとしてバーテックスv0を共有していることを決定し、これはエッジテーブルに保存される。ステップ625において、システムはエッジe4のコエッジc4、その前のコエッジc7と続け、エッジe6を見いだし、エッジe6がバーテックスv1をそのスタートバーテックスとして有していることを決定し、これはエッジテーブルに保存され、バーテックスv1の座標はバーテックステーブルに保存される。ステップ630において、システムはエッジe5のコエッジc6、その次のコエッジc7と続け、エッジe6を見いだし、エッジe6がバーテックスv2をそのエンドバーテックスとして有することを決定し、これはエッジテーブルに保存され、バーテックスv2の座標はバーテックステーブルに保存される。システムはエッジe5の他のコエッジc9、その前のコエッジc8と続け、エッジe7を見いだし、エッジe7がそのスタートバーテックスとしてバーテックスv2を有していることを決定し、これはエッジテーブルに保存される。この時点で、バーテックスv4のみが決定されていない。ステップ635においてシステムはエッジe7のコエッジc8、その前のコエッジc11と続け、エッジe8を見いだし、このエッジe8はステップ605において既に見いだされている。システムはエッジe7およびe8がバーテックスv4を共有していることを決定し、欠けている、e7についてのエンドバーテックスおよびe8についてのスタートバーテックスとして、v4を保存する。システムはバーテックステーブルにバーテックスv4の座標を保存する。この時点で、エッジテーブルおよびバーテックステーブルはB-Repのエッジおよびコエッジデータのみを用いて、完全に構成された。図7および8は、開示の実施形態による処理フローチャートを示す。図7はエッジ結合の計算処理のフローチャートを示し、図8は、図7の処理のステップ740および/または765に関して用いられうるエッジスキャン処理のフローチャートを示す。図8において、カラット^が排他的ORXOR処理を示すために用いられ、1^0=1、0^1=1、0^0=0、1^1=0として定義される。図7において、システムはモデルに関するB-Repデータを受け取ることにより開始するステップ705。本明細書において受け取るとは、記録装置からのロード、他のデータ処理システムからの受信、データ処理システムにおける処理実行、ユーザからの受け取り、あるいは当業者に知られるものが含まれる。注目すべきは、種々の実施形態において、このステップにおいて受け取られるB-Repデータは、エッジテーブルデータまたはバーテックステーブルデータを含むものではない。テーブルはテーブルのデータ構造のみを特に指すものではなく、当業者に知られている機能的に等価な構造を含みうる。システムは、まず処理すべき残りのエッジが存在するか否かを決定するため、モデルのB-Repデータの各エッジをスキャンするステップ710。無い場合、処理は終了するステップ715。処理すべき残りのエッジがある場合、システムは次のステップを処理するステップ720。システムはエッジに関するスタートバーテックスが既に計算されているか否かを決定するステップ725。Noの場合、システムはバーテックステーブル第1のエッジを処理する時点で空であるかまたは未だ作成されていないに新たな入力を生成するステップ730。システムはエッジテーブルのスタートバーテックスフィールドをエッジの第1のバーテックスに設定するステップ735。システムは、次いで第1のバーテックスを端点とする全ての近接するエッジをスキャンしステップ740、これには、第1のバーテックスをエッジテーブルの各近接エッジのスタートバーテックスまたはエンドバーテックスのいずれかとして設定し、バーテックスジオメトリを累算することが含まれる。図8の処理はこのステップにおいて使用することができる。システムは次いで第1のバーテックスに関する全てのバーテックスジオメトリの平均を計算し、保存するステップ745。各バーテックスジオメトリは異なるXYZカーブジオメトリに基づいて複数回計算される。バーテックスv0を例とすると、そのジオメトリはエッジe2、e3およびe4と関連するXYZカーブから計算された。理論的には異なるXYZカーブから計算されるジオメトリは同一であるべきであるが、実際には、これらはわずかに異なっている。したがって、3つの位置v0-e2、v0-e3およびv0-e4が得られる。スキャンの間、各バーテックスにおけるこれらの位置は、v0-e2v0-e3v0-e4が、スキャン後のバーテックスv0に関する累算されたジオメトリであるように累算される。平均ジオメトリを計算するステップは、式v0=v0-e2v0-e3v0-e4/3を意味し、ここで、3はバーテックスv0を端点とするエッジの数であり、該バーテックスにおける取り付けられた全てのXYZカーブを考慮する最適なバーテックスジオメトリに等しい。この時点で、または、エッジに関するスタートバーテックスが既に計算されているステップ725において場合、システムは、エッジに関するエンドバーテックスが計算されているか否かを決定するステップ750。Noの場合、システムはバーテックステーブル第1のエッジが処理される時点で空であるかまたは未だに生成されていないにおける新たな入力を生成するステップ755。システムはエッジテーブルのエンドバーテックスを該エッジの第2のバーテックスに設定するステップ760。システムは次いで第2のバーテックスを端点とする全ての近接エッジをスキャンしステップ765、これには第2のバーテックスをエッジテーブル内の各近接エッジのスタートバーテックスまたはエンドバーテックスのいずれかとして設定し、バーテックスジオメトリを累算することが含まれる。図8の処理はこのステップにおいて用いることができる。システムは、上述のように、第1のバーテックスに関する全てのバーテックスジオメトリの平均を計算して保存するステップ770。図8の処理はステップ740および/または765において用いることができる。この処理において、以下に示すように、e_sはスキャンアルゴリズム内の1番目のエッジを意味し、このアルゴリズムは考慮されているバーテックスを端点とする全てのエッジから任意に選択可能である。eはループ内で考慮されている現在のエッジを意味する。当初、eはe_sと同じであるが、スキャンが進むにつれ、eは次のエッジe_nに変わりうる。vは考慮されているバーテックスを意味し、pはvのジオメトリを意味する。pは当初e_sから計算されたバーテックスジオメトリを含んでいるが、スキャンが進むにつれ、後続のエッジから計算された付加的なバーテックスジオメトリをさらに累算する上記段落0053参照。c_p0は、エッジe_sに関連する1番目のコエッジを意味し、一方で、c_p1は存在しているかまたは存在していないe_sに関連する2番目のコエッジを意味する。2つのコエッジが存在する場合にどのコエッジをc_p0に選択するかは関係ない。c_sはc_p0と同じであり、これがスキャン処理における開始コエッジであることを強調するために用いられている。wは関連するエッジを比較する際のコエッジの方向の関係を意味する。2つの方向が同じであるとき、wは値1を有し、2つの方向が反対であるとき0を有する。cは処理されている現在のコエッジを意味し、スキャンの間に変化し、また、lはコエッジcの親ループを意味する。c_nは親ループlにおいてcにすぐ近接するコエッジを意味し、すなわち、cの前後のいずれであるべきかはfとwとの間のフラグ関係に依存する。c_oは同じエッジe_nと関連付けられた他のコエッジを意味する。1回目のスキャンは、c_oがc_sと同じとなるこれはたとえばバーテックスv3について生じるか、または、c_oがNULLとなったときに終了する。c_oがNULLの意味となるとき、スキャンは現在の方向にもはや進行することはできず、エッジe_sの2番目のコエッジc_p1は他の方向のスキャンに関して用いられる。必要な場合、この2回目のスキャンは、2回目のスキャンがc_p0の代わりにc_p1で開始されることを除いて、第1のスキャンと全く同じロジックを有する。2回目のスキャンは、c_0がNULLとなるときに常に終了する。たとえばシステムがこのスキャン処理を図7におけるような親処理から呼び出すときに処理は開示されるステップ805。システムは、エッジをエッジe_sとして設定し、バーテックスフラグf_sを、処理がスタートバーテックスを計算するときには1に、エンドバーテックスを計算するときには0に設定する。システムはf=f_sを設定するステップ810。勿論、ここで用いる変数および引数は任意である。システムはバーテックステーブルにバーテックスvおよびそのジオメトリポイントpを生成するステップ815。システムは親コエッジc_p0およびその方向wを得るステップ820。システムはこれがeと反対方向であるときは1を設定し、同じ方向であるときは0を設定する。システムはc_s=c=c_p0を設定する。システムはエッジテーブルのcについてvを設定しステップ825、エッジeからの寄与を用いてバーテックステーブルにおいてpをアプダクションする。システムはコエッジcの親ループlを得るステップ830。システムはループlが単一のエッジを含むか否かを決定するステップ835。Yesの場合、処理は終了するステップ840。ループlが複数のエッジを有する場合、システムはf==wであるか否かを決定するステップ845。f==wの場合、システムはコエッジc_nをループlにおけるcの前のコエッジとして設定するステップ865。f≠wの場合、システムはコエッジc_nをループlにおけるcの後のコエッジとして設定するステップ850。システムはコエッジc_nのエッジe_nを得るステップ855。システムはe_nに関連付けられているがコエッジc_nおよびその方向w_oと反対のエッジc_oを得るステップ860。システムはc_o==NULLであるか否かを決定するステップ865。c_o≠NULLの場合、システムはe=e_n、c=c_o、w=1XORw_0XORfに設定しステップ890、ステップ825に戻る。c_o≠NULLの場合ステップ870において、システムはc_o==c_sか否かを決定するステップ875。c_o=c_sの場合、処理は終了するステップ840。c_o≠c_sの場合ステップ875において、システムは別の親コエッジc_p1およびその方向wを得て、c=c_p1を設定するステップ880。システムはc==NULLであるか否かを決定するステップ840。c==NULLの場合、処理は終了するステップ840。c≠NULLの場合ステップ885において、システムはステップ825に戻る。図8の処理はしたがって所定のエッジに関連する全てのエッジをスキャンし、リンクされたコエッジに従ってバーテックスを決定する。米国特許出願11/837,371米国特許公開2008/0043030として公開は参照により含まれる。当業者であれば、単純且つ明確にするために、本発明を用いた使用に適した全てのデータ処理システムの完全な構造及び動作は本明細書において図示又は説明していないことが分かる。その代わりに、本発明に固有のデータ処理システム又は本発明の理解のために必要なデータ処理システムのみを図示及び説明している。データ処理システム100のその他の部分の構造及び動作は、当業者には公知である現行の種々の任意の実施の形態に従うもので良い。本明細書には完全に機能的なシステムの文脈での記述が含まれているが、当業者であれば、本発明のメカニズムの少なくとも一部は種々の任意の形態の機械使用可能、コンピュータ使用可能又はコンピュータ読み出し可読な媒体に記録された命令の形態で配布できること、また本発明はその配布物を実際に実行するために使用される特定のタイプの命令又は信号が記録されている媒体又は記憶媒体に関係なく同様に適用されることを理解するであろうということを言及することは重要である。それらの命令は、実行されれば、データ処理システムに本明細書において説明した方法を実施させることができる。機械使用可能/機械読み出し可能又はコンピュータ使用可能/コンピュータ読み出し可能な媒体の例には、不揮発のハードコーディングタイプの媒体、例えば読み出し専用メモリROM又は電気的に消去及びプログラミング可能な読み出し専用メモリEEPROM及びユーザ記録可能なタイプの媒体、例えばフロッピーディスク、ハードディスクドライブ及びコンパクトディスク読み出し専用メモリCD-ROM又はディジタル多目的ディスクDVDが含まれる。本発明の実施例を詳細に説明してきたが、当業者であれば、本明細書に記載した実施例の種々の変更、置換、バリエーション及び改良はその最も広い形態においても本発明の精神及び範囲から逸脱することなく可能であることが分かるであろう。本明細書における説明は、いずれかの特定の要素、ステップ又は機能も特許請求の範囲に含まれていなければならない不可欠の要素であることを意図したものではないと解するべきである。すなわち、本発明が対象とする範囲は明示された特許請求の範囲の記載によってのみ定義される。さらには、いずれの請求項も、~のための手段meansforという語の後に分詞が続かないかぎり、35USC§112の第6パラグラフに訴えることを意図するものではない。"