(57)【特許請求の範囲】
【請求項１】
オブジェクト選択を提供するシステムであって、当該システムは、
少なくとも１つのプロセッサを含み、該少なくとも１つのプロセッサは少なくとも１つのメモリに含まれる実行可能な命令を介して以下のように構成されている、すなわち、
互いに直交する第１、第２および第３の軸を有する三次元ワークスペースで個別に選択可能な複数の三次元オブジェクトをディスプレイデバイスにより表示させ、
少なくとも１つの入力デバイスの操作により受け取った少なくとも１つのモーション入力に基づき、前記複数のオブジェクトを横切る少なくとも１つのパスを決定し、前記パスは前記ワークスペースの第１および第２の軸にわたって延在しており、前記パスは第１のオブジェクトのところに始点を含み、
前記パスが横切った第１のオブジェクトの可視表面領域の深度に基づき、前記ワークスペースの第３の軸に沿った深度範囲を決定し、
オブジェクトの第１のセットが前記深度範囲内のポジションで前記ワークスペースに表示されることに基づいて、前記少なくとも１つのパスが横切った前記オブジェクトのセットの少なくとも一部分に外観を変化させ、少なくとも１つのオブジェクトのポジションが前記深度範囲外であることに基づいて、前記少なくとも1つのオブジェクトの外観を変化させず、
外観が変化したセット内のオブジェクト各々の表面領域量に基づき、前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも２つのオブジェクトが１つのグループとして選択されるようにする一方、前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも１つのオブジェクトは未選択状態に維持されるようにし、前記少なくとも１つのパスが横切ったときに外観が変化しなかったオブジェクトも未選択状態に維持され、
前記少なくとも１つの入力デバイスにより受け取った少なくとも１つの操作入力に応答して、前記オブジェクトが選択されたのか否かに基づき、選択された少なくとも２つのオブジェクトから成る前記グループに対しては、複数の操作のうち少なくとも１つの操作が実行されるようにし、未選択状態に維持された前記オブジェクトに対しては該操作が実行されないようにする、
ように構成されている、
システム。
【請求項２】
前記少なくとも１つのプロセッサは以下のように構成されている、すなわち、
外観が変化した前記オブジェクトのセットのうちのオブジェクト各々の表面領域量に基づいて、外観が変化した前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも２つのオブジェクトが、グループとして選択されるようにする一方、外観が変化した前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも１つのオブジェクトが未選択状態に維持される、
ように構成されている、
請求項１記載のシステム。
【請求項３】
少なくとも１つのプロセッサは、前記ディスプレイデバイスを介してグラフィカルユーザインタフェース（ＧＵＩ）を生成するよう動作し、前記ＧＵＩは前記オブジェクトを前記ワークスペース内に表示し、前記ＧＵＩは、前記少なくとも１つの入力デバイスの操作により受け取ったさらに別の入力に応答して、選択された複数のオブジェクトから成る前記グループに対して複数の操作を実行させることができ、前記操作は、前記選択された複数のオブジェクトの消去、前記選択された複数のオブジェクトの隠蔽、前記選択された複数のオブジェクトのコピー、前記選択された複数のオブジェクトの移動、および前記選択された複数のオブジェクトに関する情報の表示、を含む、
請求項２記載のシステム。
【請求項４】
前記オブジェクトのセット内の前記オブジェクト各々は、１つまたは複数の他のオブジェクトによって遮られていない間に前記ディスプレイデバイスにより表示されると、完全に可視となり得る１つの前向き表面領域を含み、
前記少なくとも１つのプロセッサは、前記オブジェクトのセット内のオブジェクト各々について前向き表面領域量を特定するように構成されており、
前記少なくとも１つのプロセッサは、前記外観が変化した前記オブジェクトのセット内のオブジェクト各々の特定された前記前向き表面領域量の可視の割合に基づき、外観が変化した前記オブジェクトのセット内の前記少なくとも２つのオブジェクトを選択する一方、外観が変化した前記オブジェクトのセット内の前記少なくとも１つのオブジェクトを未選択状態に維持する、ように構成されている、
請求項３記載のシステム。
【請求項５】
前記少なくとも１つのプロセッサは、前向き表面領域の部分量に対応する閾値量を決定するように動作し、
前記少なくとも１つのプロセッサは、前記閾値量以上の外観が変化した各オブジェクトの、特定された前向き表面領域量の可視の割合を有する前記オブジェクトのセット内のオブジェクトを選択し、決定するように構成されている、
請求項４記載のシステム。
【請求項６】
前記オブジェクトの一部分の外観変化は、前記オブジェクトに吹き付けられたペイントの仮想表現に対応する、
請求項５記載のシステム。
【請求項７】
前記ＧＵＩは目下の選択モードを、表面選択モードと透過選択モードとの間で切り替え可能にし、前記ＧＵＩが前記表面選択モードにあるならば、前記少なくとも１つのプロセッサは、前記外観が変化した前向き表面領域の可視の割合に基づき、オブジェクトが選択されるタイミングを決定するように、構成されており、前記ＧＵＩが前記透過選択モードにあるならば、前記少なくとも１つのプロセッサは、少なくとも１つの入力デバイスの操作による少なくとも１つの第２のモーション入力に応答して、該少なくとも１つの第２のモーション入力に対応する少なくとも１つの第２のパスが横切り、かつ予め定められた透過深度範囲内のポジションを有する、他のオブジェクトによって完全に遮られたオブジェクトを選択する、ように構成されている、
請求項６記載のシステム。
【請求項８】
外観が変化した前向き表面領域の可視の割合に基づいてオブジェクトが選択されることが決定され、前記プロセッサは、前記オブジェクトが選択されることが決定される前の外観の変化に加えてまたはその代わりに、前記オブジェクトに外観のさらなる変化を引き起こすように構成されている、
請求項６記載のシステム。
【請求項９】
オブジェクト選択のための方法であって、
少なくとも１つのプロセッサのオペレーションにより、
個別に選択可能な複数の三次元オブジェクトを、互いに直交行する第１、第２および第３の軸を有する三次元ワークスペースに、ディスプレイデバイスにより表示させ、
少なくとも１つの入力デバイスの操作により受け取った少なくとも１つのモーション入力に基づき、前記複数のオブジェクトを横切る少なくとも１つのパスを決定し、前記パスは、前記ワークスペースの第１および第２の軸にわたって延在しており、前記パスは第１のオブジェクトのところに始点を含み、
前記パスが横切った第１のオブジェクトの可視表面領域の深度に基づいて、前記ワークスペースの前記第３の軸に沿った深度範囲を決定し、
オブジェクトの第１のセットが前記深度範囲内のポジションでワークスペースに表示されることに基づいて、前記少なくとも１つのパスが横切ったオブジェクトのセットの少なくとも一部分の外観を変化させ、前記少なくとも１つのオブジェクトのポジションが前記深度範囲外であることに基づいて、少なくとも１つのオブジェクトの外観を変化させず、
外観が変化した前記セット内のオブジェクト各々の表面領域量に基づき、前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも２つのオブジェクトが１つのグループとして選択されるようにする一方、前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも１つのオブジェクトは未選択状態に維持されるようにし、少なくとも１つのパスが横切ったときに外観が変化しないオブジェクトも、未選択状態を維持されるようにし、
前記少なくとも１つの入力デバイスにより受け取った少なくとも１つの操作入力に応答して、前記オブジェクトが選択されたのか否かに基づき、選択された少なくとも２つのオブジェクトから成る前記グループに対しては、複数の操作のうち少なくとも１つの操作が実行されるようにし、未選択状態に維持された前記オブジェクトに対しては該操作が実行されないようにする、
方法。
【請求項１０】
外観が変化した前記オブジェクトのセット内のオブジェクト各々の表面領域量に基づき、外観が変化した前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも２つのオブジェクトを、グループとして選択する一方、外観が変化した前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも１つのオブジェクトを未選択状態に維持する、
請求項９記載の方法。
【請求項１１】
少なくとも１つのプロセッサのオペレーションによって、前記ディスプレイデバイスを介してグラフィカルユーザインタフェース（ＧＵＩ）を生成し、前記ＧＵＩは前記オブジェクトを前記ワークスペース内に表示し、前記ＧＵＩは、前記少なくとも１つの入力デバイスの操作により受け取ったさらに別の入力に応答して、選択された複数のオブジェクトから成る前記グループに対して複数の操作を実行させることができ、前記操作は、前記選択された複数のオブジェクトの消去、前記選択された複数のオブジェクトの隠蔽、前記選択された複数のオブジェクトのコピー、前記選択された複数のオブジェクトの移動、および前記選択された複数のオブジェクトに関する情報の表示、を含む、
請求項１０記載の方法。
【請求項１２】
前記オブジェクトのセット内の前記オブジェクト各々は、１つまたは複数の他のオブジェクトによって遮られていない間に前記ディスプレイデバイスにより表示されると、完全に可視となり得る１つの前向き表面領域を含み、さらに、
前記少なくとも１つのプロセッサのオペレーションにより、前記オブジェクトのセット内のオブジェクト各々について前向き表面領域量を特定することを含み、
前記外観が変化した前記オブジェクトのセット内のオブジェクト各々の特定された前記前向き表面領域量の可視の割合に基づき、外観が変化した前記オブジェクトのセット内の前記少なくとも２つのオブジェクトを選択する一方、外観が変化した前記オブジェクトのセット内の前記少なくとも１つのオブジェクトを未選択状態に維持する、
請求項１１記載の方法。
【請求項１３】
さらに、前記少なくとも１つのプロセッサのオペレーションにより、前向き表面領域の部分量に対応する閾値量を決定することを含み、
前記閾値量以上の外観が変化したオブジェクト各々の特定された前記前向き表面領域量の可視の割合に基づき、外観が変化した前記オブジェクトのセット内の前記少なくとも２つのオブジェクトが選択されるようにすることを実行する、
請求項１２記載の方法。
【請求項１４】
前記オブジェクトの一部分の外観変化は、前記オブジェクトに吹き付けられたペイントの仮想表現に対応する、
請求項１３記載の方法。
【請求項１５】
前記ＧＵＩは目下の選択モードを、表面選択モードと透過選択モードとの間で切り替え可能にし、前記ＧＵＩが前記表面選択モードにあることに基づき、外観が変化した可視の前向き表面領域の可視の割合に基づき、どのオブジェクトが選択されるのかを決定し、さらに、
前記目下の選択モードを前記透過選択モードに切り替えることと、
少なくとも１つの入力デバイスの操作による少なくとも１つの第２のモーション入力に応答して、該少なくとも１つの第２のモーション入力に対応する少なくとも１つの第２のパスが横切り、かつ予め定められた透過深度範囲内のポジションを有する、他のオブジェクトによって完全に遮られたオブジェクトが選択されるようにすることと、
を含む、
請求項１４記載の方法。
【請求項１６】
外観が変化した前向き表面領域の可視の割合に基づいて前記オブジェクトのセットのうちの前記少なくとも２つのオブジェクトが選択されることが決定されたことに応答して、前記少なくとも２つのオブジェクトが選択されることが決定される前の外観の変化に加えてまたはその代わりに、前記少なくとも２つのオブジェクトに外観のさらなる変化を引き起こすことを含む、
請求項１４記載の方法。
【請求項１７】
実行可能な命令によってコーディングされた非一時的なコンピュータ読み取り可能ストレージ媒体であって、少なくとも１つのプロセッサによって前記命令が実行されると、少なくとも１つのプロセッサが以下に記載のオブジェクト選択のための方法を実行する、前記方法は、すなわち
互いに直交する第１、第２および第３の軸を有する三次元ワークスペースで個別に選択可能な複数の三次元オブジェクトをディスプレイデバイスにより表示させ、
少なくとも１つの入力デバイスの操作により受け取った少なくとも１つのモーション入力に基づき、前記複数のオブジェクトを横切る少なくとも１つのパスを決定し、前記パスは前記ワークスペースの第１および第２の軸にわたって延在しており、前記パスは第１のオブジェクトのところに始点を含み、
前記パスが横切った第１のオブジェクトの可視表面領域の深度に基づき、前記ワークスペースの第３の軸に沿った深度範囲を決定し、
オブジェクトの第１のセットが前記深度範囲内のポジションで前記ワークスペースに表示されることに基づいて、前記少なくとも１つのパスが横切った前記オブジェクトのセットの少なくとも一部分に外観を変化させ、少なくとも１つのオブジェクトのポジションが前記深度範囲外であることに基づいて、前記少なくとも1つのオブジェクトの外観を変化させず、
外観が変化したセット内のオブジェクト各々の表面領域量に基づき、前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも２つのオブジェクトが１つのグループとして選択されるようにする一方、前記オブジェクトのセット内の前記複数のオブジェクトのうち少なくとも１つのオブジェクトは未選択状態に維持されるようにし、前記少なくとも１つのパスが横切ったときに外観が変化しなかったオブジェクトも未選択状態に維持され、
前記少なくとも１つの入力デバイスにより受け取った少なくとも１つの操作入力に応答して、前記オブジェクトが選択されたのか否かに基づき、選択された少なくとも２つのオブジェクトから成る前記グループに対しては、複数の操作のうち少なくとも１つの操作が実行されるようにし、未選択状態に維持された前記オブジェクトに対しては該操作が実行されないようにする、
非一時的なコンピュータ読み取り可能ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、全般的にいえば、コンピュータ支援設計（ＣＡＤ）、視覚化および製造システム、製品データマネージメント（ＰＤＭ）システム、製品ライフサイクルマネージメント（ＰＬＭ）システム、ならびに製品および他の項目のデータを生成および管理するために用いられる同等のシステム（これらをまとめて製品システムと称する）に関する。
【０００２】
背景技術
ＰＬＭシステムには、製品構造の設計を容易にするコンポーネントを含めることができる。かかるコンポーネントは、改善によって恩恵を受けることができる。
【０００３】
概要
多様に開示された実施形態には、オブジェクトの選択を容易にするために使用可能なシステムおよび方法が含まれている。１つの例によれば、システムは少なくとも１つのプロセッサを含むことができる。個別に選択可能な複数の三次元オブジェクトをディスプレイデバイスによって表示させるように、プロセッサを構成することができる。同様に、少なくとも１つの入力デバイスの操作を介して受け取った少なくとも１つのモーション入力に基づき、複数のオブジェクトを横切った少なくとも１つのパスを決定するように、少なくとも１つのプロセッサを構成することができる。これに加え、少なくとも１つのパスが横切った各オブジェクトの表面領域量に基づき、複数のオブジェクトのうち少なくとも２つのオブジェクトが１つのグループとして選択されるようにする一方、それらのオブジェクトのうち少なくとも１つのオブジェクトを未選択状態に維持するように、少なくとも１つのプロセッサを構成することができる。さらに、少なくとも１つの入力デバイスを介して受け取った少なくとも１つの操作入力に応答して、オブジェクトが選択されているか否かに基づき、選択された少なくとも２つのオブジェクトから成るグループに対しては、複数の操作のうち少なくとも１つの操作が実行されるようにし、未選択状態に維持された少なくとも１つのオブジェクトに対してはその操作が実行されないように、少なくとも１つのプロセッサを構成することができる。
【０００４】
別の例によれば、少なくとも１つのプロセッサのオペレーションによって実施される様々なアクションを、１つの方法に含めることができる。かかる方法は以下のことを含むことができる。すなわち、個別に選択可能な複数の三次元オブジェクトをディスプレイデバイスにより表示させることと、少なくとも１つの入力デバイスの操作により受け取った少なくとも１つのモーション入力に基づき、複数のオブジェクトを横切る少なくとも１つのパスを決定することと、少なくとも１つのパスが横切ったオブジェクト各々の表面領域量に基づき、複数のオブジェクトのうち少なくとも２つのオブジェクトが１つのグループとして選択されるようにする一方、複数のオブジェクトのうち少なくとも１つのオブジェクトは未選択状態に維持されるようにすることと、少なくとも１つの入力デバイスにより受け取った少なくとも１つの操作入力に応答して、オブジェクトが選択されたのか否かに基づき、選択された少なくとも２つのオブジェクトから成るグループに対しては、複数の操作のうち少なくとも１つの操作が実行されるようにし、未選択状態に維持された少なくとも１つのオブジェクトに対してはこの操作が実行されないようにすることと、を含むことができる。
【０００５】
さらに別の例は、（たとえばストレージデバイスにおけるソフトウェアコンポーネントなどのように）実行時に少なくとも１つのプロセッサに上述の方法を実施させる実行可能な命令によってコーディングされた、非一時的なコンピュータ読み取り可能媒体を含むことができる。
【０００６】
これまでの記載は、以下の詳細な説明を当業者がよりよく理解できるよう、本開示の技術的特徴をどちらかといえば大雑把に略述したものである。各請求項の要旨を成す本開示のその他の特徴および利点については、以下で述べることにする。当業者であれば理解できるように、当業者は開示された着想および特定の実施形態を、本開示と同じ目的を成し遂げるための変更または他の構造の設計のベースとして、ただちに使用することができる。さらに当業者であれば、かかる等価の構造が最も広い形態での本開示の着想および範囲を逸脱しないことを理解するであろう。
【０００７】
以下の発明の詳細な説明に入る前に、本明細書全体を通して用いられる可能性のあるいくつかの用語や表現について、ここで定義しておくのがよいと思われる。たとえば用語「含む」および「有する」ならびにそれらの派生語は、制限なく含有を意味する。単数形である「１つの」および「前記の」は複数形も同様に含むことを意図しており、このことは文脈によって明らかにそうではないことを指さないかぎりあてはまる。さらにここで用いられる用語「および／または」は、関連する一覧項目のうちの１つまたは複数のありとあらゆる可能な組み合わせのことを指し、かつそれらを包含するものである。用語「または」は、文脈によって明らかに別のことを指さないかぎり、「および／または」の意味を含む。表現「に関連づけられた」および「それに関連づけられた」ならびにそれらの派生語は、含む、中に含まれている、相互接続されている、含有する、中に含有されている、に接続されている、または、と接続されている、に結合されている、または、と結合されている、と通信可能である、と共同する、交互配置する、並置する、に近接している、に結び付けられている、または、と結び付けられている、有する、を所有している、または同等のものを意味することができる。
【０００８】
同様に、様々な要素、機能またはアクションを表すために、ここでは「第１の」、「第２の」、「第３の」といった用語が使われる場合もあるが、これらの用語によってそれらの要素、機能またはアクションが限定されるものではない。むしろこれらの数形容詞は、それぞれ異なる要素、機能またはアクションを互いに区別するために用いられる。たとえば、本開示の範囲から逸脱することなく、第１の要素、機能またはアクションを、第２の要素、機能またはアクションと称してもいいし、同様に第２の要素、機能またはアクションを、第１の要素、機能またはアクションと称してもよい。
【０００９】
これらに加え、１つまたは複数の機能またはプロセスを実施するように「プロセッサが構成されている」といった表現は、ソフトウェア、ファームウェアおよび／または結線された回路を介して、それらの機能またはプロセスを実施するように、プロセッサの動作が構成されている、ということを意味することができる。たとえば、ある機能／プロセスを実施するように構成されたプロセッサを、その機能／プロセスをプロセッサに実行させるようにプログラミングされたソフトウェア／ファームウェアを能動的に実行するプロセッサに対応するものとすることができ、またはその機能／プロセスを実施するためにプロセッサにより実行されるように使用可能なメモリまたはストレージデバイス内に、ソフトウェア／ファームウェアを有するプロセッサに対応するものとすることができる。さらにここで述べておくと、１つまたは複数の機能またはプロセスを実施するように「構成されている」プロセッサを、それらの機能またはプロセスを実施するために特別に製造されたまたは「配線された」プロセッサ回路に対応するものとすることもできる（たとえばＡＳＩＣまたはＦＰＧＡ設計）。さらに、１つの機能よりも多くの機能を実施するように構成された１つの要素（たとえば１つのプロセッサ）の前に記載された「少なくとも１つの」なる表現を、各々が機能を実行する１つまたは複数の要素（たとえばプロセッサ）に対応させることができ、また、１つまたは複数の種々の機能のうちそれぞれ異なる１つの機能を個々に実施する２つまたはそれよりも多くの要素（たとえばプロセッサ）に対応させることもできる。
【００１０】
用語「に隣接する」は、ある要素が別の要素と相対的に近いが、その要素とは接触していないこと、または文脈により明らかに別のことを指していないかぎり、その要素が別の部分と接触していること、を意味する。
【００１１】
いくつかの用語および表現に対する定義は、本明細書全体にわたって規定されるものであり、当業者であれば理解できるように、かかる定義は、大部分の事例ではないにしても数多くの事例において、ここで定義した用語および表現の以前の使用にも将来の使用にも適用される。いくつかの用語は、幅広い種類の実施形態を含むことができるけれども、添付の特許請求の範囲は、それらの用語を特定の実施形態に明確に限定している場合もある。
【図面の簡単な説明】
【００１２】
【図１】オブジェクトの選択を容易にする１つの例示的なシステムを示す機能ブロック図である。
【図２】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図３】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図４】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図５】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図６】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図７】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図８】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図９】１つの構造を有する選択可能なおよび選択された三次元オブジェクトのグラフィカルユーザインタフェースからの例示的な視覚出力を示す図である。
【図１０】オブジェクトの選択を容易にする例示的な方法論を示すフローチャートである。
【図１１】１つの実施形態を実現可能なデータ処理システムを示すブロック図である。
【００１３】
詳細な説明
次に、オブジェクトを選択するシステムおよび方法に属する様々な技術について、図面を参照しながら説明する。それらの図中、同様の構成要素は全体を通じて同じ参照符号によって表されている。本明細書において本開示の基本原理を記述するために、以下で説明する図面および種々の実施形態が用いられているが、これらは例示の目的で用いたにすぎず、いかなるかたちであっても本開示の範囲の限定を意図したものではない。当業者であれば理解できるように、本開示の基本原理を、適切に構成された任意の装置において実現することができる。ここで理解されたいのは、特定のシステム要素によって実行されるものと記載された機能を、複数の要素によって実施することができる、という点である。同様にたとえば、複数の要素によって実行されるものと記載された機能を実施するように、１つの要素を構成してもよい。本発明の数多くの革新的な着想について、具体例として挙げた非限定的な実施形態を参照しながら説明する。
【００１４】
（ＣＡＤソフトウェアなどのような）描画システムの多くの形態は、１つまたは複数の構造を有する種々のタイプの三次元オブジェクトを操作するように動作する。かかるオブジェクトは、構造を構築するために使用される部品、組立部品、半組立部品などのような製造されるオブジェクトを含むことができる。一例として、複数の部品が取り付けられたベッドによってワゴン構造を構成することができる。かかる部品は、１つのハンドルと、ブラケット、スピンドル、ベアリング、および留め具たとえばボルト、ワッシャ、ナットなどを介して取り付けられた４つのホイールとを含むことができる。これらの部品すべては、ＣＡＤソフトウェアまたは他の描画システムを介して描画可能かつ操作可能な３Ｄ部品に対応する。さらに描画システムは、正方形、角柱、球、錐体、円柱、立方体および／または直方体を含む幾何学的３Ｄ形状などのような、いっそう多くの一般的な３Ｄオブジェクトも描画可能かつ操作可能である、ということを理解されたい。
【００１５】
したがって一般に３Ｄオブジェクトを、（たとえば表示画面などのような）ディスプレイデバイスにより表示可能な任意のタイプの３Ｄオブジェクトに対応させることができ、そのようなオブジェクトは、入力デバイスによる入力を介して、オブジェクトの形状、寸法、配向、位置、可視性、透明性、色、物理的属性、注釈、および／または他の任意の特性に関して、操作可能である。
【００１６】
図１を参照すると、オブジェクトの描画および操作を容易にする例示的なシステム１００が示されている。システム１００は少なくとも１つのプロセッサ１０２を含むことができ、このプロセッサは、本明細書で説明する種々の特徴を実施するために、メモリ１０６から１つまたは複数のアプリケーションソフトウェアコンポーネント１０４を実行するように、構成されている。アプリケーションソフトウェアコンポーネント１０４は、ＣＡＤソフトウェアアプリケーションなどのような描画ソフトウェアアプリケーションまたはその一部を含むことができる。かかるＣＡＤソフトウェアアプリケーションは、ユーザによって与えられた入力に少なくとも部分的に基づき、ＣＡＤ図面を生成および編集するように動作可能である。
【００１７】
本明細書で説明する機能の少なくともいくつかを含むように適合可能なＣＡＤ／ＣＡＭ／ＣＡＥ（コンピュータ支援設計／コンピュータ支援製造／コンピュータ支援エンジニアリング）ソフトウェアの一例として、Siemens Product Lifecycle Management Software Inc. (Plano, Texas)から市販されているNX suite of applicationsが挙げられる。ただし、かかる描画ソフトウェアアプリケーションを、他のタイプの描画ソフトウェアに相当するものとしてもよく、そのようなソフトウェアには、建築用ソフトウェアおよび／または構造の３Ｄオブジェクトの描画および操作を伴う他の任意のタイプのソフトウェアが含まれる、ということも理解されたい。
【００１８】
既述のシステムは、少なくとも１つの（表示画面などのような）ディスプレイデバイス１０８と、少なくとも１つの入力デバイス１１０とを含むことができる。たとえばプロセッサは、ＰＣ、ノートブックコンピュータ、ワークステーション、サーバ、タブレット、モバイルフォン、または他の任意のタイプのコンピュータシステムの一部分として含まれるものとすることができる。ディスプレイデバイスはたとえば、ＬＣＤディスプレイ、モニタおよび／またはプロジェクタを含むことができる。入力デバイスはたとえば、マウス、ポインタ、タッチスクリーン、タッチパッド、ドローイングタブレット、トラックボール、ボタン、キーパッド、キーボード、ゲームコントローラ、カメラ、ジェスチャ動作をキャプチャするモーションセンシングデバイス、または本明細書で説明する入力を供給可能な他の任意のタイプの入力デバイスを含むことができる。同様にタブレットなどのデバイスのためにもプロセッサ１０２を、入力デバイスとディスプレイデバイスの双方として用いられるタッチスクリーンを含むハウジング内に組み込むことができる。さらに、（ゲームコントローラなどのような）いくつかの入力デバイスは、異なる複数のタイプの入力デバイス（アナログスティック、ｄパッドおよびボタン）を含むことができる、という点も理解されたい。
【００１９】
同様にここで述べておくと、本明細書で説明するプロセッサを、本明細書で説明するディスプレイデバイスおよび入力デバイスとは離れた場所にあるサーバ内に配置してもよい。かかる例によれば、既述のディスプレイデバイスおよび入力デバイスを、クライアントデバイス内に含めてもよく、このクライアントデバイスは、（インターネットを含むことのできる）有線または無線のネットワークを介してサーバ（および／またはサーバ上で実行される仮想マシン）と通信する。いくつかの実施形態によれば、かかるクライアントデバイスはたとえば、入力デバイスからサーバへ入力を送信し、かつサーバから視覚情報を受信してディスプレイデバイスにより表示する目的で、リモートデスクトップアプリケーションを実行することができ、またはサーバと共にリモートデスクトッププロトコルを実行することができる。かかるリモートデスクトッププロトコルの例として、Teradici社のPCoIP、Microsoft社のRDPおよびRFBプロトコルが挙げられる。かかる例によれば、本明細書で説明するプロセッサを、サーバの物理的プロセッサにおいて実行される仮想マシンの仮想プロセッサに相当するものとすることができる。
【００２０】
図１には、ディスプレイデバイス１０８における複数の異なるビュー（Ａ〜Ｃ）が概略的に描かれており、これらのビューは、入力デバイス１１０を介して受け取った様々な入力に応答して、プロセッサ１０２により表示させられたものである。たとえばディスプレイデバイス１０８のビューＡの場合、ディスプレイデバイス１０８によってワークスペース１２０内に構造１１８を表示させるように、プロセッサ１０２を（たとえばアプリケーションソフトウェアコンポーネントを介するなどして）構成することができる。
【００２１】
ワークスペース１２０を、三次元空間に相当するものとすることができ、この三次元空間において、少なくとも１つの望ましい構造１１８を生成する目的で、アプリケーションソフトウェアコンポーネント１０４のグラフィカルユーザインタフェース（ＧＵＩ）１２４を用いて、オブジェクトが視覚的に描画され、表示され、操作される。例示的な実施形態によれば、ディスプレイデバイス１０８を二次元（２Ｄ）表示画面に相当するものとすることができ、これによって三次元（３Ｄ）ワークスペースおよび構造１１８の種々のビューを閲覧することができる。さらに別の例において、３Ｄワークスペース内に３Ｄ構造を表示させるために、３Ｄディスプレイを用いることもできる。
【００２２】
図１に示した例には、１つの大きい方のオブジェクト１１６と接続された（および／または隣接した）２つの小さい方のオブジェクト１１２，１１４を含む一般的な構造１１８が描かれている。かかるオブジェクトは、ブロック型部品として描かれている。ただし、これらのオブジェクトは、１つの構造および／または複数の別個の構造の任意のタイプのコンポーネントに適用可能な特徴を、一般的に示そうとしたものである、ということを理解されたい。
【００２３】
入力デバイス１１０を介して受け取った描画入力１２２に応答して、ワークスペース１２０内でオブジェクトを描画および／または編集することができる。描画されたオブジェクトを表すデータを、メモリ１０６内にオブジェクトデータ１２６として記憶させることができる。ただし、かかるオブジェクトデータ１２６を、入力デバイス１１０による入力を介して、ＣＡＤファイルおよび／またはデータストアから取り出すことができ、ロードされたオブジェクトデータに応答して、ディスプレイデバイスによりオブジェクトを表示するように、プロセッサを構成することができる、ということも理解されたい。
【００２４】
ＧＵＩ１２４は、構造１１８のオブジェクト１１２，１１４，１１６のうちの１つまたは複数を、入力デバイス１１０による入力を介してユーザが個別に選択できるようにする機能を、含むことができる。たとえばＧＵＩによりユーザは、マウスクリックによって個々のオブジェクトを選択することができ、キーボードのコントロールキーを押しながらマウスをクリックすることによって、付加的なオブジェクトを選択することができる。さらにＧＵＩは、矩形の選択ボックスを用いて１つまたは複数のオブジェクトを選択することができ、これによれば、複数のオブジェクトの上にマウスを用いて１つのボックスが描かれ、ボックスの下にあるオブジェクトが選択されることになる。ただしここで理解されたいのは、複数のオブジェクトの上で個々にクリックすることで複数のオブジェクトを個別に選択するのは、緩慢になる可能性があり、大量の小さいオブジェクトに対しては時間がかかる可能性がある、ということである。また、矩形の選択ボックスであると（これの方が速い可能性があるが）、選択が望まれないオブジェクトが選択されてしまう可能性もある。
【００２５】
選択が望まれるオブジェクト各々の上で個別にクリックするよりも速くすることができる手法で、選択プロセスにいっそうの粒度を与える目的で、１つの実施形態によればユーザは、入力デバイス１１０を介した１つまたは複数のモーション入力１３０に応答して、選択すべき複数のオブジェクトの上に１つまたは複数のパス１２８を手早く引くことができる。ユーザに対しパスを視覚化する目的で、既述のプロセッサは、少なくとも１つのモーション入力に基づきプロセッサにより決定された少なくとも１つのパスが横切る特定のオブジェクト各々の一部分の外観を変化させるように、動作可能である。
【００２６】
マウスなどのような入力デバイスであれば、マウスタイプの入力デバイスが、マウスボタンが押されている間、表示画面を横切ってパスを配置したい領域に沿ってマウスポインタを移動させることによって、かかる動きを生じさせることができる。同様にタッチスクリーンタイプの入力デバイスであれば、ユーザは、パスを配置したい領域の上でタッチスクリーンの表面に沿って指をスライドさせることができる。ただし、モーション入力を供給するための入力デバイスは、マウスまたはタッチスクリーンに限定されるのではなく、選択したい１つまたは複数のオブジェクトの上にパスを表現するデータを供給可能な任意のタイプの入力デバイスに相当するものとすることができる。
【００２７】
図１のビューＢには、オブジェクト１１２，１１４および１１６の上のかかるパス１２８の一例が示されている。この例によればパスは、構造１１８を横切ってこの構造の表面を覆うストライプ形状を有する。ここではストライプは、図１のビューＡに示したオブジェクトの先行して示した白色の表面を覆う／置き換える黒色を有するものとして示されている。例示的な実施形態によれば、１つまたは複数の異なる色の変化、テクスチャの変化、輝度の変化、ラインパターン、またはシステムの末端ユーザが認めることのできるオブジェクト表面の外観に対する他の何らかの視覚的な変化によって、外観に変化を生じさせることができる、ということを理解されたい。
【００２８】
ただしこの既述の実施形態の場合には、パスが横切った（すなわち交差したかつ／または覆った）オブジェクトがいずれも選択されるのではなく、個々の表面領域の予め定められた割合をパスが横切ったオブジェクトのみが選択される、というようにプロセッサを構成することができる。換言すれば、プロセッサは、少なくとも１つのパスが横切ったオブジェクト各々の表面領域量に基づいて、外観が変化した複数のオブジェクトのうち１つまたは複数のオブジェクトが選択されるようにすることができる一方、外観が変化した複数のオブジェクトのうち１つまたは複数のオブジェクトを未選択状態に維持しておくことができる。
【００２９】
この例によれば、小さい方のオブジェクト１１２，１１４の可視表面の大部分がパス１２８によって覆われているのに対し、大きい方のオブジェクト１１６の可視表面のごく僅かな部分（たとえば１５％未満）だけしかパス１２８によって覆われていない。したがってこの例によれば、パスが横切った（すなわち覆った）各コンポーネントの表面領域量に基づいて、小さい方のオブジェクト１１２，１１４だけが選択され、大きい方のオブジェクト１１６は選択されない、というようにプロセッサを構成することができる。
【００３０】
例示的な実施形態によれば、オブジェクトのポジションに対し相対的にマウスポインタ１３４のポジションを決定することによって、モーション入力（たとえばポインタ１３４の座標の変化）からパスを決定することができ、それらの相対的ポジションに基づき、オブジェクトの表面の外観をどのように変化させるべきであるのかを決定することができる。換言すれば、決定されたパスを、モーション入力に基づきオブジェクトの外観変化を生じさせるべき場所であるオブジェクト上のロケーションと一致させることができる。次いで、パス（すなわち変化させるためにオブジェクト上で決定されたロケーション）に基づき、プロセッサは、それらのロケーションでオブジェクトの外観に対し相応の変化（たとえば色の変化）を生じさせることができる。
【００３１】
なお、パスの幅をユーザ設定可能なパラメータとすることができる、という点を理解されたい。また、いくつかの例によれば、ポインタ１３４のサイズを、パスを引くためにユーザが選んだ特定のパス幅に相当するように、かつ視覚的にその幅を表すように、変化させてもよい。例示的な実施形態によれば、外観変化が生じる表面領域を、モーション入力に基づきプロセッサにより決定されたパスのロケーションにマッチさせることができる、という点も理解されたい。換言すれば、プロセッサが１つのパスについてロケーション領域を決定する場所はどこであっても、プロセッサは、決定されたパスのロケーション領域において、オブジェクトの一部分に外観変化を生じさせるようにすることができる。
【００３２】
ただし例示的な実施形態において、ディスプレイデバイスを介してユーザに可視のオブジェクトの外観に対する実際の変化は、パスのために決定されたロケーション領域に近似させればよい、ということを理解されたい。色を変化させる表面領域はたとえば、決定されたパスよりも種々の量だけ小さくても大きくてもよいが、各オブジェクトに関してパスの全般的なロケーションとサイズをユーザが依然として認めることができるものである。たとえば、オブジェクト上の外観変化がどの程度認められるかの変量を、表示されるオブジェクトのサイズと対比させてディスプレイデバイスの解像度に基づき、パスとは異なるものとすることができる。この例によれば、オブジェクト１１２，１１４などのような小さいオブジェクトを、大きいオブジェクト１１６よりも少ない画素でディスプレイデバイスにより表示させることができ、したがって小さいオブジェクトは、大きいオブジェクトよりも低い精度でパスのロケーションに近似させればよい。
【００３３】
パス（および／またはパスに対応する外観変化）は濃淡なく一様ものものでなくてもよい、ということも理解されたい。たとえば図１のビューＢに示されているように、パスおよび／またはパスに対応する外観変化を、けばだったように、細く、またはスペックルが付されたようにしてもよい。さらに別の例によれば、パスおよび／またはパスに対応する外観変化が、スポット、ホール、ハッチング、ストライプ、ダッシュ、破線、または他のパターンから成るようにしてもよい。したがって、ホールのあるまたは相対的に多くのホールのあるパスよりも、オブジェクトのいっそう広い表面領域を横切るように、ホールのないまたは相対的に僅かなホールしかないパスを決定することができる。ただし別の実施形態において、かかるホールおよび／または細い／けばだった領域の存在を、パスのロケーションの視覚的な表現だけに対応させることができ、パスが横切るように決定された表面領域量を減らさないようにすることができる。
【００３４】
さらに以下の点を理解されたい。すなわち、３Ｄオブジェクトを２Ｄ表示画面上に表示すると、それらのオブジェクトの一部分が部分的に遮られる（すなわち他のオブジェクトにより部分的に覆われる／塞がれる）可能性があるにしても、１つまたは複数の他のオブジェクトによって遮られていない間にディスプレイデバイスにより表示したならば、オブジェクトは、完全に可視になり得る前向き表面領域を依然として含むことになる。したがって図１のビューＡを参照すると、大きい方のオブジェクト１１６の前向き表面領域は、小さい方のオブジェクトによって目下遮られているにしても、小さい方のオブジェクト１１２，１１４の下にある領域を含んでいる。
【００３５】
例示的な実施形態によれば、各オブジェクトについて前向き表面領域量を決定するように、プロセッサを構成することができる。さらに、少なくとも１つのパスが横切ったオブジェクト各々の特定された前向き表面領域量の割合（たとえばパーセンテージ）に基づき、外観が変化したオブジェクトの一部分が選択されるようにする一方、外観が変化したオブジェクトの少なくともいくつかは未選択状態に維持されるように、プロセッサを構成することができる。このため図１のビューＢには、大きい方のオブジェクト１１６を横切っているパス１２８の表面領域の割合が、可視表面とオブジェクト１１２，１１４の下に隠された表面とを含むオブジェクト１１６の前向き表面全体に関連して示されている。
【００３６】
同様にプロセッサは、前向き表面領域の部分量に対応する閾値量（たとえば閾値パーセンテージ）を決定するように動作可能である。かかる閾値量を、ユーザによりＧＵＩを介して設定可能な予め定められた量に対応させることができる。次いでプロセッサは、閾値量以上の少なくとも１つのパスが横切った特定された前向き表面領域量の可視の割合を有するオブジェクトが選択されるように、決定することができる。図１のビューＢに関して、大きい方のオブジェクト１１６について少なくとも１つのパスが横切った特定された前向き表面領域量の可視の割合は、外観が直接変えられたオブジェクト１１６の可視表面領域（たとえば小さい方のオブジェクト１１２，１１４を覆っていないパス１２８の一部分）を、小さい方のオブジェクト１１２，１１４によって覆われていないときに潜在的に可視であるこのオブジェクトの前向き表面領域によって除算した量に相当する。
【００３７】
いくつかの実施形態によれば、ユーザはこの閾値を、プロセッサが選択するようになるには、少なくとも１つのパスが１つのオブジェクトの前向き表面領域の５０％以上を直接横切る必要があるように、設定することができる。その一方で別のユーザは、選択のために１つのオブジェクト上の相対的に僅かな前向き表面領域だけしか覆われなくてもよいように、５０％を下回る閾値（たとえば３３％など）を設定したいと望む可能性もある。
【００３８】
モーション入力の特性がオブジェクトの外観変化にどのように影響を及ぼすのかについて、視覚的なフィードバックを提供する目的で、プロセッサの１つの例示的な実施形態を、外観変化がペインティングプロセスとして視覚的に表示されるように、構成することができ、この場合、モーション入力に応答してオブジェクトの可視の前向き表面上にペイントが堆積させられる。ペインティングプロセスの視覚形態を、たとえば（エアブラシなどのような）スプレイペインティングプロセスに近似させることができ、これによれば仮想のペイントの線条がモーション入力に基づきオブジェクト上に吹き付けられる。ただし１つの実施形態によれば、ペインティングプロセスの視覚形態を、ペイントブラシ、ペイントローラ、またはマーカに近似させることができ、これによればモーション入力に基づきオブジェクトを横切ってペイントが塗られる。
【００３９】
図１のビューＢに描かれたパス１２８は、スプレイペインティングプロセスの外観変化の一例を表しており、これはパス１２８のエッジに沿って既述のスペックルのある形態を有している。換言すれば、外観変化を、濃淡のない一律の色変化としなくてもよく、色が変化しなかった領域に囲まれて色が変化させられた領域に、小さい個々のスペックルを含むことができる。したがってパスは、ホールまたは薄い／いっそう淡い領域を含むことができ、それらの領域によって、下に位置する表面の一部分がペイントのスペックルの間に見えるようになる。
【００４０】
スプレイペインティングプロセスをモデリングする実施形態によれば、ユーザは、パスのそれぞれ異なる部分において、オブジェクトの表面領域がどの程度覆われるのかまたは覆われないのかをコントロールすることができる。たとえば、モーション入力（すなわちパスに沿ったモーションの速度）が相対的に緩慢になれば、外観が変化する可能性のある表面領域量が多くなる（たとえばペイントされるオブジェクト表面におけるホールが少なくなる、かつ／またはペイントのスプレッド幅が広くなる）。このため、モーション速度が緩慢であると面積単位あたりのスペックルが多くなるので、パスの仮想ペイントは、スペックルが多いパスではなくむしろ、いっそう高密度／濃淡なく一様かつ／または幅広くなる可能性がある。これに対しモーション入力が相対的に速くなると、外観が変化する可能性のある表面領域量がいっそう少なくなる。このため、モーション速度が速いと面積単位あたりのペイントのスペックルが少なくなるので、パスのペイントは、高密度の／濃淡なく一様なパスのペイントではなくむしろ、いっそうスペックルが多く、かつ／または（多数のホールを含む）いっそう幅の狭いものとなる可能性がある。
【００４１】
これに加え、所定のモーション入力速度のときに表面領域の外観が変化する速度を、ＧＵＩの設定コントロールを介して１つまたは複数の設定可能なプロパティによって、コントロールすることができる。たとえば、所定の領域の外観が変化する速度（時間あたりの表面領域）を変更する目的で、感度プロパティを設定することができる。したがって、高い感度（速い速度）によって、パスを所定時間中にいっそう高密度／濃淡なく一様にすることができるのに対し、いっそう低い感度（いっそう遅い速度）によって、同じ所定時間に対しパスがいっそう多くのスペックルを含むことができ、かつ／または幅をいっそう狭くすることができる。さらにたとえば、ペイント塗布の領域／サイズ（すなわち仮想ペイントブラシのサイズ、またはスプレイペイントの出力直径）を設定する目的で、スプレッドサイズプロパティを設定することもできる。したがって大きいスプレッドサイズであれば、モーション入力に応答して相対的に幅の広いストライプを生じさせることができるのに対し、相対的に小さいスプレッドサイズであれば、相対的に幅の狭いストライプを生じさせることができる。
【００４２】
スプレイペインティングプロセスを模擬的に表した１つの例示的な実施形態によれば、オブジェクトの３Ｄ表面領域がどの程度変化することになるのかを計算することで、モーション入力（たとえばマウスポイントのポジション）に応答して位置決めされ移動される仮想ペイントノズルから放出されるペイントの計算された線条の方向とロケーションとに基づき、プロセッサによってパスを決定することができる。かかる仮想ペイントノズルおよび／またはペイントの線条の仮想表現またはアニメーションを、ディスプレイデバイスによって表示させてもよいし、表示させなくてもよい。たとえば、ビューＢに示した一般的な円または他の形状（たとえば円弧、ドット、ノズルアイコン）など、仮想ペイントノズルの目下のロケーション（および生じ得る直径／幅）を表現する可動のポインタ１３４だけを示すように、プロセッサを構成してもよい。（たとえばマウスクリックなどによる）ペインティングスタートコマンドを受け取ると、ペイントの線条がどこで３Ｄワークスペース内のオブジェクトの表面に衝突することになるのか、についてパスをただちに決定し、次いで、オブジェクト上の対応するペイントされた表面を示すために、決定されたパスに対応する表面の外観をリアルタイムで変化させるように、プロセッサを構成することができる。
【００４３】
仮想ペイントがモデリングされる既述の例によれば、パスのロケーションを決定する目的で、仮想ペイントにより覆われるオブジェクトの３Ｄ輪郭を追従する形状を伴って、仮想ペイントを３Ｄで延在させることができる。次いで、オブジェクトを選択するか否かの決定にあたり、ペイントパスによりコーティングされるオブジェクトの前向き３Ｄ表面領域の可視の割合が評価されることになる。
【００４４】
ただし、他の実施形態において他の方法によりパスを決定することができ、異なる外観をもたせることができる、ということを理解されたい。たとえば、ペイント線条のスプレイが３Ｄワークスペース内のオブジェクト表面の外観をどのように変化させるのかをプロセッサがモデリングするのではなく、その代わりにプロセッサは、ディスプレイデバイスの表面を横切る２Ｄパスを生成するペイントブラシまたはマーカをモデリングすることができ、この２Ｄパスはオブジェクトの３Ｄ表面を横切って通過する。この例によれば、２Ｄパスは平坦なオーバレイまたはレイヤに相当する。次いで、オブジェクトを選択するか否かの決定にあたり、（表示画面を見るユーザの視点から見て）２Ｄパスの真下にあるオブジェクトの前向き３Ｄ表面領域の割合が評価されることになる。
【００４５】
この例によれば、外観に変化をもたせるために、決定された２Ｄパスの真下にあるオブジェクトの３Ｄ表面を変化させるように、プロセッサを構成することができる。よって、ここで説明した仮想ペインティングの実施形態によれば、オブジェクトまたはワークスペースを回転させると、外観が変化した表面を異なる角度から見ることができる。構造の本来の配向からは選択するためにはよく見えなかった付加的なオブジェクトを選択するために、回転後、構造上に付加的なパスを引くことができる。回転に加え、１つまたは複数の引かれたパスを介して選択可能なオブジェクトを、所定のポジションおよび望ましいサイズで配置する目的で、ユーザはＧＵＩにより、ワークスペースに対してパン、ズームインおよびズームアウトを実施することができる。
【００４６】
決定されたパスが横切る１つのオブジェクトの特定の表面上に表示される外観変化の個々のタイプを、オブジェクトの前向き表面領域の外観がどのような可視の割合で変化したのか、に依存して変えることができる。例示的な実施形態によれば、かかる変化がペイント色において発生したときに、設定された表面領域割合閾値をトリガすることができる。したがって、モーション入力を用いて、１つのオブジェクトを覆うパーセンテージが増えるように１つまたは複数のパスを引いたときに、１つの特定のオブジェクトにおける仮想ペイントのカラーを（たとえば青から赤などに）変化させることができ、これによって、ペイントにより覆われた前向き表面領域の割合が、予め定められた選択閾値を超え、それによってそのオブジェクトが選択されたオブジェクトとしてこの時点でプロセッサに判定される、ということがユーザに指示される。
【００４７】
しかしながら別の選択肢として、またはこれに加えて、外観が変化した前向き表面領域の可視の割合に基づき、１つのオブジェクトが選択されたものと決定されると、必要とされる閾値に到達してオブジェクトが選択されることになる前にパスが引かれているときに発生した外観変化に加えて、またはその代わりに、オブジェクトに対し外観変化を生じさせるように、プロセッサを構成することができる。たとえば、図１のビューＢおよびＣに描かれているように、パス１２８によって、小さい方のオブジェクト１１２，１１４の輪郭が（ビューＡに比べて）相対的に太くなり、これによって、パス１２８が引かれたことに応答してそれらのオブジェクトが選択されるとプロセッサが判定した、ということが表される。ここで述べておくと、大きい方のオブジェクト１１６の輪郭は、ビューＡ，Ｂ，Ｃのすべてにおいて相対的に細いままである理由は、パス１２８が引かれた後、このオブジェクトが選択されたとプロセッサが判定しなかったからである。
【００４８】
既述の例では、外観変化を、仮想のペインティングプロセスまたはマーキングプロセスのシミュレートであるとして説明してきた。ただし別の選択肢として、ユーザによるモーション入力に対応して決定されたパスに基づき、他の形態で外観変化を実施してもよい。たとえば、アプリケーションソフトウェアコンポーネントによって、表面のバーニングをシミュレート（少なくとも１つのパスが横切るロケーションにおいて、たとえばブロートーチ、レーザ、電気アーク、または他のバーニングプロセスの作用をシミュレート）する外観変化を生じさせることができる。
【００４９】
別の例として、アプリケーションソフトウェアコンポーネントによって、少なくとも１つのパスが横切る表面上に、タイル、布、カーペット、壁紙、または他の材料を付加するなど、表面への材料の付加をシミュレートする外観変化を生じさせることができる。さらに別の実施形態によれば、アプリケーションソフトウェアによって、少なくとも１つのパスが横切る表面の一部分にマッピングされる、ユーザが選択可能なイメージまたは他のグラフィック（たとえばイメージファイルのスキニングまたはテクスチャリング）に基づき、外観変化を生じさせることができる。
【００５０】
さらに別の例として、外観変化を、オブジェクトに対する仮想的な構造変化に相当するものとすることができる。たとえばかかる構造変化には、中実の不透明な表面においてパスが横切った部分を透明または半透明な表面と置き換えること、あるいは中実の表面においてパスが横切った部分を穿孔のある表面、ワイヤーフレーム構造またはメッシュ構造と置き換えること、を含めることができる。
【００５１】
なお、既述の外観変化を、任意の外観変化（または複数の外観変化の組み合わせ）に相当するものとすることができる、ということを理解されたい。よって、少なくとも１つのパスがオブジェクトを横切る場所での外観変化は、ここで説明した何らかの特定の例によって限定されるものではない。
【００５２】
さらに、いくつかの実施形態において、アプリケーションソフトウェアコンポーネントは、オブジェクト表面を横切るポインタを見せる以外には外観変化を最初は生じさせないようにしてもよい、ということを理解されたい。その代わりにアプリケーションソフトウェアコンポーネントは、少なくとも１つのパスが横切る表面領域の軌跡を、閾値に達してオブジェクトが選択されることになるまで、メモリに保持することができる。次いで、選択に応答してアプリケーションソフトウェアコンポーネントは、どのオブジェクトが選択されることになったのかを視覚的に目立たせる外観変化を生じさせることができる。
【００５３】
この例によれば、アプリケーションソフトウェアコンポーネントは、パスが横切ったオブジェクトの一部分に外観変化を表示させる機能を、ユーザがオン／オフ可能にすることができる。外観変化の表示のオフは、いくつかの環境（たとえばリモートデスクトップなど）において、ＧＵＩが更新されてディスプレイデバイスにより出力されるフレームレートを向上させるために、望まれる場合がある。
【００５４】
同様にさらに別の実施形態において、アプリケーションソフトウェアコンポーネントは、少なくとも１つのパス中を移動して、少なくとも１つのパスが横切るオブジェクト表面部分を一時的に照明するフラッシュライトをシミュレートするなど、一時的な外観変化を生じさせるだけでもよい。同様にアプリケーションソフトウェアコンポーネントは、熱源（たとえばブロートーチ、レーザなど）で金属を一時的に加熱し、その結果として赤熱した金属に近似した表面の色変化が生じ、それが１秒または数秒後には元の色に戻る様子をシミュレートすることができる。外観変化を生じさせない例の場合のように、アプリケーションソフトウェアコンポーネントは、少なくとも１つのパスが横切る表面領域の軌跡を、閾値に達してオブジェクトが選択されることになるまで（たとえそれらが元の発色状態に戻った後でも）、メモリに保持することができる。
【００５５】
例示的な実施形態によれば、アプリケーションソフトウェアコンポーネントのＧＵＩは、選択された複数のオブジェクトから成るグループに対して複数の操作を実行可能である。この場合、選択されたそれらのオブジェクトは、少なくとも１つのパスが横切っていることに基づき、外観が変化した可視の前向き表面の量（たとえば割合）をベースとして選択されたものである。かかる操作には、少なくとも１つの入力デバイス１１０を介した少なくとも１つの操作入力１３２に応答して、選択されたオブジェクトを消去すること、選択されたオブジェクトを隠すこと、選択されたオブジェクトをコピーすること、および選択されたオブジェクトをワークスペースに関して移動させること、を含めることができる。同様に理解されたいのは、かかる操作はオブジェクトに適用可能な任意のタイプの操作を含むことができ、たとえば選択されたオブジェクトに関連づけられたプロパティ（たとえば材料の体積、質量または種類）および／またはメタデータの表示、決定および／または変更を含むことができる、という点である。
【００５６】
たとえば図１のビューＣには、オブジェクトの移動に対応する操作入力が入力デバイス１１０の操作より供給された例が描かれている。かかる操作入力を、選択されたオブジェクト１１２，１１４を１つのグループとして、ビューＡおよびＢに示されたポジションからビューＣに示されたポジションまで、ワークスペース１２０および大きい方のオブジェクト１１６に対して、ドラッグするようにマウスを操作することに相当するものとすることができる。
【００５７】
本明細書で用いられるように、選択された複数のオブジェクトから成るグループに対して実行される操作とは、ある特定の操作が実行されるようにユーザが指示し、その特定の操作によってグループ内のオブジェクトすべてに影響が及ぼされる、ということに相当する。１つ以上の操作を実行することができるけれども、それらの操作各々がグループ内のオブジェクトすべてに影響を及ぼす、ということを理解されたい。
【００５８】
これらの例示的な実施形態をさらに詳しく説明するために、図２〜図９には、ＣＡＤソフトウェアのＧＵＩからのディスプレイ出力例が示されており、これによればオブジェクトを横切って１つまたは複数のパスを引くことにより選択された複数のオブジェクトが描画される。たとえば図２には、３つの大きい方の部品２０４，２０６，２０８と、列状に配置された複数の矩形ブロック２１０から成る集合と、円弧状に配置された立方体ブロック２１２とを含む１つの構造２０２の例示的なディスプレイ出力２００が描かれている。
【００５９】
この例によれば、大きい方の部品２０４，２０６，２０８は、それらをピッキングすることによって（たとえば選択ツールを用いて個々にマウスクリックするなどして）、簡単に選択することができる。ユーザが矩形ブロック２１０を選択したいとすれば、そのときユーザは個々のマウスクリックを介して多数の小さい部品を選択しなければならなくなってしまう。したがって図２には、パスが引かれたことによる既述の選択を、各オブジェクト上で個々にクリックするよりも効率的にすることのできる構造が示されている。このように引かれるパスを、スプレイペイントジェスチャに相当するものとすることができる。かかるスプレイペイントジェスチャを、入力デバイスを介した入力により選択可能なツールバーまたはメニューオプションにおけるスプレイペインティングジェスチャを含むＧＵＩを介して、ユーザが使用できるようにすることができる。
【００６０】
図３には、例示的なディスプレイ出力３００が示されている。これによれば、立方体ブロック２１２を選択する目的で、スプレイペイントジェスチャツールを用いて、構造２０２の一部分の上に少なくとも１つのパス３０２が引かれている。ここでは少なくとも１つのパス３０２を、立方体ブロック２１２の頂部上で円弧状に行ったり来たりさせてスプレイペイントされた複数のストライプに相当するものとすることができる。
【００６１】
図３に示されているように、かかるスプレイペイントジェスチャは、小さい立方体ブロック２１２の間で大きい方の部品２０６のごく一部も覆う可能性がある。ただしプロセッサは、大きい方の部品２０６は選択されないと判定するように動作する。それというのもこの部品は、その上に少量のペイントしか有していない（すなわち部品２０６の前向き表面は、引かれたパス３０２によってもごく少ない割合でしか外観を変化させていない）からである。したがって既述のペイントジェスチャツールによってユーザは、矩形ブロック２１０の周囲をペイントすることができ、大きい方の部品２０６上に少量のペイントがこぼれてもよく、その際に大きい方の部品２０６または矩形ブロック２１０が選択されてしまうことがない。
【００６２】
ユーザが立方体ブロック２１２とそれらの下にある大きい方の部品２０６を選択したいならば、ユーザは、図４の例示的なディスプレイ出力４００に示されているように、既述のスプレイペイントジェスチャを使用することができる。この場合、ユーザは、閾値（オブジェクトの前向き領域の５０％など）を超えて、大きい方の部品２０６が選択されるようにする目的で、大きい方の部品２０６の側面および頂面のいっそう多くの部分を横切って、付加的なパス４０２（たとえばスプレイペイントされたストライプ）を引いている。
【００６３】
例示的な実施形態によれば、スプレイペイントジェスチャツールは、時間に基づいても同様に選択を下すこともできる。たとえば図５には、構造２０２のさらに別の例示的なディスプレイ出力５００が示されており、これによればユーザは、大きい方の部品２０４の上に単一のパス５０２を引いている。この例の場合、パスによりごく僅かな表面領域だけしか覆われなかったにもかかわらず、予め定められた時間にわたって他のオブジェクト上に他のいかなるパスも存在しなかったことに基づき、大きい方の部品２０４を選択するように、少なくとも１つのプロセッサを構成することができる。
【００６４】
図６には、さらに別の例示的なディスプレイ出力６００が示されており、これによれば引かれたパスによって、望ましくないオブジェクトが偶然に選択されてしまうことなくオブジェクトを選択するための、いっそう高速でいっそう手間のかからないプロセスを提供することができる。この例によれば、図２〜図５に示した既述の構造２０２の前方に、フェンス６０２が配置されている。さらにここではフェンスの一部分に、複数の小円柱６０４が含まれている。
【００６５】
図７のディスプレイ出力７００に示されているように、フェンス６０２と小円柱６０４とを除去する消去操作または隠蔽操作を実行する目的で、ユーザは、フェンス６０２を横切りかつ小円柱６０４を横切って、複数の素速いパス７０２を引き（たとえば仮想的にペイントし）、それによってフェンスと小円柱だけが選択されるようにすることができる。選択されたこのオブジェクトグループを消去する操作をするならば、図１に示した構造２０２だけが残されることになる。別の選択肢として、選択されたオブジェクトを抜き出して切り離す操作をするならば（たとえば選択されたオブジェクトに基づく逆の選択、これによって選択されたオブジェクト以外すべてのオブジェクトが除去される）、図８の例示的なディスプレイ出力８００に示されている選択されたオブジェクト６０２，６０４だけが残されることになる。なお、アプリケーションソフトウェアによって、選択されたオブジェクトに対し実行される反転選択操作に基づき、目下選択されていないオブジェクトが選択状態となり、以前に選択されていたオブジェクトが未選択状態となるようにすることができる、という点も理解されたい。
【００６６】
例示的な実施形態によれば、既述の選択モードによって、モーション入力がポインタを動かした場所にパスを引くことができる（それによってオブジェクト上にペイントが配置される）。ただし別の実施形態によれば、パスが引かれる場所を所定のロケーション内のオブジェクトに制限することができる。たとえば３Ｄワークスペースは、互いに直交する第１、第２および第３の軸を有することができる。（ワークスペースを表示する）２Ｄ表示画面の平面を、第１および第２の軸にわたって広げることができ、さらに第３の軸に沿って後方に向かって延びる奥行きがあるように視覚的に見えるよう、ＧＵＩはこのワークスペース内にオブジェクトをレンダリングすることができる。表示画面を横切るポインタの動きに応答して、既述のパスをワークスペースの第１および第２の軸にわたって延在させることができる。ただしパスは、オブジェクトがワークスペースの第３の軸において決められた深度レベル内にある場所までしか、延在することができない。
【００６７】
かかる深度レベルを、（たとえば入力デバイスにおけるボタンを押すことで）パスが最初にどこでスタートしたかに基づいて、決定することができる。たとえば図９には、既述の構造２０２とフェンス６０２とを示す別の例示的なディスプレイ出力が描かれている。この例によれば、ユーザは、小円柱９０２のロケーションなどのようなポジション上で、マウス（または他の入力デバイス）を介して表示画面においてクリックすることによって、モーション入力９０４を発生開始することができ、垂直柱９０６に向かって手摺りに沿って移動させることができる。このモーション入力に応答して、ワークスペースの第３の軸に沿った小円柱９０２のロケーションに基づき、この第３の軸に沿った（たとえばワークスペースの奥行きに沿った）深度範囲を決定するように、少なくとも１つのプロセッサを構成することができる。決定されたかかる深度範囲をたとえば、水平レール９０８の左側の部分と垂直柱９０６の部分といったように、第３の軸に対して小円柱９０２のロケーションの直前および直後のオブジェクトのポジションに対応させることができる。
【００６８】
したがって図９に示されているように、モーション入力に従ってパス９１０が引かれることになり、これによって小円柱９０２、水平レール９０８の左側および垂直柱９０６の一部分がペイントされる。しかしながら、ユーザがモーション入力９０４のためのマウスポインタをさらに下方の部品２０６上で動かし続けたならば、プロセッサはその部品２０６上にパス９１０を引くのを見合わせるように動作する。なぜならば、モーション入力と交差する部品２０６の部分を、決定された深度範囲外とすることができるからである。
【００６９】
同様にユーザは、マウスまたは他の入力デバイスを操作して、垂直柱９０６に沿って上向きにさらに別のモーション入力９１２を生じさせることができる。よって、垂直柱９０６の上部がペイントされるように、対応するパス９１４を引くことができる。しかしながら、モーション入力が大きい方の部品２０４および２０８の上を上向きに続けられると、プロセッサは、それらの部品２０４，２０８上にパス９１４を引くのを見合わせるように動作する。なぜならば、それらの部品は、垂直柱９０６上のパスの当初のスタートに基づき決定された深度範囲外になってしまうからである。
【００７０】
例示的な実施形態によれば、ＧＵＩは複数の異なる選択可能な選択モードを有することができる。それらの選択モードには、既述の表面選択モードが含まれ、これによればプロセッサは、少なくとも１つのパスが横切った前向き表面領域の可視の割合に基づき、オブジェクトが選択されるタイミングを決定するように、構成されている。かかる複数の異なる選択モードには、矩形選択ボックスを介した、かつ／または選択が望まれるオブジェクト各々の上で個々にクリックすることによる、既述の選択も含めることができる。
【００７１】
これらの選択モードに加え、ＧＵＩはさらに、選択可能な透過選択モードを含むことができる。ＧＵＩが透過選択モードにある場合、オブジェクトの上にパスを引くのではなく、その代わりに、少なくとも１つの入力デバイスの操作による少なくとも１つの第２のモーション入力に応答して、少なくとも１つの第２のモーション入力に対応する少なくとも１つの第２のパスが横切り、かつ予め定められた透過深度範囲内のポジションを有するオブジェクトが選択されるように、プロセッサを構成することができる。その結果、他のオブジェクトによって部分的にかつ／または完全に遮られている、および遮られていないオブジェクトを、それらのオブジェクトが予め定められた深度範囲内にあり、かつそれらのオブジェクトをパスが直接的または間接的に横切ったときに、選択することができる。さらに、第２のパスが横切ったワークスペース内のすべてのオブジェクトが選択されるよう、深度範囲を（無制限も含め）十分に広いものとしてもよい、という点を理解されたい。
【００７２】
たとえば図９に示されているように、ＧＵＩが透過選択モードにあったときに、モーション入力９１２を実行したならば、垂直柱９０６や大きい方の部品２０４，２０８など、モーション入力のパスが横切った可視のオブジェクトすべてを選択することができる。これら大きい方の部品に加えて、可視でないが垂直柱９０６の背後に隠されておりパスが横切った小さい方のブロックも、同様に選択することができる。
【００７３】
ただしここで理解されたいのは、ユーザ設定可能な透過深度レベルまたは透過深度範囲を介して、この深度レベル外または深度範囲外にあるオブジェクトは、それらのオブジェクトをパスが横切ったとしても選択される可能性がないように、透過モードの深度を制限することができる、という点である。さらに、ここで説明した透過選択モードにおいて、選択された可視のオブジェクトを、これらの選択されたオブジェクトが未選択オブジェクトに対して視覚的に目立つように、ディスプレイデバイスを介して視覚的に強調することができる。
【００７４】
このことに加えて例示的な実施形態によれば、選択モードを、オブジェクトが選択されるべきであると判定されたときに、選択されたそのオブジェクトに対しプロセッサにより自動的に実行される１つまたは複数の異なる操作と関連づけることができる。たとえば、既述の表面選択モードを、ＧＵＩを介して以下のように設定することができる。すなわち、オブジェクトが選択されるとただちに、そのオブジェクトが消去され、隠され、非可視状態にされ、かつ／または非強調状態（たとえば部分的に透明）にされるようにすることができ、選択されたオブジェクトに遮られていたオブジェクトが、遮っていたそのオブジェクトが選択されると即座に可視状態になるようにすることができる。この手法によればユーザは、ペインティング操作を実行して、オブジェクトに仮想的にペイントし、それらのオブジェクトを選択状態にして、下方のポジションにあるオブジェクトが非隠蔽状態になるように構造の層を剥ぎ取ることができ、さらにそれら下方のポジションにあるオブジェクトを仮想的にペイントして、同様に構造の付加的な層を剥ぎ取ることができる。
【００７５】
オブジェクトが非強調状態（たとえば部分的に透明）にされているときに、かかるオブジェクトを同様にペインティング操作を介して再び不透明にすることができる。たとえば、部分的に透明なオブジェクトを選択する目的で、既述のパスを引くことでそれらのオブジェクトをペイントできるように、プロセッサを構成することができる。非強調状態にされているオブジェクトを選択することによって、それらのオブジェクトを即座にかつ自動的に再び不透明に（たとえばもはや非強調状態ではないように）することができる。
【００７６】
なお、ＧＵＩのそれぞれ異なる操作モードで実行される既述の機能を同じモードで実行することができる、という点も理解されたい。たとえば、ＧＵＩを以下のように構成することができる。すなわち、オブジェクト選択の目的で入力がどのように解釈されるのかに作用を及ぼす操作モードを固有に変更する必要なく、１つまたは複数の入力デバイスを介して種々のタイプの入力または入力ジェスチャを用いて、任意の時点で既述の選択のうちの１つまたは複数を実行するように、構成することができる。
【００７７】
例示的な実施形態によれば、既述のアプリケーションソフトウェアコンポーネントは、ある構造を変更するために、その構造と関連づけられた複数のオブジェクトから成る選択された集合に対して実行された操作に応答することができる。変更された構造に対応するＣＡＤデータおよび／または製品データを、ＣＡＤファイルおよび／またはＰＬＭデータベースに記憶することができる。次いで、既述のアプリケーションソフトウェアコンポーネントおよび／または他のソフトウェアアプリケーションは、ＣＡＤデータおよび／または製品データに記憶された変更された構造に基づき、様々な機能を実行することができる。
【００７８】
かかる機能には、機械製図、および／また構造の構築に使用可能な特定の構成部材（およびそれらの品質）を指定する部品表（ＢＯＭ）を、（ＣＡＤデータおよび／または製品データに基づき）生成すること、を含めることができる。かかる機械製図および／またはＢＯＭを、プリンタによって紙に印刷することができ、Microsoft ExcelファイルまたはAcrobat PDFファイルなどのような電子形態で生成することができ、ディスプレイデバイスを介して表示することができ、電子メールで通信することができ、データストアに格納することができ、あるいはそうでなければ、設計された構造に対応する製品を構築するため個人および／または機械が使用可能な形態で、生成することができる。さらに、物理的な構造（たとえば部品）を製造するために、３Ｄプリンタなどのような機械がＣＡＤデータに対応するデータを使用可能である、ということを理解されたい。
【００７９】
次に図１０を参照しながら、種々の例示的な方法について呈示し説明する。これらの方法を、１つのシーケンス内で実施される一連のアクションとして説明するけれども、これらの方法はこのシーケンスの順序によって限定されるものではない、という点を理解されたい。たとえばいくつかのアクションを、ここで説明するのとは異なる順序で生じさせてもよい。これに加え、あるアクションを他のアクションと同時に生じさせてもよい。しかもいくつかの事例においては、ここで説明する方法を実現するために、すべてのアクションが必要とされるわけでもない。
【００８０】
ここで特に述べておきたいのは、本開示には、完全に機能的なシステムおよび／または一連のアクションに関連した説明が含まれているけれども、当業者であれば理解できるように、本開示におけるメカニズムおよび／または説明するアクションの少なくとも一部分は、機械で使用可能な、コンピュータで使用可能な、またはコンピュータで読み取り可能な、非一時的な媒体内に含まれるコンピュータにより実行可能な命令として、任意の種類の形態で配布可能であり、さらに本開示は、そのような配布物を実際に実行するために特定のタイプの命令または信号担体または記憶媒体が使用されようとも、等しく適用される。機械で使用可能／読み取り可能またはコンピュータで使用可能／読み取り可能な非一時的な媒体の例を以下に挙げておく：ＲＯＭ、ＥＰＲＯＭ、磁気テープ、フロッピーディスク、ハードディスクドライブ、ＳＳＤ、フラッシュメモリ、ＣＤ、ＤＶＤおよびブルーレイディスク。コンピュータで実行可能な命令として、ルーチン、サブルーチン、プログラム、アプリケーション、モジュール、ライブラリ、実行スレッド、および／またはこれらと同等のもの、を挙げることができる。さらに、方法のアクションの結果を、コンピュータ読み取り可能媒体に記憶することができ、ディスプレイデバイスに表示することができ、および／または同等のことを実施することができる。
【００８１】
図１０を参照すると、オブジェクトの選択を容易にする方法論１０００が示されている。この方法を、ステップ１００２から開始させることができ、この方法は、少なくとも１つのプロセッサのオペレーションによって実施される複数のアクションを含むことができる。これらのアクションは、ある１つの構造における個別に選択可能な複数の三次元オブジェクトをディスプレイデバイスによって表示させるアクション、を含むことができる。さらにこの方法論は、少なくとも１つの入力デバイスの操作を介して受け取った少なくとも１つのモーション入力に基づき、複数のオブジェクトを横切った少なくとも１つのパスを特定するアクション１００６、を含むこともできる。これに加えこの方法論は、少なくとも１つのパスが横切ったオブジェクト各々の表面領域量に基づき、複数のオブジェクトのうち少なくとも２つのオブジェクトが１つのグループとして選択されるようにする一方、複数のオブジェクトのうち少なくとも１つのオブジェクトを未選択状態に維持するアクション１００８を含むことができる。同様にこの方法論は、少なくとも１つの入力デバイスを介して受け取った少なくとも１つの操作入力に応答して、オブジェクトが選択されているか否かに基づき、選択された少なくとも２つのオブジェクトから成るグループに対しては、複数の操作のうち少なくとも１つの操作が実行されるようにし、未選択状態に維持された少なくとも１つのオブジェクトに対してはその操作が実行されないようにするアクション１０１０、を含むことができる。ステップ１０１２において、この方法論を終了させることができる。
【００８２】
さらにこの方法１０００は、システム１００に関してこれまで説明してきた他のアクションおよび特徴を含むことができる、ということを理解されたい。たとえばこの方法論は、少なくとも１つのパスが横切った特定のオブジェクト各々の一部分に対して外観を変化させるアクション、を含むことができる。この例によれば、少なくとも１つのパスが横切ったオブジェクト各々の表面領域量に基づき、外観が変化した複数のオブジェクトのうち少なくとも２つのオブジェクトを、グループとして選択することができる一方、外観が変化した複数のオブジェクトのうち少なくとも１つのオブジェクトを、未選択状態に維持することができる。
【００８３】
これに加えこの方法論は、ディスプレイデバイスを介してグラフィカルユーザインタフェース（ＧＵＩ）を生成すること、を含むことができる。このＧＵＩは、ワークスペース内にオブジェクトを表示し、さらにこのＧＵＩは、少なくとも１つの入力デバイスの操作を介して受け取ったさらに別の入力に応答して、選択された複数のオブジェクトから成るグループに対して複数の操作を実行することができる。かかる操作は、選択されたオブジェクトを消去すること、選択されたオブジェクトを隠すこと、選択されたオブジェクトをコピーすること、および選択されたオブジェクトを移動させること、および選択されたオブジェクトに関する情報を表示すること、を含むことができる。
【００８４】
既述のように、ディスプレイデバイスにより表示されるオブジェクト各々は、前向き表面領域を含み、１つまたは複数の他のオブジェクトによって遮られていない間、ディスプレイデバイスにより表示されると、この領域は完全に可視状態になり得る。１つの例示的な実施形態によれば、この方法論は、オブジェクト各々の前向き表面領域量を特定すること、を含むことができる。さらにステップ１０１０は、少なくとも１つのパスが横切ったオブジェクト各々の特定された前向き表面領域量の可視の割合に基づき、外観が変化した少なくとも２つのオブジェクトが選択されるようにする一方、外観が変化した少なくとも１つのオブジェクトは未選択状態に維持されるようにすること、を含むことができる。
【００８５】
これに加えこの方法論は、前向き表面領域の部分量に相当する閾値量を決定すること、を含むことができる。外観が変化した少なくとも２つのオブジェクトが選択されるようにするステップ１０１０は、この閾値量以上である少なくとも１つのパスが横切ったオブジェクト各々の特定された前向き表面領域の可視の割合に基づき、実行することができる。
【００８６】
同様に例示的な実施形態によれば、少なくとも１つのパスを決定するアクション１００６を、少なくとも１つのモーション入力に応答して、オブジェクトの可視表面に吹き付けられる仮想ペイントが位置することになる場所の特定に基づき、実行することができる。オブジェクトの一部分の外観変化を、決定されたパスに基づきオブジェクト上に吹き付けられたペイントの仮想表現に対応させることができる。
【００８７】
例示的な実施形態によれば、互いに直交する第１、第２および第３の軸を有する三次元ワークスペース内にオブジェクトを表示するようにＧＵＩが構成されている、ということを理解されたい。この例によれば、表示画面平面に対応させることができるワークスペースの第１および第２の軸において、パスが延在する。第３の軸を、表示画面によりオブジェクトが描画される三次元ワークスペースの仮想深度に相当するものとすることができる。例示的な方法論は、ワークスペースの第３の軸に沿って深度範囲を決定すること、を含むことができる。これに加え、オブジェクトの外観を変化させるアクション１００８を、この深度範囲内のポジションでワークスペースに表示されるオブジェクトに基づくものとすることができる。同様に、この深度範囲外にあるオブジェクトポジションに基づき、少なくとも１つのオブジェクトの外観を変化させないようにすることもできる。
【００８８】
既述のように、パスは、第１のオブジェクトのところに始点を含むことができる。深度範囲を決定するアクション１００６は、パスが横切った第１のオブジェクトの可視表面領域の深度に基づき深度範囲を決定すること、を含むことができる。したがって、パスの描画をどこで開始するのかをユーザが選択することによって、特定のパスに対し特定の深度範囲を設定することができる。ユーザが開始した新たなパス各々によって、その新たなパスが最初に横切るオブジェクトの可視表面の最初の深度に基づき、それぞれ異なる深度範囲が確定されることになり得る、ということも理解されたい。
【００８９】
例示的な実施形態によれば、ＧＵＩは目下の選択モードを、表面選択モードと透過選択モードとの間で変更可能にすることができる。少なくとも１つのパスが横切った前向き表面領域の可視の割合に基づき、複数のオブジェクトのうち少なくとも２つのオブジェクトが選択されるようにするアクション１０１０を、表面選択モードにあるＧＵＩに基づき実行することができる。例示的な方法論は、目下の選択モードを透過選択モードに変更するアクション、を含むことができる。透過選択モードになったならば、この方法論は、少なくとも１つの入力デバイスの操作による少なくとも１つの第２のモーション入力に応答して、少なくとも１つの第２のモーション入力に対応する少なくとも１つの第２のパスが横切り、かつ予め定められた透過深度範囲内のポジションを有する、他のオブジェクトによって完全に遮られたオブジェクトが選択されるようにするアクション、を含むことができる。
【００９０】
例示的な実施形態によれば、選択状態となったオブジェクトを視覚的に強調することができる。よって、この例示的な方法論は、少なくとも１つのパスが横切った前向き表面領域の可視の割合に基づき、少なくとも２つのオブジェクトの選択が決定されたことに応答して、少なくとも２つのオブジェクトの選択が決定される前の外観変化に加えて、またはその代わりに、少なくとも２つのオブジェクトに対し外観をさらに変化させるアクション、を有することができる。
【００９１】
既述のように、選択されたオブジェクトグループに対して実行される操作に基づき構造に加えられた変更を、ＣＡＤデータおよび／または製品データとしてＣＡＤファイルおよび／またはＰＬＭデータストアに保持することができる。次いで、それらのＣＡＤデータまたは製品データに基づいて、機械製図および／またはＢＯＭの生成と関連づけられたアクションを実行することができる。さらにこの方法は、機械製図および／またはＢＯＭに基づき、個人が手動で構造を構築する、ということを含むことができる。さらにかかるアクションは、ＣＡＤデータに基づき構造を構築する（３Ｄプリンタなどのような）機械を含むことができる。
【００９２】
既述のように、（ある１つの構造を手動で構築するアクションなどのような既述の何らかのアクション以外の）これらの方法に関連づけられたアクションを、１つまたは複数のプロセッサによって実行することができる。かかる１つまたは複数のプロセッサを、１つまたは複数のデータ処理システムに含めることができ、このデータ処理システムはたとえば、上述のアクションが１つまたは複数のプロセッサによって実施されるように動作するソフトウェアコンポーネントを実行する。１つの例示的な実施形態によれば、かかるソフトウェアコンポーネントを、Java, JavaScript, Python, C, C#, C++などのようなソフトウェア環境／言語／フレームワークにおいて、またはここで説明したアクションおよび特徴を実行するように構成されたコンポーネントおよびグラフィカルユーザインタフェースを生成可能な他の任意のソフトウェアツールにおいて、記述することができる。
【００９３】
図１１には、データ処理システム１１００（コンピュータシステムとも称する）のブロック図が示されている。このシステムに、たとえば本明細書で説明したプロセスを実行するためにソフトウェアまたは他の何らかの手段によって動作が設定されたＰＬＭ、ＣＡＤおよび／または他のシステムの一部分として、１つの実施形態を実装することができる。この図に描かれたデータ処理システムは、少なくとも１つのプロセッサ１１０２（たとえばＣＰＵ）を含んでおり、これを１つまたは複数のブリッジ／コントローラ／バス１１０４（たとえばノースブリッジ、サウスブリッジ）と接続することができる。バス１１０４の１つとして、PCI Expressバスなどのような１つまたは複数のＩ／Ｏバスを挙げることができる。図示の例によれば、様々なバスに接続されるものとして、メインメモリ１１０６（ＲＡＭ）およびグラフィックスコントローラ１１０８を挙げることができる。グラフィックスコントローラ１１０８を、１つまたは複数のディスプレイデバイス１１１０と接続することができる。同様にここで述べておきたいのは、いくつかの実施形態によれば、１つまたは複数のコントローラ（たとえばグラフィックス、サウスブリッジ）を（同じチップまたはダイにおける）ＣＰＵと統合できる、という点である。ＣＰＵアーキテクチャの例には、ＩＡ−３２、ｘ８６−６４およびＡＲＭプロセッサアーキテクチャが含まれる。
【００９４】
１つまたは複数のバスに接続される他の周辺機器として、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、セルラネットワークおよび／または他の有線または無線のネットワーク１１１４と接続するように動作する通信コントローラ１１１２（イーサネットコントローラ、ＷｉＦｉコントローラ、セルラコントローラ）、または通信機器を挙げることができる。
【００９５】
種々のバスに接続されるさらに別のコンポーネントとして、１つまたは複数のＩ／Ｏコントローラ１１１６、たとえばＵＳＢコントローラ、ブルートゥースコントローラ、および／または（スピーカおよび／またはマイクロフォンと接続される）専用オーディオコントローラなどを挙げることができる。同様に、様々な周辺機器を（種々のＵＳＢポートを介して）ＵＳＢコントローラに接続することができる、という点も理解されたい。それらの周辺機器として、入力デバイス１１１８（たとえばキーボード、マウス、タッチスクリーン、トラックボール、ゲームパッド、カメラ、マイクロフォン、スキャナ、モーションセンシングデバイス）、出力デバイス１１２０（たとえばプリンタ、スピーカ）、あるいは入力を供給するまたはデータ処理システムからの出力を受信するように動作する他の任意のタイプのデバイスが挙げられる。さらに、入力デバイスまたは出力デバイスと呼ばれる多くのデバイスが、入力を供給することができ、かつデータ処理システムとの通信の出力を受信することができる、という点を理解されたい。さらに理解されたいのは、Ｉ／Ｏコントローラ１１１６に接続される他の周辺ハードウェア１１２２として、データ処理システムと通信するように構成された任意のタイプのデバイス、機械またはコンポーネントを挙げることができる、という点である。
【００９６】
種々のバスに接続される付加的なコンポーネントとして、１つまたは複数のストレージコントローラ１１２４（たとえばＳＡＴＡ）を挙げることができる。ストレージコントローラをストレージデバイス１１２６と接続することができ、たとえば１つまたは複数のストレージドライブ、および／または機械で使用可能または機械で読み取り可能な任意の適切な非一時的ストレージ媒体とすることができる任意の対応するリムーバル媒体、などと接続することができる。例として挙げられるのは、不揮発性デバイス、揮発性デバイス、リードオンリーデバイス、書き込み可能デバイス、ＲＯＭ、ＥＰＲＯＭ、磁気テープストレージ、フロッピーディスクドライブ、ハードディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、フラッシュメモリ、光ディスクドライブ（ＣＤ、ＤＶＤ、ブルーレイ）、および他の公知の光学的、電気的、または磁気的なストレージデバイスドライブおよび／またはコンピュータ媒体である。いくつかの例によれば、ＳＳＤなどのようなストレージデバイスを、PCI ExpressバスなどのようなＩ／Ｏバス１１０４へ、ダイレクトに接続することもできる。
【００９７】
本開示の１つの実施形態によるデータ処理システムとして、オペレーティングシステム１１２８、ソフトウェア／ファームウェア１１３０、およびデータストア１１３２（これらをストレージデバイス１１２６および／またはメモリ１１０６に記憶させることができる）を挙げることができる。かかるオペレーティングシステムは、コマンドラインインタフェース（ＣＬＩ）シェルおよび／またはグラフィカルユーザインタフェース（ＧＵＩ）シェルを採用することができる。ＧＵＩシェルは、複数のディスプレイウィンドウをグラフィカルユーザインタフェースにおいて同時に表示させることができ、各ディスプレイウィンドウによって、それぞれ異なるアプリケーションに対するインタフェースが提供され、または同じアプリケーションの異なるインスタンスに対するインタフェースが提供される。マウスまたはタッチスクリーンなどのようなポインティングデバイスによって、ユーザはグラフィカルユーザインタフェースのカーソルまたはポインタを操作することができる。この場合、カーソル／ポインタのポジションを変更することができ、かつ／または望ましいレスポンスを生じさせるために、マウスボタンのクリックまたはタッチスクリーンのタッチといったイベントを発生させることができる。データ処理システムにおいて使用することのできるオペレーティングシステムの例として、Microsoft Windows, Linux, UNIX, iOSおよびAndroidオペレーティングシステムを挙げることができる。同様にデータストアの例として、データファイル、データテーブル、リレーショナルデータベース（たとえばOracle, Microsoft SQL Server）、データベースサーバ、またはプロセッサによって取り出し可能なデータを格納することができる任意の他の構造および／またはデバイスも挙げられる。
【００９８】
通信コントローラ１１１２を（データ処理システム１１００の一部ではない）ネットワーク１１１４に接続することができ、このネットワークを、インターネットを含め当業者に周知の任意のパブリックまたはプライベートのデータ処理システムネットワークまたはそれらのネットワークの組み合わせとすることができる。データ処理システム１１００はネットワーク１１１４を介して、（やはりデータ処理システム１１００の一部ではない）サーバ１１３４などのような１つまたは複数の他のデータ処理システムと通信することができる。ただし、１つの択一的なデータ処理システムを、分散システムの一部として実装された複数のデータ処理システムに相当するものとすることができ、そのような分散システムにおいて、複数のデータ処理システムに対応づけられた複数のプロセッサを、１つまたは複数のネットワークコネクションを介して通信状態にすることができ、それらのプロセッサは、単一のデータ処理システムによって実施されるものとして説明したタスクを、共同で実施することができる。よって、１つのデータ処理システムについて言及するときには、かかるシステムを、ネットワークを介して互いに通信状態にある分散システム内に構築された複数のデータ処理システム全体にわたって実装されたものとしてもよい、という点を理解されたい。
【００９９】
なお、用語「コントローラ」とは、このデバイスがハードウェア、ファームウェア、ソフトウェア、またはそれらのうち少なくとも２つの何らかの組み合わせとして実現されていようが、少なくとも１つの操作をコントロールする任意のデバイス、システムまたはそれらの一部分のことを意味する。さらにここで述べておきたいのは、いずれかの特定のコントローラと結び付けられた機能を、ローカルであろうとリモートであろうと、集中させてもよいし分散させてもよい、という点である。
【０１００】
これらに加え、データ処理システムを、仮想マシンアーキテクチャまたはクラウド環境において仮想マシンとして実装することができる、という点を理解されたい。たとえばプロセッサ１１０２および付随するコンポーネントを、１つまたは複数のサーバの仮想マシン環境において実行される１つの仮想マシンに相当するものとすることができる。仮想マシンアーキテクチャの例として挙げられるのは、VMware ESCi, Microsoft Hyper- V, Xenおよび KVMである。
【０１０１】
当業者であれば理解できるように、データ処理システムについて図示したハードウェアを、特定の実装形態に合わせて変更することができる。たとえばこの例におけるデータ処理システム１１００を、コンピュータ、ワークステーションおよび／またはサーバに相当するものとすることができる。ただしここで理解されたいのは、データ処理システムの択一的な実施形態を、相応のコンポーネントまたは択一的なコンポーネントによって構成することができる、という点であり、たとえば携帯電話、タブレット、コントローラボード、またはデータを処理しかつデータ処理システム、コンピュータ、プロセッサおよび／または本明細書で説明したコントローラのオペレーションと対応づけられた、本明細書で説明した機能および特徴を実施するように動作する他の任意のシステムの形態として、構成することができる。図示されている実施例は、例示目的で示されているにすぎず、本開示に関して構造上の制限を意図したものではない。
【０１０２】
本明細書で用いた用語「コンポーネント」および「システム」は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの組み合わせを包含することを意図している。したがってたとえば、システムまたはコンポーネントをプロセス、プロセッサ上で実行されるプロセス、またはプロセッサとすることができる。これらに加え、コンポーネントまたはシステムを、単一のデバイス上に局所化してもよいし、複数のデバイスにわたって分散させてもよい。
【０１０３】
同様に、ここで用いられているプロセッサは、データを処理するためにハードウェア回路、ソフトウェアおよび／またはファームウェアを介して構成された任意の電子デバイスに相当する。たとえば、本明細書で説明したプロセッサを、マイクロプロセッサ、ＣＰＵ、ＦＰＧＡ、ＡＳＩＣ、あるいはコントローラボード、コンピュータ、サーバ、携帯電話、および／または他の任意のタイプの電子デバイスを有することができるデータ処理システムにおいてデータを処理可能である他の任意の集積回路（ＩＣ）または他のタイプの回路、のうちの１つまたは複数（またはこれらの組み合わせ）に相当するものとすることができる。
【０１０４】
さらに当業者に理解できるとおり、簡単かつ明瞭にするため、本発明による使用に適したあらゆるデータ処理システムの構造およびオペレーションを、本明細書においてすべて描いたまたは説明したわけではない。そうではなく、データ処理システムのうち、本発明に特有のところだけを、または本発明の理解に必要なところだけを描いて説明したにすぎない。データ処理システム１１００の構造およびオペレーションのその他の部分は、この分野で周知の現在行われている様々な実装形態および実施手法の任意のものに適合させることができる。
【０１０５】
これまで本発明の実施例について詳しく説明してきたが、当業者であれば理解できるように、最も広い形態で開示した本発明の着想および範囲を逸脱することなく、様々な変更、置き換え、変形ならびに本明細書で開示した改善を行うことができる。
【０１０６】
本願の記載内容のいずれも、何らかの特定の部材、ステップまたは機能が特許請求の範囲に含まれなければならない必須の要素である、という趣旨で読まれるべきではなく、本発明の範囲は、特許付与された請求項によってのみ定められるものである。しかも、厳密な語「のための手段」の次に分詞が続かないのであれば、これらの請求項のいずれも、ミーンズ・プラス・ファンクション・クレーム（means plus function claim）の構造が適用されることを意図したものではない。
【図１】
0006598984.tif 000002
【図２】
0006598984.tif 000003
【図３】
0006598984.tif 000004
【図４】
0006598984.tif 000005
【図５】
0006598984.tif 000006
【図６】
0006598984.tif 000007
【図７】
0006598984.tif 000008
【図８】
0006598984.tif 000009
【図９】
0006598984.tif 000010
【図１０】
0006598984.tif 000011
【図１１】
0006598984.tif 000012