JP2002366973A - オブジェクトの生成方法および生成されたオブジェクトの選択制御方法並びにオブジェクトのデータ構造 - Google Patents

オブジェクトの生成方法および生成されたオブジェクトの選択制御方法並びにオブジェクトのデータ構造

Info

Publication number
JP2002366973A
JP2002366973A JP2001172416A JP2001172416A JP2002366973A JP 2002366973 A JP2002366973 A JP 2002366973A JP 2001172416 A JP2001172416 A JP 2001172416A JP 2001172416 A JP2001172416 A JP 2001172416A JP 2002366973 A JP2002366973 A JP 2002366973A
Authority
JP
Japan
Prior art keywords
selection
function
objects
dimensional
control method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001172416A
Other languages
English (en)
Other versions
JP2002366973A5 (ja
Inventor
Koichi Sakamoto
浩一 坂本
Yasushi Wakabayashi
泰 若林
Katsutoshi Horii
克敏 堀井
Yusuke Totsuka
裕介 戸塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2001172416A priority Critical patent/JP2002366973A/ja
Publication of JP2002366973A publication Critical patent/JP2002366973A/ja
Publication of JP2002366973A5 publication Critical patent/JP2002366973A5/ja
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【課題】 オブジェクトの存在環境などに応じて自在に
選択対象に含めるといった多様なユーザインタフェース
を実現することができるオブジェクトの生成方法および
該方法によって生成されたオブジェクトの選択制御方法
並びにオブジェクトのデータ構造を提供すること。 【解決手段】 任意の形状を有する複数のオブジェクト
を生成した後、表示装置に表示された状態における選択
操作イベントに対し各オブジェクトを操作対象に含める
かを決める被選択基準をオブジェクト毎に個別にまたは
まとめて設定し保持させるステップを備えることを特徴
とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータプロ
グラムによって表示装置画面上に表示させる2次元また
は3次元のオブジェクトの生成方法および生成されたオ
ブジェクトに対するマウスクリック操作(ポインティン
グ操作)などの選択操作イベントに対する選択制御方法
に関するものである。
【0002】
【従来の技術】従来において、2次元または3次元オブ
ジェクトを操作するコンピュータグラフックスのアプリ
ケーションにおいては、通常、マウス操作によって操作
対象のオブジェクトを指定する。従来、このようなアプ
リケーションにおいては、操作対象のオブジェクトをユ
ーザが指定するためのインタフェースは、アプリケーシ
ョンに固有の指定手段で固定化されていた。例えば、3
次元オブジェクトaの内部に3次元オブジェクトbが包
含されている場合、aが不透明であれば内部に隠蔽され
たbは選択できない、すなわち「不透明オブジェクトの
内部オブジェクトは指定不可」という指定手段で固定化
されていた。
【0003】
【発明が解決しようとする課題】しかしながら、従来技
術にあっては、3次元オブジェクトaが不透明である限
り、ユーザはその内部に隠蔽された3次元オブジェクト
bを指定することはできない。そこで、特殊な建物x(X
線透視建物)を追加し、その内部では3次元オブジェク
トaが不透明であっても内部の3次元オブジェクトbを
指定できる、すなわち「不透明オブジェクトの内部オブ
ジェクトも指定可」というようにしたいとする。この場
合でも、3次元オブジェクトaが通常の建物に存在する
場合には、やはり当該3次元オブジェクトaが不透明で
ある限り3次元オブジェクトbは選択できないようにす
る。すなわち、アプリケーションが当初想定していなか
ったような新たなオブジェクト指定形式を持つ建物を追
加し、同じアプリケーション内で種々の指定形式をもつ
建物が混在できるようにしたい。
【0004】しかしながら、従来技術にあっては、どの
オブジェクトが選択されるかはアプリケーションで予め
決められている論理に従って一意に決定されるため、そ
の論理で記述されていないオブジェクトについては常に
選択対象外となったり、規定外のオブジェクトとして常
に同一の選択方法が適用されるなどといった、3次元オ
ブジェクトの存在環境などに応じて自在に選択対象に含
めるといった多様なユーザインタフェースを提供できな
いという問題があった。
【0005】本発明の第1の目的は、オブジェクトの存
在環境などに応じて自在に選択対象に含めるといった多
様なユーザインタフェースを実現することができるオブ
ジェクトの生成方法および該方法によって生成されたオ
ブジェクトの選択制御方法並びにオブジェクトのデータ
構造を提供することにある。
【0006】一方、マウス操作によって操作対象のオブ
ジェクトを指定する際、操作対象のオブジェクトをユー
ザが指定するためのインタフェースの多くは、ユーザか
ら見えていないオブジェクトは選択しにくい、すなわち
ユーザ側から見て手前(視点側)のオブジェクトによっ
て完全に隠蔽されているオブジェクトは選択しにくい。
これは、2次元、3次元のいずれのオブジェクト場合で
あっても、形状オブジェクトを操作するコンピュータグ
ラフィックスのアプリケーションにおいて、画面上でオ
ブジェクトが重なり合っている場合に選択操作を困難に
する原因となっている。
【0007】このような場合、手前側のオブジェクトに
よって完全に隠蔽されているオブジェクトを選択しよう
とした場合、手前側のオブジェクトを移動したり、ある
いはオブジェクトの重なり順序を変える等の操作を行ウ
ことによって、隠蔽されたオブジェクトを一時的に可視
化し、この可視化状態で選択操作を行うという手順が必
要であった。そして、目的とするオブジェクトを選択す
る操作を行った後は、選択前に可視化するために移動、
もしくは変更した重なり順序を、元の状態に回復すると
いう手順が必要であった。また、手前側のオブジェクト
を半透明にする等して可視化し、前述のようなオブジェ
クトに対する物理的変更操作を施す必要がなかったとし
ても、可視化されたオブジェクトは実際のオブジェクト
のイメージとは異なって見え、ユーザが本意とするオブ
ジェクトを選択するための操作性は悪く、誤ったオブジ
ェクトが選択される場合も多かった。
【0008】本発明の第2の目的は、「操作対象オブジ
ェクトの選択」という本来の操作の準備操作のために、
対象となるオブジェクト群の物理的な位置、配置状態を
変えることなく、ユーザが本意とするオブジェクトを容
易かつ確実に選択できるためのユーザインタフェースを
実現可能なオブジェクトの選択制御方法を提供すること
にある。
【0009】
【課題を解決するための手段】上記第1の目的を達成す
るために、本発明のオブジェクトの生成方法は、任意の
形状を有する複数のオブジェクトを生成した後、表示装
置に表示された状態における選択操作イベントに対し各
オブジェクトを操作対象に含めるかを決める被選択基準
をオブジェクト毎に個別にまたはまとめて設定し保持さ
せるステップを備えることを特徴とする。そして、前記
被選択基準として、各オブジェクトに関連する他のオブ
ジェクトを操作対象にするかを決める被選択基準を有す
ることを特徴とする。また、前記被選択基準として、自
オブジェクトまたは他オブジェクトが優先して操作対象
として選択されるように決定する被選択基準を有するこ
とを特徴とする。また、前記被選択基準として、選択操
作イベントに対し反応するか否かを決める反応可否基準
を有することを特徴とする。また、前記被選択基準を関
数として設定し保持させることを特徴とする。
【0010】本発明に係るオブジェクトの選択制御方法
は、選択操作イベントに対する被選択基準を保持した複
数のオブジェクトを表示装置に表示させ、その表示され
たオブジェクトへの選択操作イベントに対しいずれのオ
ブジェクトを選択するかを制御するオブジェクトの選択
制御方法であって、表示画面上における選択操作イベン
トを、予め設定された規則によって当該選択操作イベン
トの位置に応じて決定された選択候補オブジェクト群内
に存在する全てのオブジェクトに伝達するステップと、
伝達したオブジェクトからの応答を受け、その応答内容
のうち予め設定した選択条件を満たす1つまたは複数の
オブジェクトを操作対象として選択するステップとを備
えることを特徴とする。そして、前記選択条件として、
表示色が不透明で最も視点側に位置するオブジェクトを
選択する条件が設定されていることを特徴とする。ま
た、前記選択条件として、表示色に拘わらず最も視点側
に位置するオブジェクトを選択する条件が設定されてい
ることを特徴とする。また、前記選択条件として、選択
操作イベントに対する反応可否基準として反応可が設定
されているオブジェクトのうち最も視点側に位置するオ
ブジェクトを選択する条件が設定されていることを特徴
とする。
【0011】本発明に係るオブジェクトのデータ構造
は、任意の形状を規定する第1のデータ部と、表示装置
に表示された状態における選択操作イベントに対し各オ
ブジェクトを操作対象に含めるかを決める被選択基準の
第2のデータ部を保持することを特徴とする。そして、
前記第2のデータ部を関数として保持することを特徴と
する。
【0012】上記第2の目的を達成するために、本発明
に係るオブジェクトの選択制御方法は、複数のオブジェ
クトを表示装置に表示させ、その表示されたオブジェク
トへの選択操作イベントに対しいずれのオブジェクトを
選択するかを制御するオブジェクトの選択制御方法であ
って、画面上に表示されたオブジェクトのうち、特定の
ひとつまたは複数を着目オブジェクトとして認識する手
段と、特定の契機によって、前記着目オブジェクトを他
のオブジェクトに切替る手段と、特定の告知態様によっ
て、着目オブジェクトがいずれのオブジェクトであるか
をユーザに告知する手段と、特定の契機によって、その
時点での着目オブジェクトを選択オブジェクトとして確
定する手段とを備えることを特徴とする。
【0013】そして、前記着目オブジェクト切替えの契
機として、ユーザの特定操作を契機とすることを特徴と
する。また、前記着目オブジェクト切替えの契機とし
て、マウスクリック操作を契機とすることを特徴とす
る。また、前記着目オブジェクト切替えの契機として、
特定キーの押下を契機とすることを特徴とする。また、
前記着目オブジェクト切替えの契機として、一定周期の
時間経過を契機とすることを特徴とする。また、前記着
目オブジェクト切替えの契機として、マウス押下操作を
継続した状態における一定周期の時間経過を契機とする
ことを特徴とする。また、前記選択オブジェクト確定の
契機として、ユーザの特定操作を契機とすることを特徴
とする。また、前記選択オブジェクト確定の契機とし
て、マウスクリック操作を契機とすることを特徴とす
る。また、前記選択オブジェクト確定の契機として、特
定キーの押下を契機とすることを特徴とする。また、前
記選択オブジェクト確定の契機として、一定周期の時間
経過を契機とすることを特徴とする。また、前記選択オ
ブジェクト確定の契機として、マウス押下操作を継続し
た状態における一定周期の時間経過を契機とすることを
特徴とする。
【0014】また、前記着目オブジェクトの告知態様と
して、着目オブジェクトをハイライト表示することを特
徴とする。また、前記着目オブジェクトの告知態様とし
て、着目オブジェクトが視点側から何番目のオブジェク
トであるかを表す番号をマウスカーソル付近に表示する
こと特徴とする。また、前記着目オブジェクトの告知態
様として、着目オブジェクトの形状をマウスカーソル付
近に表示することを特徴とする。また、前記着目オブジ
ェクトの告知態様として、着目オブジェクトの色をマウ
スカーソル付近に表示することを特徴とする。また、前
記着目オブジェクトの告知方法として、マウスカーソル
を、着目オブジェクトの形状に変化させることを特徴と
する。また、前記着目オブジェクトの告知態様として、
マウスカーソルの色を着目オブジェクトの色に変化させ
ることを特徴とする。また、前記着目オブジェクトの告
知態様として、着目オブジェクトの視点側にあるオブジ
ェクトを透明に変化させ、かつ着目オブジェクトをハイ
ライト表示することを特徴とする。また、前記着目オブ
ジェクトの告知態様として、着目オブジェクトの視点側
にあるオブジェクトをワイヤフレーム表示に変化させ、
かつ着目オブジェクトをハイライト表示することを特徴
とする。また、前記着目オブジェクトの告知態様とし
て、着目オブジェクトをハイライト表示させ、かつ他の
オブジェクトからクリッピングされることなく画面に表
示することを特徴とする。また、前記着目オブジェクト
の告知態様として、着目オブジェクトの直前位置に視点
を移動させた状態のオブジェクトを表示することを特徴
とする。また、前記確定の契機より以前は、オブジェク
トの全体または一部を半透明で表示することを特徴とす
る。
【0015】なお、本発明の3次元オブジェクトの生成
方法は、換言すると、任意の形状を有する複数の3次元
オブジェクトを生成した後、表示装置に表示された状態
における選択操作イベントに対し各3次元オブジェクト
を操作対象に含めるかを決める被選択権決定処理を3次
元オブジェクト毎に個別にまたはまとめて設定し保持さ
せるステップを備えることを特徴とするものと言える。
【0016】本発明によれば、例えば、通常の建物オブ
ジェクトには、「不透明オブジェクトの内部オブジェク
トは指定不可」という被選択基準を対応付けておき、新
たに追加する特殊な建物オブジェクトには、「不透明オ
ブジェクトの内部オブジェクトも指定可」という新たな
被選択基準を対応付ける。操作対象を選択するアプリケ
ーションでは、各建物の内部に存在するオブジェクトを
指定する際、これらの建物に対応付けられた被選択基準
に従う選択処理を実行することによって、建物に応じて
異なるユーザインタフェースを提供することができる。
【0017】さらに本発明によれば、被選択基準を持つ
3次元オブジェクトの入れ子構造を実現することもでき
る。例えば、ある建物オブジェクトの内部に部屋オブジ
ェクトが存在し、それぞれ「不透明オブジェクトの内部
オブジェクトは指定不可」、「不透明オブジェクトの内
部オブジェクトも指定可」という被選択基準がそれぞれ
対応しているとする。このとき、建物の内部で部屋の外
に存在するオブジェクトについては「不透明オブジェク
トの内部オブジェクトは指定不可」、部屋の内部に存在
するオブジェクトについては「不透明オブジェクトの内
部オブジェクトも指定可」が適用される。したがって、
建物の内部と外部とで各3次元オブジェクトを選択可能
または選択できないようにするといった異なるユーザイ
ンタフェースを実現することができる。すなわち、3次
元オブジェクト側が主導権を持って多様なユーザインタ
フェースを提供することができ、アプリケーション側で
は被選択基準で選択候補に挙がった3次元オブジェクト
のうち例えば最も視点側に近いオブジェクトを選択する
といった簡単なロジックを持たせるだけで済む。
【0018】また、本発明によれば、現在他オブジェク
トに隠蔽され、見えていないオブジェクトを可視化する
ために、一旦全てのオブジェクトを例えば半透明化す
る。その後、選択対象のオブジェクトをハイライト表示
することにより、明示化する。その際、単にオブジェク
ト自身をハイライトするのみならず、当該オブジェクト
の有する特徴を他の付加的な表示形態により表現し、選
択対象のオブジェクトをさらに明確化し、ユーザが選択
オブジェクト決定操作を行うかどうかの意思決定が容易
になるように支援する。なお、本発明は、2次元のオブ
ジェクトおよび3次元のオブジェクトのいずれであって
も共通して適用することができる。
【0019】
【発明の実施の形態】以下、本発明を実施する場合の一
形態を図面を参照して具体的に説明する。まず、本発明
に係るオブジェクトの生成方法について図1〜図5を参
照して説明する。なお、図1〜図5では、3次元オブジ
ェクトを生成する場合を代表して説明する。図1は、本
発明を適用した3次元オブジェクトの生成手順を示す概
略フロー図であり、まず、3次元オブジェクト10を生
成する(ステップS11)。この3次元オブジェクトの
生成処理は、例えば「対話型3Dソフトウェア構築シス
テム−IntelligentBox−」(岡田義弘、田中譲 著:コ
ンピュータソフトウェア別冊;Vol.12,No.4(1955),PP.8
4-94)で提案された技術を用いて生成する。生成された
3次元オブジェクト10は、共通の属性項目11とし
て、色、透明度、座標変換行列、形状の各データを備え
ている。このうち、色データはR,G,B値で構成さ
れ、透明度データは0(透明)〜255(不透明)の段階
値で構成されている。また、座標変換行列は、ローカル
座標系で表現された座標データをワールド座標系の座標
データに変換する行列式のデータで構成されている。ま
た、形状データは、3次元オブジェクトの各頂点の座標
データ(ローカル座標系またはワールド座標系)で構成
されている。なお、円筒などの曲面部分を持つ3次元オ
ブジェクトについては、多角形近似によって生成する場
合、その各頂点座標データで構成される。
【0020】ローカル座標系とは、図2の説明図に示す
ように、3次元オブジェクト10の形状を単独で表現す
る座標系であり、ワールド座標系とは3次元オブジェク
トを配置する3次元空間を定義する座標系である。ワー
ルド座標系で定義された3次元空間に配置された3次元
オブジェクト10は投影によって2次元図形に変換され
て表示装置画面に表示される。ワールド座標系に配置さ
れた3次元オブジェクト10を投影する投影面を定義す
るのが投影面座標系であり、投影面に投影される3次元
オブジェクト(2次元投影像)は注視点を原点とし、Z
軸を支軸方向とする視点座標系での支軸方向に応じて変
化する。
【0021】3次元オブジェクトを表示装置画面に表示
する際には、視点から見える視野を設定するが、視点か
ら見て投影面の手前側で見える範囲を前平面の位置で設
定し、奥行き方向に見える範囲を後平面の位置で設定す
る。前平面と後平面の間の四角錘形状の3次元空間が3
次元オブジェクトのビューボリュームである。本発明に
係る実施形態では、図3に示すように、視点位置を基準
として、投影面と後平面の位置D1,D2を設定し、ロ
ーカル座標系で定義された3次元オブジェクトをワール
ド座標系上の投影面座標系の2次元投影像に透視変換を
行って投影面に表示する。
【0022】次に、3次元オブジェクト10を生成した
ならば(必要に応じて3次元空間に配置したならば)、
マウス操作による選択操作イベントに対する被選択基準
を設定する(ステップS12)。この被選択基準は、後
述するように、各オブジェクトが自分自身で被選択権を
決める関数を用いたプログラムとして設定される。被選
択基準13とは、図4(a)の3次元オブジェクト10
をY軸方向から見た場合の平面図に示すように、マウス
カーソル位置P1を投影面(表示画面)DPの任意の位
置に位置付けた場合に、視点Eとマウスカーソル位置P
1とに基づいて、どの3次元オブジェクトを選択候補に
するかどうかを決めるための基準となる情報である。通
常においては、視点Eとマウスカーソル位置P1(ポイ
ンティング位置)とを結ぶ直線L1が通過(または透
過)する3次元オブジェクトが選択候補となり、その選
択候補の中から、最終的に操作対象となる3次元オブジ
ェクトが決定される。
【0023】また、図4(b)の平面図に示すように、
視点Eとマウスカーソル位置P1とを結ぶ直線L1が透
過することはないが、3次元オブジェクトの外周から所
定距離Δdの範囲で透過する場合には選択候補として決
めるための基準となる情報である。図4(b)において
は、3次元オブジェクト10Bに、その外周から所定距
離Δdの範囲で直線L1が透過する場合でも選択対象に
なるような基準が設定されていることを示している。
【0024】この場合、Δdは図4(c)に示すよう
に、3次元オブジェクト10Bの内側に向かって設定す
る(−Δd)こともある。この場合には、−Δdの範囲
内で直線L1が透過しても選択候補としないように利用
することができる。なお、直線L1が通過する3次元空
間の位置は、マウスカーソルの2次元座標位置(投影面
での2次元座標位置)を検出し、この検出座標値をワー
ルド座標値に変換し、視点E(ワールド座標値)とを結
ぶ直線L1を求めることによって判明するので、例え
ば、該直線L1が透過する3次元オブジェクトであるか
どうかは当該3次元オブジェクトが該直線L1の3次元
座標値を含む座標値を持っているかどうかによって判定
することができる。
【0025】本実施形態においては、直線L1が透過す
る3次元オブジェクトであった場合に、自オブジェクト
を選択対象にすることを許す(または許さない)ことを
示す基準A、優先選択オブジェクトである(または、な
い)ことを示す基準B、反応可能なオブジェクトである
(または、ない)ことを示す基準Cがある。これらの基
準A,B,Cは、本実施形態では、例えばC++言語で
定義したselect関数、preselect関数、respondent関数
で設定される。
【0026】被選択基準13の設定が終了したならば、
当該3次元オブジェクトを記憶装置に保存する(ステッ
プS13)。保存された3次元オブジェクトのデータ部
14は、共通の属性項目のデータと被選択基準のデー
タ、その他のデータとで構成される。なお、3次元オブ
ジェクト10に設定されるselect関数、preselect関
数、respondent関数の他のデータとは、図5に示すよう
に、自オブジェクトの色の問い合わせがあった場合に、
自オブジェクトの色データをデータ部14から取得して
返却するgetColor関数などが必要に応じて付加される。
これらの関数としてどのようなものを保持しているかに
よって、3次元オブジェクトの性質が決定される。
【0027】次に、以上のようにして各3次元オブジェ
クトに保持された被選択基準を用いて、マウス操作によ
る選択操作イベントに対し、複数の選択候補オブジェク
トの中からどの3次元オブジェクトを選択するかの選択
制御方法の概要について説明する。マウスカーソル位置
に応じて3次元オブジェクトの1つを操作対象として決
定する際、まず、画面上の全ての3次元オブジェクトに
対し、respondent関数を実行させることによって、当該
マウスカーソル位置に対して反応しうるオブジェクト群
(選択候補オブジェクト群)を求める。次に、求まった選
択候補オブジェクト群を視点Eに近い順に並べ替え、視
点Eに最も近いオブジェクトに対しpreselect関数を実
行させることによって、優先選択オブジェクトを抽出す
る。優先選択オブジェクトとは、選択候補オブジェクト
群内において、そのオブジェクトよりも奥行き方向に位
置する3次元オブジェクトが選ばれることはないように
機能するオブジェクトである。
【0028】次に、選択候補オブジェクト群の視点Eに
最も手前の3次元オブジェクトに対し、select関数を実
行させ、視点Eに最も近い選択対象許可オブジェクトを
抽出する。次に、本実施例では、優先選択オブジェクト
と選択対象許可オブジェクトとのうち、視点Eに最も近
いオブジェクトを選択対象のオブジェクトとして決定す
る。
【0029】以下、図面を用いて説明する。図6は、本
発明を適用した3次元オブジェクトの選択制御方法を実
現するシステムの一実施形態を示す全体構成図である。
図6において、600は本発明に係る3次元オブジェク
トの選択制御方法を実現する処理を行う計算機である。
この計算機600は、キーボード601とディスプレイ
602、CPU603、マウス604、プログラムメモ
リ605、データメモリ606とから構成される。計算
機600のプログラムメモリ605には、計算機全体を
制御するオペレーティングシステム605aと、ユーザ
によるマウス操作などのイベントを各種3次元オブジェ
クトに配送し、その応答によって操作対象となる3次元
オブジェクトを予め定めた選択条件に従って選択するイ
ベントディスパッチャ605b、各種3次元オブジェク
ト(1)606a〜(n)606cに対応する3次元オ
ブジェクト(1)プログラム605c、3次元オブジェ
クト(2)プログラム605d、3次元オブジェクト
(n)プログラム605eが格納されている。
【0030】データメモリ606には、3次元オブジェ
クト(1)606a、3次元オブジェクト(2)606
b、3次元オブジェクト(n)606cといった各種3
次元オブジェクト群が格納されている。これらの3次元
オブジェクト群は、図1で説明した共通の属性項目11
を保持すると共に、マウス操作による選択操作イベント
に対する被選択基準となるselect関数等の関数、および
getColor等のその他の関数(図5参照)を各オブジェクト
毎に保持している。
【0031】3次元オブジェクトi(i=1〜n)プロ
グラムは、そのプログラムに対応する3次元オブジェク
トのそれぞれに定義された関数を実行するプログラムで
ある。なお、視線方向を変えた場合における3次元オブ
ジェクト(1)〜(3)の挙動や見え方を制御するプロ
グラムは、3次元オブジェクトi(i=1〜n)プログ
ラムとは別のプログラムとして実装されるが、本発明に
は直接関係しないので図示を省略している。
【0032】図7は、本発明で用いられるアプリケーシ
ョン例における3次元オブジェクトとイベントディスパ
ッチャの概念図である。図7において、701はシステ
ムのグローバルなメモリ領域を示し、702、703,
704はシステムが用意しているデフォルトのselect関
数、preselect関数、respondent関数である。デフォル
ト関数は、実行指示のあったselect関数等が実行を指示
されたオブジェクトに定義されていない場合等におい
て、実行指示のあった関数の代用関数として当該オブジ
ェクトが実行できる関数である。本実施例では、オブジ
ェクトに対してselect関数等の実行を指示する際は、指
示する関数に対応するデフォルト関数を引数として渡
す。705は、優先選択オブジェクトを保持しておく領
域である。706は、オブジェクト選択履歴テーブルで
あり、個々のオブジェクトに関して、最近選択された時
刻、これまでに選択された回数等を保持している。最近
選択されたものを選択するなど、選択履歴情報を選択条
件とする場合に参照される。707は、respondent関数
を実行させることによって得た選択候補オブジェクト群
を保持する領域である。
【0033】708a〜708cは、3次元オブジェク
トであり、図1で説明した共通の属性項目11を保持す
ると共に、マウス操作イベントに対する操作対象を決定
するためのselect関数、preselect関数、respondent関
数およびその他の関数を個別に保持している。これらの
select関数、preselect関数、respondent関数は、各オ
ブジェクト毎に定義可能である。この他に、図2で説明
したgetColor等の関数が保持されている。イベントディ
スパッチャ605bは、respondent関数を各3次元オブ
ジェクトに実行させることによって、選択操作イベント
に反応し得る選択候補オブジェクト群を取得するrespon
dent関数実行処理6051、preselect関数を各3次元
オブジェクトに実行させることによって、優先選択オブ
ジェクトを取得するpreselect関数実行処理6052、s
elect関数を各3次元オブジェクトに実行させることに
よって、選択対象として採用可能なオブジェクトを取得
するselect関数実行処理6053、これらの3つの関数
の実行結果に基づき、最終的に選択するオブジェクトを
決定する選択対象最終決定処理6054を備えている。
【0034】図8は、オペレーティングシステム605
aから起動されるイベントディスパッチャ605bの処
理を示すフローチャートである。図8のフローチャート
では、直線L1(図10参照)が透過する優先選択オブ
ジェクトおよび選択対象許可オブジェクトのうち、視点
Eに最も近い(最も手前)3次元オブジェクトを最終的
に選択する処理としている。
【0035】以降、図8乃至図10を用いて本発明のオ
ブジェクト選択制御方法を具体的に説明する。図10
は、3次元オブジェクトの配置例を示す説明図であり、
表示画面1001内に存在する5個の3次元オブジェク
トx01〜x05を上方から見た平面図である。さら
に、これら5個の3次元オブジェクトx01〜x05に
定義されているrespondent,preselect,selectの各関
数は次に示す「定義例1」の通りであるとする。この状
態において、P1で示す位置でオブジェクト選択操作が
行われたものとする。
【0036】「定義例1」 x01: respondent関数:直線L1が自オブジェクトを透過すれ
ば戻り値「true」でコール元へ戻り、透過しなければ戻
り値「false」でコール元へ戻る。 preselect関数:自オブジェクトの後方に選択候補オブ
ジェクトが存在する場合は、直後に存在する選択候補オ
ブジェクトxに対してpreselect(e,pre)を実行させ、そ
の戻り値を自オブジェクトの戻り値としてコール元に戻
る。そのようなオブジェクトxが存在しない場合は、戻
り値「φ(φは空の意味)」でコール元に戻る。 select関数:無条件に戻り値「自オブジェクト名」でコ
ール元に戻る。 x02〜x05: respodent関数:オブジェクトx01と同一の定義 preselect関数:オブジェクトx01と同一の定義 select関数:オブジェクトx01と同一の定義
【0037】ここで、図8以降の図で用いられている用
語等について説明しておく。1.フローチャートにおける用語等 出口点(コール元への戻り時点) ・return *0 「*0」を戻り値として、当該モジュールのコール元へ
戻る。 ・return *0 .*1(e,*2) 「*0」:「*0」をコールし、「*0」からの戻り時に
「*0」からの戻り値を当該モジュールの戻り値とし
て、当該モジュールのコール元に戻る。 「*1」:関数の種類(関数名) 「e」:引数 「*2」:引数 「*0 .*1(e,*2)」:「*0」をコールする時
に、「*0」に関数「*1」が定義されていない場合、
「*0」が当該未定義関数 「*1」の代用として利用できる関数(のアドレス)
「*2」と、当該代用関数「*2」を利用(実行)するの
に必要なマウスイベント関連情報「e」を意味する。 入口点(コール先への制御移行直後時点) ・*1(e,*2) 「*1」:コールされた当該モジュール(オブジェク
ト)が実行すべき関数の種類(関数名) 「e」:引数 「*2」:引数 「*1(e,*2)」:コールされた当該モジュール(オ
ブジェクト)に関数「*1」が定義されていない場合、
コールされた当該モジュール(オブジェクト)が当該未
定義関数「*1」の代用として利用できる関数(のアド
レス)「*2」と、当該代用関数「*2」を利用(実行)
するのに必要なマウスイベント関連情報「e」を意味す
る。 上記以外の部分(処理ボックス等) ・*0 .*1(e,*2) 「*0」:「*0」をコールする。 「*1」:コールされた「*0」が実行すべき関数の種類
(関数名) 「e」:引数 「*2」:引数 「*0 .*1(e,*2)」:コールされる「*0」に関
数「*1」が定義されていない場合、コールされる
「*0」が当該未定義関数「*1」の代用として利用でき
る関数(のアドレス)「*2」と、当該代用関数「*2
を利用(実行)するのに必要なマウスイベント関連情報
「e」を意味する。
【0038】まず、オブジェクト選択に関するマウスイ
ベントが発生した場合に、イベントディスパッチャ60
5bは、図10に示す画面に表示されている全オブジェ
クトすなわち3次元オブジェクトx01〜x05のそれ
ぞれに対し、respondent関数を実行するよう指示し、各
オブジェクトからの応答を得る。そして、応答(戻り
値)がtrueのオブジェクトを視点Eに近い順に並べ替え
る(ステップ801)。ステップ801の詳細を、図9に
示しているが、図9の説明は後述する。ステップ801
の処理状況を図示したのが、図11である。図11に示
すように、respondent関数の実行指示を受けた各オブジ
ェクトx01〜x05は、前記の「定義例1」に示すre
spondent関数の定義がなされている。すなわち、図10
での「直線L1が透過(○印)ならtrue、直線L1が非
透過(×印)ならfalseを戻り値とする」定義がなされ
ている。このため、オブジェクトx01はtrue、オブジ
ェクトx02はfalse、オブジェクトx03はtrue、オ
ブジェクトx04はfalse、オブジェクト05はtrueを
イベントディスパッチャ605bに返す。そこで、イベ
ントディスパッチャ605bは、戻り値がtrueのオブジ
ェクト群(3次元オブジェクトx01、x03、x0
5)を視点Eに近い順に並べ替える。これにより、イベ
ントディスパッチャ605bは、視点Eに近い順に並べ
替えられた3次元オブジェクトx01、x03、x05
を選択候補オブジェクト群として認識する。
【0039】次に、イベントディスパッチャ605b
は、選択候補オブジェクト群の中の視点Eに最も近いオ
ブジェクト(「定義例1」の場合は、オブジェクトx0
1)に対しpreselect関数を実行するよう指示し、その
応答(戻り値)「オブジェクト名」をxとする(ステッ
プ802)。
【0040】「定義例1」によると、オブジェクトx0
1のpreselect関数は、「視点Eから見て自オブジェク
トaの直後にrespondent関数の戻り値としてtrueを返し
たオブジェクトbが存在する場合は、次オブジェクトbに
対してpreselect(e,pre)を実行させ、オブジェクトbか
らの戻り値を自オブジェクトaの戻り値としてコール元
に戻る。そのようなオブジェクトbが存在しない場合
は、戻り値「φ」(φは空の意味)としてコール元に戻
る。」よう定義されている。したがって、この例の場
合、オブジェクトx01はオブジェクトx03に対しpr
eselect関数を実行するよう指示し、その応答を待つ。
そして、オブジェクトx03から得られた応答(戻り
値)をオブジェクトx01の応答(戻り値)としてコー
ル元であるイベントディスパッチャ605bに戻る。
【0041】オブジェクトx03のpreselect関数も
「定義例1」によると、オブジェクトx01と同一であ
るため、オブジェクトx03はオブジェクトx05に対
しpreselect関数を実行するよう指示し、その応答を待
つ。そして、オブジェクトx05から得られた応答(戻
り値)をオブジェクトx03の応答(戻り値)としてコ
ール元であるオブジェクトx01に戻る。オブジェクト
x05のpreselect関数もオブジェクトx01〜x03
と同一、すなわち「視点Eから見て自オブジェクトaの
直後にrespondent関数の戻り値としてtrueを返したオブ
ジェクトbが存在する場合は、次オブジェクトbに対して
preselect(e,pre)を実行させ、オブジェクトbからの戻
り値を自オブジェクトaの戻り値としてコール元に戻
る。そのようなオブジェクトbが存在しない場合は、戻
り値「φ」(φは空の意味)としてコール元に戻る。」
よう「定義例1」で定義されている。したがって、この
場合、オブジェクトx05の後方にはオブジェクトbが
存在しないため、オブジェクトx05は応答(戻り値)
を「φ」としてコール元であるオブジェクトx03に戻
る。結果として、オブジェクトx01に対しpreselect
関数を実行するよう指示したイベントディスパッチャ6
05bは、オブジェクトx01からの応答(戻り値)と
して「φ」を得ることができ、この応答(戻り値)をx
(φ)とする。
【0042】次に、イベントディスパッチャ605b
は、選択候補オブジェクト群の中の視点Eに最も近いオ
ブジェクトに対しselect関数を実行するよう指示し、そ
の応答(戻り値)「オブジェクト名」をyとする(ステ
ップ803)。ステップ803を詳細に説明すると、
「定義例1」によってオブジェクトx01のselect関数
は、「無条件に戻り値を自オブジェクトとしてコール元
に戻る。」よう定義されているため、オブジェクトx0
1は応答(戻り値)を「オブジェクトx01」としてコ
ール元であるイベントディスパッチャ605bに戻るこ
とになる。そして、イベントディスパッチャ605b
は、応答(戻り値)の「オブジェクト名」をy(定義例
1の場合は、オブジェクトx01)とすることになる。
この場合、オブジェクトx03およびオブジェクトx0
5は、コールされないため、それぞれに定義されている
select関数は実行されない。
【0043】次に、イベントディスパッチャ605b
は、オブジェクトxとオブジェクトyを比較し、より手
前(最も視点に近い)のオブジェクトを操作対象となる
オブジェクトとして決定する(ステップ804)。「定義
例1」の場合は、オブジェクトxは存在しないため、オ
ブジェクトx01が選択対象のオブジェクトとして決定
される。
【0044】図9は、ステップ801の選択候補オブジ
ェクト群を取得する選択候補オブジェクト群取得処理の
詳細を示すフローチャートである。まず、選択候補オブ
ジェクト群保持領域707を空にする(ステップ90
1)。そして、ステップ902と906で形成される処
理すなわち、画面に表示されている全オブジェクトに対
して直線L1が自オブジェクトを透過するか否かの報告
を求める。これは、各オブジェクトに対してrespondent
関数の実行を指示することによって行われる(ステップ
903)。イベントディスパッチャ605bは、自オブ
ジェクトに対してrespondent関数を実行した各オブジェ
クトからの応答をチェックし(ステップ904)、true
応答をしたオブジェクトを選択候補オブジェクト群保持
領域707に追加する(ステップ905)。そして、最終
的に選択候補群保持領域707に保持された選択候補群
のオブジェクトを視点Eに最も近いものから並べ替える
ソート処理を行う(ステップ907)。
【0045】ちなみに、「定義例1」の定義(関数)を
図12にフローチャートで示す。図12(a)のresponde
nt関数の処理においては、視点Eとパラメータで受け取
ったマウス操作イベントeの発生位置を結ぶ直線L1が
3次元オブジェクトを透過するかどうかの判定を行い
(ステップ1202)、透過するならばtrue(ステップ1
203)を、通過しないならばfalseを返却する(ステッ
プ1204)ように定義されている。
【0046】図12(b)のpreselect関数の処理におい
ては、選択候補オブジェクト群内に自分の次の候補オブ
ジェクトxが存在するかどうかの判定を行い(ステップ
1205)、存在するならばx.preselectを実行し、その
返却値を返却する(ステップ1206)。存在しないなら
ば、φ(存在しないことを示す値)を返却する(ステッ
プ1207)ように定義されている。図12(c)のselec
t関数の処理においては、無条件に自オブジェクトを選
択候補として返却する(ステップ1201)ように定義さ
れている。
【0047】ここで、オブジェクトaに対する関数*1
が定義されている場合と定義されていない場合とについ
ての最上位クラス定義関数とシステムでのデフォルト関
数との関係について、図13を用いて説明する。図13
(a)の例は、3次元オブジェクトa1301に関数*
1が定義されている場合の例である。この場合は、オブ
ジェクトa1301中の関数*1項目には、オブジェク
トa1301に対応するプログラムであるオブジェクト
aのプログラム1305中の関数*1処理部アドレスが
オブジェクト定義設定時に設定されている。図13
(b)の例は、3次元オブジェクトa1303に関数*
1が定義されていない場合の例である。この場合は、オ
ブジェクトa1303中の関数*1項目には、オブジェ
クトa1303の最上位クラスのオブジェクトA130
4(最上位クラスのオブジェクトには、全ての関数が必
ず定義されている)に対応するプログラムであるオブジ
ェクトAのプログラム1305中の関数*1処理部アド
レスがオブジェクト定義設定時に設定されている。した
がって、関数*1の実行を指示されたオブジェクトa1
303は、オブジェクトa1303中の関数*1項目に
設定されているアドレスの関数を実行することによっ
て、関数*1の実行を実現することができる。なお、3
次元オブジェクトa1303に関数*1が定義されてな
く、かつオブジェクトa1303の最上位クラスのオブ
ジェクトA1304(本実施例では、最上位クラスのオ
ブジェクトには、全ての関数が必ず定義されている)に
対応するプログラムであるオブジェクトAのプログラム
1305中の関数*1Aが「引数として渡された関数*2
を実行する。」ように定義されている場合、引数として
渡されたデフォルト関数*2が実行される。
【0048】図14は、図10で示した3次元オブジェ
クト配置と同じ配置で、図10の定義とは各オブジェク
トの定義が異なる場合の例を示す説明図である。以下
に、図14を用いて、他の選択例を説明する。図14
は、透明および半透明の3次元オブジェクトを選択させ
ない定義が行われている場合のオブジェクトの例を示す
図であり、表示画面1401に表示されている各3次元
オブジェクトx01〜x05に定義されているresponde
nt,preselect,selectの各関数は次に示す「定義例
2」の通りであるとする。そして、x01、x05は透
明、x02、x03、x04は不透明オブジェクトであ
るものとする。
【0049】「定義例2」本定義例は、「定義例1」で
のselect関数の定義のみが異なっている例である。 x01: respodent関数:直線L1が自オブジェクトを透過すれ
ば戻り値「true」でコール元へ戻り、透過しなければ戻
り値「false」でコール元へ戻る。 preselect関数:自オブジェクトの後方に選択候補オブ
ジェクトが存在する場合は、直後に存在する選択候補オ
ブジェクトxに対してpreselect(e,pre)を実行させ、そ
の戻り値を自オブジェクトの戻り値としてコール元に戻
る。そのようなオブジェクトxが存在しない場合は、戻
り値「φ(φは空の意味)」をコール元に戻る。 select関数:自オブジェクトが透明または半透明であっ
て、かつ自オブジェクトの後方に選択候補オブジェクト
存在する場合は、直後に存在する選択候補オブジェクト
yに対してselect(e,sel)を実行させ、その戻り値を自
オブジェクトの戻り値としてコール元に戻る。そのよう
なオブジェクトyが存在しない場合は、戻り値「φ(φ
は空の意味)」をコール元に戻る。また、自オブジェク
トが透明または半透明でない場合(不透明の場合)は、
戻り値「自オブジェクト名」でコール元に戻る。 x02〜x05: respodent関数:オブジェクトx01と同一の定義 preselect関数:オブジェクトx01と同一の定義 select関数:オブジェクトx01と同一の定義
【0050】この状態において、P1で示す位置でオブ
ジェクト選択操作が行われたものとすると、3次元オブ
ジェクトx01、x03、x05が選択候補オブジェク
トとなるが、イベントディスパッチャ605bに返され
るpreselect関数の戻り値はφ、またイベントディスパ
ッチャ605bに返されるselect関数の戻り値は戻り値
は「オブジェクトx03」となり、結果としてオブジェ
クトx03が選択される。なお、この場合、オブジェク
トx05においては、オブジェクトx05定義のselect
関数は実行されないこととなる。
【0051】図15に、図14の例におけるselect関数
の定義をフローチャートで示している。まず、自オブジ
ェクトが不透明かどうかの判定を共通の属性項目11に
定義された透明度のデータに基づいて判定し(ステップ
1501)、不透明ならばその時点で、自オブジェクト
名を返却する(ステップ1502)。透明または半透明な
らば、選択候補オブジェクト群内に自分の次の候補オブ
ジェクトyが存在するかどうかの判定を行い(ステップ1
503)、存在しないならば、そのことを示す値φを返
却する(ステップ2505)。存在するならば、次の候補
オブジェクトyについてselect関数を実行させ、その返
却値を返却する(ステップ1505)。
【0052】次に、図14の3次元オブジェクトx01
〜x05において、各オブジェクトに独自のselect関数
が未定義となっている「定義例3」について説明する。な
お、ここでは、システムデフォルト関数(select関
数)、最上位クラスのオブジェクトの定義関数(select
関数)および各オブジェクトの定義関数を次の通り定義
しているものとする。
【0053】「定義例3」本定義例は、「定義例2」で
のオブジェクトx01のselect関数が異なり、またシス
テムデフォルトのselect関数は次のように定義されてい
る。 システムデフォルトselect関数:自オブジェクトが透明
または半透明であって、かつ自オブジェクトの後方に選
択候補オブジェクトが存在する場合は、直後に存在する
選択候補オブジェクトyにselect(e,sel)を実行させ、
その戻り値を自オブジェクトの戻り値としてコール元に
戻る。そのようなオブジェクトyが存在しない場合は、
戻り値「φ(φは空の意味)」としてコール元に戻る。
また、自オブジェクトが透明または半透明でない場合
(不透明の場合)は、戻り値「自オブジェクト名」でコ
ール元に戻る。 オブジェクトx01の最上位クラスのオブジェクトのse
lect関数:引数として渡された関数を実行する。 x01: respodent関数:直線L1が自オブジェクトを透過すれ
ば戻り値「true」でコール元へ戻り、透過しなければ戻
り値「false」でコール元へ戻る。 preselect関数:自オブジェクトの後方に選択候補オブ
ジェクトが存在する場合は、直後に存在する選択候補オ
ブジェクトxに対してpreselect(e,pre)を実行させ、そ
の戻り値を自オブジェクトの戻り値としてコール元に戻
る。そのようなオブジェクトxが存在しない場合は、戻
り値「φ(φは空の意味)」としてコール元に戻る。 select関数:未定義 x02: respodent関数:オブジェクトx01と同一の定義 preselect関数:オブジェクトx01と同一の定義 select関数:無条件に戻り値「自オブジェクト名」でコ
ール元に戻る。 x03〜x05: respondent関数:オブジェクトx01と同一の定義 preselect関数:オブジェクトx01と同一の定義 select関数:オブジェクトx02と同一の定義
【0054】このような定義状態において、P1で示す
位置でオブジェクト選択操作が行われたものとすると、
respodent関数、preselect関数を実行させることによっ
て、3次元オブジェクトx01、x03、x05が選択
候補オブジェクトとなる。しかし、この「定義例3」に
おいては、3次元オブジェクトx01のselect関数が未
定義であるので、x01はイベントディスパッチャ60
5bからselect関数の実行を指示された場合、当該オブ
ジェクトx01の最上位クラスのオブジェクトのselect
関数を実行する。オブジェクトx01の最上位クラスの
オブジェクトのselect関数には、「定義例3」において
は、「引数として渡された関数を実行する」ことが定義
されている。そこで、イベントディスパッチャ605b
からx01に渡されたselect関数の引数として、システ
ムデフォルトのselect関数を示していた場合、オブジェ
クトx01はシステムデフォルトのselect関数を実行す
る。
【0055】この「定義例3」において、システムデフォ
ルトのselect関数は、「自オブジェクトが透明または半
透明であって、かつ自オブジェクトの後方に選択候補オ
ブジェクトが存在する場合は、直後に存在する選択候補
オブジェクトyにselect(e,sel)を実行させ、その戻り
値を自オブジェクトの戻り値としてコール元に戻る。そ
のようなオブジェクトyが存在しない場合は、戻り値
「φ(φは空の意味)」としてコール元に戻る。また、
自オブジェクトが透明または半透明でない場合(不透明
の場合)は、戻り値「自オブジェクト名」でコール元に
戻る。」というものであるから、次の選択候補のオブジ
ェクトx03に対してselect関数の実行を指示する。3
次元オブジェクトx03では、「無条件で戻り値を自オ
ブジェクト名としてコール元に戻る」という定義が設定
されているので、コール元であるx01に戻る。そこ
で、x01はその戻り値「オブジェクトx03」をイベ
ントディスパッチャ605bへの戻り値として返す。こ
れにより、オブジェクトx03が選択対象のオブジェク
トとして決定される。
【0056】図16(a),(b),(c)は、各3次
元オブジェクトの最上位クラスのオブジェクトに定義さ
れているselect関数、respondent関数、preselect関数
の定義例を示すフローチャートである。図16(a)の
select関数の定義例においては、自オブジェクトに対し
て第1引数として渡された情報に基づいて第2引数とし
て渡された関数を実行し、結果をyに代入し(ステップ
1601)、コール元に戻る(ステップ1602)。
【0057】図16(b)のrespondent関数の定義例にお
いては、自オブジェクトに対して第1引数として渡され
た情報に基づいて第2引数として渡された関数を実行
し、結果をyに代入し(ステップ1603)、コール元
に戻る(ステップ1604)。
【0058】図16(c)のpreselect関数の定義例に
おいては、自オブジェクトに対して第1引数として渡さ
れた情報に基づいて第2引数として渡された関数を実行
し、結果をyに代入し(ステップ1605)、コール元
に戻る(ステップ1606)。前述の「定義例3」における
オブジェクトx01の最上位クラスのオブジェクトのse
lect関数は、図16(a)〜(c)で示した定義がなさ
れている。
【0059】ところで、上記の定義例では、自オブジェ
クトが不透明であれば後方に位置する他の選択候補オブ
ジェクトに対してselect関数の実行を指示しない場合を
説明したが、不透明および透明であるか否かに拘わら
ず、自オブジェクトの後方に存在する選択候補オブジェ
クトを選択させないようにする機能があれば、便利であ
る。例えば、特別な権限を与えられた管理者のみしか選
択することができないような操作パネルオブジェクトが
あった場合に、その内部に存在する各種のスイッチボタ
ンオブジェクトについては、管理者以外にも見えるが、
選択することはできないようにするという例である。
【0060】図17(a),(b)は、自オブジェクト
の後方に他の選択候補オブジェクトが存在するが、自オ
ブジェクトの色や透明度に関係なく、その後方の選択オ
ブジェクトを選択させないようにする機能を実現するブ
ロックオブジェクトにおけるselect関数、preselect関
数の定義例をフローチャートで示したものである。いず
れの場合も、選択操作イベントeが渡された場合には、
select関数、preselect関数を実行し、自オブジェクト
が操作対象であることを返却して終了する(ステップ1
701,1702)。この定義によれば、自オブジェク
トの色や透明度に関係なく、その後方の選択オブジェク
トに対してはpreselect関数およびselect関数の実行が
指示されないため、後方に存在する選択候補オブジェク
トを選択対象から強制的に除外することができる。
【0061】また、上記の説明では、マウスイベントの
発生位置P1と視点Eとを結ぶ直線L1と交叉するオブ
ジェクトを選択候補としているが、マウスイベント発生
位置に最も近い位置のオブジェクトを選択することがで
きれば、直感的に目的とするオブジェクトの近傍位置を
指定し、目的とするオブジェクトを選択することができ
る。
【0062】図18は、マウスイベント発生位置に最も
近い位置のオブジェクトを選択する機能を実現するsele
ct関数の定義例を示すフローチャートである。例えば、
このselect関数を各オブジェクトに定義することによっ
て上記を実現することができる。まず、選択候補オブジ
ェクト群内の自オブジェクトより奥行き方向に存在する
候補オブジェクトの各頂点と、パラメータとして渡され
た選択操作イベントeの発生位置P1との距離を求める
(ステップ1801)。そして、ここで最も距離が近い位
置にあると判定されたオブジェクトyを取得し(ステッ
プ1802)、返する(ステップ1803)。これによ
り、図19(a)の例で言えば、図19(b)に示すよ
うに、3次元オブジェクト(2)1902の頂点が3次
元オブジェクト(1)1901の頂点より選択操作イベ
ントeの発生位置P1に最も近いので、3次元オブジェ
クト(2)1902が最終的に操作対象のオブジェクト
として決定される。
【0063】この定義によれば、直感的に目的とするオ
ブジェクトの近傍位置を指定するだけであるため、選択
操作が容易になる。したがって、以上のような被選択基
準の定義を利用すると、次のようなユーザインタフェー
スが実現可能になる。
【0064】図20は、3次元オブジェクトが包含関係
にある場合の例を示す説明図である。2001はディス
プレイ画面、2002は建物オブジェクト、2003は
部屋オブジェクト、2004は内部にオブジェクト20
05を含むオブジェクト、2005はオブジェクト20
04に含まれるオブジェクトである。今、デフォルト関
数等が、例えば、次のように定義されているものとす
る。 §デフォルト関数: respondent関数:直線L1が自オブジェクトを透過すれ
ば戻り値「true」でコール元へ戻り、透過しなければ戻
り値「false」でコール元へ戻る。 preselect関数:自オブジェクトの後方に選択候補オブ
ジェクトが存在する場合は、直後に存在する選択候補オ
ブジェクトxに対してpreselect(e,pre)を実行させ、そ
の戻り値を自オブジェクトの戻り値としてコール元に戻
る。そのようなオブジェクトxが存在しない場合は、戻
り値を「φ(φは空の意味)」としてコール元に戻る。 select関数:自オブジェクトを戻り値としてコール元に
戻る。 §オブジェクト2002乃至オブジェクト2005共通
の最上位クラスでの定義 関数: respondent関数:引数として渡された関数の実行 preselect関数:引数として渡された関数の実行 select関数:引数として渡された関数の実行 §オブジェクト2002乃至オブジェクト2005での
共通定義 respondent関数:未定義 preselect関数:未定義 §建物オブジェクト2002: select関数:自オブジェクトの内部(後方)に存在する
直後のオブジェクトyに対してselect関数を実行させ、
その戻り値を自オブジェクトの戻り値としてコール元に
戻る。そのようなオブジェクトyが存在しない場合は、
戻り値を「φ(φは空の意味)」としてコール元に戻
る。 §部屋オブジェクト2003: select関数:自オブジェクトを含め、自オブジェクトの
内部(後方)に存在するオブジェクトのうち、マウスカ
ーソル位置に最も近い頂点を持つオブジェクト名を戻り
値としてコール元に戻る。 §オブジェクト2004: select関数:未定義 §オブジェクト2005: select関数:未定義
【0065】オブジェクト2004が建物オブジェク
ト2002の外部の場合 オブジェクト2004のselect関数が未定義であるた
め、結果としてデフォルトselect関数が実行される。デ
フォルトselect関数は「自オブジェクトを戻り値として
コール元に戻る。」と定義されているため、オブジェク
ト2004を戻り値としてコール元に戻る。したがっ
て、内部オブジェクト2005が選択されることはな
い。 オブジェクト2004が建物オブジェクト2002の
内部ではあるが部屋オブジェクト2003の外部の場合
(2004'の位置) 建物オブジェクト2002のselect関数は「自オブジェ
クトの内部(後方)に存在する直後のオブジェクトyに
対してselect関数を実行させ、その戻り値を自オブジェ
クトの戻り値としてコール元に戻る。そのようなオブジ
ェクトyが存在しない場合は、戻り値を「φ(φは空の
意味)」としてコール元に戻る。」と定義されている。
このため、オブジェクト2004’がオブジェクト20
04’のselect関数を実行する。ところが、オブジェク
ト2004’のselect関数は未定義であるので、結果と
してデフォルトselect関数が実行される。デフォルトse
lect関数は「自オブジェクトを戻り値としてコール元に
戻る。」と定義されているため、オブジェクト2004
を戻り値としてコール元に戻る。したがって、内部オブ
ジェクト2005が選択されることはない。 オブジェクト2004が建物オブジェクト2002の
内部、かつ部屋オブジェクト2003の内部の場合(2
004’'の位置) 建物オブジェクト2002のselect関数は「自オブジェ
クトの内部(後方)に存在する直後のオブジェクトyに
対してselect関数を実行させ、その戻り値を自オブジェ
クトの戻り値としてコール元に戻る。そのようなオブジ
ェクトyが存在しない場合は、戻り値を「φ」としてコ
ール元に戻る。」と定義されている。このため、部屋オ
ブジェクト2003は建物オブジェクト2002の指示
によって部屋オブジェクト2003のselect関数を実行
する。ところが、部屋オブジェクト2003のselect関
数は「自オブジェクトを含め、自オブジェクトの内部
(後方)に存在するオブジェクトのうち、マウスカーソ
ル位置に最も近い頂点を持つオブジェクト名を戻り値と
してコール元に戻る。」と定義されているため、オブジ
ェクト2005''を戻り値としてコール元に戻る。結果
として、この場合、内部オブジェクト2005’’が選
択される。このように、オブジェクトの存在環境によっ
て選択可能になったり、選択不可能になるといったイン
タフェースを実現することができる。
【0066】以上は典型的な被選択基準の例であるが、
その他に以下に説明するような被選択基準を定義するこ
とができる。図21は、respondent関数の他の定義例を
説明するための図であり、視点Eとイベント発生位置P
1とを結ぶ直線L1がオブジェクト2102,2103
の領域と交わらなくても透過しなくても、あるいは交わ
って透過してもこのオブジェクト2102,2103に
定義された反応領域2101、2104と交わること
で、選択候補オブジェクトとして抽出し、登録する例を
示している。ここで、反応領域2101は、3次元オブ
ジェクト(1)2101の大きさよりも「+10」という
値で表される距離だけ拡大した領域に定義され、また反
応領域2104は3次元オブジェクト(2)2103の
中心から「50」という半径の値で表される球状領域に
定義されている。この定義は図22、図23で示すresp
ondent関数の処理によって定義される。
【0067】図22は、図21の3次元オブジェクト
(1)2101に対して定義したrespondent関数の例を
示すフローチャートである。初めに、自オブジェクトの
領域に対して、その領域を例えば「+10」という値で
与えられる距離だけ外側に拡大した領域を反応領域とす
る(ステップ2201)。次に、視点Eと選択操作イベ
ントeの発生位置とを結ぶ直線L1が反応領域と交わっ
ているかどうかを判定し(ステップ2202)、交わっ
ている場合はtrueを返却し(ステップ2203)、交わ
らない場合はfalseを返却し(ステップ2204)、処
理を終了する。
【0068】図23は、図21の3次元オブジェクト
(2)2103に対して定義したrespondent関数の例を
示すフローチャートである。初めに、自オブジェクトの
領域の中心から例えば半径「50」という値で表される
球領域を反応領域とする(ステップ2301)。次に、
視点Eと選択操作イベントeの発生位置P1とを結ぶ直
線L1が反応領域と交わっているかどうかを判定し(ス
テップ2302)、交わっている場合はtrueを返却し
(ステップ2303)、交わらない場合はfalseを返却
し(ステップ2304)、処理を終了する。
【0069】このようにして、3次元オブジェクトの選
択操作イベントに対し、自オブジェクトが反応するか否
かの領域を拡大または縮小方向に定義したrespondent関
数をあるオブジェクトに実行させることにより、視点E
と選択操作イベントeの発生位置とを結ぶ直線L1に交
差しない場合や、オブジェクト本体の中心近傍で交叉す
る場合についてのみ選択候補として抽出し、選択対象に
することができる。これは、直線L1に交差しない場合
であっても、定期的に膨張と収縮を繰り返して外形形状
が変化しているような3次元オブジェクトを選択候補と
して抽出する場合に適用することができる。また、中心
近傍部分のみが3次元オブジェクトとしての実効的な機
能を表している場合に、その3次元オブジェクトを選択
候補として抽出する場合に適用することができる。
【0070】図24は、3次元オブジェクトの共通属性
項目中に選択可能フラグを付加し、この選択可能フラグ
がonになっているか、offになっているかどうかで
選択候補とするかを決める場合の3次元オブジェクトの
例を示すものであり、ここでは、3次元オブジェクト
(1)2401と3次元オブジェクト(3)2403の
選択可能フラグはoff,中間位置の3次元オブジェク
ト(2)2402の選択可能フラグはonになっている
ことを示している。
【0071】図25は、選択可能フラグがonになって
いるか、offになっているかどうかで選択候補とする
かを決める場合のrespondent関数を定義した例を示すフ
ローチャートである。まず、自オブジェクトの選択可能
フラグ(sensibleフラグ)がonになっているかどうか
を判定し(ステップ2501)、offならばfalseを
返す(ステップ2503)。しかし、onになっていた
場合は、視点Eと選択操作イベントeの発生位置P1と
を結ぶ直線が自オブジェクトと交わっているかどうかを
判定し(ステップ2502)、交わっている場合はtrue
を返却し(ステップ2504)、交わらない場合はfals
eを返却し(ステップ2503)、処理を終了する。こ
れにより、図24の例では、中間位置の3次元オブジェ
クト(2)2402が選択候補として抽出される。
【0072】以上のように本実施形態によれば、3次元
オブジェクト自体に、自オブジェクトが選択対象とされ
るか否かの被選択基準を関数として保持させ、マウス操
作による選択操作イベントの発生時に、この関数を実行
させ、その実行結果によって最終的に操作対象となるオ
ブジェクトを決定するようにしたため、建物の内部と外
部とで各3次元オブジェクトを選択可能または選択でき
ないようにするといった異なるユーザインタフェースを
実現することができる。すなわち、3次元オブジェクト
側が主導権を持って多様なユーザインタフェースを提供
することができ、アプリケーション側では被選択基準で
選択候補に挙がった3次元オブジェクトのうち例えば最
も視点側に近いオブジェクトを選択するといった簡単な
ロジックを持たせるだけで済むという効果が得られる。
【0073】なお、実施形態では、視点Eに最も近いオ
ブジェクトを選択候補群の中から選択するようにしてい
るが、手前から見て2番目、3番目といった選択条件に
したり、最も奥行きに存在するオブジェクトといった選
択条件にすることができることは言うまでもない。
【0074】ところで、以上の実施例において、イベン
トディスパッチャ605bに対しては常に1つのオブジ
ェクト名が返却されるように構成しているが、複数のオ
ブジェクト名を返却し、イベントディスパッチャ605
bでの独自の選択条件にしたがって、操作対象とするオ
ブジェクトを決定するように構成することができる。以
下、この方法について説明する。
【0075】図26(a),(b)は、視点Eとイベン
ト発生位置P1を通る直線と交点を持つオブジェクト群
の内、全ての選択候補オブジェクト群を最終的な選択オ
ブジェクト群とする場合のオブジェクトの例を示す図で
あり、図27(a),(b)は選択候補オブジェクト群
の中で不透明なオブジェクトのみを選択オブジェクト群
とする場合の例を示す図である。なお、図26(a)と
図27(a)は同じオブジェクト配置を表しており、3
次元オブジェクト(1)x01は不透明、3次元オブジ
ェクト(2)x02は透明、3次元オブジェクト(3)
x03は不透明、3次元オブジェクト(4)x04は不
透明、3次元オブジェクト(5)x05は透明、3次元
オブジェクト(6)x06は不透明である例を示してい
る。例えば図26(a)において、3次元オブジェクト
x01、x02、x03、x04、x05、x06が視
点Eとイベント発生位置P1を通る直線により交わると
する。この時、x01、x03、x04、x06は不透
明、x02、x05は透明であり、不透明であるx0
1、x03、x04、x06を選択オブジェクトとする
場合を考える。
【0076】図28に示すイベントディスパッチャ60
5bは、複数のオブジェクトを選択オブジェクトとする
実施形態のイベントディスパッチャである。図8のイベ
ントディスパッチャ605bの処理においては、ステッ
プ803で最も手前の選択候補aについてa.select関
数を実行すると、選択候補群中の選択対象となり得るオ
ブジェクト群が取得、ステップ804において前記ステ
ップ802で取得された優先選択オブジェクトxとの位
置関係を比較するが、図28に示すイベントディスパッ
チャ605bは、ステップ2804に示すように、オブ
ジェクト群y中のオブジェクトの中で、xより手前のオ
ブジェクト群及びxの和集合を選択オブジェクト群とし
て返却するようにしている。なお、図28において、ス
テップ2801〜2802は、図8のステップ801〜
802に相当する。
【0077】さらに、図26における各オブジェクトの
respondent関数、preselect関数、select関数は未定義
であり、システムデフォルトのrespondent関数、presel
ect関数、select関数は次のとおりとする。システムの
デフォルトrespondent関数は、図29(a)に示すよう
に、視点とイベントeの発生位置を結ぶ直線がオブジェ
クトを透過するかを判定し(ステップ2901)、透過
するならばtrueを戻り値としてコール元に戻り(ステッ
プ2902)、透過しないならばfalseを戻り値として
コール元に戻る(ステップ2903)。また、システム
のデフォルトpreselect関数は、図29(b)に示すよ
うに、選択候補オブジェクト群内に次の候補オブジェク
トyが存在するかを判定し(ステップ2904)、存在
するならばtrueを戻り値としてコール元に戻り(ステッ
プ2905)、存在しないならばφを戻り値としてコー
ル元に戻る(ステップ2906)。これにより、図2
6、図27の例では全てのオブジェクトが選択候補オブ
ジェクトとなってselect関数の実行に移る。
【0078】さらに、システムのデフォルトselect関数
を、図30に示すように、自オブジェクト及び自オブジ
ェクトより外後方にある全ての選択候補群オブジェクト
を返却するようにしておく。
【0079】すなわち、図30のデフォルトselect関数
は、選択候補オブジェクト群内に自オブジェクトの次候
補オブジェクトyが存在する場合には(ステップ300
1)、次候補オブジェクトyのselect関数を実行させ
(ステップ3002)、その結果をlとする。そして、
lに自オブジェクト名を付加し(ステップ3004)、
lをコール元に戻す(ステップ3005)。しかし、自
オブジェクトの次候補がない(すなわち自分が一番奥)場
合には、集合lを空集合とする(ステップ3003)。
したがって、図26の例では、図26(b)に示すよう
に、最も奥側のオブジェクトx06がコール元に戻る際
に、l={x06}を戻り値として返し、その前のオブ
ジェクトx05がl={x05、x06}を返し、その
前のx04がl=が{x04、x05、x06}を返す
といった具合にして、各オブジェクトx06〜x01が
自オブジェクトの奥側に包含しているオブジェクト名を
順次返す。これにより、全ての選択候補オブジェクトx
01〜x06を選択対象オブジェクトとして取得するこ
とができる。
【0080】さらに、図27における不透明オブジェク
ト群のみを選択対象オブジェクト群とする場合において
は、デフォルトselect関数を図31に示すとおりとし、
その他は図26と同一とすればよい。図31のデフォル
トselect関数は、選択候補オブジェクト群内に自オブジ
ェクトの次候補オブジェクトyが存在する場合には(ス
テップ3101)、次候補オブジェクトyのselect関数
を実行させ(ステップ3102)、その結果をlとす
る。そして、自オブジェクトが不透明オブジェクトであ
るかを判定し(ステップ3104)、不透明オブジェク
トであれば、lに自オブジェクト名を付加し(ステップ
3105)、lをコール元に戻す(ステップ310
6)。しかし、自オブジェクトの次候補がない(すなわ
ち自分が一番奥)の場合には、集合lを空集合とする(ス
テップ3103)。また、不透明オブジェクトでなけれ
ば、lに自オブジェクト命を付加せずにコール元へ戻
る。
【0081】したがって、図27の例では、図27
(b)に示すように、最も奥側のオブジェクトx06が
コール元に戻る際に、l={x06}を戻り値としてx
05に返し、x05は自オブジェクト名を付加せずにl
={x06}をx04に返す。x04は不透明オブジェ
クトであるため、自オブジェクト名を付加し、l={x
04、x06}をx03に返す。また、x03も不透明
オブジェクトであるため、自オブジェクト名を付加し、
l={x03、x04、x06}をx02に返す。x0
2は透明オブジェクトであるため、自オブジェクト名を
付加せずにl={x03、x04、x06}をx01に
返す。x01は不透明オブジェクトであるため、自オブ
ジェクト名を付加し、l={x01、x03、x04、
x06}をイベントディスパッチャ605bに返す。こ
れにより、オブジェクトx01、x03、x04、x0
6を選択対象オブジェクトとして取得できる。このよう
に、イベントディスパッチャ605bでは、その選択候
補オブジェクト群の中のいずれか1つまたは複数をイベ
ントディスパッチャ605b独自の選択基準によって選
択することが可能になる。
【0082】次に、以上のような被選択基準で選択する
際に、ユーザが目的とするオブジェクトを容易に指定で
きるように支援する本発明の第2の実施形態について説
明する。図32は、2次元/3次元グラフィックスアプ
リケーションにおけるオブジェクトの表示例を示す図で
あり、同図(a)は、3次元グラフィックスアプリケー
ションにおいて、立方体オブジェクト3201が球オブ
ジェクト3202を内包し、共に不透明である場合に
は、ユーザからは3201しか見ることが出来ない状態
を示すものである。また、同図(b)は、2次元グラフ
ィックスアプリケーションにおいて、テキストオブジェ
クト3203が、自分より小さな大きさの色台紙部品オ
ブジェクト3204の上に重なり、色つきの背景の上に
文字「ABCD」が書かれている様に見えている様子を
示すものであり、同図(c)はこれを立体的に見た図で
ある。このような例において、球オブジェクト3202
を操作対象に選択しようとした場合、この球オブジェク
ト3202が立方体オブジェクト3201の中に隠蔽さ
れているため、立方体オブジェクト3201が不透明で
ある限り、球オブジェクト3202を選択することがで
きない。また、テキストオブジェクト3203の背景色
を変えるために、色台紙部品オブジェクト3204を選
択しようとしても、色台紙部品オブジェクト3204の
上に自分より大きなサイズのテキストオブジェクト32
03が重なっているため、色台紙部品オブジェクト32
04を選択することができない。
【0083】ちなみに従来においては、色台紙部品オブ
ジェクト3204の色を変える場合、まず、テキストオ
ブジェクト3203を色台紙部品オブジェクト3204
の一部が見えるような位置まで移動させた後、色台紙部
品オブジェクト3204を選択するという操作が行われ
ていた。しかし、このような手続きをその都度行うので
は目的とするオブジェクトを選択するまでの操作が極め
て煩雑になり、作業効率が低下する。本実施形態は、こ
のように場合におけるオブジェクトの選択操作を容易に
するための制御方法を提示するものである。
【0084】図33は、本実施形態におけるオブジェク
トの構成およびグローバルメモリ領域に予め保持される
各種の関数の例を示す図である。ここでは、オブジェク
トの選択操作を容易にするための制御方法を実現するの
に必要な要素のみを図示し、先の実施形態で説明した要
素は図示を省略している。また、ハードウェア構成につ
いては、図6の構成を前提とする。図33において、グ
ローバルメモリ領域701には、システムの選択操作支
援用関数であるselect関数、showCurrent関数、determi
ne関数、previous関数、next関数、highlight関数をそ
れぞれ保持する領域711〜716が設けられている。
なお、以降でいうselect関数とは、選択操作支援用関数
のselect関数である。また、showCurrent関数とは、選
択候補として着目しているオブジェクト(以下カレント
オブジェクト)の見え方(表示態様)を規定する関数で
ある。また、determine関数とは、カレントオブジェク
トを選択する確定操作が行われたかどうかを判定する関
数である。また、previous関数とは、現在注目している
カレントオブジェクトの前のカレントオブジェクトに選
択候補を戻すための操作が行われたかどうかを判定する
関数である。また、next関数とは、現在注目しているカ
レントオブジェクトの次のオブジェクトにカレントオブ
ジェクトを移すための操作が行われたかどうかを判定す
る関数である。また、highlight関数とは、カレントオ
ブジェクトを明示するために、ハイライト表示に切換え
る関数である。このhighlight関数はshowCurrent関数か
ら呼ばれて実行される。
【0085】図34は、オペレーティングシステム60
5aから起動されるイベントディスパッチャ605bの
処理を示すフローチャートである。まず、マウスイベン
トeが発生すると、図8で説明したのと同様にして、視
点Eとマウスカーソル位置P1とを結ぶ直線L1が透過
するオブジェクトを選択候補オブジェクト群を抽出する
(ステップ3401)。次に、見えているオブジェクトの
全てを半透明表示に切換える(ステップ3402)。こ
れにより、他のオブジェクトにより隠されていたオブジ
ェクトも全て明示される。次に、select関数を実行し、
選択候補オブジェクト群の中から最終的な選択オブジェ
クトを決定する(ステップ3403)。この決定の際に
は、showCurrent関数等によって目的とするオブジェク
トが選択しやすいようなユーザインタフェースが提供さ
れる。このことについては、後述する。次に、選択対象
のオブジェクトが決定されたならば、ステップ3402
で行った全ての選択候補オブジェクトの半透明表示を解
除して(ステップ3404)、終了する(ステップ340
5)。
【0086】図35は、選択候補オブジェクト群を取得
する処理(ステップ3401)の詳細を示すフローチャ
ートである。まず、選択候補オブジェクト群保持領域7
07を空にする(ステップ3511)。そして、ステッ
プ3512と3516で形成される処理すなわち、画面
に表示されている全オブジェクトに対して直線L1が自
オブジェクトを透過するか否かの報告を求める。これ
は、各オブジェクトに対してrespondent関数の実行を指
示することによって行われる(ステップ3513)。イ
ベントディスパッチャ605bは、自オブジェクトに対
してrespondent関数を実行した各オブジェクトからの応
答をチェックし(ステップ3514)、true応答をした
オブジェクトを選択候補オブジェクト群保持領域707
に追加する(ステップ3515)。そして、最終的に選択
候補群保持領域707に保持された選択候補群のオブジ
ェクトを視点Eに最も近いものから並べ替えるソート処
理を行う(ステップ3517)。
【0087】図36は、select関数の処理手順を示すフ
ローチャートである。まず、変数pに最も手前の選択候
補オブジェクト名を代入する(ステップ3601)。次
に、カレントオブジェクトを明示するための関数showCu
rrent(p)を実行する(ステップ3602)。この関数sh
owCurrent(p)は、図37(a)に示すように、変数pを
引数として図37(b)に示すhighlight関数に処理を
渡す(ステップ3701)。highlight関数の処理で
は、変数pで与えられた選択候補オブジェクトのワイヤ
フレームをハイライト表示に切換えた後(ステップ37
02)、highlight関数に処理に戻るように定義されて
いる。ここで、ハイライト表示は、例えば、オブジェク
ト自身の色の補色でワイヤフレームを表示することによ
って他のオブジェクトと明瞭に区別可能なようにする。
したがって、最初の段階では選択候補オブジェクトとし
て抽出されたオブジェクトのうち最も手前の候補オブジ
ェクトがハイライト表示される。
【0088】次に、関数determineを実行し(ステップ
3603)、trueが返却されたかどうかを判定し(ステ
ップ3604)、trueが返却された場合、オブジェクト
pを選択オブジェクトとし、処理を終了する(ステップ
3605)。関数determineは、例えば、図38(a)
に示すように、入力キーがリターンキーであるかを判定
し(ステップ3801)、リターンキーであれば戻り値
としてtrueをコール元に返し、そうでない場合にはfals
eをコール元に返すように定義されている。したがっ
て、最も手前の候補オブジェクトがハイライト表示され
ている状態で、リターンキーが操作された場合には、最
も手前の候補オブジェクトが選択対象として決定され
る。リターンキーが操作されなかった場合、その後、関
数nextを実行する(ステップ3606)。
【0089】この関数nextは、例えば、図38(b)に
示すように、マウスボタンがクリックされたかを判定し
(ステップ3811)、クリックされたならば戻り値と
してtrueをコール元に返し(ステップ3812)、そう
でない場合にはfalseをコール元に返す(ステップ38
13)ように定義されている。select関数では、関数ne
xtの戻り値がtrueであるかどうかを判定し(ステップ3
607)、trueならば、選択候補オブジェクト群内に次
の候補オブジェクトyが存在するかどうかを判定し(ス
テップ3608)、存在するならば、変数pに次の候補
オブジェクトyのオブジェクト名を代入し(ステップ3
609)、関数showCurrent(p)を実行する(ステップ3
614)。したがって、最も手前の候補オブジェクトが
ハイライト表示されている状態で、マウスボタンがクリ
ック操作された場合には、最も手前の1つ奥側に存在す
る候補オブジェクトがハイライト表示される。
【0090】一方、select関数では、関数nextの戻り値
がfalse であった場合には(ステップ3607)、関数
previousを実行する(ステップ3610)。この関数pr
eviousは、例えば、図38(c)に示すように、シフト
キーと同時にマウスボタンがクリックされたかを判定し
(ステップ3821)、同時操作ならば戻り値としてtr
ueをコール元に返し(ステップ3822)、そうでない
場合にはfalseをコール元に返す(ステップ3823)
ように定義されている。select関数では、関数previous
の戻り値がtrueであるかどうかを判定し(ステップ36
11、trueならば、選択候補オブジェクト群内に前の候
補オブジェクトz(前方に位置するオブジェクト)が存
在するかどうかを判定し(ステップ3612)、存在す
るならば、変数pに前候補オブジェクトzのオブジェク
ト名を代入し(ステップ3613)、関数showCurrent
(p)を実行する(ステップ3614)。したがって、視
点から見て例えば2番目に位置する候補オブジェクトが
ハイライト表示されている状態で、シフトキーとマウス
ボタンの同時操作が行われた場合には、最も手前の候補
オブジェクトがハイライト表示される。
【0091】図39は、選択候補オブジェクトが複数存
在する状態の例を示す図であり、同図(a)は3次元オ
ブジェクト、(b)は2次元オブジェクトのそれぞれ表
示例である。図39(a)の状態では、立方体オブジェ
クト3901の内部に円柱形オブジェクト3902が存
在し、さらにその内部に球形オブジェクト3903が存
在している例を示している。また、図39(b)の状態
では、外側の長方形オブジェクト3911の上に楕円形
オブジェクト3912が乗っており、さらにその上に内
側の長方形オブジェクト3913が乗っている状態を示
している。
【0092】図40は、図39の各オブジェクトの奥行
き方向の位置関係を明らかにするために、各オブジェク
トを上方から見た状態を示す図である。このような例に
おいて、手前から見て2番目に位置する円柱形オブジェ
クト3902または楕円形オブジェクト3912を選択
したい場合、まず、図39(a)のP1または図39
(b)のP1で示す位置でマウスイベントeを発生させ
る。すると、図34の選択候補オブジェクトの取得処理
で図39(a)の各オブジェクト3901〜3903ま
たは3911〜3913が選択候補オブジェクトとして
取得される。次に、図34のステップ3402の処理で
選択候補オブジェクトの全てが半透明化される。これに
より、立方体オブジェクト3901が不透明であったと
しても、立方体オブジェクト3901の内部に隠蔽され
ていた円柱形オブジェクト3902が見えるようにな
る。さらに円柱形オブジェクト3902が不透明であっ
たとしても、円柱形オブジェクト3902の内部に隠蔽
されていた球形オブジェクト3903も見えるようにな
る。同様に、長方形オブジェクト3913が不透明であ
ったとしても、長方形オブジェクト3913の内部に隠
蔽されていた楕円形オブジェクト3912が見えるよう
になる。この時、最も手前に位置する立方体オブジェク
ト3901または長方形オブジェクト3913がカレン
トオブジェクトとしてハイライト表示される。
【0093】この状態で、そこで、マウスボタンのクリ
ック操作を行うと、図36のステップ3606〜360
9,3614の処理により、図41に示すように、円柱
形オブジェクト3902または楕円形オブジェクト39
12がカレントオブジェクトとしてハイライト表示され
る。この状態で、さらにマウスボタンのクリック操作を
行うと、図36のステップ3606〜3609,361
4の処理により、球状オブジェクト3903または長方
形オブジェクト3911(最も下層のオブジェクト)が
カレントオブジェクトとしてハイライト表示される。
【0094】最も奥側の球状オブジェクト3903また
は最も下層の長方形オブジェクト3911をハイライト
表示させている状態で、シフトキーとマウスクリック操
作を同時に行うと、図36のステップ3611〜361
4の処理により、カレントオブジェクトが円柱形オブジ
ェクト3902または楕円形オブジェクト3912とな
り、ハイライト表示される。この状態で、リターンキー
を操作すると、ステップ3604の処理により、円柱形
オブジェクト3902または楕円形オブジェクト391
2が選択対象のオブジェクトとして確定される。
【0095】選択対象のオブジェクトとして確定された
後は、図34のステップ3404の処理により、半透明
化されていた全てのオブジェクトはそれぞれ固有の透明
度による表示に戻る。
【0096】図42は上記のようにして選択候補オブジ
ェクト群中のカレントオブジェクトを明示する場合のsh
owCurrent関数の他の定義例を示すフローチャートであ
る。ここでは、カレントオブジェクトを指定する変数p
が渡されると、マウスカーソル近辺にpの番号を表示す
る処理を行い(ステップ4201)、次にそのカレント
オブジェクトをハイライト表示し(ステップ420
2)、この後にコール元に戻る(ステップ4203)こ
とが定義されている。したがって、図39の例のオブジ
ェクトに対し、このように定義されたshowCurrent関数
を実行させた場合、カレントオブジェクトが円柱形オブ
ジェクト3902または楕円形オブジェクト3912と
なっていた状態では、図43(a),(b)に示すよう
に、マウスカーソル記号4301の近辺に手前から見て
2番目のオブジェクトがカレントオブジェクトであるこ
とを示す番号4302(この例では)が表示される。
これにより、奥行き方向の位置が不明の場合であって
も、奥行き方向の位置を明示することができる。
【0097】図44は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、マ
ウスカーソル近辺にpの形状を模式的に表示する処理を
行い(ステップ4401)、次にそのカレントオブジェ
クトをハイライト表示し(ステップ4402)、この後
にコール元に戻る(ステップ4403)ことが定義され
ている。したがって、図39の例のオブジェクトに対
し、このように定義されたshowCurrent関数を実行させ
た場合、カレントオブジェクトが円柱形オブジェクト3
902または楕円形オブジェクト3912となっていた
状態では、図45(a),(b)に示すように、マウス
カーソル記号4501の近辺に当該カレントオブジェク
トの形状4502が模式的に表示される。これにより、
全体的な形状が不明の場合であっても、カレントオブジ
ェクトがどのオブジェクトであるかの把握が容易とな
る。
【0098】図46は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、マ
ウスカーソル近辺にpの色を模式的に表示する処理を行
い(ステップ4601)、次にそのカレントオブジェク
トをハイライト表示し(ステップ4602)、この後に
コール元に戻る(ステップ4603)ことが定義されて
いる。したがって、図39の例のオブジェクトに対し、
このように定義されたshowCurrent関数を実行させた場
合、カレントオブジェクトが円柱形オブジェクト390
2または楕円形オブジェクト3912となっていた状態
では、図47(a),(b)に示すように、マウスカー
ソル記号4701の近辺に当該カレントオブジェクトの
色4702が表示される。これにより、形状が小さすぎ
て色が不明の場合であっても、カレントオブジェクトが
どのオブジェクトであるかの把握が容易となる。
【0099】図48は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、マ
ウスカーソルの形状そのものをpの形状に変化させる処
理を行い(ステップ4801)、次にそのカレントオブ
ジェクトをハイライト表示し(ステップ4802)、こ
の後にコール元に戻る(ステップ4803)ことが定義
されている。したがって、図39の例のオブジェクトに
対し、このように定義されたshowCurrent関数を実行さ
せた場合、カレントオブジェクトが円柱形オブジェクト
3902または楕円形オブジェクト3912となってい
た状態では、図49(a),(b)に示すように、マウ
スカーソル記号4901自体がカレントオブジェクトの
形状で表示される。これにより、カレントオブジェクト
がどのオブジェクトであるかの把握が容易となる。
【0100】図50は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、マ
ウスカーソル自体の色をpの色に変化させ処理を行い
(ステップ5001)、次にそのカレントオブジェクト
をハイライト表示し(ステップ5002)、この後にコ
ール元に戻る(ステップ5003)ことが定義されてい
る。したがって、図39の例のオブジェクトに対し、こ
のように定義されたshowCurrent関数を実行させた場
合、カレントオブジェクトが円柱形オブジェクト390
2または楕円形オブジェクト3912となっていた状態
では、図51(a),(b)に示すように、マウスカー
ソル記号5101の色が当該カレントオブジェクトの色
で表示される。これにより、形状が小さすぎて色が不明
の場合であっても、カレントオブジェクトがどのオブジ
ェクトであるかの把握が容易となる。
【0101】図52は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、選
択候補オブジェクト群中におけるpに対応するカレント
オブジェクトより手前のオブジェクトを透明に変える処
理を行い(ステップ5201)、次にそのカレントオブ
ジェクトをハイライト表示し(ステップ5202)、こ
の後にコール元に戻る(ステップ5203)ことが定義
されている。したがって、図39の例のオブジェクトに
対し、このように定義されたshowCurrent関数を実行さ
せた場合、カレントオブジェクトが円柱形オブジェクト
3902または楕円形オブジェクト3912となってい
た状態では、図53(a),(b)に示すように、立方
体オブジェクト3901、長方形オブジェクト3913
が透明になって表示される。これにより、カレントオブ
ジェクトがさらに確認し易くなる。
【0102】図54は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、選
択候補オブジェクト群中におけるpに対応するカレント
オブジェクトより手前のオブジェクトをワイヤフレーム
表示に変える処理を行い(ステップ5401)、次にそ
のカレントオブジェクトをハイライト表示し(ステップ
5402)、この後にコール元に戻る(ステップ540
3)ことが定義されている。したがって、図39の例の
オブジェクトに対し、このように定義されたshowCurren
t関数を実行させた場合、カレントオブジェクトが円柱
形オブジェクト3902または楕円形オブジェクト39
12となっていた状態では、図55(a),(b)に示
すように、立方体オブジェクト3901、長方形オブジ
ェクト3913がワイヤフレーム形式で表示される。な
お、図55においては、ワイヤフレーム表示であること
を太実線で示している。これにより、カレントオブジェ
クトとその手前のオブジェクトがさらに確認し易くな
る。
【0103】図56は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、選
択候補オブジェクト群中におけるpに対応するカレント
オブジェクトを最も手前にあるかのように表示する処理
を行い(ステップ5601)、次にそのカレントオブジ
ェクトをハイライト表示し(ステップ5602)、この
後にコール元に戻る(ステップ5603)ことが定義さ
れている。したがって、図39の例のオブジェクトに対
し、このように定義されたshowCurrent関数を実行させ
た場合、カレントオブジェクトが円柱形オブジェクト3
902または楕円形オブジェクト3912となっていた
状態では、図57(a),(b)に示すように、円筒形
オブジェクト3903、楕円オブジェクト3912が太
実線で示すように最も手前にあるかのように表示され
る。この場合、最も手前にあるかのように表示するに
は、手前のオブジェクトによる当該オブジェクトのクリ
ッピング処理を省けばよい。これにより、カレントオブ
ジェクトがさらに確認し易くなる。
【0104】図59は選択候補オブジェクト群中のカレ
ントオブジェクトを明示する場合のshowCurrent関数の
他の定義例を示すフローチャートである。ここでは、カ
レントオブジェクトを指定する変数pが渡されると、図
58に示すように、選択候補オブジェクト群中における
pに対応するカレントオブジェクトの直前に視点Eを移
動させる処理を行い(ステップ5901)、次にそのカ
レントオブジェクトをハイライト表示し(ステップ59
02)、この後にコール元に戻る(ステップ5903)
ことが定義されている。したがって、図39の例のオブ
ジェクトに対し、このように定義されたshowCurrent関
数を実行させた場合、カレントオブジェクトが円柱形オ
ブジェクト3902または楕円形オブジェクト3912
となっていた状態では、図60(a),(b)に示すよ
うに、円筒形オブジェクト3903、楕円オブジェクト
3912の手前に存在した立方体オブジェクト3901
および長方形オブジェクト3912は視界から消えたよ
うに表示される。これにより、カレントオブジェクトを
さらに確認し易くなる。
【0105】図61(a),(b),(c)はdetermin
e関数、next関数、previous関数の他の定義例を示すフ
ローチャートである。同図(a)のdetermine関数の処
理手順では、マウスボタンが離されたかどうかを判定し
(ステップ6101)、離されたならばtrueを返し(ス
テップ6102)、離されていなければfalseを返却す
る(ステップ6103)ことが定義されている。これに
より、マウスボタンを離した時点におけるカレントオブ
ジェクトを選択対象オブジェクトに決定することができ
る。
【0106】同図(b)のnext関数の処理手順では、マ
ウスボタンが押下されているかどうかを判定し(ステッ
プ6104)、押下されているならばtrueを返し(ステ
ップ6105)、押下されていなければfalseを返却す
る(ステップ6106)ことが定義されている。これに
より、マウスボタンを押下した時点におけるカレントオ
ブジェクトを次の候補オブジェクトに切換えることがで
きる。
【0107】同図(c)のprevious関数の処理手順で
は、シフトキーと同時にマウスボタンが押下されたかど
うかを判定し(ステップ6107)、押下されているな
らばtrueを返し(ステップ6108)、押下されていな
ければfalseを返却する(ステップ6109)ことが定
義されている。これにより、マウスボタンを押下した時
点におけるカレントオブジェクトをその手前のオブジェ
クトに切換えることができる。
【0108】図62(a),(b),(c)はdetermin
e関数、next関数、previous関数の他の定義例を示すフ
ローチャートである。同図(a)のdetermine関数の処
理手順では、マウスボタンがクリックされたかどうかを
判定し(ステップ6201)、クリックされたならばtr
ueを返し(ステップ6202)、クリックされなければ
falseを返却する(ステップ6203)ことが定義され
ている。これにより、マウスボタンをクリックたタイミ
ングのカレントオブジェクトを選択対象オブジェクトに
決定することができる。
【0109】同図(b)のnext関数の処理手順では、上
向き矢印キーが押下されたかどうかを判定し(ステップ
6204)、押下されたならばtrueを返し(ステップ6
205)、押下されなければfalseを返却する(ステッ
プ6206)ことが定義されている。これにより、上向
き矢印キーを押下したタイミングでカレントオブジェク
トを次の候補オブジェクトに切換えることができる。
【0110】同図(c)のprevious関数の処理手順で
は、下向き矢印キーが押下されたかどうかを判定し(ス
テップ6207)、押下されたならばtrueを返し(ステ
ップ6208)、押下されなければfalseを返却する
(ステップ6209)ことが定義されている。これによ
り、下向き矢印キーを押下したタイミングでカレントオ
ブジェクトをその手前のオブジェクトに切換えることが
できる。
【0111】なお、選択対象オブジェクトを決定する際
の契機となるキーあるいはマウス操作は、上記の例に限
定されるものではなく、ユーザの操作がさらにし易いキ
ーを採用することができる。また、ユーザ自身が独自の
キーを割当てるようにすることも可能である。
【0112】
【発明の効果】以上説明したように、本発明によれば、
2次元または3次元オブジェクト自体に、自オブジェク
トが選択対象とされるか否かの被選択基準を保持させ、
ポインティング操作による選択操作イベントの発生時
に、この被選択基準に従って最終的に操作対象となるオ
ブジェクトを決定するようにしたため、オブジェクト側
が主導権を持って多様なユーザインタフェースを提供す
ることができ、建物の内部と外部とで各オブジェクトを
選択可能または選択できないようにするといった操作環
境を実現することができる。換言すれば、オブジェクト
対応に当該オブジェクトの選択属性を与えておき、当該
属性を変更することによって、イベントディスパッチャ
のプログラムロジックを変更しなくとも、当該オブジェ
クトに任意の選択属性を持たせることができる。また、
アプリケーション側では被選択基準で選択候補に挙がっ
たオブジェクトのうち例えば最も視点側に近いオブジェ
クトを選択するといった簡単なロジックを持たせるだけ
で済むという効果が得られる。さらに、選択候補オブジ
ェクト群の中から1つのオブジェクトを選択する際に、
選択候補オブジェクト自体の表示態様を変化させること
により、選択対象を容易に選択することができるように
なる。
【図面の簡単な説明】
【図1】本発明に係る3次元オブジェクトの生成手順を
示す概略フロー図である。
【図2】ローカル座標系、ワールド座標系、投影面座標
系の説明図である。
【図3】3次元オブジェクトを表示装置画面に表示する
際に設定する投影面と後平面の位置D1,D2の説明図
である。
【図4】被選択基準の説明図である。
【図5】本発明における3次元オブジェクトに設定され
る関数の例を示す図である。
【図6】本発明に係る3次元オブジェクトの選択制御方
法を実現するシステムの一実施形態を示す全体構成図で
ある。
【図7】本発明で用いられるアプリケーション例におけ
る3次元オブジェクトの概念図である。
【図8】オペレーティングシステムから起動されるディ
スパッチャプログラムの処理を示すフローチャートであ
る。
【図9】図8におけるステップ801の選択候補群取得
関数を実行する処理の詳細を示すフローチャートであ
る。
【図10】本発明のオブジェクト選択制御方法を説明す
るための3次元オブジェクトの配置例を示す説明図であ
る。
【図11】図10の各オブジェクトに保持されたrespon
dent関数の例とその実行結果の例を示す説明図である。
【図12】図10の各オブジェクトの最上位クラスのオ
ブジェクトに保持されたrespondent関数、preselect関
数、select関数の定義例を示すフローチャートである。
【図13】各オブジェクトに関数が定義されている場合
と定義されていない場合に実行される処理の関係を示す
説明図である。
【図14】透明または半透明オブジェクトを選択させな
い場合のオブジェクトの配置例を示す説明図である。
【図15】透明または半透明オブジェクトを選択させな
い場合のselect関数の定義例を示す説明図である。
【図16】最上位クラスのselect関数、respondent関
数、preselect関数の定義例を示すフローチャートであ
る。
【図17】自オブジェクトより後方のオブジェクトが選
択させないブロックオブジェクトにおけるselect関数、
preselect関数の定義例を示すフローチャートである。
【図18】選択候補オブジェクト群中でマウスイベント
発生位置に最も近いオブジェクトを選択する際のselect
関数の定義例を示すフローチャートである。
【図19】選択候補オブジェクト群中でマウスイベント
発生位置に最も近いオブジェクトを選択するselect関数
の適用例を示す説明図である。
【図20】オブジェクトが包含関係にある場合のオブジ
ェクトの配置例を示す図である。
【図21】視点とイベント発生位置とを結ぶ直線がオブ
ジェクトの領域と交わらなくても、respondent関数で再
定義された反応領域と交わる場合は選択候補オブジェク
トとして抽出する例を示す説明図である。
【図22】自オブジェクトの大きさよりも拡大した領域
を反応領域して定義するrespondent関数の定義例を示す
フローチャートである。
【図23】自オブジェクトの大きさよりも小さい領域を
反応領域として定義するrespondent関数の定義例を示す
フローチャートである。
【図24】3次元オブジェクトに選択可能フラグを付加
し、この選択可能フラグがonになっているか、off
になっているかどうかで選択候補オブジェクトとするか
を決める場合のオブジェクトの配置例を示す説明図であ
る。
【図25】3次元オブジェクトに選択可能フラグを付加
し、この選択可能フラグがonになっているか、off
になっているかどうかで選択候補オブジェクトとするか
を決める場合のrespondent関数の定義例を示すフローチ
ャートである。
【図26】イベント発生位置を通る直線と交点を持つオ
ブジェクト群のうち全ての選択候補オブジェクト群を最
終的な選択オブジェクト群とする場合のオブジェクトの
例を示す図である。
【図27】選択候補オブジェクト群の中で不透明オブジ
ェクトのみを選択する例を示す図である。
【図28】複数のオブジェクトを選択する場合のイベン
トディスパッチャの処理を示すフローチャートである。
【図29】複数のオブジェクトをイベントディスパッチ
ャに返却する場合のrespondent関数およびpreselect関
数の定義例を示すフローチャートである。
【図30】複数のオブジェクトをイベントディスパッチ
ャに返却する場合のselect関数の定義例を示すフローチ
ャートである。
【図31】複数のオブジェクトをイベントディスパッチ
ャに返却する場合のデフォルトのselect関数の他の定義
例を示すフローチャートである。
【図32】本発明の第2の実施形態において、複数のオ
ブジェクトのうち目的とするオブジェクトを選択する際
に必要となる操作の例を説明するための図である。
【図33】本発明の第2の実施形態においてグローバル
メモリ領域に保持される各種のデフォルト関数の例を示
す図である。
【図34】本発明の第2の実施形態におけるイベントデ
ィスパッチャの処理を示すフローチャートである。
【図35】図34におけるステップ3401の詳細を示
すフローチャートである。
【図36】select関数の定義例を示すフローチャートで
ある。
【図37】本発明の第2の実施形態におけるshowCurren
t関数およびhighlight関数の定義例を示すフローチャー
トである。
【図38】本発明の第2の実施形態におけるdetermine
関数、next関数、previous関数の定義例を示すフローチ
ャートである。
【図39】本発明の第2の実施形態において選択候補オ
ブジェクトが複数存在する状態の例を示す図である。
【図40】図39の各オブジェクトの奥行き方向の位置
関係を明らかにするために、各オブジェクトを上方から
見た状態を示す図である。
【図41】マウスボタンのクリック操作により手前から
2番目のオブジェクトがハイライト表示される例を示す
図である。
【図42】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図43】図42のshowCurrent関数の定義を適用した
場合に選択候補オブジェクトの番号が表示される例を示
す図である。
【図44】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図45】図44のshowCurrent関数の定義を適用した
場合にマウスカーソル近辺に選択候補オブジェクトの形
状を表示する例を示す図である。
【図46】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図47】図46のshowCurrent関数の定義を適用した
場合にマウスカーソル近辺に選択候補オブジェクトの色
を表示する例を示す図である。
【図48】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図49】図48のshowCurrent関数の定義を適用した
場合にマウスカーソル記号が選択候補オブジェクトの形
状で表示される例を示す図である。
【図50】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図51】図50のshowCurrent関数の定義を適用した
場合にマウスカーソル記号が選択候補オブジェクトの色
で表示される例を示す図である。
【図52】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図53】図52のshowCurrent関数の定義を適用した
場合に選択候補オブジェクトの手前のオブジェクトが透
明表示される例を示す図である。
【図54】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図55】図54のshowCurrent関数の定義を適用した
場合に選択候補オブジェクトの手前のオブジェクトがワ
イヤフレーム表示される例を示す図である。
【図56】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図57】図56のshowCurrent関数の定義を適用した
場合に選択候補オブジェクトを最も手前に表示する例を
示す図である。
【図58】視点をカレントオブジェクトの直前に移すこ
とを示す説明図である。
【図59】本発明の第2の実施形態においてshowCurren
t関数の他の定義例を示すフローチャートである。
【図60】図59のshowCurrent関数の定義を適用した
場合に選択候補オブジェクトを最も手前に表示する例を
示す図である。
【図61】determine関数、next関数、previous関数の
他の定義例を示すフローチャートである。
【図62】determine関数、next関数、previous関数の
他の定義例を示すフローチャートである。
【符号の説明】
10…3次元オブジェクト、11…共通の属性項目、1
3…被選択基準、14…データ部、600…計算機、6
01…キーボード、602…ディスプレイ、603…C
PU、604…マウス、605…プログラムメモリ、6
06…データメモリ、605a…オペレーティングシス
テム、605b…イベントディスパッチャ、605c…
3次元オブジェクト(1)プログラム、605d…3次
元オブジェクト(2)プログラム、605e…3次元オ
ブジェクト(n)プログラム、606a…3次元オブジ
ェクト(1)、606b…3次元オブジェクト(2)、
606c…3次元オブジェクト(n)、701…グロー
バルメモリ領域、707…選択候補群保持領域。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 若林 泰 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウエアエンジニアリング株式会 社内 (72)発明者 堀井 克敏 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウエアエンジニアリング株式会 社内 (72)発明者 戸塚 裕介 神奈川県横浜市中区尾上町6丁目90番地 日立ビジネスソリューション株式会社内 Fターム(参考) 5B050 EA11 5E501 AA01 AC10 BA05 CA02 CB02 DA12 EB05 EB06 FA14 FA27 FB29

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 表示装置に表示させる2次元または3次
    元のオブジェクトを生成する方法であって、 任意の形状を有する複数のオブジェクトを生成した後、
    表示装置に表示された状態における選択操作イベントに
    対し各オブジェクトを操作対象に含めるかを決める被選
    択基準をオブジェクト毎に個別にまたはまとめて設定し
    保持させるステップを備えることを特徴とするオブジェ
    クトの生成方法。
  2. 【請求項2】 前記被選択基準として、各オブジェクト
    に関連する他のオブジェクトを操作対象にするかを決め
    る被選択基準を有することを特徴とする請求項1に記載
    のオブジェクトの生成方法。
  3. 【請求項3】 前記被選択基準として、自オブジェクト
    または他オブジェクトが優先して操作対象として選択さ
    れるように決定する被選択基準を有することを特徴とす
    る請求項1または2に記載のオブジェクトの生成方法。
  4. 【請求項4】 前記被選択基準として、選択操作イベン
    トに対し反応するか否かを決める反応可否基準を有する
    ことを特徴とする請求項1〜3のいずれか一項に記載の
    オブジェクトの生成方法。
  5. 【請求項5】 前記被選択基準を関数として設定し保持
    させることを特徴とする請求項1〜4のいずれか一項に
    記載のオブジェクトの生成方法。
  6. 【請求項6】 表示装置に表示させる2次元または3次
    元のオブジェクトを生成する方法であって、 任意の形状を有する複数のオブジェクトを生成した後、
    表示装置に表示された状態における選択操作イベントに
    対し各オブジェクトを操作対象に含めるかを決める被選
    択権決定処理をオブジェクト毎に個別にまたはまとめて
    設定し保持させるステップを備えることを特徴とするオ
    ブジェクトの生成方法。
  7. 【請求項7】 選択操作イベントに対する被選択基準を
    保持した複数の2次元または3次元のオブジェクトを表
    示装置に表示させ、その表示されたオブジェクトへの選
    択操作イベントに対しいずれのオブジェクトを選択する
    かを制御するオブジェクトの選択制御方法であって、 表示画面上における選択操作イベントを、予め設定され
    た規則によって当該選択操作イベントの位置に応じて決
    定された選択候補オブジェクト群内に存在する全てのオ
    ブジェクトに伝達するステップと、 伝達したオブジェクトからの応答を受け、その応答内容
    のうち予め設定した選択条件を満たす1つまたは複数の
    オブジェクトを操作対象として選択するステップとを備
    えることを特徴とするオブジェクトの選択制御方法。
  8. 【請求項8】 前記選択条件として、表示色が不透明で
    最も視点側に位置するオブジェクトを選択する条件が設
    定されていることを特徴とする請求項7に記載のオブジ
    ェクトの選択制御方法。
  9. 【請求項9】 前記選択条件として、表示色に拘わらず
    最も視点側に位置するオブジェクトを選択する条件が設
    定されていることを特徴とする請求項7に記載のオブジ
    ェクトの選択制御方法。
  10. 【請求項10】 前記選択条件として、選択操作イベン
    トに対する反応可否基準として反応可が設定されている
    オブジェクトのうち最も視点側に位置するオブジェクト
    を選択する条件が設定されていることを特徴とする請求
    項7に記載のオブジェクトの選択制御方法。
  11. 【請求項11】 表示装置に表示させる2次元または3
    次元のオブジェクトのデータ構造であって、 任意の形状を規定する第1のデータ部と、表示装置に表
    示された状態における選択操作イベントに対し各オブジ
    ェクトを操作対象に含めるかを決める被選択基準の第2
    のデータ部を保持することを特徴とするオブジェクトの
    データ構造。
  12. 【請求項12】 前記第2のデータ部を関数として保持
    することを特徴とする請求項11に記載のオブジェクト
    のデータ構造。
  13. 【請求項13】 複数のオブジェクトを表示装置に表示
    させ、その表示されたオブジェクトへの選択操作イベン
    トに対しいずれのオブジェクトを選択するかを制御する
    オブジェクトの選択制御方法であって、画面上に表示さ
    れたオブジェクトのうち、特定のひとつまたは複数を着
    目オブジェクトとして認識する手段と、 特定の契機によって、前記着目オブジェクトを他のオブ
    ジェクトに切替る手段と、 特定の告知態様によって、着目オブジェクトがいずれの
    オブジェクトであるかをユーザに告知する手段と、 特定の契機によって、その時点での着目オブジェクトを
    選択オブジェクトとして確定する手段とを備えることを
    特徴とするオブジェクトの選択制御方法。
  14. 【請求項14】 前記着目オブジェクト切替えの契機と
    して、ユーザの特定操作を契機とすることを特徴とする
    請求項13に記載のオブジェクトの選択制御方法。
  15. 【請求項15】 前記着目オブジェクト切替えの契機と
    して、マウスクリック操作を契機とすることを特徴とす
    る請求項13に記載のオブジェクトの選択制御方法。
  16. 【請求項16】 前記着目オブジェクト切替えの契機と
    して、特定キーの押下を契機とすることを特徴とする請
    求項13に記載のオブジェクトの選択制御方法。
  17. 【請求項17】 前記着目オブジェクト切替えの契機と
    して、一定周期の時間経過を契機とすることを特徴とす
    る請求項13に記載のオブジェクトの選択制御方法。
  18. 【請求項18】 前記着目オブジェクト切替えの契機と
    して、マウス押下操作を継続した状態における一定周期
    の時間経過を契機とすることを特徴とする請求項13に
    記載のオブジェクトの選択制御方法。
  19. 【請求項19】 前記選択オブジェクト確定の契機とし
    て、ユーザの特定操作を契機とすることを特徴とする請
    求項13に記載のオブジェクトの選択制御方法。
  20. 【請求項20】 前記選択オブジェクト確定の契機とし
    て、マウスクリック操作を契機とすることを特徴とする
    請求項13に記載のオブジェクトの選択制御方法。
  21. 【請求項21】 前記選択オブジェクト確定の契機とし
    て、特定キーの押下を契機とすることを特徴とする請求
    項13に記載のオブジェクトの選択制御方法。
  22. 【請求項22】 前記選択オブジェクト確定の契機とし
    て、一定周期の時間経過を契機とすることを特徴とする
    請求項13に記載のオブジェクトの選択制御方法。
  23. 【請求項23】 前記選択オブジェクト確定の契機とし
    て、マウス押下操作を継続した状態における一定周期の
    時間経過を契機とすることを特徴とする請求項13に記
    載のオブジェクトの選択制御方法。
  24. 【請求項24】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトをハイライト表示することを特徴
    とする請求項13に記載のオブジェクトの選択制御方
    法。
  25. 【請求項25】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトが視点側から何番目のオブジェク
    トであるかを表す番号をマウスカーソル付近に表示する
    こと特徴とする請求項13に記載のオブジェクトの選択
    制御方法。
  26. 【請求項26】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトの形状をマウスカーソル付近に表
    示することを特徴とする請求項13に記載のオブジェク
    トの選択制御方法。
  27. 【請求項27】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトの色をマウスカーソル付近に表示
    することを特徴とする請求項13に記載のオブジェクト
    の選択制御方法。
  28. 【請求項28】 前記着目オブジェクトの告知態様とし
    て、マウスカーソルを、着目オブジェクトの形状に変化
    させることを特徴とする請求項13に記載のオブジェク
    トの選択制御方法。
  29. 【請求項29】 前記着目オブジェクトの告知態様とし
    て、マウスカーソルの色を着目オブジェクトの色に変化
    させることを特徴とする請求項13に記載のオブジェク
    トの選択制御方法。
  30. 【請求項30】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトの視点側にあるオブジェクトを透
    明に変化させ、かつ着目オブジェクトをハイライト表示
    することを特徴とする請求項13に記載のオブジェクト
    の選択制御方法。
  31. 【請求項31】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトの視点側にあるオブジェクトをワ
    イヤフレーム表示に変化させ、かつ着目オブジェクトを
    ハイライト表示することを特徴とする請求項13に記載
    のオブジェクトの選択制御方法。
  32. 【請求項32】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトをハイライト表示させ、かつ他の
    オブジェクトからクリッピングされることなく画面に表
    示することを特徴とする請求項13に記載のオブジェク
    トの選択制御方法。
  33. 【請求項33】 前記着目オブジェクトの告知態様とし
    て、着目オブジェクトの直前位置に視点を移動させた状
    態のオブジェクトを表示することを特徴とする請求項1
    3に記載のオブジェクトの選択制御方法。
  34. 【請求項34】 前記確定の契機より以前は、オブジェ
    クトの全体または一部を半透明で表示することを特徴と
    する請求項13に記載のオブジェクトの選択制御方法。
JP2001172416A 2001-06-07 2001-06-07 オブジェクトの生成方法および生成されたオブジェクトの選択制御方法並びにオブジェクトのデータ構造 Pending JP2002366973A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001172416A JP2002366973A (ja) 2001-06-07 2001-06-07 オブジェクトの生成方法および生成されたオブジェクトの選択制御方法並びにオブジェクトのデータ構造

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001172416A JP2002366973A (ja) 2001-06-07 2001-06-07 オブジェクトの生成方法および生成されたオブジェクトの選択制御方法並びにオブジェクトのデータ構造

Publications (2)

Publication Number Publication Date
JP2002366973A true JP2002366973A (ja) 2002-12-20
JP2002366973A5 JP2002366973A5 (ja) 2005-04-07

Family

ID=19014037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001172416A Pending JP2002366973A (ja) 2001-06-07 2001-06-07 オブジェクトの生成方法および生成されたオブジェクトの選択制御方法並びにオブジェクトのデータ構造

Country Status (1)

Country Link
JP (1) JP2002366973A (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008077203A (ja) * 2006-09-19 2008-04-03 Canon Software Inc 情報処理装置および情報処理装置の制御方法およびプログラムおよび記録媒体
KR100818920B1 (ko) 2006-02-10 2008-04-04 삼성전자주식회사 그래픽 객체의 처리 시 발생된 키 이벤트를 제어하는 장치및 그 방법
JP2009078157A (ja) * 2008-11-04 2009-04-16 Nintendo Co Ltd 入力処理プログラムおよび入力処理装置
JP2010198433A (ja) * 2009-02-26 2010-09-09 Internatl Business Mach Corp <Ibm> オブジェクトの選択を容易にするための方法、装置およびプログラム
JP2011200720A (ja) * 2011-07-14 2011-10-13 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
US8120574B2 (en) 2005-03-10 2012-02-21 Nintendo Co., Ltd. Storage medium storing game program and game apparatus
JP2012238310A (ja) * 2011-05-11 2012-12-06 Dassault Systemes 複数のマニピュレータからのオブジェクトのマニピュレータの選択
JP2014079634A (ja) * 2013-12-10 2014-05-08 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
JP2015515075A (ja) * 2012-04-25 2015-05-21 ノキア コーポレイション 3次元グラフィックユーザインターフェイス
JP6439132B1 (ja) * 2018-03-09 2018-12-19 株式会社コナミデジタルエンタテインメント 表示システム、表示制御装置、及びプログラム
JP6452014B1 (ja) * 2018-03-09 2019-01-16 株式会社コナミデジタルエンタテインメント 表示システム、表示制御装置、及びプログラム
JP2019207574A (ja) * 2018-05-29 2019-12-05 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9849383B2 (en) 2005-03-10 2017-12-26 Nintendo Co., Ltd. Storage medium storing game program and game apparatus
US8120574B2 (en) 2005-03-10 2012-02-21 Nintendo Co., Ltd. Storage medium storing game program and game apparatus
US8139027B2 (en) 2005-03-10 2012-03-20 Nintendo Co., Ltd. Storage medium storing input processing program and input processing apparatus
US8836639B2 (en) 2005-03-10 2014-09-16 Nintendo Co., Ltd. Storage medium storing game program and game apparatus
KR100818920B1 (ko) 2006-02-10 2008-04-04 삼성전자주식회사 그래픽 객체의 처리 시 발생된 키 이벤트를 제어하는 장치및 그 방법
JP2008077203A (ja) * 2006-09-19 2008-04-03 Canon Software Inc 情報処理装置および情報処理装置の制御方法およびプログラムおよび記録媒体
JP2009078157A (ja) * 2008-11-04 2009-04-16 Nintendo Co Ltd 入力処理プログラムおよび入力処理装置
JP2010198433A (ja) * 2009-02-26 2010-09-09 Internatl Business Mach Corp <Ibm> オブジェクトの選択を容易にするための方法、装置およびプログラム
JP2012238310A (ja) * 2011-05-11 2012-12-06 Dassault Systemes 複数のマニピュレータからのオブジェクトのマニピュレータの選択
JP2011200720A (ja) * 2011-07-14 2011-10-13 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
JP2015515075A (ja) * 2012-04-25 2015-05-21 ノキア コーポレイション 3次元グラフィックユーザインターフェイス
JP2014079634A (ja) * 2013-12-10 2014-05-08 Nintendo Co Ltd ゲームプログラムおよびゲーム装置
JP6439132B1 (ja) * 2018-03-09 2018-12-19 株式会社コナミデジタルエンタテインメント 表示システム、表示制御装置、及びプログラム
JP6452014B1 (ja) * 2018-03-09 2019-01-16 株式会社コナミデジタルエンタテインメント 表示システム、表示制御装置、及びプログラム
JP2019159614A (ja) * 2018-03-09 2019-09-19 株式会社コナミデジタルエンタテインメント 表示システム、表示制御装置、及びプログラム
JP2019159615A (ja) * 2018-03-09 2019-09-19 株式会社コナミデジタルエンタテインメント 表示システム、表示制御装置、及びプログラム
JP2019207574A (ja) * 2018-05-29 2019-12-05 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム

Similar Documents

Publication Publication Date Title
US6119186A (en) Computer system with environmental manager for detecting and responding to changing environmental conditions
US8819569B2 (en) Single-handed approach for navigation of application tiles using panning and zooming
US20040113915A1 (en) Mobile terminal device and image display method
AU2006225172B2 (en) Electronic conference system, electronic conference support method, electronic conference support device, and conference server
JP2679637B2 (ja) 画像表示装置
US20010003835A1 (en) Computer system with environmental detection
EP0752640A1 (en) Representation of inter-relationships between graphical objects in a computer display device
JP2002366973A (ja) オブジェクトの生成方法および生成されたオブジェクトの選択制御方法並びにオブジェクトのデータ構造
JPH07210357A (ja) 会議システムにおけるオブジェクトの遠隔強調表示
JPS6232527A (ja) 表示画面制御方式
JPH11212698A (ja) ファンクション選択方法及び装置、ファンクションを選択するための制御プログラムを格納した記憶媒体、オブジェクトの操作方法及び装置、オブジェクトを操作するための制御プログラムを格納した記憶媒体、複合アイコンを格納した記憶媒体
JPH10143347A (ja) データ転送の表示および操作方法
GB2273797A (en) Distributed data processing system
JPH11185058A (ja) オブジェクトの選択方法およびそのシステム
JP5448576B2 (ja) 表示制御装置、表示制御方法及びプログラム
JPH09218780A (ja) 文書処理システムのジョブチケットプログラム装置及び方法
JP2000181608A (ja) 仮想入力装置
US20020038387A1 (en) Computer system environmental messaging structure
JP2001060134A (ja) マルチウィンドウ制御システム
JP2000089886A (ja) 仮想多面体を用いたデスクトップ管理システム及び方法
US7188320B1 (en) Graphical user interface for wireless communications
JP2002352272A (ja) 3次元オブジェクトの生成方法および生成された3次元オブジェクトの選択制御方法並びに3次元オブジェクトのデータ構造
JP2004178038A (ja) マルチウインドウguiシステム
JP2001291119A (ja) ユーザインタフェース制御装置およびユーザインタフェース制御方法、並びにプログラム提供媒体
JPH04328626A (ja) 情報処理装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070427