(57)【特許請求の範囲】
【請求項１】
コンピュータスクリーン上に表示された複数のオブジェクトに作用する方法であって、コンピュータのプロセッサが実行する前記方法は、
各軸が前記オブジェクトの平行移動を制御する互いに垂直な３つの軸、および各弧が２つの軸と交差しかつ各弧が前記オブジェクトの回転移動を制御する３つの弧を含む多数のユーザインタラクティブな領域を備えるソフトウェアツールを複数のオブジェクトを含むオブジェクトシーンに埋め込むステップと、
前記ソフトウェアツールを備える各インタラクティブ領域を複数のオブジェクトに作用するための機能と関係付けをするステップと、
入力デバイスの操作に応じて前記ソフトウェアツールのユーザインタラクティブな領域を活動化するステップと、
活動化したインタラクティブ領域に関係付けされた機能を全てのオブジェクト上でパフォームするステップと、
前記ソフトウェアツールが前記複数のオブジェクトの１つに固定されている場合、前記ソフトウェアツールの操作に応じて前記アンカーされているオブジェクトの位置を操作するステップと、
前記ソフトウェアツールがアンカーされていない場合、前記ソフトウェアツールの操作に応じて前記コンピュータスクリーン上に表示されているすべてのオブジェクトの位置を操作するステップと
を備えたことを特徴とする方法。
【請求項２】
請求項１において、前記ソフトウェアツールから離れた前記オブジェクトシーンの領域に第２ソフトウェアツールを表示するステップと、
前記第２ソフトウェアツールで前記ソフトウェアツールのユーザインタラクティブな領域を制御するステップと
をさらに備えたことを特徴とする方法。
【請求項３】
請求項１において、
前記入力デバイスの操作に応じて前記オブジェクトシーンから前記ソフトウェアツールを移動させるステップと、
前記ソフトウェアツールの各機能に関係付けされた個々の視覚的表現を表示するステップと
をさらに備え、
前記表現が関係付けされた前記機能をパフォームすることにより活動化に応じるユーザインタラクティブデバイスを形成する
ことを特徴とする方法。
【請求項４】
請求項３において、個々の視覚的表現を前記オブジェクトシーンに戻し、前記ソフトウェアツールにモーフィングするステップをさらに備えたことを特徴とする方法。
【請求項５】
請求項１において、
前記ソフトウェアツールの特定のユーザインタラクティブな領域の操作に応じて、前記オブジェクトシーンのオブジェクトに対する前記ソフトウェアツールの位置を変更するステップと
をさらに備えたことを特徴とする方法。
【請求項６】
請求項１において、
前記入力デバイスの操作に応じて、前記オブジェクトシーンの１つ以上のオブジェクトを選択するステップと、
活動化したインタラクティブ領域に関係付けされた機能を前記選択したオブジェクト上でパフォームするステップと
をさらに備えたことを特徴とする方法。
【請求項７】
請求項１において、前記ソフトウェアツールは、各平面が２つの軸の交差で定義される３つの平面をさらに備え、
各平面がオブジェクトの平面移動を制御する
ことを特徴とする方法。
【請求項８】
請求項１において、前記ソフトウェアツールは、前記オブジェクトに固定するためのアンカーポイントをさらに備えたことを特徴とする方法。
【請求項９】
請求項１において、前記ソフトウェアツールは、自由回転ハンドルをさらに備えたことを特徴とする方法。
【請求項１０】
請求項１において、アンカーされていない前記ソフトウェアツールが絶対軸と整合することを特徴とする方法。
【請求項１１】
請求項１において、前記オブジェクトが前記ソフトウェアツールの活動化で直接操作できるようにオブジェクト上に位置決めされ方向付けされることを特徴とする方法。
【請求項１２】
請求項１１において、前記ソフトウェアツールの位置決めと方向付けは前記オブジェクトの特性により決定されることを特徴とする方法。
【請求項１３】
請求項１において、軸インジケータの選択により、前記軸インジケータに関係付けされた軸がスクリーンに垂直になることを特徴とする方法。
【請求項１４】
コンピュータスクリーン上のオブジェクトの位置決めをするためのプログラムされたコンピュータであって、
メモリに動作可能に相互接続されたプロセッサと、
グラフィカルディスプレイデバイスと、
ユーザ入力デバイスと、
ディスプレイデバイスにレンダリングできるグラフィカルユーザインタフェースであって、前記コンピュータスクリーン上に表示されたオブジェクトに取り付け可能であり、取り付けられたオブジェクトの移動のみを生じさせるツールであって、前記コンピュータ上に表示されたオブジェクトの回転、平行、平面移動を生じさせるためのユーザによる選択可能なインタラクティブ領域を有するツールを備えたグラフィカルユーザインタフェースと
を備え、取り付けられていない前記ツールで前記コンピュータスクリーン上のオブジェクトのすべてが前記ユーザにより選択可能なインタラクティブ領域の操作に応じて動くことを特徴とするコンピュータ。
【請求項１５】
コンピュータ実行可能コードを記録したコンピュータ可読媒体であって、前記コンピュータ実行可能コードは、
グラフィカルユーザインタフェースコンパスをコンピュータスクリーンに表示するステップであって、前記コンパスが、平行移動を制御するためのユーザにより活動化可能な３つの垂直軸と、回転移動を制御するためのユーザにより活動化可能な３つの弧を備えているステップと、
前記入力デバイスの操作に応じて軸または弧を活動化するステップと、
軸または弧の活動化に応じて１つまたは複数のオブジェクトを動かすステップであって、
前記コンパスが前記オブジェクトの１つにアンカーされている場合、前記固定されているオブジェクトの位置を操作し、
前記コンパスがアンカーされていない場合、前記コンピュータスクリーン上に表示されているすべてのオブジェクトの位置を操作するステップと
をコンピュータに実行させることを特徴とするコンピュータ可読媒体。
【請求項１６】
請求項１５において、前記コンピュータ実行可能コードは、前記入力デバイスの操作に応じて２つの軸の交差で定義されるユーザにより活動化可能な平面を活動化するステップを前記コンピュータにさらに実行させ、平面の活動化でオブジェクトが活動化した方向に移動することを特徴とするコンピュータ可読媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータソフトウェアユーティリティプログラムに関し、より詳細には、グラフィカルインタフェースを有するソフトウェアシステム内のオブジェクトに対するアクションのパフォーマンスに関する。
【０００２】
【従来の技術】
オブジェクトに対するアクションのパフォーマンスは、オブジェクトの１つ以上の特性に直接アクトする必要がある。ユーザに対してオブジェクトの特性にアクトするために利用可能なデバイスは、個々には、限られた能力しか有しておらず、例えば、マウスを動かすことにより、２つの独立した特性、すなわち、Ｘ軸およびＹ軸に同時にアクトできるだけである。
【０００３】
非常に多くの特性を変更するために、ユーザは広範囲の変更をいくつかの特性を含む基本操作の連続したものに細分化する必要があり、各特性は利用可能なデバイスの能力と互換性がある。望ましい全体の操作を行なうため、ユーザは複数のデバイス（キーボード、マウスボタン、ジョイスティック、タッチパッドなど）および／またはユーザインタフェース（コマンドボタン、メニュー項目、ダイアログボックス項目、ハンドルなど）とインタラクトして、１つの基本操作から次の操作へと移動することが必要な場合がある。
【０００４】
現行のソフトウェアアプリケーションの中には、いくつかのアクション変位がツールバーの異なるボタンで操作できるものがある。１つのボタンを活動化すると、変位の対応するタイプがそのシーンのオブジェクトに適用されることになる。このことの不都合な点は、ユーザが常に１つのツールバーと選択したオブジェクトの間を移動しなければならないことである。
【０００５】
他の現行のソフトウェアアプリケーションでは、ハンドルで変位させるオブジェクトまわりを見えるようにしている。オブジェクトに対するアクションのパフォーマンスは、オブジェクトまわりのハンドルの操作を通じてシーンで直接パフォーマンスされる。ハンドルは通常オブジェクトのサイズおよび形状を反映する。しかしながら、複雑な機構になっているものでは、シーン上のハンドルの数およびオブジェクトまわりにあるものが、オブジェクト構造全体を把握しようとするユーザの邪魔になる可能性がある。ユーザは他の並行するアクションのパフォーマンスで妨害される可能性がある。さらに、ハンドルは通常、オブジェクトの選択で定義された基準システムによって方向付けされて、ユーザが状況に応じ直接変更することはできない。このようなアプリケーションの他の欠点は、選択したオブジェクトの数が多い場合、かなりの処理時間を必要とする可能性があることである。
【０００６】
【発明が解決しようとする課題】
ユーザに１つのシーンで選択したオブジェクトの複数のアクションのパフォーマンスを可能にする、プログラム可能なツールの単一でコンパクトな表示を有することは、役に立つであろう。
【０００７】
【課題を解決するための手段】
したがって、本発明は、生成されたオブジェクトに対してアクションをパフォームし、コンピュータソフトウェアアプリケーションで管理するために使用することができる、知識ベース多形分離可能ツールバーをインプリメントするための、ソフトウェア制御方法および装置を提供する。知識ベース多形分離可能ツールバーは、ツールバーの標準のアイコンで表示される場合には、実質的なスクリーンスペースを必要とし、オブジェクトおよびオブジェクトのグループの操作に使用することができる様々なコマンドを実行するために小スペースツールへマージする。知識ベースポリモーフ分離可能ツールバーは、操作タスクを実行するために必要なユーザインタラクションの回数を軽減するためにアクトする。
【０００８】
本発明は、ソフトウェアツールをオブジェクトシーンに組み込むことを含む、コンピュータスクリーン上に表示されたオブジェクトにアクトする方法を含み、そのソフトウェアツールはマルチユーザインタラクティブな領域を含む。各領域は、オブジェクトにアクトするための機能に関係付けをすることができる。ユーザは、プログラムによってオブジェクト上の活動化するインタラクティブ領域に関係付けされた機能がパフォームされる、その領域を活動化することができる。
【０００９】
一般的には、一態様では、パフォームされる機能は、機能がパフォームされるオブジェクトに関係する知識ベース基準に応答することができる。さらに、第２のソフトウェアツールは第１のソフトウェアツールから離れたオブジェクトシーン領域に表示することが可能であり、第１のソフトウェアツールは第２ソフトウェアツールで制御可能である。
【００１０】
他の態様では、ソフトウェアツールをオブジェクトシーンから離すことができ、各々がソフトウェアツールの機能に関係付けされた個々の視覚的表現を表示することができる。その視覚的表現は個々の機能をパフォームするために使用することができる。さらに、個々の視覚的表現をオブジェクトシーンに戻し、ソフトウェアツールにモーフィングすることができる。
【００１１】
本発明は、特定のユーザインタラクティブな領域の操作に応じるオブジェクトシーンのオブジェクトに対するソフトウェアツールの位置を変更するためのソフトウェアツールの特定のユーザインタラクティブな領域の操作も含むことができる。このような操作のために使用することができる１つの便利なインタラクティブな領域はツールアンカーである。
【００１２】
一実施形態では、オブジェクトシーンの１つ以上のオブジェクトを選択することができ、活動化したインタラクティブな領域に関係付けされた機能を選択したオブジェクトでパフォームすることができる。
【００１３】
本発明の他の態様では、知識ベースポリモーフ分離可能ツールバーは、簡単なドラッグアンドドロップ操作によって、ユーザがオブジェクトの基準点を変更することができるアンカーを含むことができる。知識ベースポリモーフ分離可能ツールバーは、選択したオブジェクトをシーンの他のオブジェクトと接続するためのリンクメカニズムとして使用することもできる。特定の一実施形態では、キーボードのコントロールキーなどのコマンドデバイスをアラインのために活動化させることができる。
【００１４】
他の特定の実施形態では、コンピュータスクリーン上の選択したオブジェクトの位置決めを容易にするコンピュータシステムソフトウェアは、互いに垂直である３つの軸を含むことができ、各軸はオブジェクトの並行移動を制御する。さらに、この実施形態は、各弧が２つの軸と交差する３つの軸を含むことができ、各弧はオブジェクトおよび３つプレーンの回転移動を制御し、各プレーンは２つの軸と交差することで定義され、各プレーンはオブジェクトのプレーン移動を制御する。ソフトウェアツールは、オブジェクトにツールを取り付けることおよび自由回転ハンドルのためのアンカーも含むことができる。
【００１５】
本発明の一態様では、オブジェクトにアンカーされたツールはツールの操作に応答して、取り付けられたオブジェクトの位置を操作できる。アンカーされていないツールは、ツールの操作に応答して、スクリーン上に表示されるすべてのオブジェクトを操作することができる。
【００１６】
さらに、ソフトウェアツールは絶対軸とアラインされ、あるいはオブジェクトがツールの活動化で直接操作できるようなオブジェクトで、位置決めおよび方向付けされる。一実施形態では、ツールの位置決めと方向付けは、コンテキスト依存の意味的オブジェクト解釈で決定される。さらに、軸インジケータは、インジケータに関係付けされた軸をスクリーンで垂直にすることができる。
【００１７】
本発明は、コンピュータシステム、プログラムされたコンピュータ、コンピュータ可読媒体上に駐在するコンピュータプログラムまたはコンピュータとインタラクションし、かつ上述した概念を実施する方法を実施することができる。
【００１８】
【発明の実施の形態】
コンピュータシステムはコンピュータスクリーン上のオブジェクトシーン内に１つ以上のオブジェクトを表示することができる。このコンピュータシステムにアクセスしているユーザは、当該オブジェクトから１つ以上のオブジェクトを選択し、選択したオブジェクトに対してアクションをパフォームすることができる。オブジェクトに対するアクションのパフォームを容易にするため、マルチファンクションツールをオブジェクトシーンに表示することができる。このマルチファンクションツールには、ポインティングデバイスを用いて行った選択に応答する２つ以上のユーザインタラクティブな領域を含ませることができる。ユーザによる活動化に対する予め定めたアクションをパフォームするため、各ユーザインタラクティブな領域をプログラムすることができる。さらに、予め定めたアクションを知識ベースにすることができ、よって、このアクションは、パフォームのためにこのアクションがコールされるシーンのコンテキストにしたがってさらに定義されている。
【００１９】
一般的に、オブジェクトスクリーンウィンドウのシーンに、マルチファセットのツールの形式で、知識ベース・ポリモーフ分離可能ツールバーを表現でき、ツールの各ファセットは異なる機能性を表現する。そのツールは、機能性がパフォームされるオブジェクトに近接して位置することが可能な、複数の機能性のコンパクトな表現を組み込んでいる。ツールの各機能性は、ツールが埋め込まれているシーンの１つ以上のオブジェクトで、変更ができるように設計されている。シーンにツールが埋め込まれていることで、ツールは多くの点でシーンの他のオブジェクトのように動作することができる。例えば、シーンの表示が表示の回転またはトランザクションの動きで変化するにつれ、シーンに埋め込まれたツールの表示もそれに沿って変化することになる。
【００２０】
一実施形態では、オブジェクトシーンに埋め込まれたツールの遠隔制御は、他の方法では使用しないシーンの一部に、見えるようにすることができる。遠隔制御は、シーンに埋め込まれ、表示が困難になっている、あるいはそうでなければアクセスが困難になっている、知識ベースのポリモーフ分離可能ツールバーの機能性にアクセスするために使用することができる。分離可能なツールバーへのアクセスが困難であると、例えば、シーンのアクセス不可能な領域に取り付けられた分離可能なツールバーを持つオブジェクトまたはオブジェクトの動きで、いっぱいのシーンという結果になる可能性がある。１つの好ましい実施形態では、遠隔制御の位置はシーンの右上隅にある。
【００２１】
さらに、ツールでパフォーム可能な機能性のアイコンまたは他の視覚的表現を、オブジェクトシーンの外側のスクリーンの一部で、別々のコマンドとして表示することができる。別々のコマンドは、例えば、スクリーンのサイドバーのマルチファンクションツールをドラックアンドドロップすることで表示が可能であり、ツールバーは別々のアイコンとして表示することができ、各アイコンは知識ベースのポリモーフ分離可能ツールバーにある機能性を表示している。同様に、オブジェクトシーンまわりのマルチアイコンツールバーは、ツールバーをオブジェクトウィンドウにドラッグすることで、ツールバーの個々の選択肢をオブジェクトシーンに埋め込まれた単一のマルチファンクションのツールバーに、モーフィングするようにプログラムすることができる。
【００２２】
任意選択で、オブジェクトシステムに埋め込まれた知識ベースのポリモーフ分離可能ツールバーを、オブジェクトシーンに含まれる１つ以上のオブジェクトに、アンカーあるいはそうでなければ取り付けることができる。分離可能なツールバーのユーザインタラクティブ部分の活動化によって、ツールバーのその部分に関係付けされた機能を、選択したオブジェクトでパフォームすることができる。
【００２３】
オブジェクトシーンに表示された各オブジェクトは、知識ベースのポリモーフ分離可能ツールバーを取り付けることができる、デフォルトのアンカーポイントを有することができる。ユーザは、分離可能なツールバーをドラッグアンドドロップあるいは別の移動方法で、オブジェクトへ移動させ、その上で分離可能なツールバーを離すならば、デフォルトのアンカーポイントへアンカーすることになる。さらに、ユーザはデフォルトを無効にし、分離可能なツールバーを、ユーザが選択した代替アンカーポイントに取り付けることもできる。アンカーポイントは、オブジェクトでパフォームするアクションのための基準を定義することができる。さらに、オブジェクトで移動を生じさせる機能などの、分離可能なツールバー機能を活動化させることで、それをコマンドキー、または他のコントロールデバイスの活動化と組み合わせて、オブジェクト間のリンクを生成することができる。コマンドキーは、例えば、キーボード上のコントロールキーを押すことを含むことができる。
【００２４】
オブジェクト間に生成されたリンクも、そのリンクがオブジェクトまたはアプリケーションの状況に応じ定義されるように、知識ベースでプログラムすることができる。例えば、リンクしている２つのパイプを、所定のリンクが端の部分でパイプに取り付けるように、プログラムすることができる。同様に、電気コネクタも、差込口で位置決めするようにプログラムすることができる。
【００２５】
知識ベースのポリモーフ分離可能ツールバーの機能性は、平行移動、回転移動、プレーン移動、アパチャ生成、距離測定デバイス、追加の生成、またはオブジェクトシーン内でアクションをするようにプログラムできる他のいずれかのツールを含むことができる。
【００２６】
図１を説明する。知識ベース・ポリモーフ分離可能ツールバーの一例には、ＧＵＩCompassツールを含ませることができる。コンピュータスクリーン上にコンパスツールを表示させることができ、やはりコンピュータスクリーン上に表示されたオブジェクトを操作するために、コンパスツールを使用することができる。コンピュータスクリーン上に表示される１つ以上のオブジェクトに対して、アクションを行わせるための、複数のユーザインタラクティブな領域またはパートを、ＧＵＩCompassツールに含ませることができる。例えば、Compassのインタラクティブパート（part）には、操作ハンドルまたはアンカー１０１と、自由回転ハンドル１０２を含ませることができる。種々の軸、例えば、Ｘ軸およびＹ軸と交差するＸＹ弧１２１と、Ｚ軸およびＹ軸と交差するＺＹ弧１２２と、Ｚ軸およびＸ軸と交差するＺＸ弧１２３と交差するCompassの弧も、含ませることができる。
【００２７】
ポインティングデバイスを用いて、ある軸を選択することにより、関係付けをしたオブジェクトまたは複数のオブジェクトを、軸方向に平行移動させることができる。同様に、ある弧を選択することにより、関係付けをしたオブジェクトまたオブジェクトを、当該弧により指定された方向に回転移動させることができる。
【００２８】
弧１２１〜１２３と、軸１１０〜１１２のうちの２つ軸とを交差させて得られたプレーンも、オブジェクトの操作のために使用することができる。プレーンを活動化させることにより、Compassに関係付けられているオブジェクトを、活動化されたプレーンの方向に、移動させることができる。ある特権プレーンも指定することができる。好ましい実施形態では、この特権プレーンは、アンカー１０１を含むプレーンＸＹ１３１である。特権プレーンとして指定できる他のプレーンには、プレーンＺＹ１３２およびプレーンＺＸ１３３がある。
【００２９】
一実施形態では、ツールバー１６０に位置させたアイコン１６１〜１６３は、ユーザがCompassの一部を活動化することによりパフォームされるアクションと同一のアクションをパフォームすることができる。例えば、平行移動１６１を生じさせるためのアイコンは、Compassツール１００の軸１１０〜１１２を活動化させるのと同一のアクションを生じさせることができ、回転移動１６２を生じさせるためのアイコンは、Compassツール１００の弧１２１〜１２３を活動化させるのと同一のアクションを生じさせることができ、プレーン移動１６３を生じさせるためのアイコン１６３は、Compassツールのプレーン１３１〜１３３を活動化させるのと同一のアクションを生じさせることができる。
【００３０】
図２を説明する。コンピュータ表示画面２００には、オブジェクトシーン２２０と、１つ以上のツールバー２０４とを含ませることができ、ツールバー２０４はそれぞれ１つ以上のアイコン２０５を含む。このオブジェクトシーンは、ブロック２０６のようなオブジェクトの向きを合わせるのを援助するのに、絶対軸２１０を含ませることができる。このオブジェクトシーンは、さらにＧＵＩCompass２０１および２０２のような知識ベース・ポリモーフ分離可能ツールバーも含ませることができる。
【００３１】
Compass２０２はこのスクリーンの右上隅のようなポジションにデフォルトポジションとすることができる。オブジェクトシーン上のオブジェクト２０６が選択されると、この選択されたオブジェクト２０６に近接させて、ＧＵＩCompass２０１を位置させることができる。他の実施形態では、カーソル位置により定義されるような最も近い幾何学的なポイントに、例えばライン端に、アンカーを位置させることができる。さらに他の実施形態では、図２に示すように、選択されたオブジェクトの重心に、アンカー１０１が位置するように、Compass２０１を位置させている。
【００３２】
このアンカーは、オブジェクト自体で定義されているポイントに位置させることもできる。好ましい一実施形態では、ＧＵＩCompassは現在のオブジェクトの特性を認識しようとすることができる。特性は現在のオブジェクトのコンテキストを考慮に入れることができ、最高の意味的情報が存在するか否かをチェックすることができる。意味的情報で示されたアンカーのポイントを、ソフトウェアまたはユーザにより定義できる。
【００３３】
あるオブジェクトにＧＵＩCompassをアンカー（anchor）することにより、ユーザはオブジェクトを平行移動および回転移動で動かすことができる。このコンテキストにおける動きとしては、ドキュメントの絶対軸システムを基準にして、オブジェクトの空間座標を再定義することが含まれる。さらに他の実施形態では、ＧＵＩCompassを、ウィンドウの隅にアンカー的に表示させることもでき、あるオブジェクト上のCompassにとって、リモートコントロールとして用いることができる。
【００３４】
このオブジェクトスクリーンにも、固有のＸ軸１１０とＹ軸１１１とＺ軸１１２を含ませることができる。各軸は次元を表しており平行移動の場合に機能する。
【００３５】
図３を説明する。一実施形態では、ＧＵＩCompassをこのドキュメントの特定のオブジェクトに接触しないようにもできる。接触していないＧＵＩCompassを、デフォルトで、同様にして、絶対軸２１０とアライン（align）することができる。絶対軸２１０はこのオブジェクスクリーンの右下隅に位置しているのが典型的である。このドキュメントに含まれるオブジェクトは、全て、接触していないＧＵＩCompassの動きに応じて、同調して移動することになる。図３では、オブジェクトスクリーンにはオブジェクト３１５および３１６が含まれることになる。
【００３６】
図４を説明する。Compass１００はオブジェクト３１５および３１６に対して同一の相対的位置にある。既に説明したように、接触していないＧＵＩCompassの動きによって、ドキュメントの全要素は同調して移動する。
【００３７】
ＧＵＩCompass１００を構成する異なるコンポーネントを選択しドラッグすることにより、異なる動きを伝えることができる。カーソルをＧＵＩCompassの一部上にドラッグすることにより、このカーソルは物理外観を変化させることができる。例えば、代替カーソルの形状または色も物理的外観の変化に含ませることができる。一実施形態では、カーソルがＧＵＩCompassの要素または一部上を移動するときに現れる指マーク（pointed finger）を、カーソルアピアランス（appearance）に含ませることができる。さらに、Compassの要素が指し示されたとき、その要素をハイライトすることができる。要素には、Compass軸か、Compass面上の弧か、Compass自体のプレーンを含ませることができる。
【００３８】
図５を説明する。これはＧＵＩCompassによる動きの例であるが、ＹＺ弧を右側にドラッグすることにより、Ｘ軸の近くの弧内のオブジェクトであって、アンカーポイントを通るオブジェクトを回転させることができる。一実施形態では、アンカースクエアの近くにドラッグすることにより、オブジェクトを急速に回転させることができ、アンカースクエア１０１から離れたところをドラッグすることにより、オブジェクトをゆっくり回転させることができる。さらに、絶対軸２１０もＧＵＩCompassの動きに応じて回転することができる。
【００３９】
図６は、ＺＹ弧に対するプレーンＺＹ１３２を右にドラッグすることに応答して、オブジェクトを動かす例を示す。プレーンＺＹ１３２をドラッグすると、ＧＵＩCompass１００の動きと相関して、オブジェクト３１５および３１６はスクリーン上を移動することができる。
【００４０】
図７を説明する。自由回転ハンドル１０２をドラッグして、自由回転ハンドル１０２を選択するとともに、ＧＵＩCompass１００を回転させると、オブジェクト３１５および３１６は自由回転ハンドル１０２がドラッグされる方向に、回転することができる。自由回転ハンドル１０２を選択し動かすことにより、ユーザがマウスのようなポインティングデバイスから手を離さずに、ジョイスティックで得られるような動きをエミュレートすることができる。
【００４１】
図８を説明する。ＧＵＩCompass上の軸の文字をクリックするか、クリックでない方法で選択するか、あるいは、他の軸インジケータにより、選択された軸をスクリーンに垂直にすることができる。さらに他の態様では、同一文字を再度クリックすると、ユーザがオブジェクトをビューできるポイントを反対位置にすることができる。図８は軸Ｚ１１２を表す文字Ｚがクリックされるか、クリックでない方法で選択された後の、オブジェクト３１５および３１６を含むドキュメントのビューを示す。
【００４２】
図９を説明する。Compassとオブジェクト３１６を関係付けするユーザアクションに応答して、異なる機能のためにCompassを利用できる。機能には、例えばオブジェクトの平行および回転移動か、一方のオブジェクトと他方のオブジェクトとを接続することも含ませることができる。ユーザのニーズによっては、他の機能性もプログラムしてCompassにできる。選択されたオブジェクトに関係するCompassツールの初期位置も、オブジェクトを選択する間にパフォームされるユーザアクションに応答する知識ベースメカニズムにすることができる。
【００４３】
オブジェクトを選択するデフォルトの方法には、Compassがオブジェクトに嵌まるまで、Compassをドラッグすることを含めることができる。オブジェクトを選択するデフォルトの方法により、Compassは変位ツールとして機能することができ、その機能により、Compassはオブジェクトを再位置決めおよび再方向付けするため動作する。デフォルト選択に応答して、当該オブジェクトの重心にCompassアンカーを位置させることができ、Compassの方向付けを慣性軸に沿って行うことができる。このようなデフォルト設定は物質世界（physical world）での状態をエミュレートするのに用いることができる。例えば、第１のパイプを第２のパイプに取り付ける、物質世界の人は、第１のパイプを重心位置で適正に把持し、第１のパイプの軸を第２のパイプと平行にさせるであろう。そして、この人は、第１のパイプを平行移動させて、このパイプの端部を第２のパイプの端部と接触させるであろう。同様に、ＧＵＩCompassを３１６のようなオブジェクトの重心にくっつけ、選択したオブジェクトをCompassツールを介して操作できる。
【００４４】
オブジェクトを選択する代替方法としては、オブジェクトを選択するためにCompassがドラッグされている間に、例えば、コンピュータ１００と関係付けされたキーボードのコントロールキーを押し下げ続けるような、コマンドキーを活動化することも含まれる。一実施形態では、代替選択はリンクメカニズムを有するツールの使用を進歩的に活動化することができ、Compassは幾何学的に位置決めしパーツを組み立てるための接続ツールにもできる。このように使用している間、Compassは接続方法を定義するため位置決めおよび方向付けできる。例えば、オブジェクトが互いに接触することによる接続を利用する組み立てテキストでは、CompassのＺ軸を主軸と考えることができ、パイプの軸のような接続のための特権方向と正接して、方向付けすることができる。
【００４５】
選択プロセスには、コンテンキスト・トップダウン・意味的オブジェクト解釈を含ませることができる。オブジェクト選択を制御するプログラミングでは、まず現在のコンテキストを判断し、ついで最高の意味的情報を参照して、オブジェクトの特性を分析することができる。
【００４６】
オブジェクトを選択した後、コンピュータのスクリーン上に表示される３Ｄ空間中に、Compassを、デフォルトで、埋め込むことができる。埋め込まれた表現中、選択されたオブジェクトに近接して、Compassが現れる。埋め込まれた表現に容易にアクセスできない場合には、ユーザはリモートローカライゼーションのために選択できる。リモートローカライゼーションにより、選択されたオブジェクトにCompassがアンカーし、例えばスクリーンの右上隅にいつも現れるCompassのようなCompassをリモートで現わして制御できる。表示されるオブジェクトが複雑であり、そのため、埋め込んだCompassの操作が実際には不可能なとき、リモートローカライゼーションを有用にできる。リモートローカライゼーションの場合、ダイアログボックスまたは他のインタラクティブデバイスを使用して、ユーザは、埋め込んだCompassを表示しないように選択できる。
【００４７】
Compassがアンカーした後、選択されているオブジェクトのみがＧＵＩCompassの活動化に応答することになる。アンカーされていないCompassは、表示された全オブジェクトの動きをコントロールできる。Compass１００がオブジェクト３１６のプレーナパッチにアンカーされている間、CompassのＺ軸１１２をドラックすると、当該プレーナパッチをブロックオブジェクト３１５の反対側へ移動させることができる。このドラッグの動きは図１０に示す。
【００４８】
一実施形態では、選択されたオブジェクトが移動した距離１０１０は、オブジェクトの移動にしたがって、リアルタイムで表示することができる。好ましい一実施形態では、その距離は、軸の原点か、アンカースクエアから測定されたものであり、あるいは、Compassの基部に位置するCompass操作ハンドルから測定されたものである。表示値１０１０には、当該オブジェクトがCompass方向とは逆の方向に移動した場合、マイナス符号を付けることができる。Ｘ、Ｙ、Ｚ軸に沿った点線と、変位の成分を表す関係付けをした値とは、平行移動距離を表すことができる。１つの線で軸の平行移動を表すことができ、２つの線でプレーンの平行移動を表すことができる。点弧（dotted arc）と、関係付けをした角度とは、回転移動距離を表すことができる。平行移動および回転移動の増分（increment）は、予め定めたものとすることができるか、ユーザ定義のものとすることができる。図１１はＺ方向への平行移動後に再位置決めされたプレーナパッチ３１６を示す。
【００４９】
図１２を説明する。Compassのアンカーが選択されたとき、このCompassを、同一の選択されたオブジェクトまたは他のオブジェクトの他の位置および方向付けにスナップ（snap）することができる。カーソルで指し示されたパートまたはサブパートの主特性と、このCompassとを自動的にアラインさせることができる。したがって、サブパートが頂点であるときのように、サブパートをあるポイントに吸収させることができる場合には、このポイントに位置するCompassアンカーを有するあるポイントに、Compassの一時的表現をスナップすることができる。サブパートがエッジあるときのように、ある線にサブパートを吸収させることができる場合には、Ｚ軸の一時的表現をこのエッジ上にアラインさせることができる。サブパートをプレーンに吸収されることができる場合には、プレーンＸＹの一時的表現をこのプレーン上にスナップさせることができる。
【００５０】
例えば、この技術を用いて、Compass１００をオブジェクト３１５上にドラックさせることができ、図１２に示すように、オブジェクトのエッジの１つとアラインさせることができ、Compass１００はエッジ１２１０とアラインされる。プレーナパッチ３１６上でクリックした状態で、コントロールキーを押下することにより、プレーナパッチ３１６もオブジェクト３１５に沿って選択することができる。
【００５１】
図１３を説明する。オブジェクトを生成している間か、オブジェクトを変更している間、ＧＵＩCompassを一時的な基準軸として使用することができる。ＧＵＩCompassが非対称なので、例えば、Ｘ−Ｙプレーンを特権プレーンとして認識する視覚的情報を提供することができる。３次元オブジェクト生成または操作コマンドにとって、ベクトル方向が必要な場合には、Compassの特権プレーンに垂直の方向を取ることができる。
【００５２】
ベクトルプレーンが必要な場合は、Compassの特権プレーンを使用することができる。ＧＵＩCompassが移動している間、カーソルの形状とCompassは、Compassをアンカーするのを援助するため、変更することができる。このCompassがドラッグされるとき、軸１３１０を表示することができ、同様に、現在の特権プレーン１３２０を表示することができる。デフォルトでは、軸ＺをＸ−Ｙプレーン中に表示することができる。ユーザは他のデフォルトを指定し予め定めることができる。カーソル１３３０の形状も、Compassをドラッグしている間に、変更することができる。
【００５３】
Compassをドラッグアンドドロップするために使用されるマウスボタンを離すと、Compassはオブジェクト上に近接してスナップでき、よって選択される。図１４はプレーナパッチ３１６に取り付けられるか、アンカーされたCompassを示す。Compassが取り付けられるかアンカーされている視覚的な表示も利用することができる。例えば、Compassがオブジェクトに取り付けられたとき、色を変化させることができる。ライトグリーンのようなデフォルトの色を使用できるし、ユーザが定義した他の色も使用できる。
【００５４】
一実施形態では、ユーザは特権プレーンを、例えば、ＸＹから、ＸＺまたはＹＺへ変更することができる。一実施形態では、特権プレーンまたはパッチ３１６のようなオブジェクトを選択することにより、特権プレーンを変更することができ、しかも、コントロールポイント１５２０をプレーンまたはパッチ３１６上で見えるようにするため、コントロールポイントアイコンまたは他のユーザインタラクティブデバイスを活動化することにより特権プレーンを変更することができる。
【００５５】
図１５を説明する。選択されたオブジェクトか、プレーンか、パッチ３１６と共に見えるようにプログラムすることができる。デフォルトでは、マニピュレータ１５１０をCompassの現在の特権プレーンと同一のプレーンに方向付けすることができる。
【００５６】
他の実施形態では、例えばコンテキストメニューでアクセス可能なオプションにより、Compassの３つのプレーンのうちの最も良く見えるプレーンを強制的に特権プレーンとすることができる。このオプションを使用して、ユーザが表示されているモデルへの視点を変化させるとき、特権プレーンが切り換わる。
【００５７】
図１６を説明する。Compassをパッチ３１６のプレーン上にドラックでき、新たに望まれる特権プレーンを指定する方向にアラインすることができる。カーソルでCompassをパッチにドロップするとき、このCompassはこのパッチの方向付けを検知することができる。
【００５８】
図１７を説明する。パッチ３１６の方向付けに従って、このCompassを方向付けすることができる。一実施形態では、このCompassがオブジェクト３１６から離れるにしたがって、このCompassは対応する特権プレーンの方向付けを保持することになる。他の実施形態では、ユーザはポインティングデバイスでCompassを指し示し、右クリックをすることができる。
【００５９】
図１８を説明する。右クリックによりテキストメニューを表示することができる。このテキストメニューには、各プレーンを特権プレーンにできるコマンドが含まれている。マニピュレータは、特権プレーンとして選択されたプレーン上で方向付けされることになる。
【００６０】
図１９はCompass１００に対する特権プレーンとして選択されたプレーンＹＺを示す。特権プレーンの変更に応答して、今度は、マニピュレータ１５１０はＹＺプレーンに位置される。
【００６１】
図２０〜図２２は知識ベースのアクションの付加的な例を示す。オブジェクトの平行移動が例として示すが、回転およびプレーン移動を含む他の動きも同様にパフォームすることができる。図２０を説明する。ＧＵＩCompass１００は、エッジ２０１１に沿ったポイント２０１０で、長方形パッチ２００１にアンカーされている。カーソル２１０３は、Ｘ軸が選択されたことを示すため、Ｘ軸上で位置決めされる。オブジェクトシーン２２０には第２の長方形パッチ２００２も含まれる。図２１を説明する。プログラムは知識ベースルーチンを使用しており、この知識ベースルーチンにより、第２の長方形パッチ２００２のエッジ２１０４の境界、すなわち、カーソル２１０３に最も近い境界に、ポイント２１０５が決定される。そのポイントは、当該マウスがカーソルを制御している状態で、ユーザによるマウスボタンの押下に応答して決定される。ポイントが決定された上、Ｘ軸に垂直な線２１０２は、このルーチンによって、Ｘ軸２１０１へ延長される。
【００６２】
図２２を説明する。このマウスボタンを離すと、第１の長方形がパッチ２００１のCompass１００のＸ軸に沿って平行移動され、Compass１００のアンカーポイントのあるポイント２１０５から延長されたライン２１０２とアラインされ、そのCompassは第１のパッチにアンカーされる。
【００６３】
図２３を説明する。図２３は知識ベースのアクションを利用しない第１の長方形パッチ２００１を平行移動させる代替方法を示す。Compass１００はアンカーポイント２０１０にアンカーされており、ユーザはカーソル２３１０がCompass１００に位置している間に、マウスボタンを押下することにより、Compassをつかむことができる。ユーザは、Compass１００をＸ軸に沿ってドラッグして、第１の長方形パッチ２００１をＸ軸に沿って平行移動させることができる。Ｘ軸に沿って延長された点線２３０１により、移動方向を示すことができる。数値２３０２により、Ｘ軸に沿ってCompass１００が進んだ距離を示すことができる。
【００６４】
図２４を説明する。ユーザは、アンカーポイント２０１０と、第２の長方形パッチ２００２のエッジ２１０４とを視覚的にアラインでき、マウスボタンを離して、平行移動を停止させることができる。非知識ベースの移動には、２つのオブジェクトをアラインする、プログラムされた確認は含まれていない。本例では、アラインはユーザの知覚と同じように正確である。知識ベースのアクションはプログラムされた、予め定めた確度を有している。
【００６５】
図２５を説明する。図２５はコンピュータシステム２５００の物理リソースを示す。コンピュータ２５００はセントラルプロセッサ２５０１を有しており、セントラルプロセッサ２５０１はデータと、アドレスと、コントロール信号を供給するプロセッサホストバス２５０２と接続されている。プロセッサ２５０１は、慣用の汎用のシングルチップまたはマルチチップマイクロプロセッサ、例えば、Pentium（登録商標）シリーズプロセッサか、ＡＭＤ社のＫ６プロセッサか、ＭＩＰＳ（登録商標）プロセッサか、PowerPC（登録商標）プロセッサか、またはＡＬＰＨＡ（登録商標）プロセッサとすることができる。さらに、プロセッサ２５０１は、慣用の特殊マイクロプロセッサ、例えば、デジタルシグナルプロセッサまたはグラフィックプロセッサとすることができる。マイクロプロセッサ２５０１は、それ自体をプロセッサホストバス２５０２に接続する慣用のアドレスラインと、データラインと、制御ラインを有することができる。
【００６６】
コンピュータ２５００は、ＲＡＭメモリコントローラ２５０４を統合しているシステムコントローラ２５０３を含むことができる。システムコントローラ２５０３は、ホストバス２５０２と接続し、ランダムアクセスメモリ２５０５へのインタフェースを提供することができる。システムコントローラ２５０３は、ホストバスに、ペリフェラルバスブリッジング機能も提供することができる。したがって、コントローラ２５０３は、プロセッサホストバス２５０２上の信号を、プライマリペリフェラルバス２５１０上の信号と、互換性をもって交換することができる。ペリフェラルバス２５１０としては、例えば、ＰＣＩ（Peripheral Component Interconnect）バスか、ＩＳＡ（Industry Standard Architecture）バスか、Micro-Channelバスとすることができる。さらに、コントローラ２５０３は、ホストバス１０２とペリフェラルバス２５１０の間で、データバッファリングと、データ転送レートのマッチングとを提供することができる。したがって、データパスビット幅とクロック速度とデータ転送レートが異なるデータパスを有するＰＣＩバス２５１０に、例えば、プロセッサ２５０１を、コントローラ２５０３によりインタフェースすることができる。アクセサリデバイス、例えば、ハードディスクドライブ２５１４と結合しているハードディスクコントロールインタフェース２５１１と、ビデオディスプレイ２５１５と結合しているビデオディスプレイコントローラ２５１２と、キーボードおよびマウスコントローラ２５１３を含むアクセサリデバイスを、ペリフェラルバス２５１０に結合させることができ、しかも、プロセッサ２５０１によって制御できる。コンピュータシステムはコンピュータシステムネットワークか、インターネットか、イントラネットへの接続も含むことができる。データおよび情報はそのような接続を介して送受信することができる。
【００６７】
コンピュータ２５００には、基本的なコンピュータソフトウェアルーチンをストアするため、不揮発性ＲＯＭメモリ２５０７も含ませることができる。ＲＯＭ２５０７はコンフィグレーションデータを格納するため、ＥＥＰＲＯＭ（electrically erasable and programmable ROM）のような可変メモリを含むことができる。ＢＩＯＳルーチン２５２３をＲＯＭ２５０７に含めることができ、ＢＩＯＳルーチン２５２３は基本コンピュータ初期設定と、システム検査と、Ｉ／Ｏ（input/output）サービスを提供することができる。ＢＩＯＳ２５２３には、ＯＳ（operating system）をディスク２５１３から「ブート」させることができるルーチンも含ませることができる。高水準ＯＳの例としては、Microsoft Windows98（商標）、WindowsNT（商標）、ＵＮＩＸ、ＬＩＮＵＸ、Apple MacOS（商標）ＯＳ、等がある。
【００６８】
ＯＳは完全にＲＡＭメモリ２５０５にロードされるか、ＲＡＭメモリ２５０５か、ディスクドライブストレージ２５１４か、ネットワークロケーションのストレージに、一部を含ませることもできる。ＯＳはソフトウェアアプリケーションと、ソフトウェアシステムと、ソフトウェアシステムのツールをパフォームするための機能性を提供することができる。ソフトウェアの機能性によって、ビデオコンピュータディスプレイ２５１５上に２−Ｄ（two dimensional）および３−Ｄ（three dimentional）モデルを提供するため、ビデオディスプレイコントローラ２５１２と、コンピュータシステム２５００の他のリソースとに、アクセスすることができる。
【００６９】
本発明は、デジタル電子回路にインプリメントすることができるか、コンピュータハードウェアか、ファームウェアか、ソフトウェアにインプリメントすることができるか、それらを組み合わせたものにインプリメントすることができる。本発明の装置は、プログラマブルなプロセッサによってパフォームするため、マシン可読なストレージデバイスに明らかに埋め込まれたコンピュータプログラムプロダクトに、インプリメントすることができる。本発明の方法のステップは、入力データにアクトし、出力を生成することにより本発明の機能をパフォームするようにするための命令のプログラムをパフォームするプログラマブルなプロセッサによってパフォームすることができる。
【００７０】
本発明はプログラマブルなシステム上でパフォーム可能な１つ以上のコンピュータプログラムにインプリメントでき、このプログラマブルなシステムは、データおよび命令を受け取り、データおよび命令を伝送するために結合される少なくとも１つのプログラマブルなプロセッサを含むとともに、データ記憶システムと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。
【００７１】
コンピュータプログラムは、それぞれ、高水準手続プログラミング言語か、高水準オブジェクト指向プログラミング言語でインプリメントすることができるか、あるいは、必要な場合には、アセンブリまたはマシン言語でインプリメントできる。いずれにしても、このような言語はコンパイルプログラムまたは解釈プログラムとすることができる。
【００７２】
一般に、プロセッサはＲＯＭ（read-only memory）および／またはＲＡＭ（random access memory）から命令およびデータを受け取ることになる。コンピュータプログラムの命令およびデータを明白に具体化するのに適したストレージデバイスとしては、全ての不揮発性メモリを含む。不揮発性メモリとしては、例えば、ＥＰＲＯＭと、ＥＥＰＲＯＭと、フラッシュメモリデバイスのような半導体メモリデバイスを含み、内部ハードディスクとリムーバブルディスクのような磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭディスクとを含む。上述したものは、いずれも、特別設計のＡＳＩＣ（application-specific integrated circuits）によって補強可能か、特別設計のＡＳＩＣに組み込み可能である。
【００７３】
以上、本発明の実施形態を説明した。当然のことであるが、本発明の精神および範囲を逸脱することなく、種々の修正が可能である。したがって、他のインプリメントは特許請求の範囲内にある。
【図面の簡単な説明】
【図１】本発明による、知識ベースポリモーフ分離可能ツールバーCompassおよび関係付けをしたアイコンの例を示す図である。
【図２】オブジェクトシーンでの知識ベースポリモーフ分離可能ツールバーの例を示す図である。
【図３】取り付けていないＧＵＩCompassの例を示す図である。
【図４】取り付けていないＧＵＩCompassからの生じる動きの例を示す図である。
【図５】ＹＺ弧をドラックすることにより生じる動きを例す図である。
【図６】ＺＹプレーンをドラックすることにより生じる動きを示す図である。
【図７】回転ハンドルをドラックすることにより生じる回転移動を示す図である。
【図８】軸の文字表示を選択した後のコンピュータスクリーンに垂直になる軸を示す図である。
【図９】３−Compassのオブジェクトへのアンカーを示す図である。
【図１０】アンカーされたCompassの軸をドラックすることにより生じる動きを示す図である。
【図１１】Ｚの平行移動に続くプレーナパッチの最位置決めを示す図である。
【図１２】知識ベースポリモーフ分離可能ツールバーCompassとオブジェクトエッジとのアラインを示す図である。
【図１３】一時的な基準軸として知識ベースポリモーフ分離可能ツールバーを使用する図である。
【図１４】アンカーされたCompassを示す図である。
【図１５】オブジェクトと併用するマニピュレータを示す図である。
【図１６】プレーナパッチ上をドラックするCompassを示す図である。
【図１７】プレーナパッチの方向付けによって方向付けされるCompassを示す図である。
【図１８】メニューから選択した特権プレーンで再方向付けされるCompassを示す図である。
【図１９】  Compass用の特権プレーンとして選択されたＹＺを示す図である。
【図２０】長方形のパッチに付けられた知識ベースポリモーフ分離可能ツールバーCompassを示す図である。
【図２１】オブジェクトの知識ベースの平行移動を行なっている間のアラインを示す図である。
【図２２】知識ベースの平行移動を使用してもたらされる平行移動を示す図である。
【図２３】非知識ベースの平行移動を行なっている間のアラインを示す図である。
【図２４】非知識ベースの平行移動を使用してもたらされる平行移動を示す図である。
【図２５】コンピュータシステムのブロック図である。
【符号の説明】
２５００  コンピュータ
２５０１  セントラルプロセッサ
２５０２  プロセッサホストバス
２５０３  システムコントローラ
２５０４  ＤＲＡＭコントローラ
２５０５  ＲＡＭ
２５０６  キャシュＳＲＡＭ
２５１０  ペリフェラルバス
２５１１  ハードディスクコントロールインタフェース
２５１２  ビデオディスプレイコントローラ
２５１３  キーボードおよびマウスコントローラ
２５１４  ハードディスクドライブ
２５１５  ビデオコンピュータディスプレイ
２５２１  キーボードコントローラ、ＲＴＣ、シリアル、パラレルポート
２５２３  ＢＩＯＳルーチン
２５２４  オーディオ
２６１０  ペリフェラルバス
【図１】
0003681958.tif 000002
【図２】
0003681958.tif 000003
【図３】
0003681958.tif 000004
【図４】
0003681958.tif 000005
【図５】
0003681958.tif 000006
【図６】
0003681958.tif 000007
【図７】
0003681958.tif 000008
【図８】
0003681958.tif 000009
【図９】
0003681958.tif 000010
【図１０】
0003681958.tif 000011
【図１１】
0003681958.tif 000012
【図１２】
0003681958.tif 000013
【図１３】
0003681958.tif 000014
【図１４】
0003681958.tif 000015
【図１５】
0003681958.tif 000016
【図１６】
0003681958.tif 000017
【図１７】
0003681958.tif 000018
【図１８】
0003681958.tif 000019
【図１９】
0003681958.tif 000020
【図２０】
0003681958.tif 000021
【図２１】
0003681958.tif 000022
【図２２】
0003681958.tif 000023
【図２３】
0003681958.tif 000024
【図２４】
0003681958.tif 000025
【図２５】
0003681958.tif 000026