(57)【要約】      （修正有）【課題】複数のオーバーラップするマニピュレータの中からグラフィカルユーザインターフェイスに表示される１つのマニピュレータを選択する方法を改良する。【解決手段】グラフィカルユーザインターフェイスにおいて表示される複数のオブジェクトの中から１つのオブジェクトのマニピュレータを選択するためのコンピュータ実行プロセスを開示する。各オブジェクトは少なくとも１つのマニピュレータを含む。前記コンピュータ実行プロセスは、マニピュレータのセットを提供するステップ（Ｓ１００）と、ユーザが前記グラフィカルユーザインターフェイスとインタラクトすると、適用されたイベントを受け入れるステップ（Ｓ１５０）と、フィルタのセットを起動して、コンピュータ実行プロセスされるべき１つのマニピュレータを選択するステップ（Ｓ１７０）とを含む。【選択図】図１
2012238310.tif 000002
【特許請求の範囲】
【請求項１】
グラフィカルユーザインターフェイスにおいて表示される複数のオブジェクトの中から１つのオブジェクトのマニピュレータを選択するコンピュータ実行プロセスであって、各オブジェクトは少なくとも１つのマニピュレータを含む、コンピュータ実行プロセスにおいて、
複数のマニピュレータのセットを提供するステップ（Ｓ１００）であって、各前記マニピュレータは少なくとも１つのピッキングエリアを含み、前記マニピュレータのセットの中の異なるマニピュレータの少なくとも２つのピッキングエリアはオーバーラップしている、提供するステップと、
前記グラフィカルユーザインターフェイスとのユーザのインタラクトに応答して、前記少なくとも２つのオーバーラップするピッキングエリアに適用されたイベントを受け入れるステップ（Ｓ１５０）と、
複数のフィルタのセットを起動して、前記複数のマニピュレータのセットの中からアクチベートされるべき１つのマニピュレータを選択するステップ（Ｓ１７０）と
を含むことを特徴とするコンピュータ実行プロセス。  
【請求項２】
前記複数のマニピュレータのセットから複数のマニピュレータを選択するステップをさらに含み、各選択されたマニピュレータは前記イベントを受け入れる少なくとも１つのピッキングエリアを有することを特徴とする請求項１記載のコンピュータ実行プロセス。  
【請求項３】
前記グラフィカルユーザインターフェイス内の１つの位置から光線を発するステップ（Ｓ１２０）と、
当該光線と前記少なくとも２つのオーバーラップするピッキングエリアとの交差を判定するステップ（Ｓ１３０）と
をさらに含むことを特徴とする請求項１または２に記載のコンピュータ実行プロセス。
【請求項４】
前記複数のフィルタのセット（Ｓ１７０）は下記のフィルタの中の少なくとも２つを含み、当該下記のフィルタは、
前記イベントが関与している複数のマニピュレータのサブセットを作るフィルタと、
各マニピュレータの優先度に従って複数のマニピュレータのサブセットを作るフィルタと、
前記グラフィカルユーザインターフェイスにおける位置から最短距離を有するポイントを持つ複数のマニピュレータのサブセットを作るフィルタと、
ユーザ視点から最も近い距離のマニピュレータを選択するフィルタ、
であることを特徴とする請求項１乃至３のいずれかに記載のコンピュータ実行プロセス。  
【請求項５】
前記複数のフィルタのセットが順次起動されることを特徴とする請求項４記載のコンピュータ実行プロセス。
【請求項６】
マニピュレータをマニピュレータマネージャに登録するステップ（Ｓ１０２）を更に含むことを特徴とする請求項１乃至５のいずれかに記載のコンピュータ実行プロセス。
【請求項７】
前記マニピュレータを登録するステップは、
各マニピュレータについて、それぞれの識別子を、前記マニピュレータマネージャによって管理されている記憶部に記憶されている第１のリストに記憶するステップ（Ｓ１０４）と、
各マニピュレータについて、前記それぞれの少なくとも１つのピッキングエリアを、前記マニピュレータマネージャによって管理されている前記記憶部に記憶されている第２のリストに記憶するステップ（Ｓ１０４）と
を含むことを特徴とする請求項６記載のコンピュータ実行プロセス。  
【請求項８】
前記第１のリストを検索し（Ｓ１４０）、識別子を取り出すステップであって、該識別子は前記少なくとも２つのオーバーラップするピッキングエリアに対応しており、当該ピッキングエリアは前記第２のリストに記憶されているイベントを受け入れるエリアである、取り出すステップと、
当該取り出された識別子のそれぞれのマニピュレータを識別するステップと
をさらに含むことを特徴とする請求項７記載のコンピュータ実行プロセス。
【請求項９】
グラフィカルユーザインターフェイスにおいて表示される複数のオブジェクトの中から１つのオブジェクトのマニピュレータを選択する装置であって、各オブジェクトは少なくとも１つのマニピュレータを含み、前記装置は請求項１乃至８のいずれかの方法を実行する手段を含むことを特徴とする装置。
【請求項１０】
コンピュータによって実行される命令を含むコンピュータプログラムであって、当該命令は請求項１乃至８のいずれかのプロセスを実行する手段を含むことを特徴とするコンピュータプログラム。
【請求項１１】
請求項１０のコンピュータプログラムを記憶していることを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータプログラム及びコンピュータシステムの分野に関し、特に、グラフィカルユーザインターフェイスに表示された複数のオブジェクトの中から１つのオブジェクトのマニピュレータを選択するプロセス（方法）、装置及びプログラムに関し、各オブジェクトは少なくとも１つのマニピュレータを含む。
【背景技術】
【０００２】
オブジェクトの設計、研究（エンジニアリング）及び製造のための多くのシステム及びプログラムが市場に提供されている。これらオブジェクトは２次元オブジェクトまたは３次元オブジェクトである。
【０００３】
ＣＡＤはＣｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎの頭文字であり、例えば、オブジェクトを設計するためのソフトウエアソリューションに関する。ＣＡＥはＣｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｅｎｇｉｎｅｅｒｉｎｇの頭文字であり、例えば、未来の製品の物理的動作をシミュレーションするためのソフトウエアソリューションに関する。ＣＡＭはＣｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇの頭文字であり、例えば、製造プロセス及び製造作業を規定するためのソフトウエアソリューションに関する。このようなＣＡＤシステムにおいて、グラフィカルユーザインターフェイスは、技術の効率（化）という観点において重要な役割を果たす。このような技術はプロダクトライフサイクルマネージメント（ＰＬＭ：Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ）システムに含まれている場合がある。ＰＬＭは、拡張エンタープライズという概念の中で、発想から製品寿命終了までの製品開発のために、企業が製品データを共有し、共通のプロセスを適用し、企業の知識を活用・向上するのに役立つビジネスストラテジ（戦略）を意味する。
【０００４】
コンピュータプログラムは、図面及び図形を含むその他の書類を作成する際に広く用いられている。これらプログラムは、コンピュータディスプレイを介してユーザがオブジェクト（例えば、グラフィックス、アイコン、幾何学形状、画像、テキストブロック）を作成して操作する（マニピュレートする）際にユーザを援助する種々のツールを有している（内包している）。ＣＡＤソリューション（例えば、商標ＣＡＴＩＡが付されているＤＡＳＳＡＵＬＴ  ＳＹＳＴＥＭＳというシステムによって提供されるＣＡＤソリューション）では、マニピュレータがあるのでユーザは常にジオメトリ（幾何学的形状）とインタラクト(対話）する。マニピュレータは、また、ハンドルベースのツール（またはハンドル）として知られている。ユーザはポインタをマニピュレータ（またはハンドル）に向けて当該ポインタでクリックしたりドラッグしたり所望の軌道を描いたりすることによって、大きなグラフィカル（図形）オブジェクトに対する処理・作業を行うことができる。インタラククションは、マウス、トラックボール若しくはスタイラスの制御の下でポインタを使用してディスプレイデバイス上で行われる。またインタラクションは、ポインタ（例えば、指またはスタイラス）を使用して接触感知型ディスプレイデバイス上で直接行われることもある。マニピュレータは没入型オブジェクトであり、これによってユーザは所定の機能（例えば、修正すべきオブジェクトが存在しているシーン中の幾何学的形状を直接、変形、移動及び変換すること）を開始できる。マニピュレータは１つ若しくは複数のミニチュア図形またはアイコンを含むことができ、当該図形またはアイコンはこれらより大きな図形オブジェクトに関連づけられて表示される。マニピュレータは四角形、球、メッシュまたはその他の複雑な形状（例えば、ロボット、軸  等）によって表される。
【０００５】
このようなマニピュレータとインタラクトするいくつかの方法が存在する。マニピュレータとインタラクトするための動作は、マニピュレータをピッキング（ｐｉｃｋｉｎｇ）すると表現されることもある。マニピュレータとインタラクトする第１の方法は「画素プレシジョン」法であり、マニピュレータのアクティブエリアはマニピュレータの視覚表現（目に見える表示）とまったく同じである。アクティブエリアはスクリーン上の可視ゾーンであり、このゾーン内でユーザはオブジェクトに適用された機能を開始することができる。これはウィジウィグ（ＷＹＳＩＷＹＧ：Ｗｈａｔ  Ｙｏｕ  Ｓｅｅ  Ｉｓ  Ｗｈａｔ  Ｙｏｕ  Ｇｅｔ）ビヘイビアである。これが図４に示されており、図４の左側ではカーソルがマニピュレータ（両方向矢印）に正確に接触していないので、マニピュレータはアクティブではない。図４の右側では、カーソルがマニピュレータに接触しているので、マニピュレータはアクティブである。
【０００６】
マニピュレータとインタラクトするための第２の方法は「拡張されたピッキングエリア」を利用する。ピッキングエリアはイベントをマニピュレータに送ることができる表面を意味する。これは図５に示されており、図５にはマニピュレータ（両方向矢印）とそのピッキングエリア（円）が描かれている。図５の左側では、カーソルはピッキングエリアになく、マニピュレータはアクティブではない。図５の右側ではカーソルはピッキングエリアにあり、マニピュレータはアクティブである。ピッキングエリアは、ユーザがオブジェクトに適用される機能を開始することができるスクリーンのゾーンである。マニピュレータの視覚表示はアクティブな不可視エリア（ピッキングエリア）によって拡張され、ユーザはたとえオブジェクトから離れていてもマニピュレータをピッキングすることができる。ピッキングエリアは目に見えても見えなくてもよい。
【０００７】
マニピュレータとインタラクトする第３の方法は「常にどこでもマニピュレートする」という手法を利用し、全スクリーンがマニピュレータとインタラクトするようになっている。従って、これ以上の選択はできない。図６に示されたグラフィカルユーザインターフェイスでは、ピッキングエリアが全スクリーンを包含するので、カーソルが常にエリアをピッキングしている。
【０００８】
上記したマニピュレータとインタラクトする方法はそれぞれ課題（問題点）を有している。画素プレシジョン法は生産性と人間工学という点で不十分であり、ユーザは可視表示（１つまたは２つの画素の厚さしかない場合もある）を正確にピッキングしなければならないので、スムースに作業をすることができない。拡張ピッキングエリア法は、数個のマニピュレータがスクリーン上でオーバーラップする場合にピッキングにおいて問題を有する（ピッキングがうまくできない）。どのマニピュレータが作動されなければないのか、区別がつかなくなる。その結果、予期しない結果が生じ得る。これが図７に示されており、カーソルが２つのマニピュレータ（両方向矢印と四角形）の両方のピッキングエリア内に位置している。よって、この方法は、数個のマニピュレータがオーバーラップする場合には不適当である（使用できない）。「常にどこでもマニピュレートする」方法は、不可視表示が全スクリーン上で焦点を合わせているので、他の技術とともに使用することができない。その結果として、１つのマニピュレータだけが必要とされる場合にのみ、当該方法を使用できるということになり、数個の独立したマニピュレータがある場合には使用できない。
【０００９】
上記の説明から分かるように、複数のオーバーラップするマニピュレータの中からグラフィカルユーザインターフェイスに表示される１つのマニピュレータを選択する方法の改良が望まれている。
【発明の概要】
【課題を解決するための手段】
【００１０】
従って、本発明の１つの態様によれば、グラフィカルユーザインターフェイスにおいて表示される複数のオブジェクトの中から１つのオブジェクトのマニピュレータを選択するためのコンピュータ実行プロセスが提供される。このコンピュータ実行プロセスは、
複数のマニピュレータのセットを提供するステップであって、各前記マニピュレータは少なくとも１つのピッキングエリアを含み、前記マニピュレータのセットの中の異なるマニピュレータの少なくとも２つのピッキングエリアはオーバーラップしている、提供するステップと、
前記グラフィカルユーザインターフェイスとのユーザのインタラクトに応答して、前記少なくとも２つのオーバーラップするピッキングエリアに適用されたイベントを受け入れるステップと、
複数のフィルタのセットを起動して、前記複数のマニピュレータのセットの中からアクチベートされるべき１つのマニピュレータを選択するステップと
を含む。
【００１１】
前記プロセスはさらに下記のステップの１つまたは複数を含むことができる。
【００１２】
（１）前記マニピュレータのセットから複数のマニピュレータを選択するステップであって、各選択されたマニピュレータは前記イベントを受け入れる少なくとも１つのピッキングエリアを有する、選択するステップ；
【００１３】
（２）前記グラフィカルユーザインターフェイス内の１つの位置から光線を発し（投じ）、当該光線と前記少なくとも２つのオーバーラップするピッキングエリアとの交差を判定するステップ；
なお、前記複数のフィルタのセットは下記のフィルタの中の少なくとも２つを含む。
前記イベントが関与しているマニピュレータのサブセットを作るフィルタ;
各マニピュレータの優先度（優先順位）に従って複数のマニピュレータのサブセットを作るフィルタ；
グラフィカルユーザインターフェイスにおける１つの位置から最短距離を有するポイントを持つ複数のマニピュレータのサブセットを作るフィルタ；
ユーザ視点から最も近い距離のマニピュレータを選択するフィルタ；
なお、前記複数のフィルタのセットは順次起動されてもよい。
【００１４】
（３）マニピュレータをマニピュレータマネージャに登録するステップ;
前記マニピュレータを登録するステップは、
各マニピュレータについて、それぞれの識別子を、前記マニピュレータマネージャによって管理されている記憶部（ストレージ）に記憶（保存）されている第１のリストに記憶するステップ；
各マニピュレータについて、前記それぞれの少なくとも１つのピッキングエリアを、前記マニピュレータマネージャによって管理されている記憶部に記憶されている第２のリストに記憶するステップ；
を含む。
【００１５】
（４）前記第１のリストを検索し、識別子を取り出すステップであって、該識別子は前記少なくとも２つのオーバーラップするピッキングエリアに対応しており、当該ピッキングエリアは前記第２のリストに記憶されているイベントを受け入れるエリアである、取り出すステップおよび当該取り出された識別子のそれぞれのマニピュレータを識別するステップ。
【００１６】
また、本発明は、グラフィカルユーザインターフェイスにおいて表示された複数のオブジェクトの中から１つのオブジェクトのマニピュレータを選択する装置を提供する。各オブジェクトは少なくとも１つのマニピュレータを含む。当該装置は、前記した本発明のプロセスを実行する手段を含む。
【００１７】
さらに、本発明は、コンピュータによって実行される命令を含むコンピュータプログラムを提供する。当該命令は、前記した本発明のプロセスを実行する手段を含む。
【００１８】
また、本発明は、前記コンピュータプログラムを記憶したコンピュータ可読記憶媒体を提供する。  
【図面の簡単な説明】
【００１９】
以下において本発明の実施形態が非限定的な例として、添付図面を参照して説明される。
【図１】図１は前記方法の例を示すフローチャートである。
【図２】図２はグラフィカルユーザインターフェイスの例を示す図である。
【図３】図３はクライアントコンピュータシステムの例を示す図である。
【図４】図４は従来技術において公知であるマニピュレータとインタラクトする方法を示す図である。
【図５】図５は従来技術において公知であるマニピュレータとインタラクトする他の方法を示す図である。
【図６】図６は従来技術において公知であるマニピュレータとインタラクトする他の方法を示す図である。
【図７】図７は従来技術において公知であるマニピュレータとインタラクトする他の方法を示す図である。
【図８】図８は本発明によるマニピュレータマネージャとマニピュレータの間のインタラクションを示す図である。
【図９】図９は本発明によるマニピュレータマネージャとマニピュレータの間のインタラクションを示す図である。
【図１０】図１０は本発明によるマニピュレータマネージャとマニピュレータの間のインタラクションを示す図である。
【図１１】図１１は本発明によるマニピュレータマネージャとマニピュレータの間のインタラクションを示す図である。
【発明を実施するための形態】
【００２０】
グラフィカルユーザインターフェイスにおいて表示される複数のオブジェクトの中から１つのオブジェクトのマニピュレータを選択するコンピュータ実行プロセスが提供（提案）される。各オブジェクトは少なくとも１つのマニピュレータを含む。マニピュレータは１つのオブジェクトに関連付けられており、当該オブジェクトへ所定の機能を発揮する（所定の処理を行う）。マニピュレータそのものがオブジェクトである。マニピュレータは付随するオブジェクトとともにシーン（２次元のシーンまたは３次元のシーン）に埋め込まれる。このシーン内には付随オブジェクトが位置する。よって、マニピュレータはシーンの中の没入型のオブジェクトであるということができ、これにより、ユーザは当該マニピュレータに付随するオブジェクトに適用された機能を起動することができる。前記プロセスは、複数のマニピュレータのセットを提供するステップを含む。各マニピュレータは少なくとも１つのピッキングエリアを含む。マニピュレータのピッキングエリアは当該マニピュレータとインタラクトするための表面であり、ピッキングエリアによって受け入れられたイベントはマニピュレータに送られる。イベントをマニピュレータに送るということは、特定の意味を有する信号がそのピッキングエリアを介して当該マニピュレータによって受信されるということを意味する。ピッキングエリアはユーザに見える場合もあるし見えない場合もある。実際には、ピッキングエリアはマニピュレータのグラフィカル表示より大きな表面を有する。ピッキングエリアは数個の形状を有することができ、当該形状は２次元（２Ｄ）形状または３次元（３Ｄ）形状である。ピッキングエリアはマニピュレータの一部であり、よって、ピッキングエリアもまた没入型のオブジェクトである。前記方法において、前記マニピュレータのセットの中の異なるマニピュレータの少なくとも２つのピッキングエリアがオーバーラップする。２つのピッキングエリアは当該２つのピッキングエリアが交差すると、オーバーラップする。前記方法は、ユーザがグラフィカルユーザインターフェイスとインタラクトすると、前記少なくとも２つのオーバーラップするピッキングエリアに適用されたイベントを受け入れるステップを含む。よって、少なくとも２つのピッキングエリアは、ユーザの動作に応じて送られたイベントに関連している。次に、フィルタのセットを起動して、前記マニピュレータのセットの中から１つのマニピュレータを選択し、当該選択されたマニピュレータがアクチベート（活性化）される。
【００２１】
本発明によるプロセスによれば、数個のマニピュレータが選択される可能性があるときに（典型的な場合として、マニピュレータのそれぞれのピッキングエリアがオーバーラップするとき）１つのマニピュレータを選択することができる。これにより、マニピュレータの選択におけるユーザエクスペリエンス（ｕｓｅｒ  ｅｘｐｅｒｉｅｎｃｅ）及び人間工学性が改善される。特に、ピッキング問題無しに「画素プレシジョン」法、「拡張ピッキングエリア」法及び「常にどこでもマニピュレートする」法を組み合わせることができる。加えて、すべてのマニピュレータが同時にインタラクトすることができるので、スクリーンスペースは最適となる（最適化される）。さらに、前記方法はイベントを送ることができるデバイスの全て（例えば、ペンタブレット、マルチタッチハードウエア、バーチャルリアリティ等）に完全に適合している。また、本発明によれば、全マニピュレータを同時に表示することができるので、動作・処理を並行して行うことができる。その結果、もし数個のインタラクション（例えば、数個のタッチポイント）が検出されたとき、正しい基本のマニピュレータが各ポイント位置において起動されることになる。
【００２２】
前記プロセスはコンピュータで実装することができる。これは、前記プロセスのステップ（実質的に全てのステップ）が少なくとも１つのコンピュータによって実行されることを意味する。幾つかの例では、前記プロセスの少なくとも幾つかのステップの起動（開始）は、ユーザとコンピュータのインタラクションによって行われてもよい。必要とされるユーザとコンピュータのインタラクションのレベルは、予想される自動化のレベルに依存し、ユーザの要望を実行する必要性とのバランスを考慮して決められるようにしてもよい。いくつかの例において、このレベルはユーザが決定し、且つ／または、予め決めておいてもよい。
【００２３】
例えば、少なくとも２つのピッキングエリアに適用されたイベントを受け入れるステップは、グラフィカルユーザインターフェイスにおけるユーザインタラクションによって起動される。つまり、デザイナはマウス等のポインティングデバイスによって制御されるカーソルを２つのマニピュレータのそれぞれのピッキングエリア上に動かし、イベントをマニピュレータに送るために当該マウスのボタンをクリックする。
【００２４】
前記プロセスのコンピュータ実装の典型的な例は、この目的に適したグラフィカルユーザインターフェイス（ＧＵＩ）を含むシステムで前記プロセスを実行することである。グラフィカルユーザインターフェイスはメモリ及びプロセッサに接続されている。当該メモリはデータベースを有しており、単に、記憶に適した任意のハードウエアである。
【００２５】
「データベース」という用語は、検索及び取り出しができるように編成された（まとめられた）データ・情報の任意の集合を意味する。データベースがメモリ上に構成・構築されると（データベースがメモリに記憶されると）、コンピュータによる高速検索及び高速取り出しが可能になる。データベースは、種々のデータ処理動作との関連においてデータの記憶、取り出し、修正・変更及び削除を容易にするように構成されている。データベースは１つのファイルからなる場合もあるし複数のファイルからなる（ファイルのセットからなる）場合もある。このようなファイルは複数のレコードに分解・区分けすることができ、各レコードは１つまたは複数のフィールドからなる。フィールドはデータストレージの基本単位である。ユーザは主にクエリを介してデータを取り出す。ユーザはキーワードを用いコマンドをソートすることにより、多くのレコード（記録）内のフィールドを素早く検索し、並べ替えをし、グループ化し、選択することができ、使用されているデータベース管理システムのルールに基づいてデータの特定の集合に関するレポートを取り出したりレポートを作成することができる。
【００２６】
前記プロセスの場合、データベースは各マニピュレータについて、それぞれの識別子を記憶する第１のファイル（または第１のリスト）と、各マニピュレータのそれぞれのピッキングエリア（単数または複数）を記憶する第２のファイル（または第２のリスト）とを含む。これら第１のファイル及び第２のファイルは所定の関係を有する。当該所定の関係により、マニピュレータのピッキングエリア（単数または複数）からマニピュレータの識別子を取り出すことができ、その逆も可能である。
【００２７】
前記プロセスはモデル化されたオブジェクトのマニピュレータに適用することができる。モデル化されたオブジェクトはデータベースに記憶されたデータによって定義される任意のオブジェクトである。拡大解釈すれば、「モデル化されたオブジェクト」という用語・表現はデータそのものを示す。システムのタイプに応じて、前記モデル化されたオブジェクトは異なる種類のデータによって定義されてもよい。システムはＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム及び／またはＰＬＭシステムの任意の組み合わせでよい。
【００２８】
このような異なるシステムにおいて、モデル化されたオブジェクトは対応するデータによって定義される。従って、人によっては、ＣＡＤオブジェクトのことを説明したり、ＰＬＭオブジェクトのことを説明したり、ＣＡＥオブジェクトのことを説明したり、ＣＡＭオブジェクトのことを説明したり、ＣＡＤデータのことを説明したり、ＰＬＭデータのことを説明したり、ＣＡＭデータのことを説明したり、ＣＡＥデータのことを説明する場合がある。しかしながら、これらシステムは互いを排除するものではない（互いに相容れないものではない）。なぜなら、モデル化されたオブジェクトはこれらシステムの任意の組み合わせに対応するデータによって定義しても良いからである。よって、システムはＣＡＤシステムであり且つＰＬＭシステムであって良い。これは、下記において説明されるシステムの定義から明らかになる。
【００２９】
ＣＡＤシステムとは、ＣＡＴＩＡ等のモデル化されたオブジェクトのグラフィカル表示に基づいて当該モデル化されたオブジェクトをデザインするのに少なくとも適した任意のシステムを意味する。この場合、モデル化されたオブジェクトを定義するデータは、当該モデル化されたオブジェクトの表示を可能にするデータからなる。ＣＡＤシステムは例えば、エッジやラインを使用してＣＡＤでモデル化されたオブジェクトの表示を提供する。この表示は、所定の場合、顔や表面を伴う。ライン、エッジまたは表面は種々の形式・手法（例えば、ＮＵＲＢＳ（ｎｏｎ−ｕｎｉｆｏｒｍ  ｒａｔｉｏｎａｌ  Ｂ−ｓｐｌｉｎｅｓ：非一様加重Ｂスプライン））で表現することができる。特に、ＣＡＤファイルは仕様・明細（ｓｐｅｃｉｆｉｃａｔｉｏｎ）を含み、当該仕様・明細から幾何学的形状が作成され、これにより表示を生成することができるようになる。モデル化されたオブジェクトの仕様・詳細は１つのＣＡＤファイルまたは複数のＣＡＤファイルに記憶（保存）される。ＣＡＤシステムにおいてモデル化されたオブジェクトを表示するファイルの典型的なサイズは、１つのパーツ毎に１メガバイトの範囲（以下）である。また、モデル化されたオブジェクトは通常、数千個のパーツのアッセンブリ（組み合わされたもの）である。
【００３０】
ＣＡＤの場合、モデル化されたオブジェクトは通常、３Ｄのモデル化されたオブジェクトである。当該オブジェクトは例えば、１つのパーツまたは複数のパーツのアッセンブリ等の製品を表したり、複数の製品のアッセンブリを表すこともある。「３Ｄモデル化オブジェクト」という用語はその３Ｄ表示を可能にするデータによってモデル化された任意のオブジェクトを意味する。３Ｄ表示によって、全ての角度から当該パーツを見ることができる。例えば、３Ｄモデル化オブジェクトは、３Ｄ表示されると、その任意の軸を中心にして掴んだり回転することができ、または、当該表示が表示されるスクリーン内の任意の軸回りに回転することができる。これにより、特に２Ｄアイコンが不要になる（２Ｄアイコンは３Ｄモデル化されていない）。３Ｄ表現の表示は設計を容易にする（つまり、デザイナが統計的に自分の任務を果たすスピードを増大する）。これが産業（製造業）における製造プロセスをスピードアップする。なぜなら、製品の設計は製造プロセスの一部であるからである。
【００３１】
ＣＡＤシステムはヒストリ（履歴）ベースのシステムであってもよい。この場合、モデル化されたオブジェクトはさらに、幾何学的特徴（形状、配置）に関するヒストリを含むデータによって定義される。実際、モデル化されたオブジェクトは標準モデリング形状（例えば、突出（押し出し）、外巻き、回転、切断及び／または丸み付け等）及び／または標準面モデリング形状（例えば、スウィープ、ブレンド、ロフト、フィル（ｆｉｌｌ）、変形、スムージング及び／またはその他）を使用する生身の人間（例えば、デザイナ／ユーザ）によって設計される。このようなモデリング機能をサポートする多くのＣＡＤシステムはヒストリベースのシステムである。これは、設計の特徴（形状、配置）の作成履歴が通常、非周期的な（非環式の）データフローを介して保存されることを意味する。当該データフローは、入力リンク及び出力リンクを介して複数の前記幾何学特徴同士を連結するものである。ヒストリベースのモデリング（モデル化）パラダイムは１９８０年代の初頭から周知である。モデル化されたオブジェクトは２つの永続的なデータ表現によって説明される。それは、ヒストリとバウンダリー表現（Ｂ−ｒｅｐ）である。境界表現は、ヒストリ内で規定される計算の結果である。モデル化されたオブジェクトが表現される際にコンピュータのスクリーンに表示されるパーツの形状が境界表現（Ｂ−ｒｅｐ）である（境界表現の充填、埋め尽くし、テセレーションである）。パーツの履歴は設計意図である。基本的に、履歴は、モデル化されたオブジェクトが経験した処理に関する情報を集めている。境界表現（Ｂ−ｒｅｐ）はヒストリとともに保存されてもよい。そうすれば、複雑なパーツを簡単に表示することができる。設計意図に基づいてパーツの設計変更を可能にするために、ヒストリは境界表現（Ｂ−ｒｅｐ）とともに保存されてもよい。
【００３２】
ＰＬＭシステムという用語は、物理的に製造される製品を表現するモデル化されたオブジェクトのマネージメントに適した任意のシステムを意味する。従って、ＰＬＭシステムにおいて、モデル化されたオブジェクトは物理的なオブジェクトの製造に適したデータによって規定される。これらは典型的な場合、寸法値及び／または許容誤差値である。オブジェクトの正しい製造のために、このような値を持っていることが望ましいことは明らかである。
【００３３】
ＣＡＥシステムという用語は、モデル化されたオブジェクトの物理的なビヘイビア（動き、挙動）の分析に適した任意のシステムを意味する。従って、ＣＡＥシステムにおいて、モデル化されたオブジェクトはそのようなビヘイビアの分析に適したデータによって規定される。これは典型的な場合、ビヘイビア特徴のセットである。例えば、ドアに対応するモデル化されたオブジェクトは、ドアが軸回りに回転することを示すデータによって規定される。
【００３４】
図２は当該システムのＧＵＩ（グラフィカルユーザインターフェイス）の例を示しており、このシステムはＣＡＤシステムである。
【００３５】
ＧＵＩ２１００は典型的なＣＡＤ類似のインターフェースであり、標準的なメニューバー２１１０、２１２０を有すると共に底部及び側部のツールバー２１４０、２１５０を有している。このようなメニューバー及びツールバーはユーザが選択できるアイコンのセットを含み、従来技術において知られているように、各アイコンには１つ以上の処理または機能が関連付けられている。当該複数のアイコンの幾つかにはソフトウエアツールも関連付けられており、ＧＵＩ２１００に表示された３Ｄモデル化されたオブジェクト２０００に対する編集及び／または作業ができるようになっている。当該ソフトウエアツールはワークベンチにグループ分けされてもよい。各ワークベンチはソフトウエアツールのサブセットからなる。特に、当該ワークベンチの１つは編集ワークベンチであり、モデル化された製品２０００の幾何学的特徴（形状、位置）を編集するのに適している。実際の設計においては、デザイナは例えばオブジェクト２０００のパーツを予め選択して処理（作業）を開始する（例えば、寸法や色を変える）か、または、適切なアイコンを選択することによって幾何学的制約（条件）を編集・調節する。例えば、典型的なＣＡＤ処理はスクリーン上に表示された３Ｄモデル化されたオブジェクトのパンチング（穴あけ）または折り畳みのモデリングである。
【００３６】
ＧＵＩは例えば、表示された製品２０００に関するデータ２５００を表示する。図２の例においては、データ２５００（フィーチャーツリー（ｆｅａｔｕｒｅ  ｔｒｅｅ）として表示されている）及びその３Ｄ表現２０００は、ブレーキキャリパとディスクを含むブレーキアッセンブリに関する。ＧＵＩはさらに、種々のタイプのグラフィックツール２１３０、２０７０、２０８０を示し、これらは例えば、オブジェクトの３Ｄ配向（向きの変更・決定）を容易にするため、編集された製品の動作のシミュレーションを開始するため、または表示された製品２０００の種々の属性を提示するためのツールである。カーソル２０６０はハプティックデバイスにより制御されてもよく、これによりユーザはグラフィックツールとインタラクトすることができる。
【００３７】
図３はクライアントコンピュータシステム（例えば、ユーザのワークステーション）を示している。
【００３８】
クライアントコンピュータは、内部通信バスＢＵＳ１０００に接続されたＣＰＵ（中央処理装置）１０１０と、前記バス１０００に接続されたＲＡＭ（ランダムアクセスメモリ）１０７０とを含む。クライアントコンピュータはさらに、画像処理ユニット（ＧＰＵ：ｇｒａｐｈｉｃａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）１１１０を備え、当該ＧＰＵ１１１０はバス１０００に接続されたビデオＲＡＭ１１００に関連づけられている（付随している）。ビデオＲＡＭ１１００は当該技術分野ではフレームバッファとしても知られている。大容量記憶装置コントローラ１０２０は大容量メモリデバイス（例えば、ハードドライブ１０３０）へのアクセスを管理する。コンピュータプログラム命令及びデータを実体的に具現化する大容量メモリデバイスは全ての形式・形態の不揮発性メモリを含み、例えば、半導体メモリデバイス（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリデバイス）、磁気ディスク（例えば、内蔵型ハードディスク及び取り外し可能なディスク）、光磁気ディスク、及びＣＤ−ＲＯＭディスク１０４０である。これらメモリデバイスのいずれも、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ：特定用途向け集積回路）を備えてもよいし、ＡＳＩＣに組み込まれてもよい。ネットワークアダプタ１０５０はネットワーク１０６０へのアクセスを管理する。クライアントコンピュータはまた、ハプティックデバイス１０９０（例えば、カーソル制御デバイス、キーボードその他）を含んでもよい。図２を参照して説明したように、カーソル制御デバイスはクライアントコンピュータ内で使用されて、ユーザがディスプレイ１０８０の任意の所望の位置にカーソルを選択的に移動できるようにする。また、カーソル制御デバイスを使用すると、ユーザは種々のコマンド（指令）及びを選択することができると共に制御信号を入力することができる。カーソル制御デバイスは、システムへの入力制御信号のための信号生成装置を多数含む。典型的な場合、カーソル制御デバイスはマウスであり、当該マウスのボタンを使用して信号を生成することができる。
【００３９】
コンピュータプログラムはコンピュータの命令（コンピュータによって実行される命令）からなり、当該命令は前記システムに前記プロセスを実行させる手段を含む。本発明は例えば、デジタル電子回路において実装されたり、コンピュータハードウエア、ファームウエア、ソフトウエア若しくはこれらの組み合わせにおいて実装される。本発明の装置はプログラム可能プロセッサによって実行されるように機械読取可能な記憶装置に実体的に具現化されたコンピュータプログラムプロダクトに実装されてよい。また、本発明の方法のステップは、本発明の機能を発揮すべく複数の命令からなるプログラムを実行するプログラム可能なプロセッサによって実行される。本発明の機能の発揮は、入力データの処理及び出力の生成によってなされる。
【００４０】
本発明は１つまたは複数のコンピュータプログラムに実装することができると有利であり、当該コンピュータプログラムはプログラム可能なシステム上で実行可能であり、当該システムはデータストレージシステムへデータ及び命令を送受け入れるように接続された少なくとも１つのプログラム可能なプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。アプリケーションプログラムは、ハイレベル手続言語若しくはオブジェクト指向プログラミング言語、または、望まれるのであればアッセンブリ言語若しくはマシン語で実装される。いずれの場合も、当該言語はコンパイルされた言語であっても良いし、機械語に翻訳された言語であってもよい。
【００４１】
前記方法の一例が図１を参照して説明される。ステップＳ１００において、マニピュレータのセットが提供され、各マニピュレータは少なくとも１つのピッキングエリアを含み、前記マニピュレータのセットの中の異なるマニピュレータの少なくとも２つのピッキングエリアはオーバーラップする。マニピュレータは公知のＭＶＣ（Ｍｏｄｅｌ−Ｖｉｅｗ−Ｃｏｎｔｒｏｌｌｅｒ）ソフトウエアアーキテクチャに依存するものでもよい。モデル（Ｍｏｄｅｌ）はアプリケーションドメインのビヘイビア及びデータを管理し、情報を要求するリクエストに対して応答し、状態を変更する命令（通常、この命令はコントローラ（Ｃｏｎｔｒｏｌｌｅｒ）から来る）に対して応答する。ビュー（Ｖｉｅｗ）はモデルをインタラクションに適した形式・形態（通常、ユーザインターフェースエレメント）にする。コントローラ（Ｃｏｎｔｒｏｌｌｅｒ）はユーザ入力を受け入れ、モデルオブジェクトを使用することによって応答を開始する。
【００４２】
マニピュレータには、図２に示されたようなグラフィカルユーザインターフェース（ＧＵＩ）に表示された複数のオブジェクトが設けられている。各オブジェクトは少なくとも１つのマニピュレータを含む。さらに、異なるオブジェクトの少なくとも２つのピッキングエリアがオーバーラップする。つまり、ピッキングエリア同士が交差する。ピッキングエリアはイベントを受け入れ、当該イベントをマニピュレータに送ることができる表面である。ピッキングエリアによって画定されたピッキングゾーンの表面は二次元（２Ｄ）または三次元（３Ｄ）である。例えば、図７に示されているように、２つのマニピュレータ（双方向矢印及び四角形）は２Ｄ空間内にあり、それぞれの２Ｄピッキングエリアが重なっている（オーバーラップしている）。また、これら２つのピッキングエリアによって画定される２つの表面（２つの円形）に交差部が存在する。このような状況は３Ｄ空間においても起こり得る。３Ｄ空間では、マニピュレータのピッキングエリアが交差し、当該ピッキングエリアは２Ｄ表面（例えば、円形）か３Ｄ表面（例えば、球）である。いずれの場合も、ユーザの視点から第１のピッキングエリアへ投じられた光線が当該第１のピッキングエリア及び少なくとも別のピッキングエリアに交差すると、２つのピッキングエリアはオーバーラップする。
【００４３】
マニピュレータのセットを提供するステップは、当該セットのマニピュレータをマニピュレータマネージャに登録（サブスクリプション、レジストレーション）するステップを含んでもよい（Ｓ１０２）。ＭＶＣアーキテクチャでは、登録はコントローラによってマニピュレータマネージャに対して行われる。マニピュレータマネージャはマニピュレータを管理する。つまり、マニピュレータマネージャは各マニピュレータを個別に管理し、且つ、マニピュレータ同士の間の関係も管理する。マニピュレータマネージャはクライアント−サーバモデルにおいてサーバとして機能し、マニピュレータはクライアントとして機能する。マニピュレータマネージャが、プログラム可能なシステムで実行可能な１つ以上のコンピュータプログラムに実装されると有利である。
【００４４】
登録はマニピュレータの識別子を第１のリストに保存・記憶するという第１のサブステップ（Ｓ１０４）を含む。第１のリストは例えば、メモリまたはデータベースのストレージ（例えば、記憶手段）に保存・記憶される。各マニピュレータの識別子は、好ましくは、マニピュレータが作成されるときに付与される個別の識別子である。あるいは、前記個別の識別子は、登録プロセスの間にマニピュレータマネージャによって付与されてもよい。
【００４５】
登録ステップはまた、マニピュレータの少なくとも１つのピッキングエリアを第２のリストに保存・記憶する第２のサブステップ（Ｓ１０６）を含む。ピッキングエリアを第２のリストに記憶するということは、ピッキングエリアを特徴付ける情報（例えば、ピッキングエリアの識別子）が記憶されることを意味する。同様に、第２のリストはメモリ等のストレージ（例えば、記憶手段）またはデータベースに保存・記憶される。好ましくは、マニピュレータのピッキングエリア（単数または複数）はマニピュレータによってマニピュレータマネージャに申告される。
【００４６】
第１のリスト及び第２のリストが作られると、マニピュレータの識別子をマニピュレータのピッキングエリア（単数または複数）から取り出すことができ、その逆も可能になる。換言すると、第２のリストにおいて、マニピュレータのピッキングエリア（単数または複数）を第１のリストに記憶されているマニピュレータの識別子から取り出すことができる。また、第１のリストにおいて、マニピュレータの識別子を第２のリストに記憶されているピッキングエリアから取り出すことができる。その後、取り出された識別子のマニピュレータがそれぞれ特定される。第１のリストと第２のリストの間の関係は例えば、当該２つのリストの間のポインタに依存している。従って、第１のリストと第２のリストの間には対応関係がある。尚、第１のリストと第２のリストはテーブルの一部であってもよい。
【００４７】
次に図８及び図９を参照すると、２つのマニピュレータの登録が図示されている。図８において、ピッキングエリア２００を有する第１のマニピュレータが作成されており、登録要求をマニピュレータマネージャ２２０に送る。マニピュレータマネージャはピッキングエリア２００を有するマニピュレータの識別子とマニピュレータのピッキングエリア２００をデータベース２５０に記憶する。尚、２つのデータベース（または３つ以上のデータベース）を使用して前記情報を記憶してもよい。図９はピッキングエリア２１０を有する第２のマニピュレータのための同じステップを示している。
【００４８】
図１に戻ると、ポインティングデバイス（例えば、カーソル）が、２つのオーバーラップするピッキングエリアに移動される。カーソルは図２に示されているカーソル２０６０のようなものであってよい。カーソル２０６０はハプティックデバイスによって制御され、よって、ユーザはグラフィックツールとインタラクトすることができる。ポインティングデバイスを２つのオーバーラップするピッキングエリアに移動することは、カーソルと２つのオーバーラップするピッキングエリアとが光線により横切られる（交差する）ことを意味する。
【００４９】
その後、光線がカーソルから投じられる（Ｓ１２０）。光線投下は当該技術分野で公知の手法により行われる。典型的な場合、光線はカーソル上の１点（例えば、カーソルの矢印の端部）から投じられる。実際には、光線は、オブジェクト及びマニピュレータが表示されるディスプレイデバイスに垂直である。あるいは、光線投下は、当該技術分野で公知のように、ユーザの視点に基づいて実行されてもよい。光線投下は２Ｄ空間または３Ｄ空間において２つのマニピュレータに同じように適用されてもよい。
【００５０】
光線投下の間、光線が少なくとも２つのオーバーラップするピッキングエリアに交差するか（横切るか）どうか判定される（Ｓ１３０）。
【００５１】
好ましくは、光線投下ステップと交差判定ステップは連続的に行われる。システムは、光線が数個のピッキングエリアに交差するかどうかを、その都度知ることができれば有利である。つまり、システムは、ピッキングエリアがカーソルの位置の下でオーバーラップするかどうかを毎回知ることができれば有利である。
【００５２】
次に、ステップＳ１４０において、第１のリストが検索されて、イベントを受け入れる前記少なくとも２つのオーバーラップするピッキングエリアに対応する識別子を取り出そうとする。前記少なくとも２つのオーバーラップするピッキングエリアは第２のリストに記憶されている。換言すると、第１のリストに記憶されている識別子は、ベースになっているイベントを受け入れるオーバーラップピッキングエリアに従って検索され、マニピュレータの識別子が取り出される。次に、取り出された識別子のマニピュレータがそれぞれ、特定される。既に説明したように、第１のリストと第２のリストの間の関係は例えば、当該技術分野で公知のように、当該２つのリストの間のポインタに依存する。
【００５３】
次に、ステップＳ１５０において、特定されたマニピュレータによってイベントが受け入れられる。イベントはユーザによってマニピュレータに送られる信号である。このイベントに基づいて、マニピュレータは所定の動作を行うことができる。
【００５４】
上記のようにはせずに、マニピュレータマネージャによってイベントを受け入れることもできる。この構成では、マニピュレータマネージャがイベントプロシキ（ｅｖｅｎｔ  ｐｒｏｘｙ）として機能する。つまり、受け入れたイベントをマニピュレータに送るべきかどうかを、マニピュレータマネージャが決定する。換言すると、マニピュレータマネージャはポインティングデバイスとだけ通信する。
【００５５】
登録ステップＳ１０２の間、マニピュレータはさらに、マニピュレータが登録したいと望むイベントのリストをマニピュレータマネージャに送ることができる。第１のリスト及び第２のリストについては、イベントの当該リストはストレージ（例えば、メモリまたはデータベース）に設けられた第３のリストに記憶され得る。よって、マニピュレータマネージャがイベントを受け入れる度に、マニピュレータマネージャは第３のリストにおいて、マニピュレータが当該イベントのために登録されているかをチェックし、当該チェックの結果に基づいて当該イベントをマニピュレータに送る（または送らない）。
【００５６】
前記イベントは下記の複数のイベントの１つであってよい（これらに限定されるわけではないが）。即ち、イベントは、移動（カーソルがＧＵＩ内で動く）、マニピュレーションの開始（ユーザがハプティックデバイスのボタンをクリックして、ドラッグ及びドロップ動作を開始するための信号を送る）、マニピュレート（ドラッグ及びドロップ動作）、マニピュレートの終了（ドラッグ及びドロップ動作の終了）、起動（ユーザがハプティックデバイスのボタンをクリックして手を離す）、編集・エディット（ユーザがボタンをダブルクリックする）、コンテクスト処理をする（ユーザが第２のボタンをクリックする）等の１つであってよい。
【００５７】
次に、フィルタのセットが起動され、コンピュータ実行プロセスされるべきマニピュレータを見つける（Ｓ１７０）。フィルタを起動させると（またはフィルタを作動させると）、データのテストが行われる（例えば、マニピュレータのテストが行われる）。
【００５８】
好ましくは、フィルタのセットを起動する前に、イベントを受け入れる少なくとも１つのピッキングエリアを有するマニピュレータが複数選択される（Ｓ１６０）。マニピュレータマネージャがイベントプロシキとして機能する場合、イベントが関連している少なくとも１つのピッキングエリアを有するマニピュレータは第３のリストに記憶されているイベントに従って選択される。
【００５９】
フィルタのセットが作動させられるが（Ｓ１７０）、好ましくは前記選択されたマニピュレータに適用される（Ｓ１６０）。第１のフィルタは、受け入れたイベントに従ってマニピュレータのサブセットを生成する。つまり、イベントに関連がありそうなマニピュレータが特定される。上記したようにマニピュレータマネージャがイベントを受け入れて当該イベントを管理する場合、マニピュレータマネージャは、受け入れたイベントに関連するマニピュレータのセットを直ちに判別することができ、且つ、この際に新たな計算を必要としないならば有利である。よって、フィルタは起動される必要がない。このようにはせずに、マニピュレータマネージャが各登録されたマニピュレータをテストして、当該イベントが当該マニピュレータに関連しているかを調べることにより、現在のイベントに関連しているマニピュレータのサブセットを形成するようにしてもよい。
【００６０】
第２のフィルタは各マニピュレータに付随している優先度（優先順位）を利用する。つまり、マニピュレータが作成されるとき、マニピュレータに優先度を付与することができる。優先度はマニピュレータ同士の間の重要度の順位を決める。従って、この重要度はマニピュレータの特性である。実際の場合、マニピュレータの優先度は４つのレベルの優先度から選択され、優先度の各レベルは優先値によって表される。何らかの優先度がマニピュレータに付けられている場合、マニピュレータにはデフォルトとして最低（最小）の優先値が付される。その結果、マニピュレータのサブセットは各マニピュレータに付けられた優先度に従って作られる。
【００６１】
第３のフィルタはマニピュレータの特徴点とポインティングデバイスの間の距離を計算する。マニピュレータの特徴点はマニピュレータ上のマーカとしての役割を果たす。実際には、マニピュレータの特徴点は、例えば、当該マニピュレータの開発者によって任意に選択されたマニピュレータの点である。計算された距離の中の最少距離が判別され、当該最少距離を有するマニピュレータとポインティングデバイスが選択される。ポインティングデバイス（例えば、カーソル）と特徴点の間の距離は投影面（例えば、オブジェクトとそのマニピュレータとを表示するコンピュータスクリーン）上に示すことができる。マニピュレータが数個の特徴点を含む場合、ポインティングデバイスと特徴点の間の平均距離を表す距離が計算される。
【００６２】
数個のマニピュレータが同じ最少距離を有する場合、第４のフィルタが適用されてもよい。第４のフィルタはユーザ位置に最も近いマニピュレータを特定する。よって、このフィルタは深さ基準（条件）を適用する。つまり、ユーザ視点に最も近い距離を有するマニピュレータが選択される。
【００６３】
実際の場合、フィルタは連続的に起動される。その際、各フィルタがマニピュレータのそれぞれのサブセットを生成し、後続の各フィルタは前のフィルタによって生成された前記サブセットについてフィルタリング処理を行う。このようにして、処理はマニピュレータのセットに対してのみ実行される（ステップ１００で最初に提供されたマニピュレータのセット全体に対して実行されるのではない）。計算に関与するマニピュレータの数が各フィルタについて減少するので、フィルタを適用するのに必要なコンピューティングリソースが抑制されると有利である。好ましくは、フィルタは上記された順番と同じ順番で（第１のフィルタから第４のフィルタへと）起動される。
【００６４】
マニピュレータマネージャはフィルタリング処理を行うことができ、当該連続的なフィルタリング処理から得られるマニピュレータの連続的なサブセットを維持することができる。
【００６５】
次にステップＳ１８０において、残りのマニピュレータがユーザによって選択される。従って、マニピュレータがコンピュータ実行プロセスされる。つまり、マニピュレータのコンピュータ実行プロセスはマニピュレータマニピュレータによって行われるのが好ましい。よって、当該選択されたマニピュレータの選択が解除されるまで、または、別のマニピュレータが選択されるまで、全てのイベントが当該選択されたマニピュレータに送られる。実際には、受け入れたイベントのルーティング（ｒｏｕｔｉｎｇ：経路選択、経路制御）がマニピュレータマネージャによって行われる。一旦マニピュレータが選択されると、ユーザはイベントに基づいて当該マニピュレータに付随する機能を起動することができる。この起動は、たとえ残りのマニピュレータのピッキングゾーンが他のマニピュレータの１つ以上のピッキングゾーンにオーバーラップしても行われる。
【００６６】
図１０は本発明の方法のステップＳ１１０−Ｓ１８０を示している。カーソルが第１の位置２３０ａから第２の位置２３０ｂに移動される。つまり、カーソルはピッキングエリア２００及び２１０の双方に位置することになる。第１の位置から第２の位置へ移動する際、光線が連続に投じられ、少なくとも２つのピッキングエリアが当該光線（図示せず）によって横切られるか（交差するか）を判定する。カーソルが第２の位置２３０ｂに到達すると、当該カーソルがオーバーラップするピッキングエリア２３０ａと２３０ｂの上にあると判定される。つまり、光線が当該２つのピッキングエリアを横切っている（交差している）と判定される。その後、データベース２５０に記憶されている第１のリスト及び第２のリストを使用して、対応するマニピュレータが特定される。つまり、マニピュレータの識別子が取り出され、マニピュレータが特定される。データベース２５０はマニピュレータの識別子とマニピュレータとの対応関係を提供（提示）する。
【００６７】
ユーザの動作に応じて、イベント２４０はマニピュレータに送られ、イベントのプロキシとして機能するマニピュレータマネージャ２２０によって受け入れられる。例えば、イベントは、移動を停止するカーソル２３０ｂである。イベントがマニピュレータマネージャ２２０によって受け入れられると、データベース２５０に対してクエリ検索が行われ、新しい基準（条件）に基づくマニピュレータ（現在のイベントが関与しているマニピュレータ）を選択するために、候補マニピュレータのリストの中からマニピュレータのサブセットを取り出す。これが第１のフィルタの起動である。次に第２のフィルタが、第１のフィルタリング処理によって得られたマニピュレータのサブセットに対して起動される。マニピュレータマネージャは、前記サブセットの各マニピュレータの優先度を調べ、最も重要な優先度（例えば、最も高い優先値）を有するマニピュレータからなる新しいサブセットを演算する（決定する）。その後、第３のフィルタが残りの候補マニピュレータに対して起動される。つまり、マニピュレータマネージャは残りの候補マニピュレータから現在のカーソル２３０ｂまでの最少距離を求める。図１１に示されているように、マニピュレータ２１０だけが残り、このマニピュレータ２１０がコンピュータ実行プロセスされる。マニピュレータのコンピュータ実行プロセスはユーザに示されてもよく、その際、例えば、マニピュレータの新たな提示（表示）を伴う。尚、もし数個のマニピュレータが依然として候補マニピュレータである場合には、別のフィルタが適用されてもよい。例えば、残りのマニピュレータのサブセット（または候補マニピュレータ）の中から、ユーザ視点から最も近い距離を有するマニピュレータが選択される。つまり、マニピュレータに対するユーザの視点に基づいて当該ユーザに最も近いマニピュレータが選択される。
【００６８】
本発明の好適な実施形態が説明された。尚、種々の変更・変形は、本発明の精神及び範囲から離れることなく可能である。従って、その他の実施・実装も特許請求の範囲の技術的範囲内のものである。本発明は任意の種類のカーソルを用いて実施することができる。例えば、タッチ感応画面（タッチスクリーン）において、ユーザはスクリーン上で動作（処理）を直接行うことができる。例えば、ユーザはスクリーンをプレスする（押す）ことによってイベントを送ることができる。この動作はステップＳ１１０−Ｓ１５０の実行に対応する。
【図１】
2012238310.tif 000003
【図２】
2012238310.tif 000004
【図３】
2012238310.tif 000005
【図４】
2012238310.tif 000006
【図５】
2012238310.tif 000007
【図６】
2012238310.tif 000008
【図７】
2012238310.tif 000009
【図８】
2012238310.tif 000010
【図９】
2012238310.tif 000011
【図１０】
2012238310.tif 000012
【図１１】
2012238310.tif 000013
【外国語明細書】
2012238310000001.pdf