コンピュータ読み取り可能なモデル
複数の相互接続可能な構造要素から構成された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法であって、各々の構造要素が、その構造要素を他の構造要素と接続するためのいくつかの接続素子を有する。本方法はそれらの構造要素のうちの第1の1つおよび第2の1つを、対応する構造要素の接続素子であって各々が複数の予め決められた接続タイプのうちの1つを付随して有する接続素子を各々が表現する、対応する第1および第2のデータ構造として符号化する工程を含む。本方法はさらに、互いの予め決められた近接に位置する第1の構造要素の第1の接続素子と第2の構造要素の第2の接続素子を判定する工程と、第1および第2の接続素子が第1と第2の構造要素の間の接続を供給するかどうかの指標である第1および第2の接続素子の対応する接続タイプの接続性情報を取り出す工程とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予め規定された幾何学的要素によるバーチャル・リアリティのコンピュータ支援モデル化の分野に関する。
【背景技術】
【0002】
バーチャル・リアリティのコンピュータ支援モデル化は幾何学的対象物のモデルを作り出し、そのモデルを解釈し、そのモデルを操作し、そうでない場合はコンピュータ・システムの中で幾何学的対象物のモデルを扱う作業である。
【0003】
第1の観点から見ると、バーチャル・リアリティのモデル化は、現実の世界に導入する前にアイデアを可視化することを可能にするという点で興味深い主題である。もしもバーチャル・リアリティのモデルが十分に変更を加え易ければ、現実世界で同じ処理が実行されなければならなかった状況と比較して幾何学的対象物を開発して洗練する処理で多くの時間が節約されることが可能である。現実世界で対象物を描き出す単純な作業は数時間は簡単にかかるが、それに対してコンピュータは数ミリ秒または数秒以内に新たな色彩を塗布してモデルを可視化することが可能である。
【0004】
第2の観点から見ると、バーチャル・リアリティのモデル化は、現実世界に存在する対象物のモデルを作り出し、コンピュータを介してそのモデルを可視化し、ある意味で操作することを可能にするという点で興味深い。その結果、現実世界の対象物のモデルは多様な目的で、例えば改善された文書作成のために保存されることが可能である。
【0005】
コンピュータ支援型のバーチャル・リアリティのモデル化に関して膨大な量の考え得る用途が存在するけれども、特別な用途は娯楽または教育にバーチャル・リアリティのモデル化を使用することである。
【0006】
物理的構造の玩具セットの様々なタイプのモデル化概念はそれ自体知られている。特に、モジュールもしくは半モジュールを使用する概念は有名であったし今もそうである。通常、これらの概念は予め作成された要素のセットを供給し、それらは予め作成された要素のモジュールに従って何らかの予め決められた方式で互いに相互接続されることが可能である。予め作成された要素は特定のモデル化作業に適したよく知られている対象物に類似している。したがって、例えば家屋のモデルを構築する場合、それらの要素はブロック、屋根瓦、ドア、および窓に類似している。この方式で要素を選択する目的は、新しいモデルが作成されなければならない度に家屋のすべての細部が規定される状況と比較して家屋のモデルの構築に含まれる作業が大幅に減らされることである。しかしながら、家屋または他の対象物を構築する完全な自由度はモデルを構築する簡易性と交換される。
【0007】
予め規定された要素を有するこの手法はコンピュータ支援型バーチャル・リアリティのモデル化の技術ではよく知られている。また、互いに相互接続されることが可能なモジュール要素を有する概念もよく知られている。しかしそれがコンピュータ内でのそのようなモデルの表現に至ると、予め規定された要素およびモジュール・システムを有する概念の便宜は先行技術では完全に達成されない。
【0008】
コンピュータ支援型設計およびモデル化にコンピュータが使用されてきた以上、大きな計算努力を必要とする作業はどのようにモデルが見えるかの計算を含めたモデルの可視化と操作であった。その理由の1つはバーチャル・リアリティ・モデルの複雑さおよび微調整が最近利用可能なコンピュータ技術および計算能力に従って拡大されてきたことである。
【0009】
モデルを表現するデータの転送および交換に至ると、バーチャル・リアリティ・モデルの複雑さおよび微調整の欠点が極めて明確に現れる。現在、記憶ユニットまたはコンピュータ通信ネットワークの形式のいくつかのタイプの外部ユニットがコンピュータに接続され、その結果、モデルを記憶し、ロードおよび/または送信し、受信するための信号経路を拡張する。通常、そのような信号経路は単独のコンピュータ内の信号経路と比較して相対的に低い帯域幅を有する。したがって、モデルを表現するための効率的な仕組みが必要とされる。
【0010】
特に、コネクタとそれに対応するレセプタといった接続素子を介して互いに相互接続されることが可能な予め規定された要素もしくは構成要素のモデルを作り出す背景では、互いに相対して或る位置に置かれたときに2つの要素が接続可能であるかどうかという全般的問題が発生する。物理的対象物の現実的モデルを作り出すために、例えばバーチャル・モデルが、モデル化される対象物の支持部品に接続されることなく表面よりも上に浮き出るどのような要素も有さないことを確実化するために、接続性の情報は重要な情報である。
【0011】
殆どの現実世界の構造セットで、多様な方式で相互接続される可能性のある極めて多様な異なる構造要素が存在する。
【非特許文献1】David H.Eberly、「3D Game Engine Design」、Morgan Kaufmann、2001年
【発明の開示】
【発明が解決しようとする課題】
【0012】
それゆえに、様々な異なる構造要素が相互接続されることが可能である、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法を提供することが本発明の目的である。
【0013】
構造要素が様々なあり得る方式で相互接続されることが可能である、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法を提供することが本発明のさらなる目的である。
【課題を解決するための手段】
【0014】
上記およびその他の問題は複数の相互接続可能な構造要素から構築された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法によって解決され、そこでは各々の構造要素がその構造要素を他の構造要素と接続するためのいくつかの接続素子を有し、この方法は、
・複数の構造要素のうちの第1の1つまたは第2の1つをそれに対応する第1および第2のデータ構造として符号化する工程であって、それらの各々が対応する構造要素の接続素子を表わし、接続素子の各々がそれに付随して複数の予め決められた接続タイプのうちの1つを有する工程と、
・互いの予め決められた近隣内に配置された第1の構造要素の第1の接続素子および第2の構造要素の第2の接続素子を判定する工程と、
・第1および第2の接続素子が第1と第2の構造要素の間の接続を与えるかどうかを示す第1および第2の接続素子の対応する接続タイプの接続性情報を取り出す工程とを含む。
【0015】
モジュールの玩具構造要素もしくは複数要素から成る対象物を表現するために都合の良いモデル構造とモデル構造の表現提供することが本発明の利点である。
【0016】
極めて多様な構造要素の接続をモデル化するための方法を提供することが本発明のさらなる利点である。
【0017】
異なるタイプのノブ、穴、チューブ、ヒンジ、エッジ、シャフトなどといった極めて多様な異なる接続素子の接続をモデル化するための方法を提供することが本発明のなおもさらなる利点である。接続のタイプを有する複数の接続素子を供給することによって、構造要素の接続特性の表現が与えられ、それは実際のコネクタの正確な幾何学形状とは無関係である。
【0018】
特に、極めて多様な異なる接続素子の接続をモデル化するための方法が与えられ、それが物理的接続素子の外見およびそれらの構造と無関係であることは利点である。
【0019】
それゆえに、異なるタイプの接続素子を含む異なる予め決められた構造要素の大規模なセットがモデル化されることが可能である。
【0020】
構造要素という用語は、それを1つまたは複数の他の構造的要素へと接続するための接続素子を有するどのようなタイプの構造的要素も含み、物理的対象物を作り出すことが可能であり、コンピュータ上でデジタル式に表現されることが可能である。構造要素の範例は構造玩具セットの要素、例えば積み木などのようなビルディング・ブロックを含む。構造要素という用語はさらに、相互接続されたさらに小さい構造要素の集合体、例えば2つ以上の接続された積み木も含む。
【0021】
一実施形態では、接続のタイプがいくつかの接続グループ、例えばコネクタ、レセプタ、および混合素子へとグループ化される。コネクタは他の構造要素のレセプタによって受け入れられ、それによって構造要素間の接続を供給する接続素子である。例えば、コネクタは他の要素の部分間を嵌合し、穴などに入ることが可能である。レセプタは他の構造要素のコネクタを受け入れることが可能な接続素子である。混合素子はレセプタおよびコネクタの両方として機能することが可能な部品であり、通常、他の構造要素の協同作用する接続素子のタイプに応じて決まる。
【0022】
互いに対して回転されることが可能な異なる表面もしくは平面に沿った接続をモデル化するための方法を提供することが本発明のなおもさらなる利点である。
【0023】
可動部分および/または回転することが可能な部分を有する複雑な対象物のモデル化を可能にする、幾何学的対象物のモデルのコンパクトな表現を提供することが本発明のなおもさらなる利点である。
【0024】
幾何学的対象物のモデルのコンパクトな表現を提供することが本発明のなおもさらなる利点である。
【0025】
極めて高速で作成と解釈を行なうことが可能なモデル構造およびモデル構造の表現を提供することがなおもさらなる本発明の利点である。
【0026】
可視化を受けるモデルが作り出されるかまたは操作されるときの相対的に低い帯域幅の必要性および低い処理時間という意味で、コンピュータ・ネットワークを経由して配信されるために都合の良いモデル構造の表現を提供することがなおもさらなる本発明の利点である。
【0027】
本発明の好ましい実施形態では、本方法は接続タイプの対の接続性情報を含む接続表を供給する工程をさらに含み、接続性情報を取り出す工程が、この接続表から接続性情報を取り出す工程を含む。
【0028】
接続表という用語は接続タイプの対に関する接続性情報を保存するためのどのような適切なデータ構造も含むように意図されている。例えば、そのようなデータ構造は接続タイプの対によって索引を付けられるルックアップテーブルであることが可能である。
【0029】
接続表を供給することによって、接続タイプの対に関する接続性情報を保存するための効率的で拡張可能なデータ構造が与えられる。さらに、高速の接続性検出が可能にされる。
【0030】
本発明の別の好ましい実施形態では、それぞれのデータ構造の各々は対応する構造要素に相対したいくつかの格子をさらに表現し、各々の格子がいくつかの格子点を有し、構造要素の接続素子の各々が格子点のうちの1つと関係し、対応する接続タイプを有する。
【0031】
それゆえに、関連する接続タイプを有する格子点を備えた正方形格子、三角形格子などといった格子構造を供給することによって、様々な接続素子の例えばサイズ、形状、接続特性などのような様々な特性は格子点の各々に付随する1つまたは複数の属性へと削減されることが可能である。その結果、構造要素の接続特性の効率的な表現が達成される。
【0032】
接続素子を格子点と関連付けることによって、2つの接続素子が互いに予め決められた近隣にあるかどうかの特に単純な検出が可能である。例えば、一実施形態では、構造要素が共通の個別体積基準格子内に配置され、すべての座標が任意の長さ単位の倍数である場合、2つの接続素子が予め決められた近隣の中にあると考えられるためには座標の正確な一致が必要とされる可能性がある。連続的もしくは外見上連続的な基準座標系内では、格子点が予め決められた限度内で一致すること、すなわちそれらが互いに予め決められた近接の形式で配置されることが必要とされる可能性がある。近接のサイズはモデル化される物理的接続素子のタイプ、例えば接続のためにそれらが実際にどのように協同作用するかということ、および実行されるべき構造要素の配置の制度に応じて決めることが可能である。
【0033】
それに沿って構造要素が他の構造要素へと接続され得る各々の平面が格子区分、例えば格子区分の各々が中心に格子点を有する場合には正方形へと分割されることが好ましい。
【0034】
各々の接続素子がそれに関連する方向性を有し、その方向で接続素子がそれに対応する接続素子と係合し得ることを示すことが好ましい。
【0035】
すべての接続素子は共通平面に配置され、近隣格子点間で予め決められた距離を備えた直交格子の区分に対応する共通の方向性を有することがさらに好ましい。構造要素のうちのすべての構造要素の接続素子が予め決められた規則に従って構造要素に配置され、各々の接続素子が対応する格子点と関係することを可能にすることが好ましい。
【0036】
しかしながら、異なる非平行平面上の接続素子がそれぞれの格子点間で同じ距離を有する必要がないことに留意されたい。例えば、水平面上の接続素子間の距離は垂直平面上の接続素子間の距離とは異なることが可能である。
【0037】
さらに、接続素子を予め決められた格子点と関係付けることによって、第1の構造要素の接続素子が第2の構造要素の接続素子の予め決められた近接内にあるかどうかの判定が効率的な方式で実行されることが可能となり、なぜならばその判定が近接格子点を識別することに限定されることが可能となるからである。
【0038】
別の好ましい実施形態では、本方法はさらに
・接続タイプの対の予め決められたセットの各々について結果的に生じる接続タイプを含む組み合わせ表を供給する工程と、
・予め決められた幾何学的関係で互いに配置される第1と第2の接続素子を判定する工程と、
・第1と第2の接続素子の結果的に生じた接続のタイプを組み合わせ表から取り出す工程と、
・取り出された結果的に生じた接続のタイプを少なくとも1つの結果的に生じた接続素子へと割り当てる工程を含む。
【0039】
それゆえに、接続素子の接続のタイプが動的である、すなわちそれらは構造要素がおかれる幾何学的背景に応じて変えられることが可能であり、それにより、物理的構造要素の接続特性のさらに現実的なモデル化を提供することが好都合である。特に、第1の構造要素の第1の接続素子と第2の構造要素の第2の接続素子は、予め決められた幾何学的関係で互いに配置されると個々の接続素子とは異なる接続特性を協同して提供する。
【0040】
第1と第2の接続素子の協同効果はしばしばそれらの相互の幾何学的関係、すなわち接続素子が互いに関して配置される方式、例えばどの程度接近してそれらが互いに配置されるか、どのような相対的配向でそれらが互いに配置されるか、などによって決まるであろう。一実施形態では、これは第1と第2の接続素子が互いから予め決められた近接内で配置されるかどうかを判定することによってモデル化され、もしもそれらが互いからそのような近接で配置されるならば、判定された結果となる接続タイプを第1と第2の接続素子に割り当てる。
【0041】
データ構造の中で、これは結果となる接続のタイプを少なくとも結果となる接続素子へと割り当てることによって表わされる。一実施形態では、結果となる接続素子は第1と第2の接続素子のうちの一方である。さらなる好ましい実施形態では、結果となる接続のタイプは第1と第2の接続素子の両方に割り当てられる。
【0042】
もしも対応する構造要素が、接続素子がもはや必要な幾何学的関係に置かれないように再配置されると、第1と第2の接続素子が再割り当てされたそれらのそれぞれの元の接続タイプを有することがさらに好ましい。
【0043】
別の代替選択肢となる実施形態では、結果となる接続素子は新たな接続素子である、例えば第1と第2の接続素子の位置に関係する或る位置を有するように規定されることが可能である。
【0044】
いくつかの実施形態で、2つ以上の接続素子が組み合わされて結果となる接続のタイプを生じさせることが可能であることは理解される。
【0045】
組み合わせ表という用語は接続タイプの対について結果となる接続タイプを保存するためのどのような適切なデータ構造も含むように意図されている。例えば、そのようなデータ構造は接続タイプの対によって索引を付けられるルックアップテーブルであることが可能であり、ルックアップテーブルの各々の記載事項は接続素子の対の組み合わせから結果的に生じる結果的接続タイプを含み、各々の接続素子は対応する接続タイプの対のうちのそれぞれ1つを有する。
【0046】
組み合わせ表を供給することによって、接続素子の接続タイプがそれらの他の接続タイプとの組み合わせのせいでどのように変わり得るかについて情報を保存するために効率的で拡張可能なデータ構造が供給される。
【0047】
特に、バーチャル・ビルディング・ブロックのケースでは、頻繁に生じる状況は2つのビルディング・ブロックが互いに隣り合って、すなわちエッジからエッジへと延びて配置される配座であり、それにより、隣接するビルディング・ブロックのエッジ上の接続素子が特性を変える。
【0048】
さらなる好ましい実施形態では、この状況は構造要素に付随する格子の各々が少なくとも1つの格子エッジを有するときに効率的にモデル化され、本方法はさらに
・接続タイプの各々の対に関する結果となる接続タイプを含む組み合わせ表を供給する工程と、
・第1の構造要素の第1の格子が第2の構造要素の第2の格子とエッジからエッジへの延長で置かれており、第1の格子の第1のエッジが第2の格子の第2のエッジと位置合わせされているかどうかを検出する工程と、
・第1の格子の第1の接続素子に関して、第2の格子の対応する第2の接続素子を識別する工程と、
・第1と第2の接続素子の組み合わせの結果となる接続タイプを組み合わせ表から取り出す工程と、
・取り出された結果となる接続タイプを第1と第2の接続素子に割り当てる工程を含む。
【0049】
エッジのうちのそれぞれ1つが互いに密に近接するかまたは互いに接触すらして構造要素が互いに隣り合って置かれると、対応するエッジ上の接続素子が他方の構造要素の対応するエッジ上、もしくは近くの接続素子のタイプに応じてその特性を変えることが可能である。
【0050】
接続タイプの各々の対に関する結果となる接続タイプを含む組み合わせ表を供給することによって、および結果となる接続タイプを構造要素のエッジ上の接続素子に割り当てることによって、エッジからエッジへの延長が検出されれば、協同している構造要素の複雑な接続特性でさえモデル化されることが可能である。
【0051】
エッジからエッジへの延長という用語は、対応する格子が組み合わされる格子に結合するように互いに隣り合って置かれた2つの格子の配置を含む。それゆえに、エッジからエッジへの延長という用語は、平行したそれぞれの格子エッジ、およびエッジに近い格子点が一致するように平行格子エッジに沿って予め決められた重なりを有する2つの平行の格子を含む。
【0052】
本発明の別の好ましい実施形態では、それぞれのデータ構造の各々はさらに、対応する構造要素の境界体積を表わし、格子の各々は境界体積の表面に対応する。
【0053】
それゆえに、格子が境界体積の表面に対応する構造要素に関して境界体積を供給することによって、たとえ構造要素が複雑な形状を有していても各々の構造要素は少数の格子によって表わされることが可能である。それゆえに、構造要素の形状の複雑さが接続タイプへと翻訳され、それが順々に属性として境界体積の表面に関連する格子点へと結び付けられるので、2つの構造要素の協同する接続素子の効率的な検出が達成されることが可能である。
【0054】
さらに、知られている衝突検出アルゴリズムを使用することによって、境界体積は隣接する構造要素の検出のために効率的な表現を与える。
【0055】
境界体積は互いに直行する側部を有する境界ボックスであることが可能であり、あるいは境界体積は異なる形状を有する。
さらなる好ましい実施形態では、本方法はさらに
・第1および第2の構造要素のそれぞれの位置を共通の体積基準格子に関して符号化し、対応する第1と第2の構造要素の第1と第2の格子が体積基準格子の第1と第2の平面にそれぞれ対応し、第1と第2の格子の格子点が体積基準格子のそれぞれの基準格子点に対応する工程と、
・第1と第2の格子が体積基準格子の共通平面に対応するかどうか、および第1の格子の少なくとも第1の格子点が第2の格子の第2の格子点と同じ基準格子点に置かれているかどうかを検出する工程とを含む。
【0056】
それゆえに、体積基準格子、例えば立方体の体積格子を供給することによって、および表面格子を基準体積格子の平面として規定することによって、隣り合う格子点の特に効率的な検出を可能にする特に単純なデータ構造が与えられる。
【0057】
境界体積は体積基準格子に関する平面として規定されることが好ましい。一実施形態では、それらは体積基準格子の格子平面と一致することが可能であり、場合によっては、体積基準格子の格子平面間の平面として規定されることが可能である。
【0058】
本発明のまたさらなる好ましい実施形態では、本方法はさらに
・第1の格子と第2の格子の一致する格子点のすべての対を識別する工程と、
・識別された格子点の対の各々について接続性の表から接続性情報を取り出す工程と、
・少なくとも1つある格子点対が無効な接続に対応していれば第1と第2の構造要素の間の接続を否定し、そうではなく少なくとも1つある格子点対が有効な接続に対応していれば第1と第2の構造要素の間の接続を受け容れる工程とを含む。
【0059】
それゆえに、2つの隣り合う構造要素が相互接続されることが可能であるかどうかを検出するための効率的な方法が提供される。一致する格子点という用語は同じ座標を有する格子点を含む。構造要素が個別の基準格子に配置され、すべての座標が任意の長さ単位の倍数である一実施形態では、座標の正確な一致が必要とされる、すなわち格子点が共通の基準格子点に置かれる。連続的もしくは外見上連続的な基準座標系では、格子点は予め決められた限度以内で一致することが要求される可能性がある。
【0060】
接続素子の各々が付随の方向性をさらに有するとき、さらなる属性が各々の格子点に関連付けられ、それにより、さらなる自由度を提供する。
【0061】
接続性情報という用語は、接続タイプの対の接続特性、例えば接続タイプの所定の対に関してこれらの接続タイプの2つの接続素子が接続を提供するかどうか、それらは接続を不可能にするかどうかについての情報を含むように意図されている。好ましい実施形態では、接続性情報は予め決められたグループの接続性タイプのうちの1つを示す接続タイプの各対に関するインジケータを含み、そのグループは対応する接続素子の対の間の接続を提供する有効接続、対応する接続素子の対の間の接続を妨げる無効接続、および中立の接続で構成される。
【0062】
中立の接続という用語は、互いから予め決められた近接内に置かれると対応する2つの構造要素を接続するように協同しないが、しかしそのような配置をどちらも妨げない接続タイプの対を含む。
それゆえに、可能な相互接続の効率的な符号化が提供される。
【0063】
本発明のなおも別の好ましい実施形態では、予め決められた近接で互いに配置された第1の構造要素の第1の接続素子と第2の構造要素の第2の接続素子を判定する工程はさらに、予め決められた接続素子のサブセットから第1と第2の接続素子を判定する工程を含む。それゆえに、接続素子の当該の対を判定するために接続素子のサブセットだけが検索されることを必要とし、それにより、本方法の効率を上げる。
【0064】
さらなる好ましい実施形態では、それぞれのデータ構造の各々はさらに、対応する構造要素の境界体積も表わす。本方法はさらに、第1と第2の構造要素の境界体積の交差部を検出する工程を含み、予め決められた接続素子のサブセットから第1と第2の接続素子を判定する工程は判定された交差部に含まれる接続素子から第1と第2の接続素子を判定する工程を含む。それゆえに、当該接続素子のサブセットは潜在的に接続を提供することが可能な接続素子として判定されるが、なぜならばそれらは境界ボックスの交差部に含まれるからである。
【0065】
新たなタイプの構造要素および新たなタイプの接続素子でさえも組み入れるように容易に拡張されることが可能なデータ構造とアルゴリズムを提供することが本発明のさらなる利点である。例えば、異なるタイプの既存の玩具構造要素の2つのセットの接続性特性は、異なる玩具構造セットの構造要素が互いに相互接続され得るように組み合わされることが可能である。
【0066】
たとえ多数の構造要素を含むモデルを作り出すときでさえ、大きな記憶容量を必要としないデータ構造を提供することが本発明のさらなる利点である。
【0067】
2つ以上の構造要素が接続されるかどうかを検出する効率的な方法を提供し、それにより、構造要素が相互接続されるかどうかを判定するためにコンピュータが必要とする処理時間を削減することが本発明のさらなる利点である。これは、ユーザが構造要素を2つ互いに相対して位置決めすることが可能な対話式コンピュータ・プログラムで特に重要な特徴であり、なぜならばこの状況ではモデルの構造要素の配置もしくは除去から接続性特性の判定までの短い応答時間が必要とされるからである。
【0068】
本発明は、上述および下記の方法、システム、およびさらなる製品手段を含めた多様な方式で実施されることが可能であり、最初に述べた方法に関連して述べられた利点および長所のうちの1つまたは複数を各々が生じ、最初に述べた方法に関連して述べられ、かつ従属請求項に開示された好ましい実施形態に対応する1つまたは複数の好ましい実施形態を各々が有する。
【0069】
本発明はさらに、
・構造要素を他の構造要素と接続するためのいくつかの接続素子を各々が有する複数の相互接続された構造要素から構築された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すための手段と、
・複数の構造要素のうちの第1の1つおよび第2の1つを、対応する構造要素の接続素子であって各々がそれに付随して複数の予め決められた接続タイプのうちの1つを有する接続素子を各々が表わす対応する第1と第2のデータ構造として符号化するための手段と、
・予め決められた近接で互いに配置された第1の構造要素の第1の接続素子と第2の構造要素の第2の接続素子を検出するための手段と、
・第1と第2の接続素子が第1と第2の構造要素の間の接続を提供するかどうかを示す第1と第2の接続素子の対応する接続タイプの接続性情報を取り出すための手段とを含むデータ処理システムに関する。
【0070】
上述および下記で述べられる方法の特徴がソフトウェア中に導入され、コンピュータで実行可能な命令の実行によってデータ処理システムまたは他の処理手段の中で実行されることが可能であることに留意されたい。これらの命令は、記憶媒体から、またはネットワークを介して他のコンピュータからRAMのようなメモリにロードされるプログラムコード手段であることが可能である。場合によっては、記述した特徴はソフトウェアの代わりに配線接続された回路またはソフトウェアとそれの組み合わせで導入されることも可能である。
【0071】
本発明はさらに、上述および下記で述べられる方法を実行するように構成されたデータ処理システムに関する。
【0072】
本発明はさらに、コンピュータ上でそのプログラムが走ると上述および下記で述べられる方法の工程すべてを実行するためのプログラムコード手段を含むコンピュータ・プログラムに関する。
【0073】
本発明はさらに、コンピュータ上でそのプログラムが走ると上述および下記で述べられる方法を実行するためのコンピュータ読み取り可能な媒体上に保存されたプログラムコード手段を含むコンピュータ・プログラム製品に関する。
本発明は、好ましい実施形態と関連させ、かつ図面を参照しながら下記でさらに十分に説明されるであろう。
【発明を実施するための最良の形態】
【0074】
図1a〜eは本発明の一実施形態による構造要素の表現を示す透視図である。
図1aは構造要素101の表現を示している。構造要素101は、他のビルディング・ブロックの対応する穴に接続することが可能な2つのノブ102を103で指定される面の上に有する物理的ビルディング・ブロックのデジタル表現である。このビルディング・ブロックはさらに、面105からビルディング・ブロックの反対側の面へと貫通する穴104を有する。この穴は他のビルディング・ブロックの対応するコネクタを受け入れるように構成される。
【0075】
ビルディング・ブロック101のデジタル表現は図1a中で太線で表わされた境界体積106を有する。境界体積106はノブ102を有するビルディング・ブロック101の境界体積である。ビルディング・ブロックのこのデジタル表現はさらに、内部の右手座標系107に関して述べられる。座標系、特にその原点の位置と軸の方向の選択がどのような適切な慣例に従って選択されることも可能であることは理解される。それゆえに、対応するデータ構造の中でビルディング・ブロックの位置と配向は、外部の座標系、例えば他のビルディング・ブロックの座標系もしくは大域的な「ワールド」座標系に関する座標系107の原点座標と軸の方向によって表わされることが可能である。
境界体積は座標系107に相対して、例えば座標系107に関する2つの角110の座標によってデータ構造内に表わされることが可能である。
【0076】
図1bは、ビルディング・ブロックを含むがノブ102を含まない境界体積108を備えたビルディング・ブロック101の表現を示している。一実施形態では、異なるビルディング・ブロック間の衝突検出は両方のタイプの境界体積、すなわち図1aに示された境界体積106と図1bの境界体積108に頼っている。
【0077】
本発明によると、ビルディング・ブロックがそれに沿って他のビルディング・ブロックへと接続されることが可能な各々の平面は複数の正方形へと分割され、各々の正方形の中心に接続点を備える、すなわち正方形のエッジが隣り合う接続点間の半分の距離に対応する。
【0078】
図1cはビルディング・ブロック101を示しており、ビルディング・ブロックの1つの面上の接続素子の表現を例示している。この表現は2つのノブ102を有するビルデイング・ブロックの面103の平面に正方形の格子109を表わしている。この正方形格子はいくつかの正方形を含み、正方形130と格子点111によって例示されるように各々が格子点を中心として有する。各々の格子点は矢印、例えば格子点111の矢印112で示されるように付随の方向を有する。格子109の格子点の方向は外方向、すなわち座標系107のy軸の方向を指している。それゆえにデータ構造内で、格子109の表現は座標系107に関して予め決められた格子点、例えば格子点113の座標、座標系に関する格子点の方向、すなわち矢印114の方向、格子のサイズ、すなわちx方向とz方向それぞれでの正方形の数、および格子点の各々に関連する属性を有することが可能である。そのような表現の範例は下記でさらに詳細に述べられるであろう。
【0079】
図1dはビルディング・ブロック101の面103(図1dに図示せず)の反対側の面116の接続格子120を例示している。ビルディング・ブロックのこの面はエッジ118で規定される穴117およびいわゆる二次ピンと呼ばれる小さい中心ノブ119を有する。物理的ビルディング・ブロックのこれらの穴はノブ102のような他のビルディング・ブロックのノブを受け入れることが可能となるように配置され、それにより、2つのビルディング・ブロックを協同して接続する。本発明によると、矢印121で表わされるようにこれらの穴は格子120の対応する格子点によって表わされる。
この実施形態によると座標系の原点が格子点122に対応することが気付かれる。
【0080】
図1eは穴104を有するビルディング・ブロック101の面105の接続格子123を例示している。相応して、格子点124は穴104の接続性特性を表わす。
【0081】
ディスプレイ、例えばコンピュータ画面上にビルディング・ブロックを図解で表現するとき、境界体積、座標系、および格子は示される必要がない。図解表現はビルディング・ブロック自体の表現を含むだけである。
【0082】
図2a〜cは構造要素およびそれらの接続素子の範例を例示している。
図2aは2つのビルディング・ブロック201と202を示している。ビルディング・ブロック201はその上面に4つのノブ203、および底面(図示せず)に4つの対応する穴を有する積み木である。積み木202は互いに直交する平面を有する表面を備えたビルディング・ブロックの範例である。特に、ビルディング・ブロック202は傾斜面204を有する。図2aに例示されるように、それらの今の位置ではビルディング・ブロック201と202は接続されない。
【0083】
図2bは非長方形の上面と底面を有するビルディング・ブロック210を示している。底面は1つまたは複数の他のビルディング・ブロックの対応するノブを受け入れるための穴211、212、および213を有する。これらの穴はエッジ214、二次ピン215、ならびに角216と217によって規定される。それゆえに、上記の要素すべての特性がビルディング・ブロックの面の接続性特性を決定する。
【0084】
図2cはビルディング・ブロック221に接続され、それによって組み合わせビルディング・ブロックを形成するビルディング・ブロック220を例示している。ビルディング・ブロック220はその上面に、他のビルディング・ブロックの対応する穴に係合するノブ222を有する。しかしながら、図2cで例示されるように、同様に他の接続タイプも達成されることが可能である。ノブの間の隙間223はブロック221の側面224のような他のコネクタのためのレセプタとして機能する。物理的ビルディング・ブロックに関して、この特性は隙間の寸法とビルディング・ブロック221の寸法、すなわち側部の幅225によって決定される。本発明によるデジタル表現では、これらの特性は下記でさらに詳細に例示されるであろうが、接続点の対応する属性によって表わされる。
【0085】
図2dは、いくつかの積み木を含む他のビルディング・ブロックに対するビルディング・ブロックの無効接続を例示している。ビルディング・ブロック231は積み木232、233、234、235、236、および237を有する。各々のビルディング・ブロックが上述したようなノブ・コネクタと対ノブ・レセプタを有する。ビルディング・ブロック232、233、および236は上側ならびに側面にノブ・コネクタを有する。特に、ビルディング・ブロック232は側面にノブ238を有し、一方ビルディング・ブロック233は側面にノブ239を有し、ビルディング・ブロック236はその側面にノブ240を有する。
【0086】
図2dの範例では、ビルディング・ブロックの寸法のせいでそれらのノブおよび、したがってそれらの対応する接続点は規則的な格子を形成しない。その結果、もしもビルディング・ブロックが×印242、243、および244で示されるようなその接続点を備えて点線241で示される位置に置かれるように試みられると、有効な接続は不可能である。本発明による方法がどのようにしてこのタイプの状況を検出するかが下記で述べられるであろう。
【0087】
図3はビルディング・ブロックとそれに対応する接続性格子の透視図を示している。ビルディング・ブロック301は8個のノブ303a〜hを備えた上面302、対応する穴(図示せず)を備えた底面、および側面304を有する。図3では、上面と底面の接続性格子305と306がそれぞれ示されている。接続点は円307a〜kで例示されるような円によって具体的に示される。それゆえに接続点307a〜hはノブ303a〜hにそれぞれ対応する。側面304はどのような接続素子も有さないので、それらについて接続講師が規定される必要はない。別の代替選択肢となる実施形態では、空洞のレセプタだけを有する接続格子が側面に関して規定されることが可能である。
【0088】
図3から見受けられるように、規則的格子内に配置された接続点によるビルディング・ブロックの接続素子の表現は、物理的ビルディング・ブロック上の接続素子の物理的配置に一定の拘束条件を課す。
格子305はビルディング・ブロックの上面の平面内に配置され、そこからノブ303が延びる。
【0089】
図3の範例では、格子点が正方形格子内に置かれ、各々の正方形は任意の長さ単位(LU)の5×5単位の寸法を有する。それゆえに、この幾何学構造では、接続素子もやはり対応する正方形格子上に配置され、ビルディング・ブロックの平面内の接続素子間の距離は10LUの倍数である。図3の範例では、ビルディング・ブロックの上側表面と下側表面は長方形であり、20LU×40LUの寸法を有し、隣り合う接続素子は10LUで間隔を置かれる。
【0090】
他方で、垂直方向では、接続素子は12LUで間隔を置かれる。それゆえに、異なる寸法で格子寸法が変えられることが可能であり、それにより、上記の図2dに示されるような状況を生じさせることが可能である。
接続点の場所はビルディング・ブロックの内部座標系308に関して規定される。
【0091】
図4は図3のビルディング・ブロックの上面図を示している。接続性格子305が格子点を含めて示されている。図3の範例中の格子点の方向は図面平面から外を指している。
【0092】
一実施形態では、接続点の格子を表わすデータ構造は各々の接続点について、座標系308に関する接続点の座標、接続素子の方向、および接続性のタイプを含む。
【0093】
新たなビルディング・ブロックを設計するとき、ビルディング・ブロックのデジタル表現が作り出されることが必要である。図4の範例中の積み木は上部表面上の45個の接続点および底部表面上の45個の接続点を有する。接続点の各々について上記の値を特定することは時間を浪費し、誤りを生じがちな作業である。
【0094】
しかしながら、多くのタイプのビルディング・ブロックに関して接続点は規則的な構造で配置され、それにより、自動化されたデータ作成が可能になり、かつ好都合である。図4の範例では、接続点の座標は反復的に判定されることが可能であり、接続素子の方向は格子の接続点すべてについて同じである。
【0095】
それゆえに、好ましい実施形態では接続点の格子を表わすデータ構造は、
・座標系308に関する格子点401の座標。それゆえに図4の範例では格子点401のLUでの座標はP0=(−5,12,−15)であり、
・接続素子の方向、すなわち図4の範例では(0,1,0)、すなわち座標系308のy軸の方向、
・xおよびz方向での格子点の数、すなわち図4の範例ではそれぞれnx=9、nz=5。
・各々が対応する接続点の接続特性を含む5×9データ構造のアレイを含む。そのようなアレイの範例は下記で述べられるであろう。
【0096】
図4の範例では、各接続点の座標はi=0,...,4、j=0,...,8に関して(LUで)P0+(5i,0,5j)と表わされることが可能である。
その後、接続点の特性はiとjで索引を付けられる二次元のアレイCとして表わされることが可能であり、ここでC[0,0]は接続点401に対応し、C[i,j]は座標P0+(5i,0,5j)を備えた接続点に対応する。
【0097】
別の実施形態では、接続性格子の平面内で二次元座標系が定義されることが可能である。図4では、これは座標系402で具体的に示される。その後、二次元座標系はその原点401の座標およびビルディング・ブロックの内部座標系308に関する回転マトリックスによって表わされることが可能である。
【0098】
図5a〜bは、本発明の実施形態による、接続点を表わすデータ構造の範例を具体的に示している。
【0099】
図5aは図4のビルディング・ブロックの格子の接続点を表わすデータ構造を具体的に示している。このデータ構造は上述したような二次元アレイC[i,j]に対応する。各々のアレイ素子が接続タイプに対応する。例えば、ノブ(例えば図4のノブ303)はC[i,j]=Kと表わされ、2つのノブの間の隙間(例えば図4の隙間404)は「ダブルエッジ・ギャップ」と称され、C[i,j]=2EGと表わされ、4つのノブの中心の隙間(例えば図4の隙間405)は「チューブ・ギャップ」と称され、C[i,j]=TGと表わされる。ノブは他のビルディング・ブロックのレセプタ、例えば図2bに例示された穴212によって受け入れられることが可能なコネクタである。エッジ・ギャップは、例えば図2cに例示されるエッジかまたは図2bに例示されるエッジ211を受け入れることが可能なレセプタである。チューブ・ギャップは他のコネクタ、例えば適切なサイズのノブもしくはチューブを受け入れることが可能なレセプタである。
【0100】
ビルディング・ブロックの境界では他の接続タイプが生じる。角(例えば図4の角401)は、それらが4つの隣接から1つだけを有するチューブ・ギャップに対応するのでC[i,j]=1/4TGと表わされる。同様に、C[i,j]=1/2TGは4つのノブから2つをその周りに有するチューブ・ギャップ、例えば図4の接続点406を表わす。最後に、C[i,j]=EGは1つだけの隣接ノブを有するエッジ・ギャップ、例えば図4の接続点407に対応する。
【0101】
図4に描かれたそれのようであるが、しかし異なる数のノブを備えたビルディング・ブロックが図5aに示されたそれに類似した接続性のアレイに対応することは理解される。それゆえに、このタイプのビルディング・ブロックを表わすデータ構造はビルディング・ブロックの寸法を特定することによって自動的に作り出されることが可能である。
【0102】
概して、規則的な幾何学構造を有する構造要素については、接続性アレイの異なるタイプの数が例えば図3のビルディング・ブロックのように規則的なビルディング・ブロックの上部、側部、および底部の表面に関するアレイ・タイプで規定され得ることは理解される。その後これらのアレイ・タイプの例が類似した構造要素の様々な異なるタイプとサイズについて自動的に作り出されることが可能である。それゆえに、多様なビルディング・ブロックを表わすデータ構造が効率的な方式で作り出され得ることが利点である。
【0103】
図5bは図2bに示されたビルディング・ブロックの底面に対応する接続性のアレイを示している。ここで、C[i,j]=ECはエッジの角、例えば図2bの217に対応し、C[0,0]=ECに対応する。さらに、C[i,j]=Eは図2bのエッジ214のような「エッジ」に対応する。C[i,j]=3/4ECは図2bの角216によって例示されるような角に対応する。C[i,j]=AKは「対ノブ」、すなわちノブを受け入れるための穴212に対応し、その一方でC[i,j]=SPは「二次ピン」215に対応する。
【0104】
たとえ図5a〜bの接続タイプが接続素子の実際の物理的機能のニーモニック表示であるとしても、接続タイプが他のどのような適切な手段、例えば列挙型接続タイプ、ビット・コーディングなどによっても符号化され得ることは理解される。
【0105】
概して、接続タイプは接続の種類とパラメータを含むことが可能である。例えば、接続の種類はα=1/4、1/2、3/4、1を備えたチューブギャップαTGである。
【0106】
異なる接続タイプの接続特性は対応する接続表に規定される。接続表は、接続タイプの各々の対について接続性特性を示す。接続表はルックアップテーブルとして適切なデータ構造内に保存されることが好ましい。そのような接続表の実施形態が表1に例示されている。
【表1】
【0107】
それゆえに、表1の各々の欄は対応する2つの接続タイプの接続性を示している。
表1の短縮表示された接続タイプはつぎの通りである。
K:ノブ、例えば図1a〜eのノブ102、すなわち円形の素子。
SP:二次ピン、例えば図2bの215、すなわち小さいノブ。
E:エッジ、例えば図2bのエッジ214、すなわち要素の外側エッジ。
αEC:パラメータαを備えたエッジの角である。3/4ECは図2bで角216によって例示されるような角に対応する。
VC:空洞コネクタ、すなわち殆どの他の要素を拒絶せず、また、他の素子、例えば滑らかな表面と接続することもないビルディング・ブロックの部分。空洞コネクタはノブを拒絶するが、しかし他のどのようなレセプタまたはコネクタとも相互作用しない。
αAK:パラメータαを備えた対ノブ、例えば図2bの対ノブ215、すなわちノブが嵌合する不規則な形状の穴。
αTG:パラメータαを備えたチューブ・ギャップ、例えば、図4はα=1を備えたチューブ・ギャップ405、すなわち4つの隣り合うノブの間の領域であって、これにチューブが嵌合することが可能である。
αEG:パラメータαを備えたチューブ・ギャップ、例えばα=2を備えたダブルエッジ・ギャップおよびα=1を備えたエッジ・ギャップ407、すなわち2つのノブ間またはノブとエッジ間の隙間。
VR:空洞レセプタ、すなわちどのような他の素子も拒絶せず、また接続もしないビルディング・ブロックの部分。
Tu:チューブ、ノブのためのレセプタであることが可能であり、4つの隣り合うノブの間、すなわちチューブ・ギャップに詰め込まれることが可能なコネクタであることが可能な環状のチューブ。
【0108】
表1で、上記の接続タイプの接続性は次のように示される。
・T:真、すなわち接続が有効であり、対応する接続素子が係合することで2つのビルディング・ブロックを接続する。
・F:偽、すなわち接続はこの位置では許容されない。
・V:空洞または中立、すなわち接続を妨げるものが存在しないが、しかし実際にどちらか接続するものもない。
【0109】
例えば、表1によると、ダブルエッジ・ギャップ(α=2を備えたαEG)はエッジ(E)と空洞接続を作り出し、その一方でエッジ・ギャップ、すなわちα=1を備えたαEGはエッジ(E)と実際に接続する、すなわちこのケースでは接続性が真(T)である。
表1の接続表が対角線に沿って対称であることが気付かれる。
【0110】
それぞれの既にある接続タイプと共に新たな接続タイプの該当する接続性を対応する横列と縦列に追加することによって上記の表が新たな接続タイプを含むように容易に拡張され得ることがさらに気付かれる。
【0111】
図6はエッジからエッジへの延長になっている2つの構造要素の上面図を示している。図6の範例では、2つのビルディング・ブロック601と602がエッジからエッジへの延長で配置される、すなわちそれらの上部表面が同じ平面内に置かれ、それらのそれぞれの接続点が破線603で示されるように同一空間を占める。図6の範例では、ビルディング・ブロック601と602各々は図3と4に示されたタイプであると仮定されている。
【0112】
2つのビルディング・ブロックをエッジからエッジへの延長で配置することによって、領域603で重複する接続点の有効接続タイプが変えられる。例えば、接続点605はビルディング・ブロック601のタイプ1/4TGの接続点およびビルディング・ブロック602のタイプ1/2TGの接続点に対応する。しかしながら、図6のエッジからエッジへの延長で配置されると、組み合わされた接続点605はタイプ3/4TGである。同様に、接続点606はビルディング・ブロック601と602各々のタイプEGであるが、組み合わされたビルディング・ブロックではそれはタイプ2EGである。最後に、接続点607はビルディング・ブロック601と602各々のタイプ1/2TGであるが、組み合わされたビルディング・ブロックではそれはタイプTGである。
【0113】
それゆえに、概して接続素子の接続性特性は他の構造要素と関係した対応する構造要素の配置に応じて変化する可能性がある。
【0114】
本発明によると、この状況は組み合わされた、または結果的に生じる重複接続点の接続タイプを記述する組み合わせ表を規定することによってモデル化されることが可能である。表2はそのような組み合わせ表の範例であり、上記で導入された接続タイプの組み合わせを示している。この組み合わせ表はルックアップテーブルとして適切なデータ構造内に保存されることが好ましい。
【表2】
【0115】
表2では、各々の欄は組み合わされる接続タイプを含む。もしも2つの接続タイプの組み合わせがどのような他の接続タイプに接続する接続タイプも生じない場合、表の記入事項はFである。
【0116】
例えば、エッジ・ギャップ(βEG)が空洞コネクタ(VC)、例えば空の表面の隣に配置されると、結果的に生じる接続要素は広い隙間であると考えられる。表2では、これは(β+1)EGによって近似される。
【0117】
上記の組み合わせ表が、2つ以上の接続素子が組み合わされる状況、例えば3つもしくは4つのビルディング・ブロックの角、で結果的に生じる接続タイプを判定するために使用されることもやはり可能であることがさらに理解される。この状況では、例えば3つの接続素子について結果的に生じた接続タイプは、第1に、最初に組み合わされた接続素子の2つについて結果的に生じた接続タイプを判定し、それに続いて、結果的に生じた第1の接続タイプと第3の接続素子の接続タイプの組み合わせの結果として生じた第2の接続タイプを判定することによって判定される。
【0118】
それぞれの既にある接続タイプと新たな接続タイプの組み合わせから結果的に得られる該当する結果の接続タイプを該当する横列と縦列に追加することによって上記の表が新たな接続タイプを含むように容易に拡張され得ることがさらに気付かれる。
【0119】
それゆえに、上記で、ビルディング・ブロックの接続性特性の効率的で拡張可能な表現のためのデータ構造が、接続タイプをどのように組み合わせるかに関する法則の効率的で拡張可能な表現と同様に開示される。
【0120】
図7はビルディング・ブロックの2つの接続グループを有する幾何学的対象物の透視図を示している。この幾何学的対象物は5つの要素701、702、703、704、および705を含む。図7の範例では、幾何学的対象物はビルディング・ブロックの2つのグループを含み、ビルディング・ブロックの第1のグループはビルディング・ブロック701、702、および703を含み、その一方で第2のグループはビルディング・ブロック704と705を含む。この範例でのビルディング・ブロック701と704は、例えば上述の単一のノブと対ノブの接続、またはビルディング・ブロックの互いに相対した回転を妨げない他の何らかの方式、例えばヒンジ接続、共通の線上での2つ以上のノブと対ノブの接続などによって回転可能に接続される。それゆえに、図7の幾何学的対象物は、幾何学的対象物に与えられた位置と配向の制約に必ずしも束縛されないビルディング・ブロックの範例である。そのような接続の他の範例は、接続されたビルディング・ブロックの相対的平行移動を可能にするビルディング・ブロック間の接続を含む。それゆえに、ビルディング・ブロックのそのようなグループは、格子系706と707で示されるように別々の座標系で述べられることを必要とする可能性がある。
【0121】
図8は、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すコンピュータ導入処理法の一部として構造要素を配置する方法を示すフロー図である。
【0122】
最初の工程801で、予め決められた初期位置に構造要素が置かれる。この構造要素は上記で例示されたようなデータ構造によって表現され、構造要素の位置と配向は、適切な座標系、例えば三次元の右手「ワールド」座標系または基準座標系に関する構造要素の内部座標系の位置と配向を説明する適切な座標系によって記述される。
【0123】
それゆえに、所定の背景、例えば場面、幾何学的対象物などに関すると、この処理法は各々がその背景の中に置かれたビルディング・ブロックを表現するデータ構造のセットを作り出して維持する。その背景の中に新たな構造要素を配置することはデータ構造のそのセットの一部として対応するデータ構造の新たな事例を作り出すことに該当する。
【0124】
構造要素の配置は、例えば幾何学的対象物のデジタル・モデルを作成する対話式処理の間にユーザの命令によって生じさせられることが可能である。例えば、コンピュータが、ユーザが異なる構造要素、例えば異なるタイプ、形状、サイズ、色などの構造要素を選択し、選択された構造要素をコンピュータのディスプレイ上に表示される三次元グラフィック場面内で予め決められた位置と配向に配置することを可能にするユーザ・インターフェースを提供することが可能である。例えば、このユーザ・インターフェースは構造要素を置くためのドラッグ・アンド・ドロップ操作ならびに構造要素を操る、例えば回転させるための操作を提供することが可能である。
【0125】
一実施形態では、構造要素の配置は、例えばすべての距離が任意の長さ単位(LU)の倍数として測定され、基準格子の格子点が1LUで間隔を置かれることが可能な系の、例えば予め決められた格子上の別々の位置へと限定されることが可能である。
【0126】
工程802では、コンピュータ導入による処理が、工程801で配置された構造要素がその場面に既に存在する何らかの他の構造要素、例えばユーザによって以前に配置された構造要素と交わる場所を検出する。この衝突検出はどのような適切な衝突検出法で実行されることも可能であり、構造要素の境界体積に基づいた衝突検出法が好ましい。そのようなアルゴリズムの範例は、例えばDavid H.Eberlyの「3D Game Engine Design」、Morgan Kaufmann、2001年に開示されている。
【0127】
衝突検出は、構造要素が配置された位置が他の構造要素によって既に占められているという結果に結び付く可能性がある。この状況は予め決められた限度よりも大きい境界体積の交差部を検出することによって検出されることが可能である。もしも無効な交差部が検出されれば、この位置と配向での構造要素の配置は拒絶されることが可能である。
【0128】
もしも無効な交差部が検出されなければ、本処理法は工程803で新たに配置される構造要素が他の構造要素と有効に交差するかどうかを検査する。有効な交差部は、例えば予め決められた限度よりも小さいそれぞれの境界体積の交差部として検出されることが可能である。
【0129】
図1の実施形態では、構造要素の表現は接続素子を含めた境界体積(図1a)と構造要素本体を含むが接続素子を含まない境界体積(図1b)の2つの境界体積を有する。衝突検出の工程はこれら2つの境界体積を使用して、もしも構造要素の接続素子を除いた境界体積が重なり合えば無効な衝突を検出することが可能である。もしも接続素子を含む境界体積が重なり合うが、しかし接続素子を除いた境界体積が重ならない場合、あるいはあらゆる境界体積のあらゆる表面が交差するが境界体積が重なり合わない場合、有効な重複が検出される。
さらに、それらの境界体積の軸が同じ基準座標系に対応するように境界体積が配向されているかどうかが検出される。
【0130】
もしも有効な衝突が検出されなければ、本処理法は何らかの適切な方策に従って進行することが可能である。いくつかの実施形態ではどのような以前の構造要素にも接続せずに新たな構造要素を空洞内に配置することが受容可能である可能性があり、いくつかの実施形態では、もしも既にその場面に存在する他の構造要素が無い場合にのみこれは受容可能である可能性がある。なおも別の実施形態ではこれが拒否される可能性がある。例えば、一実施形態では、ユーザによって置かれる構造要素を伴なわないどのような初期場面も初期設定の構造要素、例えば基礎平面の上に構造要素を設置するための接続素子を備えた支持平面を有することが可能である。
【0131】
工程803でもしも新たに設置される構造要素と1つまたは複数の他の構造要素の間に有効な衝突が検出されると、本処理法は工程804に続き、新たに設置される構造要素がそれに有効に交差する(複数の)構造要素に有効に接続されることが可能であるかどうかをチェックする。この接続性検出の部分工程の好ましい実施形態は下記でさらに詳しく述べられるであろう。この接続性検出は結果として、もしも構造要素がそれと交差する(複数の)構造要素に有効に接続するならば構造要素の設置の受容につながり、もしも交差する構造要素のうちのいずれか1つと有効に接続しなければ拒絶につながることが可能である。
【0132】
いったん構造要素の設置が受容もしくは拒絶されると、本処理法はユーザの行為によって、例えば拒絶された構造要素を別の代替選択肢の位置および/または配向に置き換えることによって、他の構造要素をその場面に設置するなどによって再び開始されることが可能である。
【0133】
図9は本発明の一実施形態に従って第1のデジタル構造要素を他の第2のデジタル構造要素に接続する部分工程804のフロー図を示している。例えば、第1の構造要素が新たに設置される積み木であり、第2の構造要素が以前に構築された積み木構造であることが可能であり、検出のアルゴリズムが新たに設置される積み木と第2の構造要素の間の交差部を検出し終えている。
【0134】
以下では、初期位置で構造要素はそれらの境界体積の主軸が右手直交ワールド座標系のx、y、およびz軸に対応するように配向されると仮定される。
この実施形態では、接続素子自体は性質および形状で異なるけれども構造要素上の接続素子の設置についていくつかの予め決められた法則が課されることがさらに仮定される。
【0135】
接続素子の設置に関する仮定は、各々の構造要素について、同じ水平平面内のすべての接続素子の軸が、隣り合う区分間に一定の距離を備えた直交格子の区分に対応することである。
水平平面内および垂直平面内の接続素子の軸間距離は同じである必要がない。
【0136】
最初の工程902で、検出された交差部に属する第1の構造要素および第2の構造要素のすべての接続点。既に接続されているわけではないそれら接続点だけが考慮される必要があり、これらの接続点は該当接続点と称されるであろう。
【0137】
工程903で、第1の構造要素の第1の該当接続点が選択される。これは任意に選択された接続点、ユーザによって選択された接続点などであることが可能である。
【0138】
工程904で、第1の構造要素の選択された接続点について、本処理法は選択された接続点と同じ座標を有する第2の構造要素のいずれかの該当接続点が存在するかどうかをチェックする。構造要素が別々の体積基準格子内に配置され、すべての座標が任意の単位長さの倍数である一実施形態では、座標の正確な一致が必要とされる可能性がある。連続的または外見上連続的な基準座標系では、格子点が予め決められた限度内で一致することが必要とされる可能性がある。
もしもそのような一致する接続点が見つからない場合、本処理法は工程914に続く。
【0139】
工程914で、選択された接続点の予め決められた近接の中にいずれか他の接続点が存在するかどうかを検出する。図9の実施形態では、予め決められた近接は(x,y,z)の選択された接続点の周りの立方体(x±5LU,y±5LU,z±5LU)に相当するが、なぜならばこの実施形態では2つの隣り合う接続素子の間の距離が10LUだからである。もしも選択された接続点の予め決められた近接の中にいずれか他の接続点が存在するならば、2つの構造要素の間の接続は拒絶され(工程911)、アルゴリズムが終了する。それゆえに、この実施形態で接続点は規則的な格子上に配置されるので、構造要素の無効な設置は効率的に検出されることが可能である。もしも第1の構造要素の該当接続点のうちの1つにに関して第2の構造要素の該当接続点との不一致が見つけられれば、第1の構造要素の残りの接続点はチェックされる必要が無く、それにより、検出工程のスピードを上げる。上記の検査は、ノブ239に対応する接続点が規則的な格子に関して置き違えられているので図2dに示されたような接続が拒絶されることを確実化する。図2dの範例では、高さのわずかの違いのせいで接続点243が境界体積の交差部に属することがないので接続点243が不一致を生じさせることはない、すなわち積み木241と236の間の接触はないことが気付かれる。
【0140】
もしも工程914で不一致を生じる該当接続点が見つけられなければ、本処理法は工程909に続く。
もしも工程904で一致する接続点が見つけられた場合、本処理法は工程905に続き、選択された接続点の予め決められた近接、この実施形態では上述したように(x,y,z)の選択された接続点の周りの立方体(x±5LU,y±5LU,z±5LU)の中にいずれか他の接続点が存在するかどうかが検出される。もしも予め決められた近接の中で他の接続点が見つけられると、その位置が拒絶される(工程911)。そうでない場合、本処理法は工程906に続く。
【0141】
別の代替選択肢となる実施形態では上記の限定が望ましくない可能性がある。さらに、なおも別の実施形態では上記の限定は特定の接続タイプ、例えば上記の範例では「空洞」と異なるすべての接続タイプに限られることが可能である。
【0142】
工程906で、本処理法は選択された接続点および検出された一致接続点が反対の方向を有するかどうか、すなわちそれらの随伴する方向が共通の線に沿っているが反対の配向であるかどうかを検出する。それゆえに、係合するために適した相対的配向で配置された接続素子だけが受容される。
別の代替選択肢となる実施形態で、この限定が、例えば接続素子が或る範囲の配向を受け容れる実施形態で或る範囲の配向を受容することによって緩和されることに留意されたい。
【0143】
もしも接続点の相対的配向が受容されれば、本処理法は工程907に続き、そうでない場合、その位置が拒絶される(工程911)。
【0144】
工程907で、選択された接続点およびそれに対応する検出された一致接続点の接続タイプが、保存された接続表913、例えば上記の表1による接続表から接続タイプの対応する対の接続性法則を取り出すことによって比較される。この実施形態では、表1に関連して述べられたように接続は真、偽、または空洞であることが可能である。
【0145】
それに続く工程908で、接続性の結果が「偽」、すなわち対応する接続タイプの間で有効な接続が不可能であるかどうかが検査される。もしも接続性の結果が「偽」であれば、第1の構造要素の位置が拒絶され(工程911)、そうでない場合、接続性結果は保存され、本処理法は工程909へと進む。
【0146】
工程909で、第1の構造要素のすべての該当接続点が処理されたかどうかが検査される。そうでなければ、まだ未処理の該当接続点が選択され(工程912)、上記の工程904、905、906、907、および908を現在選択された接続点で実行することによって処理が為される。
【0147】
もしも第1の構造要素のすべての該当接続点が処理されており、かつその位置が拒絶されなかった場合、その位置が受容され、本処理法は工程910に続く。工程910では、保存された接続性結果に基づいてどのようにして構造素子を接続するかが判定され、したがってそれらのそれぞれのデータ構造が更新される。これは図10に関連してさらに詳しく述べられるであろう。いったんデータ構造が更新されると、この部分工程が終了し、図8の全体的処理法へと戻る。
【0148】
図10は接続された構造要素を表現するデータ構造を更新する部分工程910の実施形態のフロー図を示している。この更新は、第1および第2の構造要素の境界体積の交差部のすべての該当接続点について判定された接続性結果に基づいている。
【0149】
最初に工程1001で、すべての接続性結果が「空洞」であるかどうかがチェックされる。もしもそうであれば、すなわちもしもこの構造要素の位置を妨げるものは無いがこの構造要素を接続するように実際に係合する接続素子も無い場合、新たな構造要素はその現在の位置で許容される。
【0150】
用途に応じて、第1および第2の構造要素のデータ構造は更新されることが可能である。構造要素は実際に接続されないので、第1の構造要素が第2の構造要素と組み合わされて組み合わせの境界体積などを有する組み合わされた構造要素になるはずがないことが好ましい。
【0151】
一実施形態では、追加的なアルゴリズムが、例えば境界体積に基づいて、この位置に置かれた物理的ビルディング・ブロックが落下するかどうか、傾斜するかどうかなどを決定し、したがってその位置を許容するかまたは拒絶する。
【0152】
そうでない場合、例えばもしも1つまたは複数の接続性結果が真であれば、本処理法は工程1002に進み、そこで本処理法は構造要素がどのようにして接続されるか、すなわちそれらが固く接続されるか、または接続が相対的な回転、平行移動などを許容するかを判定する。
【0153】
図1a〜eの実施形態では、もしも正確に1つの接続結果が真であって他のすべてが空洞であれば、接続のタイプに応じて回転および/または平行移動が可能であり得る。さらに、もしも複数の接続結果が真であり、対応する接続点がすべて共通の線上にあれば、回転および/または平行移動が可能であり得る。
【0154】
もしも非固定型の接続が検出されると、本処理法は工程1005に続き、第1と第2の構造要素は、それぞれの基準座標系、境界体積などをそれぞれが有するそれぞれのグループへと割り振られ、それにより、構造要素のグループの多様な相対的位置および/または配向をモデル化することが可能となる。そのような状況は図7に関連して例示された。
【0155】
それゆえに、構造要素の接続された構造は構造要素のいくつかのグループを含むデータ構造によって記述されることが可能である。或るグループは、すべての構造要素のすべての接続点が同じ直交格子の格子点となる方式ですべての構造要素が固く接続される構造である。構造要素の各々のグループは1つまたは複数の構造要素を含み、そこではこのグループが共通の直交座標系(格子)、境界体積、およびそのグループの構造要素の接続性格子を決定する。
【0156】
もしも工程1002で固定式の接続が検出された場合、本処理法は工程1003に続く。上記で図6に関連して述べられたように、第1および第2の構造要素の1つまたは複数の接続点は接続に起因してそれらの接続性を変える可能性がある。それゆえに、工程1003で第1および第2の構造要素のそれらの接続点が検出され、それらは同じ位置および同じ方向を有する。それらの組み合わされた接続点について、上記で表2に関連して述べられたように、結果的に生じた接続タイプは保存された組み合わせ表1006で調べられる。
【0157】
最後に工程1004で、第2の構造要素のデータ構造が第1の構造要素から得られる情報で更新され、すなわち第2の構造要素の境界体積が第1と第2の構造要素の境界体積の合併であるように更新され、接続性格子は第1の構造要素の接続点もやはり含むように更新される。
【0158】
図8、9、および10の処理工程を繰り返すことによって、複数の構造要素が、幾何学的対象物のデジタル・モデルを形成するように組み合わされることが可能である。それゆえに、上記で、幾何学的対象物のデジタル・モデルを作り出すための方法が開示された。
【0159】
本発明の範囲内で当業者が上記の方法の変形例を実行することが可能であることは理解される。例えば、上記の工程のうちのいくつかの順序が変えられることが可能であり、工程が組み合わされることが可能である等々である。
【0160】
さらに、不正確な設置に起因する、例えば同じ位置で接続点が見当たらないという理由、または接続点が正確に反対の方向を有さないという理由による新たな構造要素の位置の拒絶は、単純な拒絶ではなくさらなる処理へとつながることが可能である。一実施形態では、受容可能な位置が達成されることが可能であるかどうかを決定するために仮説に基づいた隣接位置またはわずかな移動が分析されることが可能である。これが結果として、予め決められた限度内で、構造要素が受容可能な位置を提供する最も近い位置にはまり込むことにつながることが可能である。
【0161】
さらに、多少の自由度、したがって複雑さをモデル化システムに与えるために、追加的な限定が課されることが可能であり、あるいは他の限定が緩和されることが可能である。
【0162】
構造要素が構造から外されると、例えば対応するユーザの命令に応答して、そのデータ構造は組み合わされたデータ構造から外される。一実施形態では、これは残りの構造要素の組み合わされたデータ構造を計算し直すことによって実施される可能性がある。
【0163】
図11は、本発明の実施形態に従って幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すためのデータ処理システムを示している。
1101で指定されるコンピュータ・システムは、本発明に従って幾何学的構造の設計、記憶、操作、および共有を容易にするように構成される。コンピュータ・システム1101は独立型システム、またはクライアント/サーバ・システムのクライアントとして使用されることが可能である。このコンピュータは、部分的に揮発性および不揮発性のメモリ手段、例えばハードディスクおよびランダム・アクセス・メモリ(RAM)として導入されるメモリ1102を有する。このメモリはモデル符号インタプリタ1107、モデル符号発生部1108、UIイベント処理部1109、中央演算処理装置1103によって実行可能なモデル化アプリケーション1110を含む。さらに、このメモリはモデル・データ1111を含む。
【0164】
符号インタプリタ1107は本発明に従ってモデルを規定する符号、すなわちモデルの構造要素のデータ構造を表わす符合を読み取って解釈するように構成される。好ましい実施形態では、符号インタプリタは本発明に従ってモデルを読み取り、コンピュータ・ディスプレイ上に表わすためにそのようなモデルを知られているグラフィック書式へと変換するように構成される。対象物のモデルを表現するための上述のデータ構造に基づいて、この変換はグラフィック計算の分野でよく知られているグラフィックの原理を適用することで当業者によって実行されることが可能である。
【0165】
UIイベント処理部1109はユーザ・インターフェースとのユーザの対話を符号発生部1108で識別可能な適切なユーザ命令へと変換するように構成される。可能性があり、かつ識別可能な命令のセットは、要素のライブラリから構造要素を得る命令、他の構造要素に接続されるべき構造要素を配置する命令、構造要素を切り離す命令、構造要素を廃棄する命令、例えば回転などを開始することによって構造要素、構造要素のグループを操る命令を含むことが可能である。各々の命令と共にそれぞれのパラメータ、例えば構造要素の座標、タイプなどの付随のセットが存在することが可能である。
【0166】
符号発生部1108は上述のように本発明に従って、かつユーザ命令に応答して実際のモデルを記述するデータ構造を変更するように構成される。同時発生または引き続いて生じる作業として、符号インタプリタは符号発生部の結果を表わすために実行されることが可能である。
【0167】
モデル化アプリケーション1110はメモリ、ファイル、ユーザ・インターフェースなどを制御するように構成される。
【0168】
ユーザ1105はユーザ・インターフェース1106によってコンピュータ・システム1101と対話することが可能である。
【0169】
モデル、幾何学的表現、または他のデータをロードするために、コンピュータ・システムは入出力(I/O)ユニット1104を有する。入出力ユニットは多様なタイプの記憶媒体および多様なタイプのコンピュータ・ネットワーク、例えばインターネットへのインターフェースとして使用されることが可能である。さらに、入出力(I/O)ユニット1104はモデルを他のユーザと、例えば対話式で交換するために使用されることが可能である。
【0170】
メモリ1102、中央演算処理装置(CPU)1103、ユーザ・インターフェース(UI)1106、および入出力ユニット1104の間のデータ交換はデータ・バス1112によって達成される。
【0171】
図12aは本発明の第1の実施形態による、傾斜表面および対応する境界体積を備えたビルディング・ブロック、例えば図2aのビルディング・ブロック202の側面図を示している。ビルディング・ブロック202は傾斜表面204、およびビルディング・ブロック最上部のノブ1201を有する。この範例によると、ビルディング・ブロック202の表現は境界体積の階層を有する。第1の境界体積1202は傾斜表面を含み、その一方で第2の境界体積1203は互いに直交する側部を備えたボックスである。この範例によると、境界体積1203が他のビルディング・ブロックの対応する境界体積と交差部を有する場合にのみ2つのビルディング・ブロックは接触していると検出される。境界体積1202は接続されると考えられるビルディング・ブロックの初期の効率的な検出のために使用されることが可能である。ビルディング・ブロック202の表現が、図1a〜bに関連して述べられたように接続素子を含む境界体積のような追加的な境界体積を含むことが可能であることは理解される。
【0172】
図12bは本発明の第2の実施形態による、傾斜表面および対応する境界体積を備えたビルディング・ブロック202の側面図を示している。上記の範例のように、このビルディング・ブロック202の表現は境界体積の階層を有する。しかしながら、この範例によると、この表現は、傾斜表面を備えた境界体積ではなく階段関数に似た形状を有する境界体積1204を含み、それにより、傾斜表面の近似を与えている。
【0173】
上記の方法およびシステムは物理的モデルを設計するためのコンピュータ・アプリケーション、例えば物理的構造要素の対応するセットの接続性の挙動をシミュレートするコンピュータ・アプリケーションに関連して応用されることが可能である。例えば、物理的玩具構造セットが前記構造セットのデジタル・バージョンによって補完されることが可能であり、それにより、利用可能な構造要素の数を限定することなくユーザ、例えば児童が模型をデジタル設計することを可能にし、遊び体験の面白さを提供する。物理的構造セットの複雑な接続性特性でさえ現実的にモデル化することを可能にし、同時に効率的なモデル化方法を提供する方法とシステムを提供することが本発明の利点である。その結果、ユーザは構造要素の提案の位置が構造セットの接続法則に対応するかどうかをコンピュータが判定するのを待つことを必要とせずに対話式のデジタル構造化処理を体験する。
【0174】
本方法はさらに、設計されたモデルの特性を分析すること、構造化命令を作り出すことなどに応用されることが可能である。概して、本方法はコンピュータ・ゲーム産業、および予め決められた3D要素が複数の接続法則に従って一体に置かれなければならない他のコンピュータ・グラフィックスの領域すべてで応用されることが可能である。
【図面の簡単な説明】
【0175】
【図1a】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1b】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1c】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1d】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1e】本発明の一実施形態による構造要素の表現を示す透視図である。
【図2a】構造要素およびそれらの接続素子の範例を例示する図である。
【図2b】構造要素およびそれらの接続素子の範例を例示する図である。
【図2c】構造要素およびそれらの接続素子の範例を例示する図である。
【図2d】構造要素およびそれらの接続素子の範例を例示する図である。
【図3】ビルディング・ブロックおよびそれに対応する2つの接続性格子を示す透視図である。
【図4】図3のビルディング・ブロックの上面図である。
【図5a】各々が構造要素の表面の接続点を表わすデータ構造を例示する図である。
【図5b】各々が構造要素の表面の接続点を表わすデータ構造を例示する図である。
【図6】エッジからエッジへの延長状態にある2つの構造要素を示す上面図である。
【図7】構造要素の2つの接続されたグループを有する構造要素を示す透視図である。
【図8】幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法の中で構造要素を配置する方法を示すフロー図である。
【図9】本発明の実施形態による、デジタル構造要素を他のデジタル構造要素へと接続する方法を示すフロー図である。
【図10】接続された構造要素を表わすデータ構造を更新する部分的方法を示すフロー図である。
【図11】本発明の実施形態による、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すためのデータ処理システムを示す図である。
【図12a】傾斜表面を備えたビルディング・ブロック、および対応する境界体積の範例を示す側面図である。
【図12b】傾斜表面を備えたビルディング・ブロック、および対応する境界体積の範例を示す側面図である。
【技術分野】
【0001】
本発明は、予め規定された幾何学的要素によるバーチャル・リアリティのコンピュータ支援モデル化の分野に関する。
【背景技術】
【0002】
バーチャル・リアリティのコンピュータ支援モデル化は幾何学的対象物のモデルを作り出し、そのモデルを解釈し、そのモデルを操作し、そうでない場合はコンピュータ・システムの中で幾何学的対象物のモデルを扱う作業である。
【0003】
第1の観点から見ると、バーチャル・リアリティのモデル化は、現実の世界に導入する前にアイデアを可視化することを可能にするという点で興味深い主題である。もしもバーチャル・リアリティのモデルが十分に変更を加え易ければ、現実世界で同じ処理が実行されなければならなかった状況と比較して幾何学的対象物を開発して洗練する処理で多くの時間が節約されることが可能である。現実世界で対象物を描き出す単純な作業は数時間は簡単にかかるが、それに対してコンピュータは数ミリ秒または数秒以内に新たな色彩を塗布してモデルを可視化することが可能である。
【0004】
第2の観点から見ると、バーチャル・リアリティのモデル化は、現実世界に存在する対象物のモデルを作り出し、コンピュータを介してそのモデルを可視化し、ある意味で操作することを可能にするという点で興味深い。その結果、現実世界の対象物のモデルは多様な目的で、例えば改善された文書作成のために保存されることが可能である。
【0005】
コンピュータ支援型のバーチャル・リアリティのモデル化に関して膨大な量の考え得る用途が存在するけれども、特別な用途は娯楽または教育にバーチャル・リアリティのモデル化を使用することである。
【0006】
物理的構造の玩具セットの様々なタイプのモデル化概念はそれ自体知られている。特に、モジュールもしくは半モジュールを使用する概念は有名であったし今もそうである。通常、これらの概念は予め作成された要素のセットを供給し、それらは予め作成された要素のモジュールに従って何らかの予め決められた方式で互いに相互接続されることが可能である。予め作成された要素は特定のモデル化作業に適したよく知られている対象物に類似している。したがって、例えば家屋のモデルを構築する場合、それらの要素はブロック、屋根瓦、ドア、および窓に類似している。この方式で要素を選択する目的は、新しいモデルが作成されなければならない度に家屋のすべての細部が規定される状況と比較して家屋のモデルの構築に含まれる作業が大幅に減らされることである。しかしながら、家屋または他の対象物を構築する完全な自由度はモデルを構築する簡易性と交換される。
【0007】
予め規定された要素を有するこの手法はコンピュータ支援型バーチャル・リアリティのモデル化の技術ではよく知られている。また、互いに相互接続されることが可能なモジュール要素を有する概念もよく知られている。しかしそれがコンピュータ内でのそのようなモデルの表現に至ると、予め規定された要素およびモジュール・システムを有する概念の便宜は先行技術では完全に達成されない。
【0008】
コンピュータ支援型設計およびモデル化にコンピュータが使用されてきた以上、大きな計算努力を必要とする作業はどのようにモデルが見えるかの計算を含めたモデルの可視化と操作であった。その理由の1つはバーチャル・リアリティ・モデルの複雑さおよび微調整が最近利用可能なコンピュータ技術および計算能力に従って拡大されてきたことである。
【0009】
モデルを表現するデータの転送および交換に至ると、バーチャル・リアリティ・モデルの複雑さおよび微調整の欠点が極めて明確に現れる。現在、記憶ユニットまたはコンピュータ通信ネットワークの形式のいくつかのタイプの外部ユニットがコンピュータに接続され、その結果、モデルを記憶し、ロードおよび/または送信し、受信するための信号経路を拡張する。通常、そのような信号経路は単独のコンピュータ内の信号経路と比較して相対的に低い帯域幅を有する。したがって、モデルを表現するための効率的な仕組みが必要とされる。
【0010】
特に、コネクタとそれに対応するレセプタといった接続素子を介して互いに相互接続されることが可能な予め規定された要素もしくは構成要素のモデルを作り出す背景では、互いに相対して或る位置に置かれたときに2つの要素が接続可能であるかどうかという全般的問題が発生する。物理的対象物の現実的モデルを作り出すために、例えばバーチャル・モデルが、モデル化される対象物の支持部品に接続されることなく表面よりも上に浮き出るどのような要素も有さないことを確実化するために、接続性の情報は重要な情報である。
【0011】
殆どの現実世界の構造セットで、多様な方式で相互接続される可能性のある極めて多様な異なる構造要素が存在する。
【非特許文献1】David H.Eberly、「3D Game Engine Design」、Morgan Kaufmann、2001年
【発明の開示】
【発明が解決しようとする課題】
【0012】
それゆえに、様々な異なる構造要素が相互接続されることが可能である、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法を提供することが本発明の目的である。
【0013】
構造要素が様々なあり得る方式で相互接続されることが可能である、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法を提供することが本発明のさらなる目的である。
【課題を解決するための手段】
【0014】
上記およびその他の問題は複数の相互接続可能な構造要素から構築された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法によって解決され、そこでは各々の構造要素がその構造要素を他の構造要素と接続するためのいくつかの接続素子を有し、この方法は、
・複数の構造要素のうちの第1の1つまたは第2の1つをそれに対応する第1および第2のデータ構造として符号化する工程であって、それらの各々が対応する構造要素の接続素子を表わし、接続素子の各々がそれに付随して複数の予め決められた接続タイプのうちの1つを有する工程と、
・互いの予め決められた近隣内に配置された第1の構造要素の第1の接続素子および第2の構造要素の第2の接続素子を判定する工程と、
・第1および第2の接続素子が第1と第2の構造要素の間の接続を与えるかどうかを示す第1および第2の接続素子の対応する接続タイプの接続性情報を取り出す工程とを含む。
【0015】
モジュールの玩具構造要素もしくは複数要素から成る対象物を表現するために都合の良いモデル構造とモデル構造の表現提供することが本発明の利点である。
【0016】
極めて多様な構造要素の接続をモデル化するための方法を提供することが本発明のさらなる利点である。
【0017】
異なるタイプのノブ、穴、チューブ、ヒンジ、エッジ、シャフトなどといった極めて多様な異なる接続素子の接続をモデル化するための方法を提供することが本発明のなおもさらなる利点である。接続のタイプを有する複数の接続素子を供給することによって、構造要素の接続特性の表現が与えられ、それは実際のコネクタの正確な幾何学形状とは無関係である。
【0018】
特に、極めて多様な異なる接続素子の接続をモデル化するための方法が与えられ、それが物理的接続素子の外見およびそれらの構造と無関係であることは利点である。
【0019】
それゆえに、異なるタイプの接続素子を含む異なる予め決められた構造要素の大規模なセットがモデル化されることが可能である。
【0020】
構造要素という用語は、それを1つまたは複数の他の構造的要素へと接続するための接続素子を有するどのようなタイプの構造的要素も含み、物理的対象物を作り出すことが可能であり、コンピュータ上でデジタル式に表現されることが可能である。構造要素の範例は構造玩具セットの要素、例えば積み木などのようなビルディング・ブロックを含む。構造要素という用語はさらに、相互接続されたさらに小さい構造要素の集合体、例えば2つ以上の接続された積み木も含む。
【0021】
一実施形態では、接続のタイプがいくつかの接続グループ、例えばコネクタ、レセプタ、および混合素子へとグループ化される。コネクタは他の構造要素のレセプタによって受け入れられ、それによって構造要素間の接続を供給する接続素子である。例えば、コネクタは他の要素の部分間を嵌合し、穴などに入ることが可能である。レセプタは他の構造要素のコネクタを受け入れることが可能な接続素子である。混合素子はレセプタおよびコネクタの両方として機能することが可能な部品であり、通常、他の構造要素の協同作用する接続素子のタイプに応じて決まる。
【0022】
互いに対して回転されることが可能な異なる表面もしくは平面に沿った接続をモデル化するための方法を提供することが本発明のなおもさらなる利点である。
【0023】
可動部分および/または回転することが可能な部分を有する複雑な対象物のモデル化を可能にする、幾何学的対象物のモデルのコンパクトな表現を提供することが本発明のなおもさらなる利点である。
【0024】
幾何学的対象物のモデルのコンパクトな表現を提供することが本発明のなおもさらなる利点である。
【0025】
極めて高速で作成と解釈を行なうことが可能なモデル構造およびモデル構造の表現を提供することがなおもさらなる本発明の利点である。
【0026】
可視化を受けるモデルが作り出されるかまたは操作されるときの相対的に低い帯域幅の必要性および低い処理時間という意味で、コンピュータ・ネットワークを経由して配信されるために都合の良いモデル構造の表現を提供することがなおもさらなる本発明の利点である。
【0027】
本発明の好ましい実施形態では、本方法は接続タイプの対の接続性情報を含む接続表を供給する工程をさらに含み、接続性情報を取り出す工程が、この接続表から接続性情報を取り出す工程を含む。
【0028】
接続表という用語は接続タイプの対に関する接続性情報を保存するためのどのような適切なデータ構造も含むように意図されている。例えば、そのようなデータ構造は接続タイプの対によって索引を付けられるルックアップテーブルであることが可能である。
【0029】
接続表を供給することによって、接続タイプの対に関する接続性情報を保存するための効率的で拡張可能なデータ構造が与えられる。さらに、高速の接続性検出が可能にされる。
【0030】
本発明の別の好ましい実施形態では、それぞれのデータ構造の各々は対応する構造要素に相対したいくつかの格子をさらに表現し、各々の格子がいくつかの格子点を有し、構造要素の接続素子の各々が格子点のうちの1つと関係し、対応する接続タイプを有する。
【0031】
それゆえに、関連する接続タイプを有する格子点を備えた正方形格子、三角形格子などといった格子構造を供給することによって、様々な接続素子の例えばサイズ、形状、接続特性などのような様々な特性は格子点の各々に付随する1つまたは複数の属性へと削減されることが可能である。その結果、構造要素の接続特性の効率的な表現が達成される。
【0032】
接続素子を格子点と関連付けることによって、2つの接続素子が互いに予め決められた近隣にあるかどうかの特に単純な検出が可能である。例えば、一実施形態では、構造要素が共通の個別体積基準格子内に配置され、すべての座標が任意の長さ単位の倍数である場合、2つの接続素子が予め決められた近隣の中にあると考えられるためには座標の正確な一致が必要とされる可能性がある。連続的もしくは外見上連続的な基準座標系内では、格子点が予め決められた限度内で一致すること、すなわちそれらが互いに予め決められた近接の形式で配置されることが必要とされる可能性がある。近接のサイズはモデル化される物理的接続素子のタイプ、例えば接続のためにそれらが実際にどのように協同作用するかということ、および実行されるべき構造要素の配置の制度に応じて決めることが可能である。
【0033】
それに沿って構造要素が他の構造要素へと接続され得る各々の平面が格子区分、例えば格子区分の各々が中心に格子点を有する場合には正方形へと分割されることが好ましい。
【0034】
各々の接続素子がそれに関連する方向性を有し、その方向で接続素子がそれに対応する接続素子と係合し得ることを示すことが好ましい。
【0035】
すべての接続素子は共通平面に配置され、近隣格子点間で予め決められた距離を備えた直交格子の区分に対応する共通の方向性を有することがさらに好ましい。構造要素のうちのすべての構造要素の接続素子が予め決められた規則に従って構造要素に配置され、各々の接続素子が対応する格子点と関係することを可能にすることが好ましい。
【0036】
しかしながら、異なる非平行平面上の接続素子がそれぞれの格子点間で同じ距離を有する必要がないことに留意されたい。例えば、水平面上の接続素子間の距離は垂直平面上の接続素子間の距離とは異なることが可能である。
【0037】
さらに、接続素子を予め決められた格子点と関係付けることによって、第1の構造要素の接続素子が第2の構造要素の接続素子の予め決められた近接内にあるかどうかの判定が効率的な方式で実行されることが可能となり、なぜならばその判定が近接格子点を識別することに限定されることが可能となるからである。
【0038】
別の好ましい実施形態では、本方法はさらに
・接続タイプの対の予め決められたセットの各々について結果的に生じる接続タイプを含む組み合わせ表を供給する工程と、
・予め決められた幾何学的関係で互いに配置される第1と第2の接続素子を判定する工程と、
・第1と第2の接続素子の結果的に生じた接続のタイプを組み合わせ表から取り出す工程と、
・取り出された結果的に生じた接続のタイプを少なくとも1つの結果的に生じた接続素子へと割り当てる工程を含む。
【0039】
それゆえに、接続素子の接続のタイプが動的である、すなわちそれらは構造要素がおかれる幾何学的背景に応じて変えられることが可能であり、それにより、物理的構造要素の接続特性のさらに現実的なモデル化を提供することが好都合である。特に、第1の構造要素の第1の接続素子と第2の構造要素の第2の接続素子は、予め決められた幾何学的関係で互いに配置されると個々の接続素子とは異なる接続特性を協同して提供する。
【0040】
第1と第2の接続素子の協同効果はしばしばそれらの相互の幾何学的関係、すなわち接続素子が互いに関して配置される方式、例えばどの程度接近してそれらが互いに配置されるか、どのような相対的配向でそれらが互いに配置されるか、などによって決まるであろう。一実施形態では、これは第1と第2の接続素子が互いから予め決められた近接内で配置されるかどうかを判定することによってモデル化され、もしもそれらが互いからそのような近接で配置されるならば、判定された結果となる接続タイプを第1と第2の接続素子に割り当てる。
【0041】
データ構造の中で、これは結果となる接続のタイプを少なくとも結果となる接続素子へと割り当てることによって表わされる。一実施形態では、結果となる接続素子は第1と第2の接続素子のうちの一方である。さらなる好ましい実施形態では、結果となる接続のタイプは第1と第2の接続素子の両方に割り当てられる。
【0042】
もしも対応する構造要素が、接続素子がもはや必要な幾何学的関係に置かれないように再配置されると、第1と第2の接続素子が再割り当てされたそれらのそれぞれの元の接続タイプを有することがさらに好ましい。
【0043】
別の代替選択肢となる実施形態では、結果となる接続素子は新たな接続素子である、例えば第1と第2の接続素子の位置に関係する或る位置を有するように規定されることが可能である。
【0044】
いくつかの実施形態で、2つ以上の接続素子が組み合わされて結果となる接続のタイプを生じさせることが可能であることは理解される。
【0045】
組み合わせ表という用語は接続タイプの対について結果となる接続タイプを保存するためのどのような適切なデータ構造も含むように意図されている。例えば、そのようなデータ構造は接続タイプの対によって索引を付けられるルックアップテーブルであることが可能であり、ルックアップテーブルの各々の記載事項は接続素子の対の組み合わせから結果的に生じる結果的接続タイプを含み、各々の接続素子は対応する接続タイプの対のうちのそれぞれ1つを有する。
【0046】
組み合わせ表を供給することによって、接続素子の接続タイプがそれらの他の接続タイプとの組み合わせのせいでどのように変わり得るかについて情報を保存するために効率的で拡張可能なデータ構造が供給される。
【0047】
特に、バーチャル・ビルディング・ブロックのケースでは、頻繁に生じる状況は2つのビルディング・ブロックが互いに隣り合って、すなわちエッジからエッジへと延びて配置される配座であり、それにより、隣接するビルディング・ブロックのエッジ上の接続素子が特性を変える。
【0048】
さらなる好ましい実施形態では、この状況は構造要素に付随する格子の各々が少なくとも1つの格子エッジを有するときに効率的にモデル化され、本方法はさらに
・接続タイプの各々の対に関する結果となる接続タイプを含む組み合わせ表を供給する工程と、
・第1の構造要素の第1の格子が第2の構造要素の第2の格子とエッジからエッジへの延長で置かれており、第1の格子の第1のエッジが第2の格子の第2のエッジと位置合わせされているかどうかを検出する工程と、
・第1の格子の第1の接続素子に関して、第2の格子の対応する第2の接続素子を識別する工程と、
・第1と第2の接続素子の組み合わせの結果となる接続タイプを組み合わせ表から取り出す工程と、
・取り出された結果となる接続タイプを第1と第2の接続素子に割り当てる工程を含む。
【0049】
エッジのうちのそれぞれ1つが互いに密に近接するかまたは互いに接触すらして構造要素が互いに隣り合って置かれると、対応するエッジ上の接続素子が他方の構造要素の対応するエッジ上、もしくは近くの接続素子のタイプに応じてその特性を変えることが可能である。
【0050】
接続タイプの各々の対に関する結果となる接続タイプを含む組み合わせ表を供給することによって、および結果となる接続タイプを構造要素のエッジ上の接続素子に割り当てることによって、エッジからエッジへの延長が検出されれば、協同している構造要素の複雑な接続特性でさえモデル化されることが可能である。
【0051】
エッジからエッジへの延長という用語は、対応する格子が組み合わされる格子に結合するように互いに隣り合って置かれた2つの格子の配置を含む。それゆえに、エッジからエッジへの延長という用語は、平行したそれぞれの格子エッジ、およびエッジに近い格子点が一致するように平行格子エッジに沿って予め決められた重なりを有する2つの平行の格子を含む。
【0052】
本発明の別の好ましい実施形態では、それぞれのデータ構造の各々はさらに、対応する構造要素の境界体積を表わし、格子の各々は境界体積の表面に対応する。
【0053】
それゆえに、格子が境界体積の表面に対応する構造要素に関して境界体積を供給することによって、たとえ構造要素が複雑な形状を有していても各々の構造要素は少数の格子によって表わされることが可能である。それゆえに、構造要素の形状の複雑さが接続タイプへと翻訳され、それが順々に属性として境界体積の表面に関連する格子点へと結び付けられるので、2つの構造要素の協同する接続素子の効率的な検出が達成されることが可能である。
【0054】
さらに、知られている衝突検出アルゴリズムを使用することによって、境界体積は隣接する構造要素の検出のために効率的な表現を与える。
【0055】
境界体積は互いに直行する側部を有する境界ボックスであることが可能であり、あるいは境界体積は異なる形状を有する。
さらなる好ましい実施形態では、本方法はさらに
・第1および第2の構造要素のそれぞれの位置を共通の体積基準格子に関して符号化し、対応する第1と第2の構造要素の第1と第2の格子が体積基準格子の第1と第2の平面にそれぞれ対応し、第1と第2の格子の格子点が体積基準格子のそれぞれの基準格子点に対応する工程と、
・第1と第2の格子が体積基準格子の共通平面に対応するかどうか、および第1の格子の少なくとも第1の格子点が第2の格子の第2の格子点と同じ基準格子点に置かれているかどうかを検出する工程とを含む。
【0056】
それゆえに、体積基準格子、例えば立方体の体積格子を供給することによって、および表面格子を基準体積格子の平面として規定することによって、隣り合う格子点の特に効率的な検出を可能にする特に単純なデータ構造が与えられる。
【0057】
境界体積は体積基準格子に関する平面として規定されることが好ましい。一実施形態では、それらは体積基準格子の格子平面と一致することが可能であり、場合によっては、体積基準格子の格子平面間の平面として規定されることが可能である。
【0058】
本発明のまたさらなる好ましい実施形態では、本方法はさらに
・第1の格子と第2の格子の一致する格子点のすべての対を識別する工程と、
・識別された格子点の対の各々について接続性の表から接続性情報を取り出す工程と、
・少なくとも1つある格子点対が無効な接続に対応していれば第1と第2の構造要素の間の接続を否定し、そうではなく少なくとも1つある格子点対が有効な接続に対応していれば第1と第2の構造要素の間の接続を受け容れる工程とを含む。
【0059】
それゆえに、2つの隣り合う構造要素が相互接続されることが可能であるかどうかを検出するための効率的な方法が提供される。一致する格子点という用語は同じ座標を有する格子点を含む。構造要素が個別の基準格子に配置され、すべての座標が任意の長さ単位の倍数である一実施形態では、座標の正確な一致が必要とされる、すなわち格子点が共通の基準格子点に置かれる。連続的もしくは外見上連続的な基準座標系では、格子点は予め決められた限度以内で一致することが要求される可能性がある。
【0060】
接続素子の各々が付随の方向性をさらに有するとき、さらなる属性が各々の格子点に関連付けられ、それにより、さらなる自由度を提供する。
【0061】
接続性情報という用語は、接続タイプの対の接続特性、例えば接続タイプの所定の対に関してこれらの接続タイプの2つの接続素子が接続を提供するかどうか、それらは接続を不可能にするかどうかについての情報を含むように意図されている。好ましい実施形態では、接続性情報は予め決められたグループの接続性タイプのうちの1つを示す接続タイプの各対に関するインジケータを含み、そのグループは対応する接続素子の対の間の接続を提供する有効接続、対応する接続素子の対の間の接続を妨げる無効接続、および中立の接続で構成される。
【0062】
中立の接続という用語は、互いから予め決められた近接内に置かれると対応する2つの構造要素を接続するように協同しないが、しかしそのような配置をどちらも妨げない接続タイプの対を含む。
それゆえに、可能な相互接続の効率的な符号化が提供される。
【0063】
本発明のなおも別の好ましい実施形態では、予め決められた近接で互いに配置された第1の構造要素の第1の接続素子と第2の構造要素の第2の接続素子を判定する工程はさらに、予め決められた接続素子のサブセットから第1と第2の接続素子を判定する工程を含む。それゆえに、接続素子の当該の対を判定するために接続素子のサブセットだけが検索されることを必要とし、それにより、本方法の効率を上げる。
【0064】
さらなる好ましい実施形態では、それぞれのデータ構造の各々はさらに、対応する構造要素の境界体積も表わす。本方法はさらに、第1と第2の構造要素の境界体積の交差部を検出する工程を含み、予め決められた接続素子のサブセットから第1と第2の接続素子を判定する工程は判定された交差部に含まれる接続素子から第1と第2の接続素子を判定する工程を含む。それゆえに、当該接続素子のサブセットは潜在的に接続を提供することが可能な接続素子として判定されるが、なぜならばそれらは境界ボックスの交差部に含まれるからである。
【0065】
新たなタイプの構造要素および新たなタイプの接続素子でさえも組み入れるように容易に拡張されることが可能なデータ構造とアルゴリズムを提供することが本発明のさらなる利点である。例えば、異なるタイプの既存の玩具構造要素の2つのセットの接続性特性は、異なる玩具構造セットの構造要素が互いに相互接続され得るように組み合わされることが可能である。
【0066】
たとえ多数の構造要素を含むモデルを作り出すときでさえ、大きな記憶容量を必要としないデータ構造を提供することが本発明のさらなる利点である。
【0067】
2つ以上の構造要素が接続されるかどうかを検出する効率的な方法を提供し、それにより、構造要素が相互接続されるかどうかを判定するためにコンピュータが必要とする処理時間を削減することが本発明のさらなる利点である。これは、ユーザが構造要素を2つ互いに相対して位置決めすることが可能な対話式コンピュータ・プログラムで特に重要な特徴であり、なぜならばこの状況ではモデルの構造要素の配置もしくは除去から接続性特性の判定までの短い応答時間が必要とされるからである。
【0068】
本発明は、上述および下記の方法、システム、およびさらなる製品手段を含めた多様な方式で実施されることが可能であり、最初に述べた方法に関連して述べられた利点および長所のうちの1つまたは複数を各々が生じ、最初に述べた方法に関連して述べられ、かつ従属請求項に開示された好ましい実施形態に対応する1つまたは複数の好ましい実施形態を各々が有する。
【0069】
本発明はさらに、
・構造要素を他の構造要素と接続するためのいくつかの接続素子を各々が有する複数の相互接続された構造要素から構築された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すための手段と、
・複数の構造要素のうちの第1の1つおよび第2の1つを、対応する構造要素の接続素子であって各々がそれに付随して複数の予め決められた接続タイプのうちの1つを有する接続素子を各々が表わす対応する第1と第2のデータ構造として符号化するための手段と、
・予め決められた近接で互いに配置された第1の構造要素の第1の接続素子と第2の構造要素の第2の接続素子を検出するための手段と、
・第1と第2の接続素子が第1と第2の構造要素の間の接続を提供するかどうかを示す第1と第2の接続素子の対応する接続タイプの接続性情報を取り出すための手段とを含むデータ処理システムに関する。
【0070】
上述および下記で述べられる方法の特徴がソフトウェア中に導入され、コンピュータで実行可能な命令の実行によってデータ処理システムまたは他の処理手段の中で実行されることが可能であることに留意されたい。これらの命令は、記憶媒体から、またはネットワークを介して他のコンピュータからRAMのようなメモリにロードされるプログラムコード手段であることが可能である。場合によっては、記述した特徴はソフトウェアの代わりに配線接続された回路またはソフトウェアとそれの組み合わせで導入されることも可能である。
【0071】
本発明はさらに、上述および下記で述べられる方法を実行するように構成されたデータ処理システムに関する。
【0072】
本発明はさらに、コンピュータ上でそのプログラムが走ると上述および下記で述べられる方法の工程すべてを実行するためのプログラムコード手段を含むコンピュータ・プログラムに関する。
【0073】
本発明はさらに、コンピュータ上でそのプログラムが走ると上述および下記で述べられる方法を実行するためのコンピュータ読み取り可能な媒体上に保存されたプログラムコード手段を含むコンピュータ・プログラム製品に関する。
本発明は、好ましい実施形態と関連させ、かつ図面を参照しながら下記でさらに十分に説明されるであろう。
【発明を実施するための最良の形態】
【0074】
図1a〜eは本発明の一実施形態による構造要素の表現を示す透視図である。
図1aは構造要素101の表現を示している。構造要素101は、他のビルディング・ブロックの対応する穴に接続することが可能な2つのノブ102を103で指定される面の上に有する物理的ビルディング・ブロックのデジタル表現である。このビルディング・ブロックはさらに、面105からビルディング・ブロックの反対側の面へと貫通する穴104を有する。この穴は他のビルディング・ブロックの対応するコネクタを受け入れるように構成される。
【0075】
ビルディング・ブロック101のデジタル表現は図1a中で太線で表わされた境界体積106を有する。境界体積106はノブ102を有するビルディング・ブロック101の境界体積である。ビルディング・ブロックのこのデジタル表現はさらに、内部の右手座標系107に関して述べられる。座標系、特にその原点の位置と軸の方向の選択がどのような適切な慣例に従って選択されることも可能であることは理解される。それゆえに、対応するデータ構造の中でビルディング・ブロックの位置と配向は、外部の座標系、例えば他のビルディング・ブロックの座標系もしくは大域的な「ワールド」座標系に関する座標系107の原点座標と軸の方向によって表わされることが可能である。
境界体積は座標系107に相対して、例えば座標系107に関する2つの角110の座標によってデータ構造内に表わされることが可能である。
【0076】
図1bは、ビルディング・ブロックを含むがノブ102を含まない境界体積108を備えたビルディング・ブロック101の表現を示している。一実施形態では、異なるビルディング・ブロック間の衝突検出は両方のタイプの境界体積、すなわち図1aに示された境界体積106と図1bの境界体積108に頼っている。
【0077】
本発明によると、ビルディング・ブロックがそれに沿って他のビルディング・ブロックへと接続されることが可能な各々の平面は複数の正方形へと分割され、各々の正方形の中心に接続点を備える、すなわち正方形のエッジが隣り合う接続点間の半分の距離に対応する。
【0078】
図1cはビルディング・ブロック101を示しており、ビルディング・ブロックの1つの面上の接続素子の表現を例示している。この表現は2つのノブ102を有するビルデイング・ブロックの面103の平面に正方形の格子109を表わしている。この正方形格子はいくつかの正方形を含み、正方形130と格子点111によって例示されるように各々が格子点を中心として有する。各々の格子点は矢印、例えば格子点111の矢印112で示されるように付随の方向を有する。格子109の格子点の方向は外方向、すなわち座標系107のy軸の方向を指している。それゆえにデータ構造内で、格子109の表現は座標系107に関して予め決められた格子点、例えば格子点113の座標、座標系に関する格子点の方向、すなわち矢印114の方向、格子のサイズ、すなわちx方向とz方向それぞれでの正方形の数、および格子点の各々に関連する属性を有することが可能である。そのような表現の範例は下記でさらに詳細に述べられるであろう。
【0079】
図1dはビルディング・ブロック101の面103(図1dに図示せず)の反対側の面116の接続格子120を例示している。ビルディング・ブロックのこの面はエッジ118で規定される穴117およびいわゆる二次ピンと呼ばれる小さい中心ノブ119を有する。物理的ビルディング・ブロックのこれらの穴はノブ102のような他のビルディング・ブロックのノブを受け入れることが可能となるように配置され、それにより、2つのビルディング・ブロックを協同して接続する。本発明によると、矢印121で表わされるようにこれらの穴は格子120の対応する格子点によって表わされる。
この実施形態によると座標系の原点が格子点122に対応することが気付かれる。
【0080】
図1eは穴104を有するビルディング・ブロック101の面105の接続格子123を例示している。相応して、格子点124は穴104の接続性特性を表わす。
【0081】
ディスプレイ、例えばコンピュータ画面上にビルディング・ブロックを図解で表現するとき、境界体積、座標系、および格子は示される必要がない。図解表現はビルディング・ブロック自体の表現を含むだけである。
【0082】
図2a〜cは構造要素およびそれらの接続素子の範例を例示している。
図2aは2つのビルディング・ブロック201と202を示している。ビルディング・ブロック201はその上面に4つのノブ203、および底面(図示せず)に4つの対応する穴を有する積み木である。積み木202は互いに直交する平面を有する表面を備えたビルディング・ブロックの範例である。特に、ビルディング・ブロック202は傾斜面204を有する。図2aに例示されるように、それらの今の位置ではビルディング・ブロック201と202は接続されない。
【0083】
図2bは非長方形の上面と底面を有するビルディング・ブロック210を示している。底面は1つまたは複数の他のビルディング・ブロックの対応するノブを受け入れるための穴211、212、および213を有する。これらの穴はエッジ214、二次ピン215、ならびに角216と217によって規定される。それゆえに、上記の要素すべての特性がビルディング・ブロックの面の接続性特性を決定する。
【0084】
図2cはビルディング・ブロック221に接続され、それによって組み合わせビルディング・ブロックを形成するビルディング・ブロック220を例示している。ビルディング・ブロック220はその上面に、他のビルディング・ブロックの対応する穴に係合するノブ222を有する。しかしながら、図2cで例示されるように、同様に他の接続タイプも達成されることが可能である。ノブの間の隙間223はブロック221の側面224のような他のコネクタのためのレセプタとして機能する。物理的ビルディング・ブロックに関して、この特性は隙間の寸法とビルディング・ブロック221の寸法、すなわち側部の幅225によって決定される。本発明によるデジタル表現では、これらの特性は下記でさらに詳細に例示されるであろうが、接続点の対応する属性によって表わされる。
【0085】
図2dは、いくつかの積み木を含む他のビルディング・ブロックに対するビルディング・ブロックの無効接続を例示している。ビルディング・ブロック231は積み木232、233、234、235、236、および237を有する。各々のビルディング・ブロックが上述したようなノブ・コネクタと対ノブ・レセプタを有する。ビルディング・ブロック232、233、および236は上側ならびに側面にノブ・コネクタを有する。特に、ビルディング・ブロック232は側面にノブ238を有し、一方ビルディング・ブロック233は側面にノブ239を有し、ビルディング・ブロック236はその側面にノブ240を有する。
【0086】
図2dの範例では、ビルディング・ブロックの寸法のせいでそれらのノブおよび、したがってそれらの対応する接続点は規則的な格子を形成しない。その結果、もしもビルディング・ブロックが×印242、243、および244で示されるようなその接続点を備えて点線241で示される位置に置かれるように試みられると、有効な接続は不可能である。本発明による方法がどのようにしてこのタイプの状況を検出するかが下記で述べられるであろう。
【0087】
図3はビルディング・ブロックとそれに対応する接続性格子の透視図を示している。ビルディング・ブロック301は8個のノブ303a〜hを備えた上面302、対応する穴(図示せず)を備えた底面、および側面304を有する。図3では、上面と底面の接続性格子305と306がそれぞれ示されている。接続点は円307a〜kで例示されるような円によって具体的に示される。それゆえに接続点307a〜hはノブ303a〜hにそれぞれ対応する。側面304はどのような接続素子も有さないので、それらについて接続講師が規定される必要はない。別の代替選択肢となる実施形態では、空洞のレセプタだけを有する接続格子が側面に関して規定されることが可能である。
【0088】
図3から見受けられるように、規則的格子内に配置された接続点によるビルディング・ブロックの接続素子の表現は、物理的ビルディング・ブロック上の接続素子の物理的配置に一定の拘束条件を課す。
格子305はビルディング・ブロックの上面の平面内に配置され、そこからノブ303が延びる。
【0089】
図3の範例では、格子点が正方形格子内に置かれ、各々の正方形は任意の長さ単位(LU)の5×5単位の寸法を有する。それゆえに、この幾何学構造では、接続素子もやはり対応する正方形格子上に配置され、ビルディング・ブロックの平面内の接続素子間の距離は10LUの倍数である。図3の範例では、ビルディング・ブロックの上側表面と下側表面は長方形であり、20LU×40LUの寸法を有し、隣り合う接続素子は10LUで間隔を置かれる。
【0090】
他方で、垂直方向では、接続素子は12LUで間隔を置かれる。それゆえに、異なる寸法で格子寸法が変えられることが可能であり、それにより、上記の図2dに示されるような状況を生じさせることが可能である。
接続点の場所はビルディング・ブロックの内部座標系308に関して規定される。
【0091】
図4は図3のビルディング・ブロックの上面図を示している。接続性格子305が格子点を含めて示されている。図3の範例中の格子点の方向は図面平面から外を指している。
【0092】
一実施形態では、接続点の格子を表わすデータ構造は各々の接続点について、座標系308に関する接続点の座標、接続素子の方向、および接続性のタイプを含む。
【0093】
新たなビルディング・ブロックを設計するとき、ビルディング・ブロックのデジタル表現が作り出されることが必要である。図4の範例中の積み木は上部表面上の45個の接続点および底部表面上の45個の接続点を有する。接続点の各々について上記の値を特定することは時間を浪費し、誤りを生じがちな作業である。
【0094】
しかしながら、多くのタイプのビルディング・ブロックに関して接続点は規則的な構造で配置され、それにより、自動化されたデータ作成が可能になり、かつ好都合である。図4の範例では、接続点の座標は反復的に判定されることが可能であり、接続素子の方向は格子の接続点すべてについて同じである。
【0095】
それゆえに、好ましい実施形態では接続点の格子を表わすデータ構造は、
・座標系308に関する格子点401の座標。それゆえに図4の範例では格子点401のLUでの座標はP0=(−5,12,−15)であり、
・接続素子の方向、すなわち図4の範例では(0,1,0)、すなわち座標系308のy軸の方向、
・xおよびz方向での格子点の数、すなわち図4の範例ではそれぞれnx=9、nz=5。
・各々が対応する接続点の接続特性を含む5×9データ構造のアレイを含む。そのようなアレイの範例は下記で述べられるであろう。
【0096】
図4の範例では、各接続点の座標はi=0,...,4、j=0,...,8に関して(LUで)P0+(5i,0,5j)と表わされることが可能である。
その後、接続点の特性はiとjで索引を付けられる二次元のアレイCとして表わされることが可能であり、ここでC[0,0]は接続点401に対応し、C[i,j]は座標P0+(5i,0,5j)を備えた接続点に対応する。
【0097】
別の実施形態では、接続性格子の平面内で二次元座標系が定義されることが可能である。図4では、これは座標系402で具体的に示される。その後、二次元座標系はその原点401の座標およびビルディング・ブロックの内部座標系308に関する回転マトリックスによって表わされることが可能である。
【0098】
図5a〜bは、本発明の実施形態による、接続点を表わすデータ構造の範例を具体的に示している。
【0099】
図5aは図4のビルディング・ブロックの格子の接続点を表わすデータ構造を具体的に示している。このデータ構造は上述したような二次元アレイC[i,j]に対応する。各々のアレイ素子が接続タイプに対応する。例えば、ノブ(例えば図4のノブ303)はC[i,j]=Kと表わされ、2つのノブの間の隙間(例えば図4の隙間404)は「ダブルエッジ・ギャップ」と称され、C[i,j]=2EGと表わされ、4つのノブの中心の隙間(例えば図4の隙間405)は「チューブ・ギャップ」と称され、C[i,j]=TGと表わされる。ノブは他のビルディング・ブロックのレセプタ、例えば図2bに例示された穴212によって受け入れられることが可能なコネクタである。エッジ・ギャップは、例えば図2cに例示されるエッジかまたは図2bに例示されるエッジ211を受け入れることが可能なレセプタである。チューブ・ギャップは他のコネクタ、例えば適切なサイズのノブもしくはチューブを受け入れることが可能なレセプタである。
【0100】
ビルディング・ブロックの境界では他の接続タイプが生じる。角(例えば図4の角401)は、それらが4つの隣接から1つだけを有するチューブ・ギャップに対応するのでC[i,j]=1/4TGと表わされる。同様に、C[i,j]=1/2TGは4つのノブから2つをその周りに有するチューブ・ギャップ、例えば図4の接続点406を表わす。最後に、C[i,j]=EGは1つだけの隣接ノブを有するエッジ・ギャップ、例えば図4の接続点407に対応する。
【0101】
図4に描かれたそれのようであるが、しかし異なる数のノブを備えたビルディング・ブロックが図5aに示されたそれに類似した接続性のアレイに対応することは理解される。それゆえに、このタイプのビルディング・ブロックを表わすデータ構造はビルディング・ブロックの寸法を特定することによって自動的に作り出されることが可能である。
【0102】
概して、規則的な幾何学構造を有する構造要素については、接続性アレイの異なるタイプの数が例えば図3のビルディング・ブロックのように規則的なビルディング・ブロックの上部、側部、および底部の表面に関するアレイ・タイプで規定され得ることは理解される。その後これらのアレイ・タイプの例が類似した構造要素の様々な異なるタイプとサイズについて自動的に作り出されることが可能である。それゆえに、多様なビルディング・ブロックを表わすデータ構造が効率的な方式で作り出され得ることが利点である。
【0103】
図5bは図2bに示されたビルディング・ブロックの底面に対応する接続性のアレイを示している。ここで、C[i,j]=ECはエッジの角、例えば図2bの217に対応し、C[0,0]=ECに対応する。さらに、C[i,j]=Eは図2bのエッジ214のような「エッジ」に対応する。C[i,j]=3/4ECは図2bの角216によって例示されるような角に対応する。C[i,j]=AKは「対ノブ」、すなわちノブを受け入れるための穴212に対応し、その一方でC[i,j]=SPは「二次ピン」215に対応する。
【0104】
たとえ図5a〜bの接続タイプが接続素子の実際の物理的機能のニーモニック表示であるとしても、接続タイプが他のどのような適切な手段、例えば列挙型接続タイプ、ビット・コーディングなどによっても符号化され得ることは理解される。
【0105】
概して、接続タイプは接続の種類とパラメータを含むことが可能である。例えば、接続の種類はα=1/4、1/2、3/4、1を備えたチューブギャップαTGである。
【0106】
異なる接続タイプの接続特性は対応する接続表に規定される。接続表は、接続タイプの各々の対について接続性特性を示す。接続表はルックアップテーブルとして適切なデータ構造内に保存されることが好ましい。そのような接続表の実施形態が表1に例示されている。
【表1】
【0107】
それゆえに、表1の各々の欄は対応する2つの接続タイプの接続性を示している。
表1の短縮表示された接続タイプはつぎの通りである。
K:ノブ、例えば図1a〜eのノブ102、すなわち円形の素子。
SP:二次ピン、例えば図2bの215、すなわち小さいノブ。
E:エッジ、例えば図2bのエッジ214、すなわち要素の外側エッジ。
αEC:パラメータαを備えたエッジの角である。3/4ECは図2bで角216によって例示されるような角に対応する。
VC:空洞コネクタ、すなわち殆どの他の要素を拒絶せず、また、他の素子、例えば滑らかな表面と接続することもないビルディング・ブロックの部分。空洞コネクタはノブを拒絶するが、しかし他のどのようなレセプタまたはコネクタとも相互作用しない。
αAK:パラメータαを備えた対ノブ、例えば図2bの対ノブ215、すなわちノブが嵌合する不規則な形状の穴。
αTG:パラメータαを備えたチューブ・ギャップ、例えば、図4はα=1を備えたチューブ・ギャップ405、すなわち4つの隣り合うノブの間の領域であって、これにチューブが嵌合することが可能である。
αEG:パラメータαを備えたチューブ・ギャップ、例えばα=2を備えたダブルエッジ・ギャップおよびα=1を備えたエッジ・ギャップ407、すなわち2つのノブ間またはノブとエッジ間の隙間。
VR:空洞レセプタ、すなわちどのような他の素子も拒絶せず、また接続もしないビルディング・ブロックの部分。
Tu:チューブ、ノブのためのレセプタであることが可能であり、4つの隣り合うノブの間、すなわちチューブ・ギャップに詰め込まれることが可能なコネクタであることが可能な環状のチューブ。
【0108】
表1で、上記の接続タイプの接続性は次のように示される。
・T:真、すなわち接続が有効であり、対応する接続素子が係合することで2つのビルディング・ブロックを接続する。
・F:偽、すなわち接続はこの位置では許容されない。
・V:空洞または中立、すなわち接続を妨げるものが存在しないが、しかし実際にどちらか接続するものもない。
【0109】
例えば、表1によると、ダブルエッジ・ギャップ(α=2を備えたαEG)はエッジ(E)と空洞接続を作り出し、その一方でエッジ・ギャップ、すなわちα=1を備えたαEGはエッジ(E)と実際に接続する、すなわちこのケースでは接続性が真(T)である。
表1の接続表が対角線に沿って対称であることが気付かれる。
【0110】
それぞれの既にある接続タイプと共に新たな接続タイプの該当する接続性を対応する横列と縦列に追加することによって上記の表が新たな接続タイプを含むように容易に拡張され得ることがさらに気付かれる。
【0111】
図6はエッジからエッジへの延長になっている2つの構造要素の上面図を示している。図6の範例では、2つのビルディング・ブロック601と602がエッジからエッジへの延長で配置される、すなわちそれらの上部表面が同じ平面内に置かれ、それらのそれぞれの接続点が破線603で示されるように同一空間を占める。図6の範例では、ビルディング・ブロック601と602各々は図3と4に示されたタイプであると仮定されている。
【0112】
2つのビルディング・ブロックをエッジからエッジへの延長で配置することによって、領域603で重複する接続点の有効接続タイプが変えられる。例えば、接続点605はビルディング・ブロック601のタイプ1/4TGの接続点およびビルディング・ブロック602のタイプ1/2TGの接続点に対応する。しかしながら、図6のエッジからエッジへの延長で配置されると、組み合わされた接続点605はタイプ3/4TGである。同様に、接続点606はビルディング・ブロック601と602各々のタイプEGであるが、組み合わされたビルディング・ブロックではそれはタイプ2EGである。最後に、接続点607はビルディング・ブロック601と602各々のタイプ1/2TGであるが、組み合わされたビルディング・ブロックではそれはタイプTGである。
【0113】
それゆえに、概して接続素子の接続性特性は他の構造要素と関係した対応する構造要素の配置に応じて変化する可能性がある。
【0114】
本発明によると、この状況は組み合わされた、または結果的に生じる重複接続点の接続タイプを記述する組み合わせ表を規定することによってモデル化されることが可能である。表2はそのような組み合わせ表の範例であり、上記で導入された接続タイプの組み合わせを示している。この組み合わせ表はルックアップテーブルとして適切なデータ構造内に保存されることが好ましい。
【表2】
【0115】
表2では、各々の欄は組み合わされる接続タイプを含む。もしも2つの接続タイプの組み合わせがどのような他の接続タイプに接続する接続タイプも生じない場合、表の記入事項はFである。
【0116】
例えば、エッジ・ギャップ(βEG)が空洞コネクタ(VC)、例えば空の表面の隣に配置されると、結果的に生じる接続要素は広い隙間であると考えられる。表2では、これは(β+1)EGによって近似される。
【0117】
上記の組み合わせ表が、2つ以上の接続素子が組み合わされる状況、例えば3つもしくは4つのビルディング・ブロックの角、で結果的に生じる接続タイプを判定するために使用されることもやはり可能であることがさらに理解される。この状況では、例えば3つの接続素子について結果的に生じた接続タイプは、第1に、最初に組み合わされた接続素子の2つについて結果的に生じた接続タイプを判定し、それに続いて、結果的に生じた第1の接続タイプと第3の接続素子の接続タイプの組み合わせの結果として生じた第2の接続タイプを判定することによって判定される。
【0118】
それぞれの既にある接続タイプと新たな接続タイプの組み合わせから結果的に得られる該当する結果の接続タイプを該当する横列と縦列に追加することによって上記の表が新たな接続タイプを含むように容易に拡張され得ることがさらに気付かれる。
【0119】
それゆえに、上記で、ビルディング・ブロックの接続性特性の効率的で拡張可能な表現のためのデータ構造が、接続タイプをどのように組み合わせるかに関する法則の効率的で拡張可能な表現と同様に開示される。
【0120】
図7はビルディング・ブロックの2つの接続グループを有する幾何学的対象物の透視図を示している。この幾何学的対象物は5つの要素701、702、703、704、および705を含む。図7の範例では、幾何学的対象物はビルディング・ブロックの2つのグループを含み、ビルディング・ブロックの第1のグループはビルディング・ブロック701、702、および703を含み、その一方で第2のグループはビルディング・ブロック704と705を含む。この範例でのビルディング・ブロック701と704は、例えば上述の単一のノブと対ノブの接続、またはビルディング・ブロックの互いに相対した回転を妨げない他の何らかの方式、例えばヒンジ接続、共通の線上での2つ以上のノブと対ノブの接続などによって回転可能に接続される。それゆえに、図7の幾何学的対象物は、幾何学的対象物に与えられた位置と配向の制約に必ずしも束縛されないビルディング・ブロックの範例である。そのような接続の他の範例は、接続されたビルディング・ブロックの相対的平行移動を可能にするビルディング・ブロック間の接続を含む。それゆえに、ビルディング・ブロックのそのようなグループは、格子系706と707で示されるように別々の座標系で述べられることを必要とする可能性がある。
【0121】
図8は、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すコンピュータ導入処理法の一部として構造要素を配置する方法を示すフロー図である。
【0122】
最初の工程801で、予め決められた初期位置に構造要素が置かれる。この構造要素は上記で例示されたようなデータ構造によって表現され、構造要素の位置と配向は、適切な座標系、例えば三次元の右手「ワールド」座標系または基準座標系に関する構造要素の内部座標系の位置と配向を説明する適切な座標系によって記述される。
【0123】
それゆえに、所定の背景、例えば場面、幾何学的対象物などに関すると、この処理法は各々がその背景の中に置かれたビルディング・ブロックを表現するデータ構造のセットを作り出して維持する。その背景の中に新たな構造要素を配置することはデータ構造のそのセットの一部として対応するデータ構造の新たな事例を作り出すことに該当する。
【0124】
構造要素の配置は、例えば幾何学的対象物のデジタル・モデルを作成する対話式処理の間にユーザの命令によって生じさせられることが可能である。例えば、コンピュータが、ユーザが異なる構造要素、例えば異なるタイプ、形状、サイズ、色などの構造要素を選択し、選択された構造要素をコンピュータのディスプレイ上に表示される三次元グラフィック場面内で予め決められた位置と配向に配置することを可能にするユーザ・インターフェースを提供することが可能である。例えば、このユーザ・インターフェースは構造要素を置くためのドラッグ・アンド・ドロップ操作ならびに構造要素を操る、例えば回転させるための操作を提供することが可能である。
【0125】
一実施形態では、構造要素の配置は、例えばすべての距離が任意の長さ単位(LU)の倍数として測定され、基準格子の格子点が1LUで間隔を置かれることが可能な系の、例えば予め決められた格子上の別々の位置へと限定されることが可能である。
【0126】
工程802では、コンピュータ導入による処理が、工程801で配置された構造要素がその場面に既に存在する何らかの他の構造要素、例えばユーザによって以前に配置された構造要素と交わる場所を検出する。この衝突検出はどのような適切な衝突検出法で実行されることも可能であり、構造要素の境界体積に基づいた衝突検出法が好ましい。そのようなアルゴリズムの範例は、例えばDavid H.Eberlyの「3D Game Engine Design」、Morgan Kaufmann、2001年に開示されている。
【0127】
衝突検出は、構造要素が配置された位置が他の構造要素によって既に占められているという結果に結び付く可能性がある。この状況は予め決められた限度よりも大きい境界体積の交差部を検出することによって検出されることが可能である。もしも無効な交差部が検出されれば、この位置と配向での構造要素の配置は拒絶されることが可能である。
【0128】
もしも無効な交差部が検出されなければ、本処理法は工程803で新たに配置される構造要素が他の構造要素と有効に交差するかどうかを検査する。有効な交差部は、例えば予め決められた限度よりも小さいそれぞれの境界体積の交差部として検出されることが可能である。
【0129】
図1の実施形態では、構造要素の表現は接続素子を含めた境界体積(図1a)と構造要素本体を含むが接続素子を含まない境界体積(図1b)の2つの境界体積を有する。衝突検出の工程はこれら2つの境界体積を使用して、もしも構造要素の接続素子を除いた境界体積が重なり合えば無効な衝突を検出することが可能である。もしも接続素子を含む境界体積が重なり合うが、しかし接続素子を除いた境界体積が重ならない場合、あるいはあらゆる境界体積のあらゆる表面が交差するが境界体積が重なり合わない場合、有効な重複が検出される。
さらに、それらの境界体積の軸が同じ基準座標系に対応するように境界体積が配向されているかどうかが検出される。
【0130】
もしも有効な衝突が検出されなければ、本処理法は何らかの適切な方策に従って進行することが可能である。いくつかの実施形態ではどのような以前の構造要素にも接続せずに新たな構造要素を空洞内に配置することが受容可能である可能性があり、いくつかの実施形態では、もしも既にその場面に存在する他の構造要素が無い場合にのみこれは受容可能である可能性がある。なおも別の実施形態ではこれが拒否される可能性がある。例えば、一実施形態では、ユーザによって置かれる構造要素を伴なわないどのような初期場面も初期設定の構造要素、例えば基礎平面の上に構造要素を設置するための接続素子を備えた支持平面を有することが可能である。
【0131】
工程803でもしも新たに設置される構造要素と1つまたは複数の他の構造要素の間に有効な衝突が検出されると、本処理法は工程804に続き、新たに設置される構造要素がそれに有効に交差する(複数の)構造要素に有効に接続されることが可能であるかどうかをチェックする。この接続性検出の部分工程の好ましい実施形態は下記でさらに詳しく述べられるであろう。この接続性検出は結果として、もしも構造要素がそれと交差する(複数の)構造要素に有効に接続するならば構造要素の設置の受容につながり、もしも交差する構造要素のうちのいずれか1つと有効に接続しなければ拒絶につながることが可能である。
【0132】
いったん構造要素の設置が受容もしくは拒絶されると、本処理法はユーザの行為によって、例えば拒絶された構造要素を別の代替選択肢の位置および/または配向に置き換えることによって、他の構造要素をその場面に設置するなどによって再び開始されることが可能である。
【0133】
図9は本発明の一実施形態に従って第1のデジタル構造要素を他の第2のデジタル構造要素に接続する部分工程804のフロー図を示している。例えば、第1の構造要素が新たに設置される積み木であり、第2の構造要素が以前に構築された積み木構造であることが可能であり、検出のアルゴリズムが新たに設置される積み木と第2の構造要素の間の交差部を検出し終えている。
【0134】
以下では、初期位置で構造要素はそれらの境界体積の主軸が右手直交ワールド座標系のx、y、およびz軸に対応するように配向されると仮定される。
この実施形態では、接続素子自体は性質および形状で異なるけれども構造要素上の接続素子の設置についていくつかの予め決められた法則が課されることがさらに仮定される。
【0135】
接続素子の設置に関する仮定は、各々の構造要素について、同じ水平平面内のすべての接続素子の軸が、隣り合う区分間に一定の距離を備えた直交格子の区分に対応することである。
水平平面内および垂直平面内の接続素子の軸間距離は同じである必要がない。
【0136】
最初の工程902で、検出された交差部に属する第1の構造要素および第2の構造要素のすべての接続点。既に接続されているわけではないそれら接続点だけが考慮される必要があり、これらの接続点は該当接続点と称されるであろう。
【0137】
工程903で、第1の構造要素の第1の該当接続点が選択される。これは任意に選択された接続点、ユーザによって選択された接続点などであることが可能である。
【0138】
工程904で、第1の構造要素の選択された接続点について、本処理法は選択された接続点と同じ座標を有する第2の構造要素のいずれかの該当接続点が存在するかどうかをチェックする。構造要素が別々の体積基準格子内に配置され、すべての座標が任意の単位長さの倍数である一実施形態では、座標の正確な一致が必要とされる可能性がある。連続的または外見上連続的な基準座標系では、格子点が予め決められた限度内で一致することが必要とされる可能性がある。
もしもそのような一致する接続点が見つからない場合、本処理法は工程914に続く。
【0139】
工程914で、選択された接続点の予め決められた近接の中にいずれか他の接続点が存在するかどうかを検出する。図9の実施形態では、予め決められた近接は(x,y,z)の選択された接続点の周りの立方体(x±5LU,y±5LU,z±5LU)に相当するが、なぜならばこの実施形態では2つの隣り合う接続素子の間の距離が10LUだからである。もしも選択された接続点の予め決められた近接の中にいずれか他の接続点が存在するならば、2つの構造要素の間の接続は拒絶され(工程911)、アルゴリズムが終了する。それゆえに、この実施形態で接続点は規則的な格子上に配置されるので、構造要素の無効な設置は効率的に検出されることが可能である。もしも第1の構造要素の該当接続点のうちの1つにに関して第2の構造要素の該当接続点との不一致が見つけられれば、第1の構造要素の残りの接続点はチェックされる必要が無く、それにより、検出工程のスピードを上げる。上記の検査は、ノブ239に対応する接続点が規則的な格子に関して置き違えられているので図2dに示されたような接続が拒絶されることを確実化する。図2dの範例では、高さのわずかの違いのせいで接続点243が境界体積の交差部に属することがないので接続点243が不一致を生じさせることはない、すなわち積み木241と236の間の接触はないことが気付かれる。
【0140】
もしも工程914で不一致を生じる該当接続点が見つけられなければ、本処理法は工程909に続く。
もしも工程904で一致する接続点が見つけられた場合、本処理法は工程905に続き、選択された接続点の予め決められた近接、この実施形態では上述したように(x,y,z)の選択された接続点の周りの立方体(x±5LU,y±5LU,z±5LU)の中にいずれか他の接続点が存在するかどうかが検出される。もしも予め決められた近接の中で他の接続点が見つけられると、その位置が拒絶される(工程911)。そうでない場合、本処理法は工程906に続く。
【0141】
別の代替選択肢となる実施形態では上記の限定が望ましくない可能性がある。さらに、なおも別の実施形態では上記の限定は特定の接続タイプ、例えば上記の範例では「空洞」と異なるすべての接続タイプに限られることが可能である。
【0142】
工程906で、本処理法は選択された接続点および検出された一致接続点が反対の方向を有するかどうか、すなわちそれらの随伴する方向が共通の線に沿っているが反対の配向であるかどうかを検出する。それゆえに、係合するために適した相対的配向で配置された接続素子だけが受容される。
別の代替選択肢となる実施形態で、この限定が、例えば接続素子が或る範囲の配向を受け容れる実施形態で或る範囲の配向を受容することによって緩和されることに留意されたい。
【0143】
もしも接続点の相対的配向が受容されれば、本処理法は工程907に続き、そうでない場合、その位置が拒絶される(工程911)。
【0144】
工程907で、選択された接続点およびそれに対応する検出された一致接続点の接続タイプが、保存された接続表913、例えば上記の表1による接続表から接続タイプの対応する対の接続性法則を取り出すことによって比較される。この実施形態では、表1に関連して述べられたように接続は真、偽、または空洞であることが可能である。
【0145】
それに続く工程908で、接続性の結果が「偽」、すなわち対応する接続タイプの間で有効な接続が不可能であるかどうかが検査される。もしも接続性の結果が「偽」であれば、第1の構造要素の位置が拒絶され(工程911)、そうでない場合、接続性結果は保存され、本処理法は工程909へと進む。
【0146】
工程909で、第1の構造要素のすべての該当接続点が処理されたかどうかが検査される。そうでなければ、まだ未処理の該当接続点が選択され(工程912)、上記の工程904、905、906、907、および908を現在選択された接続点で実行することによって処理が為される。
【0147】
もしも第1の構造要素のすべての該当接続点が処理されており、かつその位置が拒絶されなかった場合、その位置が受容され、本処理法は工程910に続く。工程910では、保存された接続性結果に基づいてどのようにして構造素子を接続するかが判定され、したがってそれらのそれぞれのデータ構造が更新される。これは図10に関連してさらに詳しく述べられるであろう。いったんデータ構造が更新されると、この部分工程が終了し、図8の全体的処理法へと戻る。
【0148】
図10は接続された構造要素を表現するデータ構造を更新する部分工程910の実施形態のフロー図を示している。この更新は、第1および第2の構造要素の境界体積の交差部のすべての該当接続点について判定された接続性結果に基づいている。
【0149】
最初に工程1001で、すべての接続性結果が「空洞」であるかどうかがチェックされる。もしもそうであれば、すなわちもしもこの構造要素の位置を妨げるものは無いがこの構造要素を接続するように実際に係合する接続素子も無い場合、新たな構造要素はその現在の位置で許容される。
【0150】
用途に応じて、第1および第2の構造要素のデータ構造は更新されることが可能である。構造要素は実際に接続されないので、第1の構造要素が第2の構造要素と組み合わされて組み合わせの境界体積などを有する組み合わされた構造要素になるはずがないことが好ましい。
【0151】
一実施形態では、追加的なアルゴリズムが、例えば境界体積に基づいて、この位置に置かれた物理的ビルディング・ブロックが落下するかどうか、傾斜するかどうかなどを決定し、したがってその位置を許容するかまたは拒絶する。
【0152】
そうでない場合、例えばもしも1つまたは複数の接続性結果が真であれば、本処理法は工程1002に進み、そこで本処理法は構造要素がどのようにして接続されるか、すなわちそれらが固く接続されるか、または接続が相対的な回転、平行移動などを許容するかを判定する。
【0153】
図1a〜eの実施形態では、もしも正確に1つの接続結果が真であって他のすべてが空洞であれば、接続のタイプに応じて回転および/または平行移動が可能であり得る。さらに、もしも複数の接続結果が真であり、対応する接続点がすべて共通の線上にあれば、回転および/または平行移動が可能であり得る。
【0154】
もしも非固定型の接続が検出されると、本処理法は工程1005に続き、第1と第2の構造要素は、それぞれの基準座標系、境界体積などをそれぞれが有するそれぞれのグループへと割り振られ、それにより、構造要素のグループの多様な相対的位置および/または配向をモデル化することが可能となる。そのような状況は図7に関連して例示された。
【0155】
それゆえに、構造要素の接続された構造は構造要素のいくつかのグループを含むデータ構造によって記述されることが可能である。或るグループは、すべての構造要素のすべての接続点が同じ直交格子の格子点となる方式ですべての構造要素が固く接続される構造である。構造要素の各々のグループは1つまたは複数の構造要素を含み、そこではこのグループが共通の直交座標系(格子)、境界体積、およびそのグループの構造要素の接続性格子を決定する。
【0156】
もしも工程1002で固定式の接続が検出された場合、本処理法は工程1003に続く。上記で図6に関連して述べられたように、第1および第2の構造要素の1つまたは複数の接続点は接続に起因してそれらの接続性を変える可能性がある。それゆえに、工程1003で第1および第2の構造要素のそれらの接続点が検出され、それらは同じ位置および同じ方向を有する。それらの組み合わされた接続点について、上記で表2に関連して述べられたように、結果的に生じた接続タイプは保存された組み合わせ表1006で調べられる。
【0157】
最後に工程1004で、第2の構造要素のデータ構造が第1の構造要素から得られる情報で更新され、すなわち第2の構造要素の境界体積が第1と第2の構造要素の境界体積の合併であるように更新され、接続性格子は第1の構造要素の接続点もやはり含むように更新される。
【0158】
図8、9、および10の処理工程を繰り返すことによって、複数の構造要素が、幾何学的対象物のデジタル・モデルを形成するように組み合わされることが可能である。それゆえに、上記で、幾何学的対象物のデジタル・モデルを作り出すための方法が開示された。
【0159】
本発明の範囲内で当業者が上記の方法の変形例を実行することが可能であることは理解される。例えば、上記の工程のうちのいくつかの順序が変えられることが可能であり、工程が組み合わされることが可能である等々である。
【0160】
さらに、不正確な設置に起因する、例えば同じ位置で接続点が見当たらないという理由、または接続点が正確に反対の方向を有さないという理由による新たな構造要素の位置の拒絶は、単純な拒絶ではなくさらなる処理へとつながることが可能である。一実施形態では、受容可能な位置が達成されることが可能であるかどうかを決定するために仮説に基づいた隣接位置またはわずかな移動が分析されることが可能である。これが結果として、予め決められた限度内で、構造要素が受容可能な位置を提供する最も近い位置にはまり込むことにつながることが可能である。
【0161】
さらに、多少の自由度、したがって複雑さをモデル化システムに与えるために、追加的な限定が課されることが可能であり、あるいは他の限定が緩和されることが可能である。
【0162】
構造要素が構造から外されると、例えば対応するユーザの命令に応答して、そのデータ構造は組み合わされたデータ構造から外される。一実施形態では、これは残りの構造要素の組み合わされたデータ構造を計算し直すことによって実施される可能性がある。
【0163】
図11は、本発明の実施形態に従って幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すためのデータ処理システムを示している。
1101で指定されるコンピュータ・システムは、本発明に従って幾何学的構造の設計、記憶、操作、および共有を容易にするように構成される。コンピュータ・システム1101は独立型システム、またはクライアント/サーバ・システムのクライアントとして使用されることが可能である。このコンピュータは、部分的に揮発性および不揮発性のメモリ手段、例えばハードディスクおよびランダム・アクセス・メモリ(RAM)として導入されるメモリ1102を有する。このメモリはモデル符号インタプリタ1107、モデル符号発生部1108、UIイベント処理部1109、中央演算処理装置1103によって実行可能なモデル化アプリケーション1110を含む。さらに、このメモリはモデル・データ1111を含む。
【0164】
符号インタプリタ1107は本発明に従ってモデルを規定する符号、すなわちモデルの構造要素のデータ構造を表わす符合を読み取って解釈するように構成される。好ましい実施形態では、符号インタプリタは本発明に従ってモデルを読み取り、コンピュータ・ディスプレイ上に表わすためにそのようなモデルを知られているグラフィック書式へと変換するように構成される。対象物のモデルを表現するための上述のデータ構造に基づいて、この変換はグラフィック計算の分野でよく知られているグラフィックの原理を適用することで当業者によって実行されることが可能である。
【0165】
UIイベント処理部1109はユーザ・インターフェースとのユーザの対話を符号発生部1108で識別可能な適切なユーザ命令へと変換するように構成される。可能性があり、かつ識別可能な命令のセットは、要素のライブラリから構造要素を得る命令、他の構造要素に接続されるべき構造要素を配置する命令、構造要素を切り離す命令、構造要素を廃棄する命令、例えば回転などを開始することによって構造要素、構造要素のグループを操る命令を含むことが可能である。各々の命令と共にそれぞれのパラメータ、例えば構造要素の座標、タイプなどの付随のセットが存在することが可能である。
【0166】
符号発生部1108は上述のように本発明に従って、かつユーザ命令に応答して実際のモデルを記述するデータ構造を変更するように構成される。同時発生または引き続いて生じる作業として、符号インタプリタは符号発生部の結果を表わすために実行されることが可能である。
【0167】
モデル化アプリケーション1110はメモリ、ファイル、ユーザ・インターフェースなどを制御するように構成される。
【0168】
ユーザ1105はユーザ・インターフェース1106によってコンピュータ・システム1101と対話することが可能である。
【0169】
モデル、幾何学的表現、または他のデータをロードするために、コンピュータ・システムは入出力(I/O)ユニット1104を有する。入出力ユニットは多様なタイプの記憶媒体および多様なタイプのコンピュータ・ネットワーク、例えばインターネットへのインターフェースとして使用されることが可能である。さらに、入出力(I/O)ユニット1104はモデルを他のユーザと、例えば対話式で交換するために使用されることが可能である。
【0170】
メモリ1102、中央演算処理装置(CPU)1103、ユーザ・インターフェース(UI)1106、および入出力ユニット1104の間のデータ交換はデータ・バス1112によって達成される。
【0171】
図12aは本発明の第1の実施形態による、傾斜表面および対応する境界体積を備えたビルディング・ブロック、例えば図2aのビルディング・ブロック202の側面図を示している。ビルディング・ブロック202は傾斜表面204、およびビルディング・ブロック最上部のノブ1201を有する。この範例によると、ビルディング・ブロック202の表現は境界体積の階層を有する。第1の境界体積1202は傾斜表面を含み、その一方で第2の境界体積1203は互いに直交する側部を備えたボックスである。この範例によると、境界体積1203が他のビルディング・ブロックの対応する境界体積と交差部を有する場合にのみ2つのビルディング・ブロックは接触していると検出される。境界体積1202は接続されると考えられるビルディング・ブロックの初期の効率的な検出のために使用されることが可能である。ビルディング・ブロック202の表現が、図1a〜bに関連して述べられたように接続素子を含む境界体積のような追加的な境界体積を含むことが可能であることは理解される。
【0172】
図12bは本発明の第2の実施形態による、傾斜表面および対応する境界体積を備えたビルディング・ブロック202の側面図を示している。上記の範例のように、このビルディング・ブロック202の表現は境界体積の階層を有する。しかしながら、この範例によると、この表現は、傾斜表面を備えた境界体積ではなく階段関数に似た形状を有する境界体積1204を含み、それにより、傾斜表面の近似を与えている。
【0173】
上記の方法およびシステムは物理的モデルを設計するためのコンピュータ・アプリケーション、例えば物理的構造要素の対応するセットの接続性の挙動をシミュレートするコンピュータ・アプリケーションに関連して応用されることが可能である。例えば、物理的玩具構造セットが前記構造セットのデジタル・バージョンによって補完されることが可能であり、それにより、利用可能な構造要素の数を限定することなくユーザ、例えば児童が模型をデジタル設計することを可能にし、遊び体験の面白さを提供する。物理的構造セットの複雑な接続性特性でさえ現実的にモデル化することを可能にし、同時に効率的なモデル化方法を提供する方法とシステムを提供することが本発明の利点である。その結果、ユーザは構造要素の提案の位置が構造セットの接続法則に対応するかどうかをコンピュータが判定するのを待つことを必要とせずに対話式のデジタル構造化処理を体験する。
【0174】
本方法はさらに、設計されたモデルの特性を分析すること、構造化命令を作り出すことなどに応用されることが可能である。概して、本方法はコンピュータ・ゲーム産業、および予め決められた3D要素が複数の接続法則に従って一体に置かれなければならない他のコンピュータ・グラフィックスの領域すべてで応用されることが可能である。
【図面の簡単な説明】
【0175】
【図1a】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1b】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1c】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1d】本発明の一実施形態による構造要素の表現を示す透視図である。
【図1e】本発明の一実施形態による構造要素の表現を示す透視図である。
【図2a】構造要素およびそれらの接続素子の範例を例示する図である。
【図2b】構造要素およびそれらの接続素子の範例を例示する図である。
【図2c】構造要素およびそれらの接続素子の範例を例示する図である。
【図2d】構造要素およびそれらの接続素子の範例を例示する図である。
【図3】ビルディング・ブロックおよびそれに対応する2つの接続性格子を示す透視図である。
【図4】図3のビルディング・ブロックの上面図である。
【図5a】各々が構造要素の表面の接続点を表わすデータ構造を例示する図である。
【図5b】各々が構造要素の表面の接続点を表わすデータ構造を例示する図である。
【図6】エッジからエッジへの延長状態にある2つの構造要素を示す上面図である。
【図7】構造要素の2つの接続されたグループを有する構造要素を示す透視図である。
【図8】幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法の中で構造要素を配置する方法を示すフロー図である。
【図9】本発明の実施形態による、デジタル構造要素を他のデジタル構造要素へと接続する方法を示すフロー図である。
【図10】接続された構造要素を表わすデータ構造を更新する部分的方法を示すフロー図である。
【図11】本発明の実施形態による、幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すためのデータ処理システムを示す図である。
【図12a】傾斜表面を備えたビルディング・ブロック、および対応する境界体積の範例を示す側面図である。
【図12b】傾斜表面を備えたビルディング・ブロック、および対応する境界体積の範例を示す側面図である。
【特許請求の範囲】
【請求項1】
複数の相互接続可能な構造要素から構成された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法であって、各々の構造要素が、前記構造要素を他の構造要素と接続するためのいくつかの接続素子を有し、
前記複数の構造要素のうちの第1および第2の1つを、対応する前記構造要素の前記接続素子であって各々が複数の予め決められた接続タイプのうちの1つを付随して有する前記接続素子を各々が表現する、対応する第1および第2のデータ構造として符号化する工程と、
互いの予め決められた近接に位置する前記第1の構造要素の第1の接続素子と前記第2の構造要素の第2の接続素子を判定する工程と、
前記第1および第2の接続素子が前記第1と前記第2の構造要素の間の接続を供給するかどうかの指標である前記第1および第2の接続素子の対応する前記接続タイプの接続性情報を取り出す工程とを含む方法。
【請求項2】
前記接続タイプの接続性情報を含む接続表を供給する工程をさらに含み、かつ接続性情報を取り出す前記工程が前記接続表から前記接続性情報を取り出す工程を含むことを特徴とする、請求項1に記載の方法。
【請求項3】
さらに、
・接続タイプの対の予め決められたセットの各々に関する結果的に生じる接続タイプを含む組み合わせ表を供給する工程と、
・互いに予め決められた幾何学的関係で配置される第1および第2の接続素子を判定する工程と、
・前記組み合わせ表から前記第1および第2の接続素子の結果的に生じる接続タイプを取り出す工程と、
・取り出された結果の接続タイプを少なくとも結果の接続素子へと割り当てる工程とを含むことを特徴とする、請求項1または2に記載の方法。
【請求項4】
それぞれの前記データ構造の各々が前記対応する構造要素に相対していくつかの格子をさらに表現し、各々の格子がいくつかの格子点を有し、前記構造要素の前記接続素子の各々が前記格子点のうちの1つと関係し、かつ対応する接続タイプを有することを特徴とする、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記格子の各々が少なくとも1つの格子エッジを有し、
・接続タイプの各々の対に関する結果の接続タイプを含む組み合わせ表を供給する工程と、
・もしも前記第1の構造要素の第1の格子が前記第2の構造要素の第2の格子とエッジからエッジへの延長で配置される場合、前記第1の格子の第1のエッジが前記第2の格子の第2のエッジと位置合わせされることを検出する工程と、
・前記第1の格子の第1の接続素子について、前記第2の格子の対応する第2の接続素子を識別する工程と、
・前記第1および第2の接続素子の結果の接続タイプを前記組み合わせ表から取り出す工程と、
・取り出された前記結果の接続タイプを前記第1および第2の接続素子に割り当てる工程とを含むことを特徴とする、請求項4に記載の方法。
【請求項6】
それぞれの前記データ構造が、対応する構造要素の境界体積をさらに表現し、前記格子の各々が前記境界体積の表面に対応することを特徴とする、請求項4または5に記載の方法。
【請求項7】
さらに、
共通の体積基準格子に関する前記第1および第2の構造要素のそれぞれの位置を符号化する工程であって、前記対応する第1および第2の構造要素の前記第1および第2の格子が前記体積基準格子のそれぞれ第1および第2の平面に対応し、前記第1および第2の格子の前記格子点が前記体積基準格子のそれぞれの基準格子点に対応する工程と、
前記第1および第2の格子が前記体積基準格子の共通平面に対応するかどうか、および前記第1の格子の少なくとも第1の格子点が前記第2の格子の第2の格子点と同じ基準格子点に置かれているかどうかを検出する工程とを含むことを特徴とする、請求項6に記載の方法。
【請求項8】
さらに、
・前記第1の格子および前記第2の格子の一致する格子点のすべての対を識別する工程と、
・識別された格子点の対の各々について、前記接続性表から接続性情報を取り出す工程と、
・もしも格子点の少なくとも1つある対が無効な接続に対応する場合は、前記第1および第2の構造要素の間の接続を拒絶し、そうではなく、もしも格子点の少なくとも1つある対が有効な接続に対応する場合は、前記第1および第2の構造要素の間の接続を受容する工程とを含むことを特徴とする、請求項7に記載の方法。
【請求項9】
前記接続素子の各々が付随の方向をさらに有することを特徴とする、請求項1乃至8のいずれか1項に記載の方法。
【請求項10】
前記接続性情報が、接続タイプの各対に関するインジケータを含むことで予め決められた接続性タイプのグループのうちの1つを示し、前記グループが接続素子の対応する対の間の接続を供給する有効な接続、接続素子の対応する対の間の接続を妨げる無効な接続、および中立の接続で構成されることを特徴とする、請求項1乃至9のいずれか1項に記載の方法。
【請求項11】
互いの予め決められた近接に位置する前記第1の構造要素の第1の接続素子および前記第2の構造要素の第2の接続素子を判定する前記工程がさらに、予め決められた接続素子のサブセットから前記第1および第2の接続素子を判定する工程を含むことを特徴とする、請求項1乃至10のいずれか1項に記載の方法。
【請求項12】
それぞれの前記データ構造の各々が前記対応する構造要素の境界体積をさらに表現し、前記方法が前記第1および第2の構造要素の前記境界体積の交差部を検出する工程をさらに含み、予め決められた接続素子のサブセットから前記第1および第2の接続素子を判定する前記工程が前記判定された交差部に含まれる接続素子から前記第1および第2の接続素子を判定する工程を含むことを特徴とする、請求項11に記載の方法。
【請求項13】
データ処理システムであって、
構造要素を他の構造要素と接続するためのいくつかの接続素子を各々が有する複数の相互接続された前記構造要素から構築された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すための手段と、
前記複数の構造要素のうちの第1および第2の1つを、対応する前記構造要素の前記接続素子であって各々が複数の予め決められた接続タイプのうちの1つを付随して有する前記接続素子を各々が表現する、対応する第1および第2のデータ構造として符号化するための手段と、
互いの予め決められた近接に位置する前記第1の構造要素の第1の接続素子と前記第2の構造要素の第2の接続素子を判定する手段と、
前記第1および第2の接続素子が前記第1と前記第2の構造要素の間の接続を供給するかどうかの指標である前記第1および第2の接続素子の対応する前記接続タイプの接続性情報を取り出す手段とを含むことを特徴とするデータ処理システム。
【請求項14】
前記接続タイプの対の接続性情報を含む接続表を記憶するための記憶手段をさらに含むことを特徴とする請求項13に記載のデータ処理システム。
【請求項15】
接続タイプの対の予め決められたセットの各々に関する結果の接続タイプを含む組み合わせ表を記憶するための記憶手段をさらに含むことを特徴とする請求項13または14に記載のデータ処理システム。
【請求項16】
プログラムがコンピュータ上でランされると請求項1乃至12のいずれか1項に記載の工程のすべてを実行するためのプログラムコード手段を含むコンピュータ・プログラム。
【請求項17】
コンピュータ・プログラム製品がコンピュータ上でランされると請求項1乃至12のいずれか1項に記載の方法を実行するためのコンピュータ読み込み可能な媒体に記憶されたプログラムコード手段を含むコンピュータ・プログラム製品。
【請求項1】
複数の相互接続可能な構造要素から構成された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出す方法であって、各々の構造要素が、前記構造要素を他の構造要素と接続するためのいくつかの接続素子を有し、
前記複数の構造要素のうちの第1および第2の1つを、対応する前記構造要素の前記接続素子であって各々が複数の予め決められた接続タイプのうちの1つを付随して有する前記接続素子を各々が表現する、対応する第1および第2のデータ構造として符号化する工程と、
互いの予め決められた近接に位置する前記第1の構造要素の第1の接続素子と前記第2の構造要素の第2の接続素子を判定する工程と、
前記第1および第2の接続素子が前記第1と前記第2の構造要素の間の接続を供給するかどうかの指標である前記第1および第2の接続素子の対応する前記接続タイプの接続性情報を取り出す工程とを含む方法。
【請求項2】
前記接続タイプの接続性情報を含む接続表を供給する工程をさらに含み、かつ接続性情報を取り出す前記工程が前記接続表から前記接続性情報を取り出す工程を含むことを特徴とする、請求項1に記載の方法。
【請求項3】
さらに、
・接続タイプの対の予め決められたセットの各々に関する結果的に生じる接続タイプを含む組み合わせ表を供給する工程と、
・互いに予め決められた幾何学的関係で配置される第1および第2の接続素子を判定する工程と、
・前記組み合わせ表から前記第1および第2の接続素子の結果的に生じる接続タイプを取り出す工程と、
・取り出された結果の接続タイプを少なくとも結果の接続素子へと割り当てる工程とを含むことを特徴とする、請求項1または2に記載の方法。
【請求項4】
それぞれの前記データ構造の各々が前記対応する構造要素に相対していくつかの格子をさらに表現し、各々の格子がいくつかの格子点を有し、前記構造要素の前記接続素子の各々が前記格子点のうちの1つと関係し、かつ対応する接続タイプを有することを特徴とする、請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記格子の各々が少なくとも1つの格子エッジを有し、
・接続タイプの各々の対に関する結果の接続タイプを含む組み合わせ表を供給する工程と、
・もしも前記第1の構造要素の第1の格子が前記第2の構造要素の第2の格子とエッジからエッジへの延長で配置される場合、前記第1の格子の第1のエッジが前記第2の格子の第2のエッジと位置合わせされることを検出する工程と、
・前記第1の格子の第1の接続素子について、前記第2の格子の対応する第2の接続素子を識別する工程と、
・前記第1および第2の接続素子の結果の接続タイプを前記組み合わせ表から取り出す工程と、
・取り出された前記結果の接続タイプを前記第1および第2の接続素子に割り当てる工程とを含むことを特徴とする、請求項4に記載の方法。
【請求項6】
それぞれの前記データ構造が、対応する構造要素の境界体積をさらに表現し、前記格子の各々が前記境界体積の表面に対応することを特徴とする、請求項4または5に記載の方法。
【請求項7】
さらに、
共通の体積基準格子に関する前記第1および第2の構造要素のそれぞれの位置を符号化する工程であって、前記対応する第1および第2の構造要素の前記第1および第2の格子が前記体積基準格子のそれぞれ第1および第2の平面に対応し、前記第1および第2の格子の前記格子点が前記体積基準格子のそれぞれの基準格子点に対応する工程と、
前記第1および第2の格子が前記体積基準格子の共通平面に対応するかどうか、および前記第1の格子の少なくとも第1の格子点が前記第2の格子の第2の格子点と同じ基準格子点に置かれているかどうかを検出する工程とを含むことを特徴とする、請求項6に記載の方法。
【請求項8】
さらに、
・前記第1の格子および前記第2の格子の一致する格子点のすべての対を識別する工程と、
・識別された格子点の対の各々について、前記接続性表から接続性情報を取り出す工程と、
・もしも格子点の少なくとも1つある対が無効な接続に対応する場合は、前記第1および第2の構造要素の間の接続を拒絶し、そうではなく、もしも格子点の少なくとも1つある対が有効な接続に対応する場合は、前記第1および第2の構造要素の間の接続を受容する工程とを含むことを特徴とする、請求項7に記載の方法。
【請求項9】
前記接続素子の各々が付随の方向をさらに有することを特徴とする、請求項1乃至8のいずれか1項に記載の方法。
【請求項10】
前記接続性情報が、接続タイプの各対に関するインジケータを含むことで予め決められた接続性タイプのグループのうちの1つを示し、前記グループが接続素子の対応する対の間の接続を供給する有効な接続、接続素子の対応する対の間の接続を妨げる無効な接続、および中立の接続で構成されることを特徴とする、請求項1乃至9のいずれか1項に記載の方法。
【請求項11】
互いの予め決められた近接に位置する前記第1の構造要素の第1の接続素子および前記第2の構造要素の第2の接続素子を判定する前記工程がさらに、予め決められた接続素子のサブセットから前記第1および第2の接続素子を判定する工程を含むことを特徴とする、請求項1乃至10のいずれか1項に記載の方法。
【請求項12】
それぞれの前記データ構造の各々が前記対応する構造要素の境界体積をさらに表現し、前記方法が前記第1および第2の構造要素の前記境界体積の交差部を検出する工程をさらに含み、予め決められた接続素子のサブセットから前記第1および第2の接続素子を判定する前記工程が前記判定された交差部に含まれる接続素子から前記第1および第2の接続素子を判定する工程を含むことを特徴とする、請求項11に記載の方法。
【請求項13】
データ処理システムであって、
構造要素を他の構造要素と接続するためのいくつかの接続素子を各々が有する複数の相互接続された前記構造要素から構築された幾何学的対象物のコンピュータ読み取り可能なモデルを作り出すための手段と、
前記複数の構造要素のうちの第1および第2の1つを、対応する前記構造要素の前記接続素子であって各々が複数の予め決められた接続タイプのうちの1つを付随して有する前記接続素子を各々が表現する、対応する第1および第2のデータ構造として符号化するための手段と、
互いの予め決められた近接に位置する前記第1の構造要素の第1の接続素子と前記第2の構造要素の第2の接続素子を判定する手段と、
前記第1および第2の接続素子が前記第1と前記第2の構造要素の間の接続を供給するかどうかの指標である前記第1および第2の接続素子の対応する前記接続タイプの接続性情報を取り出す手段とを含むことを特徴とするデータ処理システム。
【請求項14】
前記接続タイプの対の接続性情報を含む接続表を記憶するための記憶手段をさらに含むことを特徴とする請求項13に記載のデータ処理システム。
【請求項15】
接続タイプの対の予め決められたセットの各々に関する結果の接続タイプを含む組み合わせ表を記憶するための記憶手段をさらに含むことを特徴とする請求項13または14に記載のデータ処理システム。
【請求項16】
プログラムがコンピュータ上でランされると請求項1乃至12のいずれか1項に記載の工程のすべてを実行するためのプログラムコード手段を含むコンピュータ・プログラム。
【請求項17】
コンピュータ・プログラム製品がコンピュータ上でランされると請求項1乃至12のいずれか1項に記載の方法を実行するためのコンピュータ読み込み可能な媒体に記憶されたプログラムコード手段を含むコンピュータ・プログラム製品。
【図1a】
【図1b】
【図1c】
【図1d】
【図1e】
【図2a】
【図2b】
【図2c】
【図2d】
【図3】
【図4】
【図5a】
【図5b】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12a】
【図12b】
【図1b】
【図1c】
【図1d】
【図1e】
【図2a】
【図2b】
【図2c】
【図2d】
【図3】
【図4】
【図5a】
【図5b】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12a】
【図12b】
【公表番号】特表2006−502485(P2006−502485A)
【公表日】平成18年1月19日(2006.1.19)
【国際特許分類】
【出願番号】特願2004−542209(P2004−542209)
【出願日】平成15年10月9日(2003.10.9)
【国際出願番号】PCT/DK2003/000674
【国際公開番号】WO2004/034333
【国際公開日】平成16年4月22日(2004.4.22)
【出願人】(594012623)レゴ エー/エス (19)
【Fターム(参考)】
【公表日】平成18年1月19日(2006.1.19)
【国際特許分類】
【出願日】平成15年10月9日(2003.10.9)
【国際出願番号】PCT/DK2003/000674
【国際公開番号】WO2004/034333
【国際公開日】平成16年4月22日(2004.4.22)
【出願人】(594012623)レゴ エー/エス (19)
【Fターム(参考)】
[ Back to top ]