(57)【要約】【課題】  ３次元モデルの形状の変更を生じさせるための３次元コンピュータ生成モデルを変形させる方法を提供すること。【解決手段】  最初に元の面定義を備える面表現を使用して３次元モデルの表面を表すステップと、複数の滑らかな３次元マッピング関数を導き出すステップで、各３次元マッピング関数は曲面への変形を定義し、少なくとも１つの３次元マッピング関数は非アフィン変換であるステップと、複数の３次元マッピング関数および元の面定義の合成を構築し、各３次元マッピング関数は３次元マッピング関数が導き出された順序に従って連続して合成に含まれているステップと、連続する各３次元マッピング関数が合成に含まれた後に合成を適用し、これにより前記３次元モデルの表面は変形され、しかも滑らかさが前記複数のマッピング関数の最低限度の滑らかさに保持されるステップとを含む。【選択図】  図１
2006031715.tif 000002
【特許請求の範囲】
【請求項１】
３次元コンピュータ生成モデルを変形させて３次元モデルの形状を変更するためのコンピュータ実装方法であって、
最初に元の面定義を備える面表現を使用して前記３次元モデルの表面を表すステップと、
複数の滑らかな３次元マッピング関数を導き出すステップであって、各３次元マッピング関数は曲面への変形を定義し、少なくとも１つの３次元マッピング関数は非アフィン変換であるステップと、
複数の３次元マッピング関数および元の面定義の合成を構築するステップであって、各３次元マッピング関数は３次元マッピング関数が導き出された順序に従って連続して合成に含まれているステップと、
連続する各３次元マッピング関数が合成に含まれた後に合成を適用するステップであって、これにより前記３次元モデルの表面は変形され、しかも滑らかさが前記複数のマッピング関数の最低限度の滑らかさに保持されるステップとを備えることを特徴とする方法。
【請求項２】
請求項１に記載の方法を実行するコンピュータシステムを構成するための命令を備えることを特徴とするコンピュータ可読データ記憶媒体。
【請求項３】
前記元の面定義はパラメトリック面、メッシュ面、および細分化面の１つであることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項４】
前記合成を適用するステップは前記連鎖法を前記複数の３次元マッピング関数に適用して前記面表現の導関数を決定するステップを備えることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項５】
変形結果の複数の描写を備えるユーザインターフェースを表示するステップと、
複数の描写の１つを選択して、前記複数の３次元マッピング関数の１つとして実装される変形操作を示すステップとをさらに備えることを特徴とする請求項１に記載のコンピュータ実装方法。
【請求項６】
前記曲面に関する前記変形操作は、曲線を引き出す、点を引き出す、曲面の領域を引き出す、球形を型押しする、曲線を型押しする、特定の位置で幅を狭める、つぶす、およびねじるのうち１つの操作を達成することを特徴とする請求項５に記載のコンピュータ実装方法。
【請求項７】
変形コントロールを識別するステップであって、前記変形コントロールは前記３次元モデルの前記曲面に関して配置されるステップと、
前記変形コントロールの少なくとも一部が新しい場所を占めるように前記変形コントロールを変換するステップと、
前記変形コントロールを前記複数の３次元マッピング関数の１つに対するパラメータとして使用するステップとをさらに備えることを特徴とする請求項５に記載のコンピュータ実装方法。
【請求項８】
前記変形コントロールは低位ジオメトリであることを特徴とする請求項７に記載のコンピュータ実装方法。
【請求項９】
前記変形コントロールは、点、曲線、平面、線、軸、面の領域、および放物線オブジェクトの１つであり、
前記変形コントロールを変換するステップは前記変形コントロールを移動するステップおよび前記変形コントロールを変更するステップのうちの１つであることを特徴とする請求項７に記載のコンピュータ実装方法。
【請求項１０】
前記選択された変形操作は点引き出し操作であり、
前記識別された変形コントロールは前記３次元モデルの前記曲面から選択された任意点であることを特徴とする請求項７に記載のコンピュータ実装方法。
【請求項１１】
前記選択された変形操作は曲線引き出し操作および曲線型押し操作のうちの１つであり、
識別された前記変形コントロールは前記３次元モデルの前記曲面に描かれた任意曲線であることを特徴とする請求項７に記載のコンピュータ実装方法。
【請求項１２】
前記変形コントロールを変換することによって影響を受ける前記３次元モデルの領域を決定するステップをさらに備え、前記領域はシステム定義の領域およびユーザ定義の領域のうちの１つであることを特徴とする請求項７に記載のコンピュータ実装方法。
【請求項１３】
ユーザインターフェーススライダコントロールは前記ユーザ定義の領域を指定するために使用されることを特徴とする請求項１２に記載のコンピュータ実装方法。
【請求項１４】
前記領域は前記複数の３次元マッピング関数の１つに対するパラメータとして使用されることを特徴とする請求項１２に記載のコンピュータ実装方法。
【請求項１５】
コンピュータ可読データ記憶媒体であって、コンピュータに、
最初に前記曲面の元の表現を備える面データ構造を作成させ、
前記曲面に変更の種類を指定するために変形操作を選択させ、
前記曲面を操作するための変形コントロールを識別させ、
第１の滑らかなマッピング関数を導き出させ、前記第１のマッピング関数は非アフィンマッピング関数であり、前記選択された変形操作に従って複数のマッピング関数から選択され、前記変形コントロールの属性は前記第１の滑らかなマッピング関数によって使用され、
第２の滑らかなマッピング関数を導き出させ、前記第２の滑らかなマッピング関数はアフィンおよび非アフィンのうちの１つであり、前記第２の滑らかなマッピング関数は前記第２の変形操作に従って前記複数のマッピング関数から選択され、第２の変形コントロールの属性は前記第２の滑らかなマッピング関数によって使用され、
前記第１および第２の滑らかなマッピング関数を前記曲面データ構造に別個のエンティティとして格納させ、前記曲面データ構造は第１の滑らかなマッピング関数、第２の滑らかなマッピング関数、および前記曲面の元の表現の合成を表し、
変形された曲面を表示させ、表示ステップは第１の滑らかなマッピング関数の格納時に前記合成を適用するステップと、前記第２の滑らかなマッピング関数の格納時に再び前記合成を適用するステップを備え、前記合成が適用されるごとに前記第１または前記第２の滑らかなマッピング関数によって表される最低度の滑らかさが保持されることを特徴とする命令を備えるコンピュータ可読データ記憶媒体。
【請求項１６】
前記曲面は複数の曲面の１つであることを特徴とする請求項１５に記載のデータ記憶媒体。
【請求項１７】
前記変形コントロールは、点、曲線、平面、線、軸、面の領域、および放物線オブジェクトの１つであることを特徴とする請求項１５に記載のデータ記憶媒体。
【請求項１８】
追加マッピング関数のシーケンスを導き出すステップと、
前記マッピング関数のシーケンスを前記曲面の前記元の表現に適用することによって前記変形された曲面の前記表示を更新するステップとをさらに備え、
前記追加マッピング関数は滑らかであり、
前記シーケンス内の各マッピング関数は前記曲面データ構造で識別可能なエンティティであることを特徴とする請求項１５に記載のデータ記憶媒体。
【請求項１９】
データストレージシステムに操作可能に接続されたプロセッサであって、前記データストレージシステムが３次元モデルを格納するプロセッサと、
前記プロセッサに操作可能に接続されたデータ記憶装置とを備えるデジタルコンピュータであって、
前記データ記憶装置は、
３次元モデルを定義するデータ構造を処理し、前記データ構造は元の面表現を備え、
第１の３次元マッピング関数を導き出し、前記第１の３次元マッピング関数は前記３次元モデルの表面に変更を生じさせるために構築された滑らかな非アフィンマッピング関数であり、
前記第１の３次元マッピング関数を、前記データ構造が前記元の面表現と関連して前記第１の３次元マッピング関数をさらに備えるように前記データ構造に格納し、
前記第１の３次元マッピング関数を前記元の面表現に適用して前記３次元モデルの前記変形を生じさせ、
前記第１の３次元マッピング関数と関連して前記元の面表現を備える前記データ構造を保持し、
複数の変形を定義する滑らかな３次元マッピング関数のシーケンスが前記元の面表現に関連付けられるようにし、前記シーケンス内の３次元マッピング関数が前記元の面表現に関連付けられるたびに前記元の面表現の変形が発生し、同時に滑らかさは前記関連するマッピング関数の前記滑らかさの最低度に保持されることを特徴とするように前記プロセッサを構成する命令を備えるデジタルコンピュータ。
【請求項２０】
変形コントロールを指定し、
前記変形コントロールを移動するステップおよび変更するステップの１つにより前記変形コントロールを変換し、
前記第１の３次元マッピング関数の最新バージョンを前記元の面表現に適用するために導き出し、前記新バージョンは前記変換された変形コントロールに基づいており、
前記データ構造内の前記第１の３次元マッピング関数を前記第１の３次元マッピング関数の新バージョンと置き換えるようにプロセッサを構成する命令をさらに備えることを特徴とする請求項１９に記載のデジタルコンピュータ。
【請求項２１】
前記変形コントロールは、点、曲線、平面、線、軸、面の領域、放物線オブジェクト、および３次元囲みオブジェクトの１つであることを特徴とする請求項２０に記載のデジタルコンピュータ。
【請求項２２】
複数のアイコンを含むユーザインターフェースを表示するようにプロセッサを構成する命令をさらに備え、各アイコンは複数の変形操作の１つの結果を示し、前記１つの複数の変形操作の各々が導き出す複数の３次元マッピング関数の１つを示すことを特徴とする請求項１９に記載のデジタルコンピュータ。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータ支援設計（ＣＡＤ）ソフトウェアにより、ユーザは複雑な３次元（３Ｄ）モデルを構築して操作することができる。多種多様なモデリング技法を使用して、３Ｄモデルを作成することができる。これらの技法には、ソリッドモデリング、ワイヤフレームモデリング、およびサーフェスモデリングが含まれる。ソリッドモデリング技法は、３Ｄモデルが相互接続された位相的エンティティ（例えば頂点、辺、および曲面など）の集合であるトポロジ３Ｄモデルを提供する。位相的エンティティは、対応する補助幾何学的エンティティ（例えば点、切り取られた曲線、および切り取られた曲面など）を備えている。切り取られた曲面は、境界線によって輪郭が示される位相的曲面に対応する。一方、ワイヤフレームモデリング技法は、単純な３Ｄの線の集合としてモデルを表すために使用することができる。これに対してサーフェスモデリングは、外面の集合としてモデルを表すために使用することができる。ＣＡＤシステムは、これらの技法およびパラメトリックモデリング技法などの様々なモデリング技法を組み合わせることができる。パラメトリックモデリング技法は、モデルの様々な特徴およびコンポーネントに対して様々なパラメータを定義するため、また様々なパラメータ間の関係に基づいてそれらの特徴およびコンポーネント間の関係を定義するために使用することができる。
【０００２】
曲面は、いくつかの技法を使用してＣＡＤシステムで表される。技法には、パラメトリック面、メッシュ面、細分化面、および黙示面のような面の定義が含まれる。
【０００３】
パラメトリック面は、パラメータ空間の変形であり、通常その空間は長方形である。コンピュータ支援モデリングソフトウェアは一般に、低度代数変形を使用し、様々なスプライン曲面および二次曲面をもたらす。一部の種類のパラメトリック面では、一連のコントロールポイントが面の形状を定義する。
【０００４】
モザイク面ともよばれるメッシュ面は、接続された一連のポリゴンであるが、これは多くの場合三角ポリゴンである。メッシュ面は、滑らかな表面を正確に表すことはできない。ただし、メッシュ面に適用される特定の基本操作は、実装も容易で効率的に実行することができる。そのような基本操作には、境界ボックスを計算して、メッシュ面と１つまたは複数の単純オブジェクトを交差させるステップが含まれる。
【０００５】
細分化面は、メッシュのシーケンスの限界として定義される。そのようなシーケンスにおいて各メッシュは、当業者には既知である複数の細分化方法の１つに従って、シーケンス内で直前のメッシュを細分化することによって得られる。したがって、初期制御メッシュ（つまり、シーケンス内の最初のメッシュ）は、細分化面を指定するのに十分である。初期制御メッシュは滑らかではないが、得られた細分化面は滑らかであり、得られた細分化面の平滑度は選択された細分化方法によって異なる。必要に応じて、細分化方法は、特定のエッジがくっきりした状態を保つように調整することができる。
【０００６】
黙示面は、Ｆ（ｘ，ｙ，ｚ）＝０の式を満たす点の集合として定義される。Ｆが滑らかな関数である場合、曲面は通常滑らかになる。球面、円環面、および楕円面は、黙示面として表すことのできるいくつかの曲面である。
【０００７】
一般に、最先端技術のコンピュータグラフィックハードウェアは、メッシュ面表現をレンダリングするように最適化される。そのため、一部の面表現は通常、レンダリングのためにメッシュ面に変換される。パラメトリック面をメッシュで近似値化することは、一般に容易である。メッシュはパラメトリック空間に構築することができ、曲面の変形がメッシュ頂点で評価できるからである。メッシュのシーケンスは細分化面に非常にすばやく集束するため、細分化面のメッシュへの変換も一般に容易である。黙示面をメッシュで近似値化することは、一般に困難である。ただし、黙示面を近似値化するための方法が開発されている。
【０００８】
スプライン曲面または細分化曲面を変形させるため、面制御メッシュが変更される。制御メッシュが粗くなれば、それに応じて、曲面への変更を制御する能力はさらに制限される。しかし、より細かい制御メッシュ（小さな形状を作り出すために必要となる）は、制御メッシュのサイズを増加させ、そのため、曲面を格納するためにより多くのメモリが必要になり、曲面を変形するためにより多くの計算が必要になる。
【０００９】
もう１つの変形の手法は、曲面が位置している空間を変形させることである。通常、３Ｄ空間は立方体メッシュにモザイク式にはめ込まれて、立方体メッシュが変形される。非特許文献１の記事に説明されているように、変形されたメッシュを基に、空間全体に対して変形が計算され、曲面に適用される。非特許文献２の記事に説明されているように、変形は、空間全体の一部のみに影響を及ぼすように制約することができる。
【００１０】
空間変形を定義することの１つの欠点は、その目的が曲面の存在する空間ではなく曲面を変形することにあるため、曲面が位置している空間を変形する作業が直観的ではないことである。さらに、空間変形がメッシュの頂点に適用された場合、隣接するポリゴン間の角度が広がるため、メッシュのくっきりしたエッジが誇張されることがある。空間変形をメッシュポリゴンに適用するには、結果を別のメッシュによって再近似値化する必要が生じる。元のメッシュの精密化により結果を再近似値化すると、ポリゴンの縦横比の劣化をまねくことが多い。さらに、空間変形がスプライン曲面に適用される場合、得られた曲面をスプライン曲面に変換する作業は計算処理上高価なものになり、曲面の滑らかさを保持することができなくなる。一般に、面パッチ間の滑らかさの制約は、近似値化によってしか保持することができない。
【００１１】
多くの市販されている３Ｄ  ＣＡＤシステムは、フリーフォーム曲面操作機能を備えている。そのような機能は通常、非均等有理Ｂ−スプライン（ＮＵＲＢＳ）曲面として曲面を内部的に表すことによって制約される。したがって、操作コントロールは多くの場合、曲面の特定の点または曲線に制限されている。このため、ユーザは、望ましい形状を形成する各自の能力に制限がある。一部のシステムでは、任意の点または曲線を操作コントロールとして使用することができる。例えば、マサチューセッツ州コンコ−ドのＳｏｌｉｄＷｏｒｋｓ  Ｃｏｒｐｏｒａｔｉｏｎから提供されているＳｏｌｉｄＷｏｒｋｓ（登録商標）２００４ソフトウェア製品では、操作コントロールとして任意の点または曲線を使用して１つまたは複数の曲面を変形することができる。次に、得られた曲面は、ＮＵＲＢＳ面パッチで近似値化される。望ましい形状の精度および面パッチ間の滑らかさを達成することは、一般に、高密度制御グリッドにつながり、そのような曲面をその後の操作で計算処理上高価なものにする。
【００１２】
３Ｄ  ＣＡＤシステムの多くのユーザは、３Ｄモデリング技法に熟達しており、専門的に３Ｄモデルを設計する。これらの経験豊富なユーザは、曲面を定義するために使用される制御点およびメッシュを操作する方法、および曲面エンティティである頂点および辺を操作する方法を理解している。様々な複雑度の３Ｄモデルの形状を作成して変更するための単純で直観的な手段を提供する３Ｄ  ＣＡＤシステムは、３Ｄモデリング技法に熟達していない人々にも熟達している人々にとっても有利になると考えられる。ユーザが任意の点、曲線、または曲面領域の直接操作によって複雑なモデルをインタラクティブに変形して、しかもモデル全体に曲面の滑らかさを保持することのできる３Ｄ  ＣＡＤシステムは、ユーザが自然で、すばやく、簡単に滑らかな形状を作成できるようにし、それによって３Ｄ  ＣＡＤシステムの機能性および使いやすさを高めることになる。
【００１３】
【非特許文献１】"A Framework for Geometric Warps and Deformation" by Tim Milliron et al., ACM Transactions on Graphics, Vol.21, No.1, January 2002, pp.20-51
【非特許文献２】"General Constrained Deformations Based on Generalized Metaballs" by Xiaogang Jin et al., Pacific Conference on Computer Graphics and Applications 1998, pp.115-124
【非特許文献３】"Bubble Mesh: Automated Triangular Meshing of Non-Manifold Geometry by Sphere Packing" by Kenji Shimada and David C. Gossard, Third ACM Symposium on Solid Modeling and Applications, ACM Press 1995, pp.409-419
【発明の開示】
【発明が解決しようとする課題】
【００１４】
一般に、１つの態様において、本発明は、３次元コンピュータ生成モデルを変形するためのコンピュータ実装方法を目的としている。方法は、元の面定義を含む面表現を使用して３次元モデルの表面を表すステップを含んでいる。曲面への変形を定義する滑らかな３次元マッピング関数が導き出され、少なくとも１つの３次元マッピング関数は非アフィン変換である。３次元マッピング関数および元の面定義の合成が構築される。ここで各マッピング関数は連続して合成に含まれている。さらに、マッピング関数は合成内で、マッピング関数が導き出された順序で並べられる。合成は、連続する各３次元マッピング関数が合成に含まれた後に適用され、それにより３次元モデルの表面は変形されて、滑らかさがマッピング関数の最低限度の滑らかさに保持される。
【００１５】
実施形態は、曲面をパラメトリック面、メッシュ面、または細分化面として定義するステップ、および連鎖法を使用して面表現の導関数を決定するステップを含むことができる。
【００１６】
変形結果の描写を含んでいるユーザインターフェースは、一部の実施形態によって表示することができ、１つの描写を選択してマッピング関数として実装されている変形操作を示すことができる。変形操作により、曲線、点、または曲面の領域は引き伸ばすことができる。さらに、変形操作では、曲面に球形または曲線を型押しするか、あるいは曲面を細くしたり、平らにしたり、ねじることができる。
【００１７】
実施形態はさらに、１つまたは複数の以下の特徴を含めることができる。モデルの曲面に関して配置される変形コントロールは、マッピング関数のパラメータとして識別し、変換し、使用することができる。変形コントロールは、低位のジオメトリであっても、点、曲線、平面、線、軸、面の領域、または放物線オブジェクトであってもよい。
【００１８】
本発明の１つまたは複数の実施形態の詳細については、付属の図面および以下の説明により示される。本発明の他の特徴、目的、および利点は、以下の説明および図、さらに請求の範囲を参照すれば明らかになろう。
【課題を解決するための手段】
【００１９】
本発明は、任意の低位ジオメトリおよび他の変形コントロールを使用して１つまたは複数の曲面を直接操作することにより、フリーフォーム面の滑らかなリアルタイムの変形を容易にする。そのような任意の低位ジオメトリには、例として点、曲線、平面、軸、および曲面があげられるが、これらに限定されることはない。さらに、本発明は、曲面の既存の滑らかさおよび既存の面曲率特性を保持する。モデルの精度に損失を生じることなくモデルの形状を変化させるために、滑らかな空間マッピングのシーケンスが使用される。さらに、ユーザインターフェースは、フリーフォーム面を変形する自然で、すばやく、しかも簡単な手法をユーザに提供する。ユーザインターフェースは、１つまたは複数の曲面のインタラクティブな直接操作をサポートする機能ライブラリへのアクセスを容易にする。以上のことから、本発明は、コンピュータ制御のモデリングシステムの機能を高める。
【発明を実施するための最良の形態】
【００２０】
図１は、ＣＲＴに表示され、コンピュータ化モデリングシステムによって実行されたモデリングソフトウェアによって生成されたウィンドウ１０２を示している。その例は、以下で図９を参照して示す。ウィンドウ１０２は、標準的なコンピュータ生成のウィンドウであり、当業者であればワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから提供されているような従来の市販のソフトウェアプログラミングツールを使用してプログラミングすることができる。
【００２１】
コンピュータ生成３Ｄモデル１０４は、ウィンドウ１０２のモデリング部分１０６内に表示される。実線または破線を使用して３Ｄモデルの見えているエッジと隠れているエッジを示すことで、３Ｄモデル１０４の曲面を表示するか、または３Ｄモデル１０４を表示することができる。実施形態はさらに、他のウィンドウ領域を含むこともできる。一連のファイルアイコン１０８は、球形基本要素などの基本モデルとして使用できる様々なファイルを選択する際にユーザを補助する。一連の変形アイコン１１０により、ユーザは、ウィンドウ１０２のモデリング部分１０６に示されるモデル１０４を操作することができる。
【００２２】
図２は、一連の変形アイコン１１０を示している。各変形アイコン１１０は変形の結果を示し、選択されている場合、特定の関数がモデルの局所領域に適用されることをモデリングソフトウェアに示す。これらの３つの関数は、曲面上の点、曲面上の曲線、および曲面の領域が引き出されるようにし、それぞれ点引き出しアイコン（ｐｏｉｎｔ  ｐｕｌｌ  ｉｃｏｎ）２１２、曲線引き出しアイコン（ｃｕｒｖｅ  ｐｕｌｌ  ｉｃｏｎ）２１４、および領域引き出しアイコン（ａｒｅａ  ｐｕｌｌ  ｉｃｏｎ）２２０を選択することでアクティブ化される。曲線、点、または領域が引き出されると、曲面はリアルタイムで変更される。したがって、引き出すアクションおよび引き出す操作によって生じた変更は、インタラクティブである。もう１つの関数は、球形のへこみが曲面上に型押しされるようにし、球形突きアイコン（ｐｏｋｅ  ｓｐｈｅｒｅ  ｉｃｏｎ）２１６およびモデルに関して球形の中心点が選択された場合、アクティブ化される。さらにもう１つの関数は、特定の場所で曲面が細くなるようにするもので、ネック作成アイコン（ｃｒｅａｔｅ  ｎｅｃｋ  ｉｃｏｎ）２２４が選択されるとアクティブ化された後平面が表示されて、平面の方向に幅が狭くなるように配置される。平面上の任意の点はさらに、幅を狭める効果の中心を指定するように示される。面つぶしアイコン（ｆｌａｔｔｅｎ  ｓｕｒｆａｃｅ  ｉｃｏｎ）２１８が選択されると、曲面が平らにされる場所に平面が配置された後、面がつぶされる。曲線型押しアイコン（ｃｕｒｖｅ  ｉｍｐｒｉｎｔ  ｉｃｏｎ）２２２が選択されると、曲面上に曲線が型押しされる。引き出し関数の場合のように、すべての他の関数はリアルタイムでモデルに適用されるため、得られる変形はインタラクティブに生じる。
【００２３】
図３は、最初に球形であった図形の周囲に配置された任意点３３２（カーソルオブジェクト３３４に付属）を直接操作することによって変形された３Ｄモデル３３０を示す図である。初期の球形は、ファイルアイコン３３６を選択した後に表示することができる。図３に表示されている３Ｄモデル３３０を変形するため、ユーザはまず点引き出し変形アイコン（ｐｏｉｎｔ  ｐｕｌｌ  ｄｅｆｏｒｍａｔｉｏｎ  ｉｃｏｎ）２１２を選択し、次に任意点３３２を選択する。ユーザは、ポインティングデバイス（例えばマウス）を使用して、任意点３３２をインタラクティブに移動することができる。任意点３３２の移動に応じて、３Ｄモデル３３０はリアルタイムで変形される。
【００２４】
図４は、カーソルオブジェクト３３４に付属している任意点３３２を直接操作した後の３Ｄモデル３３０の滑らかな変形を示している。図４において、３Ｄモデル３３０は、図３の場合とは異なった外観を呈する。任意点３３２の変位によって３Ｄモデル３３０の曲面上のより広い領域が影響を受けたためである。ユーザインターフェースコントロールのスライダ４３４は、作用領域を減少および増大させるために使用される。スライダ４３４がウィンドウ１０２の下部方向に移動すると、モデルのより大きい部分が作用範囲に含められる。一方、スライダ４３４がウィンドウ１０２の上部方向に移動すると、モデルのより小さい部分が作用範囲に含められる。
【００２５】
図５Ａおよび図５Ｂは、３Ｄモデル５０２に描かれた任意の曲線５０４を操作することによる３Ｄモデル５０２の変形を示している。任意点の直接操作を介して３Ｄモデルが変形される場合と同様に、任意曲線の直接操作によって生じる変形は局部的な変形である。曲線は、曲線シンボル５０６がユーザインターフェースから選択された後にモデル上に描くことができる。他のシンボル５０８は、直線および弧をモデル上に描けるようにするユーザインターフェースから選択して、モデルを直接操作するために使用することができる。図５Ｂは、ポインティングデバイスを使用して曲線５０４が引き出された後の３Ｄモデル５０２を示している。図５Ｂに示すように、曲線５０４の変形は表面を押し出す。３Ｄモデル５０２の方向は、図５Ａおよび図５Ｂにおいて異なっている。３Ｄモデル５０２を変形するために使用された曲線５０４および３Ｄモデル５０２の変形は異なる視点からさらに有利に観察されるからである。
【００２６】
図６Ａおよび６Ｂは、モデル１０４に適用されるグローバル変形を示している。図６Ａにおいて、グローバル変形は、スケール関数を適用した結果である。スケール関数は、ユーザインターフェースからスケールアイコン６０６が選択された後にアクティブ化される。その後、３次元の囲み線がモデル１０４の周囲に描かれる。囲み線の角または面は、囲み線のサイズまたは形状を変更するように移動することができ、それによりスケール関数がモデル１０４に適用される。円錐ハンドル６０８は、囲み線の移動を制御するために提供される。
【００２７】
モデルにグローバルな影響を与える他の関数には、曲げ関数およびねじれ関数が含まれ、これらはそれぞれ曲げアイコン６１２およびねじれ関数６１４が選択されるとアクティブ化される。図６Ｂは、曲げ関数がモデル１０４に適用された後のモデル１０４を示している。曲げアイコン６１２が選択された後、放物線オブジェクト６１６がモデリング領域１０６に表示される。ピボットポイント６１８が放物線オブジェクト６１６上に指定され、作用ポイント６２０も指定される。ピボットポイント６１８および作用ポイント６２０は、ポインティングデバイスを使用して移動することができる。ピボットポイント６１８または作用ポイント６２０の１つが移動すると、放物線オブジェクト６１６は曲がり、モデル１０４は放物線オブジェクト６１６と同様に曲がることによって変形される。ねじれアイコン６１４が選択された場合、ねじれの動きを制御するために回転コントロールおよび軸が表示される。
【００２８】
ここで図７を参照すると、３Ｄモデルを直接操作するための手順７００が示されている。最初に、モデルの表現が定義される（ステップ７０２）。モデル表現は、パラメトリック面、メッシュ面、および細分化面を含む、評価できる任意の面表現を含むことができる。一般に、本発明は、評価することのできるモデルの任意の３Ｄ表現に適用される。
【００２９】
次のステップにおいて、変形操作が選択され、変形コントロールが識別される（ステップ７０４）。変形操作は、変形アイコン１１０の１つまたはグローバル変形操作を示すアイコンの１つを選択することで選択できる。これらのアイコンについては、それぞれ図２、図６Ａおよび図６Ｂを参照して前記で説明してある。例えば、図２に示す曲線引き出しアイコン２１４を選択すると、曲線の形状をモデルに適用することでモデルを変形する変形操作を選択することができ、球形突きアイコン２１６（図２を参照）を選択すると、モデルの１つまたは複数の曲面に球状の印象を与える変形操作を選択することができる。変形コントロールは、任意の低位ジオメトリにすることができる。非限定的な例をあげると、識別された変形コントロールは、点、曲線、平面、軸、または面の領域であってもよく、点の選択、曲線の描画、平面の配置、または面領域の指定によって識別することができる。変形コントロールはまた、グローバル変形を適用するために使用されるオブジェクトであってもよい。いずれの場合にも、変形コントロールは選択された変形操作を補完する。例えば、引き出し操作は、点、曲線、または面の領域によって制御することができる。スケール操作は、（図６Ａに示すように）長方形フレームの円錐ハンドルによって制御することができる。曲げ操作は、（図６Ｂに示すように）ピボットポイントおよび作用ポイントによって制御することができる。さらに、一部の変形コントロールは、選択された変形操作の特性によって暗黙指定される場合もある。
【００３０】
次のステップにおいて、１つまたは複数の追加の制約が定義される（ステップ７０６）。そのような追加の制約の１つは、作用範囲である。作用範囲が制約として定義された場合、変形コントロールを取り囲む領域内のポイントだけが変形操作の影響を受ける。非限定的な例をあげると、作用範囲は、変形コントロールを取り囲む指定の大きさの半径によって指定される３次元領域である。さらに、作用範囲のサイズは、システム定義のサイズまたはユーザ定義のサイズであってもよい。もう１つの制約は領域制約であり、この場合には、選択された領域だけが変形操作の影響を受ける。選択される領域は、変形の影響を受ける領域を取り囲む輪郭を描くことによって示すことができる。
【００３１】
さらにもう１つの制約は、パターン制約である。パターン制約が定義された場合、四角形、円形、またはミラーパターンなどのパターンに必要な方法で変形を複製する。ミラーパターン制約の場合、ミラーアイコンがユーザインターフェースから選択されると、選択されたコンポーネントがユーザによって配置された平面の反対側に対照的に複製される。その後、対称コンポーネントの１つが変形される場合、対称変形がもう一方の対称コンポーネントに同時に適用される。
【００３２】
他の追加の制約には、ハーフスペース制約またはスペースバンド制約を含めることができる。ハーフスペース制約は、変形操作を、指定された平面の片側に配置されたポイントに限定する。スペースバンド制約は、変形操作を、２つの並行面の間に配置されたポイントに限定する。
【００３３】
次のステップにおいて、変形コントロールが移動または変更される（ステップ７０８）。変形コントロールは、マウスなどのポインティングデバイスを使用する従来のユーザインターフェースによって移動し、変形コントロール（例えば、点、曲線、または面の領域など）をモデリング領域の新しい位置にドラッグすることができる。変形コントロールは、変更することもできる。非限定的な例をあげると、最初に直線である変形コントロールは湾曲させることができ、曲線である変形コントロールは形状を変更する（例えば曲げる）ことができ、あるいは領域を取り囲む境界である変形コントロールは拡張、縮小、または他の方法で変更（例えば歪曲）することができる。
【００３４】
変形コントロールが移動または変更される一部の例では、変形ターゲットが形成される。変形ターゲットは、新しい位置で変形コントロールを表すか、または新しい形状をとる変形コントロールを表す。変形ターゲットは、変形コントロールと同じ表現を使用して定義される。つまり、変形コントロールが点または曲線である場合、変形ターゲットはそれぞれ、点または曲線として表される。
【００３５】
次に、手順７００は、機能ライブラリから３Ｄマッピング関数を導き出す（ステップ７１０）。３Ｄモデルに適用される際に３Ｄマッピング関数は、該当する場合、ステップ７０６で定義された追加の制約を考慮しながら、変形コントロールを変形ターゲットにマッピングする。３Ｄマッピング関数が滑らかである場合、３Ｄマッピング関数は、モデルの面内および面間の平滑度を自動的に保持する。例えば、Ｃ2マッピングは、面内および面間のＣ2連続性を保持する。
【００３６】
ループ７２０の各サイクルあたり１つの、ステップ７１０で導き出した一連の３Ｄマッピング関数は、操作される１つまたは複数の曲面の変形される形状を決定する。モデルの内部表現は、ワープ面の集合として保持される。ここで本発明によって実装されるワープ面は元の面定義に適用される滑らかな３Ｄマッピング関数のシーケンスである。各変形にモデルの曲面の初期定義を再定義させるのではなく、滑らかな３Ｄマッピング関数のシーケンスおよび元の定義が格納されて相互に関連付けられる。ループ７２０のサイクルごとにステップ７１０で導き出された各滑らかな３Ｄマッピング関数は、順に１つの変形を表す。
【００３７】
ワープ面を使用することの１つの利点は、任意のパラメトリック面を変換することなく元の曲面として使用できることにある。３Ｄマッピングの同じシーケンスを、Ｂ−ｒｅｐ（つまり境界表現面）などのパラメトリック面の集合に適用すると、通常、パラメトリック面の集合のトポロジおよびパラメトリック面の間の連続関係の両方を保持する。ワープ面を使用することのもう１つの利点は、操作にまったく近似が必要ないため、曲面が操作される際に精度が保持されることにある。実装は、ワープ面へのメッシュ近似値化を使用することによって表示およびクエリ最適化の恩恵を受けることができる。ただし、この近似値化は面表現に組み込まれない。ワープ面を使用することのもう１つの利点は、曲面の精度エバリュエータ（つまり、関数の値およびその導関数を計算する方法）が使用可能であるため、ワープ面はパラメトリック面の利点のすべてを備えている（例えば、メッシュで面を近似させる方法および様々な形状演算のための方法があること）ことにある。ワープ面を使用することのさらにもう１つの利点は、新しい変形でモデル状態を更新するために比較的わずかな計算しか必要ないことにあり、そのためモデルをインタラクティブに操作することができる。ワープ面を使用することのさらにもう１つの利点は、各々の変形が少数のパラメータで記述することができるため、ディスクストレージスペースに関してモデル全体の簡潔な表現をもたらすことができることにある。
【００３８】
手順７００の次のステップにおいて、３Ｄマッピング関数は現在のモデル状態に適用される（ステップ７１２）。ここで現在のモデル状態は、これまでに適用されたすべての変換（３Ｄマッピング関数など）を備えるモデルの元の表現である。例えば、モデル表現が多角形メッシュとして定義される場合、モデル状態は変換のシーケンスを多角形メッシュの頂点に適用することによって生成される。より高い曲率の領域において、変形されたモデルのメッシュ近似の精度を高めるため、多角形メッシュの密度は自動的に増加させることができる。
【００３９】
手順７００では次に、識別された変形コントロール、選択された変形操作、および定義された制約を使用してモデルの変形を続行するかどうか決定する（ステップ７１４）。続行の決定は、変形コントロールを移動または変更するようにさらに入力が受け取られた場合に行われる。続行の決定が行われた場合、導き出された最新の３Ｄマッピング操作が、その後導き出された３Ｄマッピング関数に置き換えられる。
【００４０】
識別された変形コントロール、選択された変形操作、および定義された制約を使用してモデルの変形が完了した場合、手順７００では次に、新しい機能をモデルに適用するかどうか決定する（ステップ７１６）。新しい機能をモデルに適用する場合、別の変形操作が選択され、別の変形コントロールが識別され（ステップ７０４）、および／または追加の制約が定義される（ステップ７０６）。次に変形コントロールは、移動または変更される（ステップ７０８）。次に、新しい３Ｄマッピング関数が導き出され（ステップ７１０）、現在のモデル状態に適用される（ステップ７１２）が、これには以前導き出された３Ｄマッピング関数が含まれている。新しい３Ｄマッピング関数は、モデルを再定義するために使用される変換のシーケンスにおいて別の変換になり、識別された変形コントロール、選択された変形操作、および定義された制約を使用するモデルの変形を続行しないように決定されるまで、その後導き出された３Ｄマッピング関数に置き換えられる。手順７００で新しい機能がモデルに適用されないように決定した場合（ステップ７１６）、手順７００は終了する（ステップ７１８）。
【００４１】
１つの実施形態において、変形されたモデルは、プレビューのためにユーザに提示することができる。そのような実施形態において、プレビューステップは、モデルの変形を続行しない決定が行われた直後（すなわちステップ７１４の後で、かつステップ７１６の前）に生じる。プレビューステップでは、ユーザに変形を受け入れるかどうかたずねるユーザインターフェースダイアログボックスを表示する。次にユーザは、ダイアログボックスの承認ボタンを押すことで変形を受け入れる機会がある。この場合、導き出された最後の３Ｄマッピング関数が３Ｄマッピング関数のワープ面シーケンスに追加される。ユーザが、ダイアログボックスに表示された拒否ボタンを押した場合、導き出した最後の３Ｄマッピング関数は３Ｄマッピング関数のワープ面シーケンスに追加されない。
【００４２】
ここで図８を参照すると、本発明によって使用されるモデルのデータ構造８００が示されている。データ構造８００は、３つのワープ面８３０、８４０、および８５０によって定義されるモデルの抽象的表現である。３つの曲面は、面１定義８３２、面２定義８４２、および、面３定義８５２として格納される。図７のステップ７１０で導き出した３つの３Ｄマッピング関数は、３つの曲面のうち１つまたは複数の曲面に適用される。１つの３Ｄマッピング関数は面１定義８３２および面２定義８４２に適用され、第１の３Ｄマッピング関数８３４および第１の３Ｄマッピング関数８４４としてデータ構造８００に２回格納される。第２の３Ｄマッピング関数８３６は、面１定義８３２のみに適用され、面１定義８３２に関連付けられているデータ構造８００に格納される。第３の３Ｄマッピング関数は面１定義８３２、面２定義８４２、および面３定義８５２に適用され、第３の３Ｄマッピング関数８３８、第３の３Ｄマッピング関数８４８、および第３の３Ｄマッピング関数８５８としてデータ構造８００に格納される。
【００４３】
ステップ７１０で導き出され、図８で説明されている３Ｄマッピング関数は、適用される特定の変形を定義する。当業者であれば、本明細書で説明されている変形および他の変形を定義できる様々なマッピング関数を設計することができるであろう。一般に、フリーフォーム変形の設計は、十分な制約がない問題である。つまり、可能な変形の数が大きければ、望ましい特性を備えることができる。以下に、前述の変形の可能な定義の一部について、非限定的な例をあげて説明する。定義は、ｘの関数として表される。ここでｘは３Ｄ空間内の点である。
【００４４】
１つの実施形態において、変形コントロールが移動または変更されると、変形コントロールに最も近接する点が最も大きい移動を行う。つまり、作用領域の外側境界に近接する点は、変形コントロールにより近い点に比べて少ない距離を移動し、作用領域の外側境界上または境界の向こう側の点はまったく移動しない。
【００４５】
以下の２つの例において、ｈ（ｔ）と示される関数は、変形が作用範囲の外側境界で最大になるコントロール付近の領域からの滑らかな移行を構築するために使用される。関数は、その定義域全体でＣ2であり、以下のように定義される。
【００４６】
【数１】
2006031715.tif 000003
【００４７】
ポイント引き出し操作のために設計されたマッピング関数は、以下のように表すことができる。
【００４８】
【数２】
2006031715.tif 000004
【００４９】
ここで
【００５０】
【数３】
2006031715.tif 000005
【００５１】
は変形コントロールの位置である。
【００５２】
【数４】
2006031715.tif 000006
【００５３】
はターゲットポイントであり、
Ｒは影響範囲の半径である。
【００５４】
１つの実施形態に実装されて、モデル化オブジェクトの幅を狭める（例えば、ネックを作成する）マッピング関数の例は、以下のように表すことができる。
【００５５】
【数５】
2006031715.tif 000007
【００５６】
ここで
【００５７】
【数６】
2006031715.tif 000008
【００５８】
はネック形状の中心点である。
【００５９】
ｓは倍率であり、ｓ＞０である。
【００６０】
Ｒは影響範囲の半径である。
【００６１】
【数７】
2006031715.tif 000009
【００６２】
は、中心点を通って配置された平面に垂直な単位ベクトルであり、モデル化オブジェクトの点が平面に沿って中心点に引き出されるようになっている。
【００６３】
【数８】
2006031715.tif 000010
【００６４】
は、ベクトル
【００６５】
【数９】
2006031715.tif 000011
【００６６】
および
【００６７】
【数１０】
2006031715.tif 000012
【００６８】
の内積を示している。
【００６９】
１つの実施形態において、モデル化オブジェクトに球形特性を型押しするためのマッピング関数は、以下のように表すことができる。
【００７０】
【数１１】
2006031715.tif 000013
【００７１】
ここで
【００７２】
【数１２】
2006031715.tif 000014
【００７３】
はモデルに作用する球形の中心である。
【００７４】
Ｒは、球形の半径である。
【００７５】
ｒは、型押しされる球形および影響範囲の半径の端との間の以降の半径であり、
【００７６】
【数１３】
2006031715.tif 000015
【００７７】
前述の３Ｄマッピング関数の式は、空間でＣ2連続であり、このため曲面のＣ2連続は保持される。さらに、前述の３Ｄマッピング関数の式は、非アフィン３Ｄマッピング関数である。さらに、前述の式は、自然に見える形状変形をもたらし、効率的な実装を可能にする。
【００７８】
ユーザの視点から考えると、本明細書で説明されている変形は、各々の変形がワープ面への変形として指定され、しかも内部で適切な空間変形（３Ｄマッピングなど）が構築されるため、直観的である。１つの実施形態において、元の曲面は、パラメトリック面ｓ（ｕ，ｖ）：［０，１］2→Ｒ3として定義されるが、これは長方形である可能性もある。マッピングｆ：Ｒ3→Ｒ3が元の曲面に適用される場合、新しいパラメトリック面は
【００７９】
【数１４】
2006031715.tif 000016
【００８０】
として表すことができる。ｎのマッピングｆ1，．．．ｆnの後、新しいパラメトリック面は、マッピングおよび元のパラメトリック面の合成、つまり
【００８１】
【数１５】
2006031715.tif 000017
【００８２】
である。上記ではパラメトリック面を使用する実施形態について説明しているが、元の曲面は評価できる任意の種類の曲面として定義することができる。
【００８３】
パラメトリック面を表示して、曲面に効率的に他の計算を実行するため、曲面を近似値化するメッシュは保持される。新しい変形が３Ｄマッピングシーケンスに追加される場合、新しい変形は、変形される曲面に近似値化するメッシュを実現するようにメッシュの頂点に適用される。変形後にメッシュが粗過ぎる場合、曲面は追加の点において評価され、必要に応じてメッシュが精密化される。メッシュは、非特許文献３に説明されているような技術を使用して生成することができる。
【００８４】
様々なモデリング操作（例えば、面交差、レンダリング、およびメッシュ精密化）は、曲面の一次および二次導関数を評価する能力を必要とするか、またはその能力によって高めることができる。好ましい実施形態において、３Ｄマッピングエバリュエータは一次および二次導関数を処理することができる。１つの実施形態において、任意点におけるワープ面の正確な一次および二次導関数を計算するために（関数の合成の導関数を求める場合当業者には既知である）連鎖法が適用される。
【００８５】
本発明のさらなる利点には、任意の低位ジオメトリを使用して、１つまたは複数のワープ面としてモデルの滑らかなリアルタイムの変形および効率的なディスクストレージを制御する能力を提供することが含まれる。低位ジオメトリを使用してモデルを操作することにより、フリーフォーム面を変形する自然で、すばやく、しかも簡単な手法を本発明のユーザに提供する。一方、モデルを１つまたは複数のワープ面として格納することは、ストレージスペースの点からも効率的であるばかりでなく、ワープ面として格納するのでモデルの精度を保持することがきる。
【００８６】
図９は、ＣＰＵ９０２、ＣＲＴ９０４、キーボード入力装置９０６、マウス入力装置９０８、および記憶装置９１０を含むコンピュータ化モデリングシステム９００を示している。ＣＰＵ９０２、ＣＲＴ９０４、キーボード９０６、マウス９０８、および記憶装置９１０は、一般に提供されているコンピュータハードウェア装置を含めることができる。例えば、ＣＰＵ９０２は、Ｐｅｎｔｉｕｍ（登録商標）ベースのプロセッサを含めることができる。マウス９０８は、ＣＰＵ９０２によって実行されているソフトウェアプログラムにコマンドを発行するためにユーザが押すことができる通常の左および右ボタンを備えることができる。代替として、あるいはマウス９０８に追加して、コンピュータ化モデリングシステム９００は、トラックボールなどのポインティングデバイス、タッチパッド、またはキーボード９０６に組み込みのポインティングデバイスおよびボタンを含むことができる。当業者であれば、マウス装置を参照して本明細書に説明されている同様の結果が、他の使用可能なポインティングデバイスを使用して達成できることを理解するであろう。以下の説明から明らかとなるように、他のしかるべきコンピュータハードウェアプラットフォームも適切である。そのようなコンピュータハードウェアプラットフォームは、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ＮＴ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）９８、Ｗｉｎｄｏｗｓ（登録商標）２０００、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）ＭＥ（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、またはＭＡＣ  ＯＳ（登録商標）オペレーティングシステムを操作できることが好ましい。
【００８７】
追加のコンピュータ処理装置およびハードウェア装置（例えば、高速プロトタイピング、ビデオ、およびプリンタ装置）は、コンピュータ化モデリングシステム９００に含めることもできる。さらに、コンピュータ化モデリングシステム９００は、ネットワークハードウェアおよびソフトウェアを含むことができ、これによりハードウェアプラットフォーム９１２への通信が可能になり、コンピュータコンポーネントの中でも特にＣＰＵおよびストレージシステムを含む多くのコンピュータシステム間の通信が容易になる。
【００８８】
コンピュータ支援モデリングソフトウェアは、ストレージ装置９１０に格納することができ、ＣＰＵ９０２にロードして実行することができる。モデリングソフトウェアにより、ユーザは３Ｄモデルを作成して変更することができ、本明細書に説明されている本発明の態様を実装することができる。ＣＰＵ９０２は、ＣＲＴ９０４を使用して３Ｄモデルおよび説明されている他の態様を表示する。キーボード９０６およびマウス９０８を使用して、ユーザは３Ｄモデルに関連付けられているデータを入力して変更することができる。ＣＰＵ９０２は、キーボード９０６およびマウス９０８からの入力を受け入れて処理する。ＣＰＵ９０２は、３Ｄモデルに関連付けられているデータと共に入力を処理し、ＣＲＴ９０４に表示される３Ｄモデルに対して、モデリングソフトウェアによって指示されたとおり対応する適切な変更を行う。１つの実施形態において、モデリングソフトウェアは、１つまたは複数の固体および面体で構成される３Ｄモデルを構築するために使用できるソリッドモデリングシステムに基づいている。さらに、モデリングソフトウェアにより、１つまたは複数の物体または形状の定義を相互にパラメトリックに制約する関係を可能にすることができる。パラメトリックに制約された関係が２つの形状の間に存在する場合、１つの形状に対する幾何学的変更は、もう一方の形状の幾何学的変更を生じさせることができる。
【００８９】
本発明は、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェア、あるいはその組合せにおいて実装することができる。本発明の装置は、プログラマブルプロセッサによって実行するために機械可読記憶装置に明白に具体化されたコンピュータプログラム製品において実装することができる。そして本発明の方法ステップは、命令のプログラムを実行するプログラマブルプロセッサによって実行され、入力データを操作して出力を生成することにより本発明の機能を実行することができる。本発明は、データおよび命令を送受信するように接続された少なくとも１つのプログラマブルプロセッサ、データ記憶システム、少なくとも１つの入力装置、および少なくとも１つの出力装置を含むプログラマブルシステム上で実行可能な１つまたは複数のコンピュータプログラムにおいて有利に実装することができる。各コンピュータプログラムは、高水準プロシージャ型またはオブジェクト指向プログラミング言語で、あるいは必要に応じてアセンブリまたはマシン言語で実装することができる。いずれの場合も、言語はコンパイラ型またはインタープリタ型言語であってもよい。適切なプロセッサには、非限定的な例として、汎用および特殊用途マイクロプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受け取る。コンピュータプログラム命令およびデータを明白に具体化するために適切な記憶装置は、一例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ素子などの半導体記憶装置、内部ハードディスクおよび取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスクを含むあらゆる形態の不揮発性メモリを含んでいる。前述のいずれも、カスタム設計のＡＳＩＣ（特定用途向け集積回路）に補完されるか、またはこれに組み込むことができる。
【００９０】
本発明の多くの実施形態について説明してきた。それでもなお、本発明の範囲または精神を逸脱することなく、様々な変更を行うことができることを理解されたい。例えば、実装では、操作が実行される順序を変更することができる。さらに、実装の必要に応じて、本明細書で説明した特定の操作を、組み合わされた操作として実装、除去、追加、または再配置することができる。例えば、図７において、追加の制約を定義するステップ（例えばステップ７０６）を除去することができる。その上さらに、変形コントロールは、変形操作の選択に先立って、しかも選択とは関係なく識別することができ、１つの変形コントロールは様々な変形操作の複数の選択に対して識別することができる。同様に、複数の変形コントロールが識別されていても、１つの変形操作を選択することができる。
【００９１】
さらに、実装により、一度に複数の変形操作を選択することが可能になる。そのような実装において、変形コントロールは選択される変形操作ごとに識別することができ、各変形コントロールは独立して移動および変更することができる。これにより、ユーザは、変形操作および変形コントロールの組を選択することにより、同時に多数の可能なインタラクションを確立することができる。
【００９２】
したがって、他の実施形態は以下の請求の範囲に沿っている。
【図面の簡単な説明】
【００９３】
【図１】ウィンドウに表示されるコンピュータ生成モデルを示す図である。
【図２】一連のアイコンを示す図である。
【図３】変形された３Ｄモデルを示す図である。
【図４】変形された３Ｄモデルを示す図である。
【図５Ａ】３Ｄモデル上の曲線を示す図である。
【図５Ｂ】変形された３Ｄモデルを示す図である。
【図６Ａ】変形された３Ｄモデルを示す図である。
【図６Ｂ】変形された３Ｄモデルを示す図である。
【図７】３Ｄモデルを直接操作するための手順を示す流れ図である。
【図８】データ構造を示す図である。
【図９】コンピュータシステムを示す図である。
【図１】
2006031715.tif 000018
【図２】
2006031715.tif 000019
【図３】
2006031715.tif 000020
【図４】
2006031715.tif 000021
【図５Ａ】
2006031715.tif 000022
【図５Ｂ】
2006031715.tif 000023
【図６Ａ】
2006031715.tif 000024
【図６Ｂ】
2006031715.tif 000025
【図７】
2006031715.tif 000026
【図８】
2006031715.tif 000027
【図９】
2006031715.tif 000028
【外国語明細書】
2006031715000001.pdf