JPH07200218A - グラフィカル・オブジェクトをインターロックする方法及び装置 - Google Patents

グラフィカル・オブジェクトをインターロックする方法及び装置

Info

Publication number
JPH07200218A
JPH07200218A JP6288245A JP28824594A JPH07200218A JP H07200218 A JPH07200218 A JP H07200218A JP 6288245 A JP6288245 A JP 6288245A JP 28824594 A JP28824594 A JP 28824594A JP H07200218 A JPH07200218 A JP H07200218A
Authority
JP
Japan
Prior art keywords
graphical object
moving
display
graphical
objects
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.)
Granted
Application number
JP6288245A
Other languages
English (en)
Other versions
JP2750318B2 (ja
Inventor
Alex C Chow
アレックス・チャン−ヘン・コウ
John S-Y Wang
ジョン・シ−ヤン・ワン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07200218A publication Critical patent/JPH07200218A/ja
Application granted granted Critical
Publication of JP2750318B2 publication Critical patent/JP2750318B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 グラフィカル・オブジェクトを容易にインタ
ーロックする。 【構成】 グラフィカル・オブジェクトを移動するため
の装置が表示優先順位に従い複数のグラフィカル・オブ
ジェクトを表示するディスプレイ、及びユーザ入力に応
答して表示グラフィカル・オブジェクトを移動する装置
を備え移動されるグラフィカル・オブジェクトが第2の
表示グラフィカル・オブジェクトの1部の下に表示され
るように、ユーザ入力に応答して、表示優先順位を変更
する。更に、グラフィカル・オブジェクトを移動する方
法が、表示優先順位に従い複数のグラフィカル・オブジ
ェクトをディスプレイ上に表示するステップ及びユーザ
入力に応答して表示グラフィカル・オブジェクトを移動
するステップを備え、移動されるグラフィカル・オブジ
ェクトが第2の表示グラフィカル・オブジェクトの1部
の下に表示されるようにユーザ入力に応答して、表示優
先順位を変更する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にコンピュータ・グ
ラフィックス・システムに関し、特に、グラフィカル・
オブジェクトをインターロックする方法及び装置に関す
る。
【0002】
【従来の技術】コンピュータ・グラフィックス・システ
ムにおいては、2次元または3次元のグラフィカル・ピ
クチャを2次元ディスプレイ上に表現することが望まれ
る。通常、こうしたピクチャは多角形のセットとしてメ
モリに記憶される構成体またはイメージである。ディス
プレイ上にピクチャを生成するために、次に多角形が通
常は計算集中型のプロセスにより描画される。しかしな
がら、表現されるピクチャの1部は、ディスプレイ上の
ウィンドウまたはディスプレイ自身により提供される視
覚領域外に外れる可能性がある。こうした場合には、ピ
クチャをクリップして、ピクチャを構成する多角形を生
成することにより計算要求を低減し、描画スピードを増
すことが望ましい。
【0003】多角形は通常、頂点P(0)、P
(1)、...、P(n−2)、P(n−1)のセット
として指定され、ここで、nは多角形内の頂点の数を表
す。各頂点P(i)は、適切な座標空間内のそのロケー
ションV(i)、及びここでは色ファクタと呼ぶ関数f
(V(i))により指定される。色ファクタは各頂点に
おいて評価される関数であり、後に色(グレースケール
を含む)変化(光強度、熱特性、湿度ファクタなど)と
して表示される。色ファクタは色に変換され、モデリン
グ(単純な照明モデリングまたは複雑な天気モデリング
など)に有用である。
【0004】多角形が描画されると、典型的な2次元の
グラフィックス・システムでは、ユーザは多角形を目的
のロケーションにピック・アンド・ドラッグ(pick and
drag)する。多角形はユーザがそのオブジェクトを選
択するとピックされ、通常はカーソルをオブジェクト上
に位置決めし、マウス・ポタンを押すことにより達成さ
れる。オブジェクトはユーザがカーソルを移動すること
によりドラッグされ、通常はマウス・ボタンを押し続け
ながらマウスを移動することにより達成される。典型的
には、ドラッグされるオブジェクト(以下ドラッグ・オ
ブジェクトと記す)は、そのドラッグ・オペレーション
の間は輪郭線により示され、それによりオブジェクトの
移動時におけるそのオブジェクトの描画のための計算要
求を低減する。ユーザがオブジェクトのドラッグ操作を
完了すると、ユーザは次にオブジェクトをドロップす
る。これは通常、マウス・ボタンを放すことにより達成
される。従来のシステムではこの時、多角形がドロップ
・ロケーションに描画される。
【0005】
【発明が解決しようとする課題】同一のロケーションに
既存のオブジェクトが存在する場合、ドロップ・オブジ
ェクトは既存のオブジェクト上に描画される。ユーザが
既存のオブジェクトがドロップ・オブジェクトの上に来
ることを望む場合、ユーザは既存のオブジェクトをピッ
クし、次にそのオブジェクトをどこかにドラッグするこ
となく、ドロップしなければならない。この結果、既存
のオブジェクトはドラッグされたばかりのオブジェクト
上に配置される。
【0006】
【課題を解決するための手段】本発明はグラフィカル・
オブジェクトを移動するための装置を提供し、この装置
は、表示優先順位に従い複数のグラフィカル・オブジェ
クトを表示するディスプレイ、ユーザ入力に応答して表
示グラフィカル・オブジェクトを移動する装置、及びグ
ラフィカル・オブジェクトが移動される時、移動される
グラフィカル・オブジェクトが第2の表示グラフィカル
・オブジェクトの1部の下に表示されるようにユーザ入
力に応答して、移動されるグラフィカル・オブジェクト
の表示優先順位を変更する装置を含む。更に本発明はグ
ラフィカル・オブジェクトを移動する方法を提供し、こ
の方法は、表示優先順位に従い複数のグラフィカル・オ
ブジェクトをディスプレイ上に表示するステップ、ユー
ザ入力に応答して表示グラフィカル・オブジェクトを移
動するステップ、及びグラフィカル・オブジェクトが移
動される時、移動されるグラフィカル・オブジェクトが
第2の表示グラフィカル・オブジェクトの1部の下に表
示されるようにユーザ入力に応答して、移動されるグラ
フィカル・オブジェクトの表示優先順位を変更するステ
ップを含む。
【0007】本発明の性質及び利点が、以降の実施例の
説明を参照することにより、より一層理解されることで
あろう。
【0008】
【実施例】図1は、本発明の好適な実施例により使用さ
れる典型的デジタル・コンピュータ100のブロック図
を示す。コンピュータは主プロセッサ110を含み、こ
れはコンピュータ・ボックス105内のメモリ120及
びハード・ディスク125、並びに入力装置130及び
出力装置140に接続される。主プロセッサ120は単
一のプロセッサまたは複数のプロセッサを含む。入力装
置130はキーボード、マウス、タブレットまたは他の
タイプの入力装置を含む。出力装置140はテキスト・
モニタ、プロッタまたは他のタイプの出力装置を含む。
磁気ディスケットまたはコンパクト・ディスクなどのコ
ンピュータ読出し可能取外し可能媒体190が、ディス
ク・ドライブまたはCD−ROM(コンパクト・ディス
ク−読出し専用メモリ)ドライブなどの入出力装置18
0に挿入される。データが入出力装置制御装置170の
下で制御される入出力装置により、取外し可能媒体から
読出されたり書込まれたりする。入出力装置制御装置は
バス160を介して、主プロセッサと通信する。主メモ
リ120、ハード・ディスク125及び取外し可能媒体
190は全て、主プロセッサ110により処理されるデ
ータを記憶するためのメモリとして参照される。
【0009】主プロセッサは更にグラフィックス・アダ
プタ200を介して、グラフィックス・ディスプレイな
どのグラフィックス出力装置150に接続される。グラ
フィックス・アダプタ200はグラフィックスに関する
命令をバス160を介して、主プロセッサ110から受
信する。グラフィックス・アダプタは次にこれらの命令
を、グラフィックス・アダプタ・メモリ230に接続さ
れるグラフィックス・アダプタ・プロセッサ220によ
り実行する。グラフィックス・アダプタ内のグラフィッ
クス・プロセッサは、次にこれらの命令を実行し、これ
らの命令にもとづきフレーム・バッファ240を更新す
る。グラフィックス・プロセッサ220はまた、特定の
タイプのプリミティブを描画する特殊描画ハードウェア
を含む。フレーム・バッファ240は、グラフィックス
出力装置上に表示されるあらゆる画素のデータを含む。
RAMDAC(ランダム・アクセス・メモリ・デジタル
−アナログ変換器)250は、フレーム・バッファに記
憶されるデジタル・データをRGB信号に変換し、これ
がグラフィックス・ディスプレイ150に提供されて、
主プロセッサからの目的のグラフィックス出力が描画さ
れる。
【0010】図2はグラフィックス機能を実行するため
に、ホスト・コンピュータ及びグラフィックス・アダプ
タにより、通常、使用されるコード層を表すブロック図
である。UNIXなどのオペレーティング・システム3
00が、ホスト・コンピュータの主要な制御を提供す
る。オペレーティング・システムにはオペレーティング
・システム・カーネル310が接続され、これはオペレ
ーティング・システムのためのハードウェア集中型のタ
スクを提供する。オペレーティング・システム・カーネ
ルは、ホスト・コンピュータ・マイクロコード320と
直接通信する。ホスト・コンピュータ・マイクロコード
は、ホスト・コンピュータ・プロセッサにより実行され
る主要命令セットである。オペレーティング・システム
300にはグラフィックス・アプリケーション330及
び332が結合される。このグラフィックス・アプリケ
ーション・ソフトウェアは、Silicon Graphic社のGL
(商標)、IBMのgraPHIGS(商標)、MIT社のPE
X(商標)などのソフトウェア・パッケージを含む。こ
のソフトウェアは2次元または3次元グラフィックスの
主要機能を提供する。グラフィックス・アプリケーショ
ン330及び332は、グラフィックス・アプリケーシ
ョンAPI(アプリケーション・プログラム・インタフ
ェース)340及び342にそれぞれ結合される。AP
Iはグラフィックス・アプリケーションのための多くの
計算集中型タスクを提供し、アプリケーション・ソフト
ウェアとグラフィックス・アダプタのデバイス・ドライ
バなどのグラフィックス・ハードウェアと密接なソフト
ウェアとの間のインタフェースを提供する。例えばAP
I340及び342は、GAI(グラフィックス・アプ
リケーション・インタフェース)350及び352とそ
れぞれ通信する。GAIは、アプリケーションAPIと
グラフィックス・アダプタ・デバイス・ドライバ370
との間のインタフェースを提供する。幾つかのグラフィ
ックス・システムでは、APIがGAIの機能も実行す
る。
【0011】グラフィックス・アプリケーション、AP
I及びGAIは、オペレーティング・システム及びデバ
イス・ドライバにより単一のプロセスと見なされる。す
なわち、グラフィックス・アプリケーション330及び
332、API340及び342、及びGAI350及
び352は、オペレーティング・システム300及びデ
バイス・ドライバ370により、それぞれプロセス36
0及び362と見なされる。これらのプロセスはオペレ
ーティング・システム・カーネルにより割当てられるプ
ロセス識別子(PID)により、オペレーティング・シ
ステム及びデバイス・ドライバにより識別される。プロ
セス360及び362は、同時に2度実行される同一の
コードを使用する。例えば、あるプログラムが2つの別
個のウィンドウ内において2度実行される。PIDは同
一コードの別々の実行を区別するために使用される。
【0012】デバイス・ドライバはオペレーティング・
システム・カーネル310の拡張に相当するグラフィッ
クス・カーネルである。グラフィックス・カーネルは、
グラフィックス・アダプタのマイクロコード380と直
接通信する。多くのグラフィックス・システムにおい
て、GAIまたはGAI層が使用されない場合にはAP
Iは、初期要求命令をデバイス・ドライバに送信するこ
とにより、GAIまたはAPIからアダプタ・マイクロ
コードへの直接アクセスを要求する。更に多くのグラフ
ィックス・システムでは、アダプタ・マイクロコードは
初期要求命令をデバイス・ドライバへ送信することによ
り、GAIまたはGAIが使用されない場合にはAPI
への直接アクセスを要求することができる。両方のプロ
セスは以降では直接メモリ・アクセス(DMA)として
参照される。DMAは、通常、大きなデータ・ブロック
を転送する時に使用される。DMAはDMAをセットア
ップするためのデバイス・ドライバに対する初期要求以
外には、ディスプレイ・ドライバを通過する必要を排除
することにより、ホスト・コンピュータとアダプタとの
間の高速データ転送を提供する。幾つかの場合では、ア
ダプタ・マイクロコードはコンテキスト・スイッチによ
り、自身が使用する現属性を置換する。コンテキスト・
スイッチは、アダプタ・マイクロコードが自身が現在使
用している属性と異なる属性を使用するグラフィックス
・アプリケーションから命令を受信する場合に実行され
る。コンテキスト・スイッチは通常、属性変更を認識す
るデバイス・ドライバにより開始される。
【0013】ブロック300乃至340は、使用される
グラフィックス・アダプタのタイプには通常、依存しな
いソフトウェア・コード層である。一方、ブロック35
0乃至380は、使用されるグラフィックス・アダプタ
のタイプに通常、依存するソフトウェア・コード層であ
る。例えば、異なるグラフィックス・アダプタがグラフ
ィックス・アプリケーション・ソフトウェアにより使用
される場合、新たなGAI、グラフィックス・カーネル
及びアダプタ・マイクロコードが必要となる。更にブロ
ック300乃至370は、通常、ホスト・コンピュータ
上に常駐し、またそれにより実行される。しかしなが
ら、アダプタ・マイクロコード380は、通常、グラフ
ィックス・アダプタ上に常駐し、それにより実行され
る。しかしながら、幾つかの場合では、アダプタ・マイ
クロコードはグラフィックス・アダプタの初期化の間に
ホスト・コンピュータによりグラフィックス・アダプタ
にロードされる。
【0014】通常のグラフィックス・システムでは、ユ
ーザはグラフィックス・アプリケーションに2次元モデ
ルまたは3次元モデルからイメージを構成するように命
じる。ユーザは最初に光源(light source)のロケーシ
ョン及びタイプを選択する。ユーザは次にアプリケーシ
ョン・ソフトウェアに、一連の予め定義されたまたはユ
ーザ定義されたオブジェクトから、所望のモデルを生成
するように命じる。各オブジェクトはそのオブジェクト
を記述する1つ以上の共面(coplanar)描画プリミティ
ブを含む。例えばオブジェクトの表面を定義するため
に、多数の三角形などの一連の描画プリミティブが使用
される。ユーザは次にモデルを眺めるためにウィンドウ
にその外観を提供し、それにより所望のイメージを定義
する。アプリケーション・ソフトウェアは次に、AP
I、GAI及びDMAが使用されない場合にはデバイス
・ドライバを介して、オブジェクトを記述する描画プリ
ミティブをアダプタ・マイクロコードに送信することに
より、モデルからイメージの描画を開始する。アダプタ
・マイクロコードは次に、ウィンドウに見えない描画プ
リミティブをクリップする(すなわち使用しない)こと
により、グラフィックス・ディスプレイ上にイメージを
描画し、アダプタ・マイクロコードが各残りの描画プリ
ミティブを、ユーザにより与えられる外観の可視的な画
素に塗りつぶす。画素は次にフレーム・バッファにロー
ドされる。3次元モデルの場合には、しばしば深さバッ
ファが使用される。このステップは関連する描画プリミ
ティブ、変数及び画素の数により、非常に計算集中型と
なる。結果的にフレーム・バッファに記憶され、グラフ
ィックス・ディスプレイ上に表示されるイメージは、通
常、どの描画プリミティブまたはオブジェクトに画素が
由来するかなどのオリジナル情報を有さない。その結
果、ウィンドウ、ユーザの外観、モデル、明るさ具合な
どが変更されると、イメージは部分的または全体的に再
度描画される必要が生じる。
【0015】好適な実施例では、ドラッグ技術はアダプ
タ・フレーム・バッファと密接なアダプタ・マイクロコ
ードなどの多くのロケーションにおいて使用される。こ
のアプローチはまた比較的高速であり、実現がかなり容
易である。更にドラッグ技術はグラフィックス・アプリ
ケーション・ソフトウェアにも適用可能であり、この場
合、描画イメージについても、当該イメージが描画され
る以前に、或いは後にグラフィックス・アダプタがデー
タをグラフィックス・アプリケーション・ソフトウェア
に転送し戻すことにより、システム・メモリに記憶され
る。このアプローチはかなり低速ではあるが、既存のグ
ラフィックス・アダプタにおけるこの技術の利用を可能
にする。ドラッグ技術はグラフィックス・アダプタ・プ
ロセッサにおいて、ハードウェアにより実現することも
可能である。このアプローチは極めて高速であるが、特
殊なハードウェアを必要とする。これはグラフィックス
・アダプタにより表示されるプリミティブの高速クリッ
ピングを可能にする。当業者には明らかなように、本発
明はホスト・コンピュータまたはグラフィックス・アダ
プタにおける他の多くのロケーションにおいても適用可
能である。
【0016】ほとんどのグラフィックス・オブジェクト
は一連の頂点を有する多角形として記述される。多角形
は凸状或いは凹状である。図3はディスプレイ400上
に凸状及び凹状の多角形を含む幾つかの多角形を表す。
多角形A及びCは凹状多角形であり、多角形Bは凸状多
角形である。各多角形は辺により相互接続される一連の
頂点により定義される。頂点A1などのように、その頂
点が多角形から除去されると多角形により覆われてしま
う頂点が存在すると、その多角形は凹状である。例えば
頂点A1が多角形Aから除去されると、頂点A2からA
4に至る新たなラインが、以前の頂点A1を多角形の内
側に配置する。多角形はまた、任意の頂点の辺の内角が
180度より大きいと凹状として定義される。例えば凸
状の多角形Bでは、頂点における全ての内角が180度
より小さい。しかしながら、多角形Aの頂点A1におい
ては、内角は180度よりも大きい。
【0017】凹状多角形は、各多角形部分が凸状となる
ように、各凹状ポイントをその多角形の別の頂点に接続
することにより、凸状多角形のセットに分割される。図
3の多角形Cを参照すると、多角形Cは頂点C4から頂
点C7に、及び頂点C3から頂点C8にラインを引くこ
とにより、3つの凸状多角形に分割される。凹状多角形
を凸状多角形に変換する別のアプローチでは、各凹状多
角形を一連の三角形に分割する。図3の多角形Cを参照
すると、多角形Cは頂点C4から頂点C6に、頂点C3
から頂点C1に、及び頂点C3から頂点C7に至るライ
ンによっても分割される。更に全ての多角形は、その多
角形が凹状か凸状かを判断しなくても、三角形のセット
に分割される。これは全ての凹状多角形が凸状多角形の
セットに分割されることを保証する。
【0018】好適な実施例では、オブジェクトが別のオ
ブジェクト上にドラッグされる時、ドラッグ・オブジェ
クトは静止オブジェクトの上方或いは下方、またはイン
ターロックと呼ばれる静止オブジェクトの上下の特定な
組合わせにドラッグされる。
【0019】図4乃至図7は、図3のオブジェクトCを
図3のオブジェクトAを横切りドラッグする様子を表
す。図4はオブジェクトCが頂点C7において、オブジ
ェクトAと衝突する様子を表す。本発明の好適な実施例
では、このポイントにおいて、ユーザはオブジェクトC
がオブジェクトAの下方または上方のいずれにドラッグ
されるべきかを指定する。この例では、ユーザはこの衝
突において、オブジェクトCがオブジェクトAの下方に
ドラッグされるように選択する。図5は第2のポイント
すなわち頂点C2がオブジェクトAに衝突するまで、オ
ブジェクトCがオブジェクトAの下方にドラッグされる
様子を表す。本発明の好適な実施例では、このポイント
において、ユーザはオブジェクトCのこの部分がオブジ
ェクトAの下方または上方のいずれにドラッグされるべ
きかを選択する。この例では、ユーザはオブジェクトC
のこの部分がオブジェクトA上を通過するように選択す
る。図6は、オブジェクトAの1部がオブジェクトCの
1部をオーバレイし、オブジェクトCの別の部分がオブ
ジェクトAの1部をオーバレイする様子を表す。図7
は、オブジェクトCが、もはやそれ以上、上方にドラッ
グされないインターロック状態を表す。すなわち、オブ
ジェクトCの1部がオブジェクトAの1部をオーバレイ
し、オブジェクトCの別の部分がオブジェクトAの別の
部分をアンダーレイする場合、オブジェクトCの更に上
方へのドラッグは、オブジェクトAまたはオブジェクト
Cのいずれかの分断を要求する。本発明の好適な実施例
では、オブジェクトCは各オブジェクトの保全性を維持
するために、上方へのドラッグを阻止される。
【0020】図8乃至図14は、本発明の好適な実施例
によるグラフィカル・オブジェクトのドラッグ処理を表
す流れ図である。この流れ図は、ユーザが目的のグラフ
ィカル・オブジェクトをピック・アンド・ドラッグする
ためのボタンを有するマウスを使用していることを仮定
する。しかしながら、オブジェクトをピック・アンド・
ドラッグするための他の方法についても当業者には明ら
かであろう。更にグラフィカル・オブジェクトは、これ
らのグラフィカル・オブジェクトが凹状であり、幾つか
の凸状部分に分割される場合、或いはこれらのグラフィ
カル・オブジェクトが単一のグラフィカル・オブジェク
トとしてドラッグされるように、幾つかのグラフィカル
・オブジェクトの集合として一緒にグループ化される場
合を処理するために、幾つかの部分から構成される。こ
の例では、各オブジェクトの各部分は、他のオブジェク
トのどの部分がその部分上に来るかを示すABOVE_LIST
と、他のオブジェクトのどの部分がその部分下に来るか
を示すBELOW_LISTとを有する。
【0021】図8は、オブジェクトがユーザによりドラ
ッグされることを見越して、オブジェクトが最初にピッ
クされる時に実行される初期化ステップを表し、好適に
はマウス・ボタンが押される時に呼出される。ステップ
500で、ポイントされるオブジェクト上のピックを維
持するためにマウス・フォーカスがロックされ、オブジ
ェクトがドラッグされる時のオブジェクトの輪郭位置を
計算するために、マウスの現在位置が獲得される。描画
モードはXOR(オブジェクトが同一ロケーションに2
度描画されると、それが消去される)にセットされ、オ
ブジェクトのドラッグの際に、その輪郭を色付けして示
すために色がセットされる。ステップ510で、DRAW_X
OR_FRAMEルーチンが呼出され、オブジェクトがドラッグ
される以前に、オブジェクトのXORフレームを描画す
る。DRAW_XOR_FRAMEルーチンについては以下で詳細に述
べられる。図8に対応する擬似コードを表1に示す。
【表1】 ドラッグ・オペレーションの初期化: METHOD MOUSE_BUTTON_PRESSED: LOCK MOUSE FOCUS; GET THE CURRENT MOUSE POSITION; SET THE DRAWING MODE TO XOR MODE; SET THE XOR MODE DRAWING COLOR; CALL(DRAW_XOR_FRAME)TO DRAW THE INITIAL XOR FRAME BEFORE DRAGGING; ENDMETHOD.
【0022】図9は、ユーザがマウス・ボタンを押しな
がらマウスを移動することにより、オブジェクトのドラ
ッグを開始する時に実行されるステップを表す。ステッ
プ520で、マウスの新たな位置が獲得される。第2の
ステップ530では、DETECT_INTERSECTルーチンが呼出
され、オブジェクトの移動が別のオブジェクトとのイン
ターセクトまたはインターロックを生じたかどうかが判
断され、その状態がステップ540でテストされる。イ
ンターロック状態が発生すると、ユーザはオブジェクト
をそれ以上ドラッグすることはなく、ドラッグ・ルーチ
ンが終了される。別の実施例では、インターロックされ
るオブジェクトがドラッグ・オブジェクトと一緒にグル
ープ化され、両方のオブジェクトが一緒にドラッグされ
る。インターロック状態が発生しないと処理はステップ
550に移行する。ステップ550及び560では、オ
ブジェクトのXORフレームが旧位置から消去され、新
たな位置に再描画される。ステップ570で、旧マウス
位置が新たなマウス位置にセットされる。図9に対応す
る擬似コードを表2に示す。
【表2】 グラフィカル・オブジェクトのドラッグ: METHOD MOUSE_MOVED: GET THE NEW MOUSE POSITION; CALL(DETECT_INTERSECT); IF(INTERLOCK=FALSE)THEN: CALL(DRAW_XOR_FRAME)TO ERASE THE OLD XOR FRAME AT THE OLD MOUSE POSITION; CALL(DRAW_XOR_FRAME)TO DRAW THE NEW XOR FRAME AT THE NEW MOUSE POSITION; SET OLD MOUSE POSITION = NEW MOUSE POSITION; ENDIF; ENDMETHOD.
【0023】図10は、ドラッグ・オブジェクトまたは
その1部が、新たなオブジェクトまたはその1部にイン
ターセクトしたかどうかを判断するために実行されるス
テップを表す。最初のステップ600で、OBJECT_Xがド
ラッグ・オブジェクトの第1部分にセットされる(ドラ
ッグ・オブジェクトが複数の凸状オブジェクトに分割さ
れる凹状オブジェクトの場合)。ステップ610で、OB
JECT_Yがウィンドウ内の第1のオブジェクトの第1部分
にセットされる。ステップ620で、2つのオブジェク
トが初めてインターセクトするかどうかが判断される。
これはオブジェクトの任意の辺がインターセクトするか
どうかを判断し、次に各オブジェクトのABOVE_LIST及び
BELOW_LISTをチェックし、以前にインターセクトが発生
したかどうかを確認することにより決定される。ステッ
プ620が偽の場合、処理は後述のステップ650に移
行する。ステップ620が真の場合、ステップ630
で、インターセクトする辺がOBJECT_XまたはOBJECT_Yの
内側の辺かどうかを判断する。肯定の場合、ステップ6
35で、各オブジェクトのABOVE_LIST及びBELOW_LIST
が、内側の辺を共有する対応部分のABOVE_LISTまたはBE
LOW_LISTに対応するようにセットされる。すなわちOBJE
CT_XがOBJECT_Yと、OBJECT_Yの内側の辺において初めて
インターセクトする場合、OBJECT_Xは、OBJECT_Yと内側
の辺を共有する別の部分と以前にインターセクトしてい
なければならない。OBJECT_Xが、内側の辺を共有する他
の部分の下方に位置するようにリストされる場合、OBJE
CT_XもまたOBJECT_Yの下方に位置するはずである。ステ
ップ635が実行されると処理は後述のようにステップ
650に移行する。ステップ630が偽の場合、ステッ
プ640で、ユーザがALTキー、すなわちOBJECT_X
(ドラッグ・オブジェクト)がOBJECT_Yの下を通過すべ
きことを示すキーを押しているかどうかが判断される。
もちろん、別の実施例では、ドラッグ・オブジェクトが
他のオブジェクトの下方または上方を通過すべきことを
示すために別の方法を使用してもよい。ステップ640
が偽の場合、ステップ645で、OBJECT_XがOBJECT_Yの
ABOVE_LIST内にリストされ、OBJECT_YがOBJECT_XのBELO
W_LIST内にリストされる。ステップ640が真の場合、
ステップ647で、OBJECT_XがOBJECT_YのBELOW_LISTに
リストされ、OBJECT_YがOBJECT_XのABOVE_LIST内にリス
トされる。どちらの場合にも、処理はステップ650に
移行する。ステップ650では、OBJECT_Yがウィンドウ
内のオブジェクトの次の部分にセットされる。ステップ
655で、ウィンドウ内のあるオブジェクトの最後の部
分が処理されたかどうかが判断される。否定の場合、処
理はステップ620に戻る。肯定の場合、ステップ66
0で、OBJECT_Xがドラッグ・オブジェクトの次の部分に
セットされる。ステップ665で、前OBJECT_XのABOVE_
LIST及びBELOW_LISTの全てのエントリがチェックされ、
リストされる他の全ての部分がインターセクトするかど
うかが確認される。これは上述のステップ620乃至6
50の間に、リスト内のあらゆるエントリにフラグを立
てることにより容易にチェックされる。インターセクト
しないエントリは、本発明の好適な実施例では全てのリ
ストから消去される。これによりユーザは、ドラッグ・
オブジェクトが第2のオブジェクト上に来るように最初
に指定し、次にドラッグ・オブジェクトが第2のオブジ
ェクトとインターセクトすることを撤回することが可能
となり、それにより両方のオブジェクトのリスト内のエ
ントリが消去される。次にユーザはドラッグ・オブジェ
クトを第2のオブジェクトの下方にドラッグする。ステ
ップ670では、OBJECT_Xの全ての部分が処理されたか
どうかを判断する。否定の場合、次に処理はステップ6
10に戻る。肯定の場合、ステップ675でDETECT_INT
ERLOCKルーチンが呼出される。DETECT_INTERLOCKルーチ
ンについては、以下で詳細に述べられる。図10に対応
する擬似コードを表3に示す。
【表3】 インターセクト状態の検出: METHOD DETECT_INTERSECT: SET OBJECT_X = FIRST PART OF THE DRAGGED OBJECT; REPEAT_START(FOR ALL PARTS OF THE DRAGGED OBJECT): SET OBJECT_Y = FIRST PART OF FIRST OBJECT IN THE WINDOW; REPEAT_START(FOR ALL PARTS OF THE WINDOW OBJECTS): IF(ANY EDGE OF OBJECT_X INTERSECTS ANY EDGE OF OBJECT_Y FOR THE FIRST TIME)THEN: IF(THE INTERSECTING EDGE IS AN INTERIOR EDGE OF EITHER OBJECT_X OR OBJECT_Y)THEN: SET ABOVE_LIST AND BELOW_LIST OF OBJECT_X AND OBJECT_Y TO BE EQUAL TO THE PART OF OBJECT_X OR OBJECT_Y THAT SHARES THE COMMON INTERIOR EDGE; ELSE; IF(ALT KEY IS PRESSED)THEN: ADD OBJECT_Y TO THE BELOW_LIST OF OBJECT_X; ADD OBJECT_X TO THE ABOVE_LIST OF OBJECT_Y; ELSE: ADD OBJECT_Y TO THE ABOVE_LIST OF OBJECT_X; ADD OBJECT_X TO THE BELOW_LIST OF OBJECT_Y; ENDIF; ENDIF; ENDIF; SET OBJECT_Y = NEXT PART OF THE NEXT OBJECT IN THE WINDOW; REPEAT_UNTIL ALL THE PARTS OF ALL THE OBJECTS IN THE WINDOW HAVE BEEN PROCESSED; ERASE ALL ENTRIES IN DRAGGED OBJECT ABOVE_LIST AND BELOW_LIST AND CORRESPONDING ENTRIES IN WINDOW OBJECTS THAT NO LONGER INTERSECT EACH OTHER; SET OBJECT_X = NEXT PART OF THE DRAGGED OBJECT; REPEAT_UNTIL ALL THE PARTS OF THE DRAGGED OBJECT HAVE BEEN PROCESSED; CALL(DETECT_INTERLOCK) ENDMETHOD.
【0024】図11はインターロック状態が存在するか
どうかを判断するために実行されるステップを表す。最
初のステップ700では、INTERLOCK_FLAGが偽にセット
され、OBJECT_Xがドラッグ・オブジェクトとしてセット
され、OBJECT_Yがウィンドウ内の第1のオブジェクトと
してセットされる。ステップ705では、VERTEX_VがOB
JECT_Yの第1の頂点としてセットされる。ステップ71
0では、OBJECT_XがOBJECT_YのVERTEX_Vに初めて遭遇し
たかどうか、或いはOBJECT_YがOBJECT_XのVERTEX_Vに初
めて遭遇したかどうかを判断する(OBJECT_X及びOBJECT
_Yの両方の全ての頂点がVERTEX_Vとしてチェックされ
る)。否定の場合、処理は後述のステップ730に移行
する。ステップ710が真の場合、ステップ715でVE
RTEX_Vがそのオブジェクト(OBJECT_XまたはOBJECT_Y)
の凹状部分内に存在するかどうか、及びインターロック
状態が発生したかどうかが判断される。OBJECT_XがOBJE
CT_Yの1部分の上にあり、OBJECT_XがまたOBJECT_Yの第
2部分の下にあり、OBJECT_Yの両部分がVERTEX_Vを含む
時にVERTEX_VがOBJECT_Yの頂点であると、インターロッ
ク状態が発生する。インターロック状態はまたOBJECT_Y
がOBJECT_Xの1部分の上にあり、OBJECT_YがまたOBJECT
_Xの第2部分の下にあり、OBJECT_Xの両部分がVERTEX_V
を含む時にVERTEX_VがOBJECT_Xの頂点であっても発生す
る。ステップ715が偽の場合、インターロック状態は
発生しておらず処理は後述のステップ730に移行す
る。ステップ715が真の場合、インターロック状態が
発生しており処理はステップ720に移行する。ステッ
プ720では、INTERLOCK_FLAGが真にセットされ、処理
はステップ730に移行する。ステップ730では、VE
RTEX_VがOBJECT_YまたはOBJECT_Xの次の頂点にセットさ
れる(既にOBJECT_Yの全ての頂点は1度処理されてい
る)。ステップ735では、OBJECT_Y及びOBJECT_Xの全
ての頂点が処理されたかどうかが判断される。否定の場
合、処理はステップ710に戻る。肯定の場合、ステッ
プ740で、OBJECT_Yがウィンドウ内の次のオブジェク
トにセットされる。ステップ745では、ウィンドウ内
の全てのオブジェクトが処理されたかどうかが判断され
る。否定の場合、処理はステップ705に戻る。肯定の
場合、処理はこのルーチンを終了する。図11に対応す
る擬似コードを表4に示す。
【表4】 インターロック状態の検出: METHOD DETECT_INTERLOCK: SET INTERLOCK_FLAG = FALSE; SET OBJECT_X = THE DRAGGED OBJECT; SET OBJECT_Y = THE FIRST OBJECT IN THE WINDOW; REPEAT_START(FOR ALL OBJECTS): SET VERTEX_V = THE FIRST VERTEX OF OBJECT_Y; REPEAT_START(FOR ALL OBJECT_Y & X VERTICES): IF(OBJECT_X ENCOUNTERS VERTEX_V OF OBJECT_Y FOR THE FIRST TIME OR OBJECT_Y ENCOUNTERS VERTEX_V OF OBJECT_X FOR THE FIRST TIME) THEN: IF(VERTEX_V IS IN A CONCAVE AREA AND PART OF OBJECT_Y IS BELOW OBJECT_X AND IF ANOTHER PART OF OBJECT_Y IS ABOVE OBJECT_X AND BOTH PARTS OF OBJECT_Y OR OBJECT_X CONTAIN VERTEX_V)THEN: SET INTERLOCK_FLAG = TRUE; ENDIF; ENDIF; SET VERTEX_V = NEXT VERTEX OF OBJECT_Y OR OBJECT_X; REPEAT_UNTIL ALL THE VERTICES OF OBJECT_Y AND OBJECT_X HAVE BEEN PROCESSED; SET OBJECT_Y = NEXT OBJECT IN THE WINDOW; REPEAT_UNTIL ALL THE OBJECT IN THE WINDOW HAVE BEEN PROCESSED; ENDMETHOD.
【0025】図12は、ユーザがグラフィカル・オブジ
ェクトのドラッグを完了した時に実行される終了ステッ
プを表し、マウス・ボタンが解放される時に呼出され
る。ステップ800で、マウス・フォーカスがアンロッ
クされ、それによりオブジェクトのピックが解放され
る。ステップ810で、DRAW_XOR_FRAMEルーチンが呼出
され、現マウス位置のオブジェクトの最後のXORフレ
ームを消去する。ステップ620で、描画モードがXO
Rモードからコピー・モードに設定し戻される。ステッ
プ630で、OBJECT_REDISPLAYルーチンが呼出され、最
終マウス位置にオブジェクトを完全な形態で再描画す
る。OBJECT_REDISPLAYルーチンは図14を参照して、以
降で詳述される。図12に対応する擬似コードを表5に
示す。
【表5】 描画オペレーションの終了: METHOD MOUSE_BUTTON_RELEASED: UNLOCK THE MOUSE FOCUS; CALL(DRAW_XOR_FRAME)TO ERASE THE LAST XOR FRAME AT THE CURRENT MOUSE POSITION; SET THE DRAWING MODE TO COPY MODE; CALL(OBJECT_REDISPLAY)TO REDISPLAY THE DRAGGED OBJECT_X AT THE FINAL MOUSE POSITION; ENDMETHOD.
【0026】図13はドラッグ・オブジェクトを描画す
るために実行されるステップを表し、上述のルーチンに
より呼出される。ステップ850では、PART_AがOBJECT
_Xの第1部分にセットされる(これはOBJECT_Xが凹状で
あり、幾つかの凸状部分に分割されるか、OBJECT_Xがグ
ラフィックス・オブジェクトの集合である場合の処理に
対応する)。ステップ860で、OBJECT_YがABOVE_LIST
の第1のオブジェクトにセットされる。ステップ870
では、PART_AがOBJECT_Yによりクリップされ、OBJECT_Y
がABOVE_LISTの次の部分にセットされる。ステップ87
5では、トップ・リストの全ての部分が処理されたかど
うかが判断される。否定の場合、処理はステップ870
に戻り、肯定の場合には、処理はステップ880に移行
する。ステップ880では、PART_AがOBJECT_Xの次の部
分にセットされる。ステップ885では、OBJECT_Xの全
ての部分が処理されたかどうかが判断される。否定の場
合、処理はステップ860に戻り、肯定の場合には処理
は終了する。図13に対応する擬似コードを表6に示
す。
【表6】 オブジェクトのXORフレームの描画: METHOD DRAW_XOR_FRAME: SET PART_A = THE FIRST PART OF THE DRAGGED OBJECT_X; REPEAT_START: SET OBJECT_Y = THE FIRST PART OF THE ABOVE_LIST; REPEAT_START: CLIP PART_A BY OBJECT_Y; SET OBJECT_Y = THE NEXT PART OF THE ABOVE_LIST; REPEAT_UNTIL ALL THE PARTS OF THE ABOVE_LIST HAVE BEEN PROCESSED; SET PART_A = THE NEXT PART OF THE DRAGGED OBJECT_X; REPEAT_UNTIL ALL THE PARTS OF THE DRAGGED OBJECT_X HAVE BEEN PROCESSED; ENDMETHOD
【0027】図14はウィンドウ内のドラッグ・オブジ
ェクトを再表示するために実行されるステップを表し、
上述のルーチンにより呼出される。ステップ900で、
ドラッグ・オブジェクトが描画され、PART_Aがドラッグ
・オブジェクトの第1の部分としてセットされる。ステ
ップ910では、PART_AのABOVE_LISTの第1のエントリ
が検索される。ステップ920では、PART_AのABOVE_LI
STにリストされる選択部分を含むオブジェクトが表示さ
れる。更にPART_AのABOVE_LISTの次のエントリが検索さ
れる。ステップ925では、PART_AのABOVE_LISTの全て
のエントリが処理されたかどうかが判断される。否定の
場合、処理はステップ920に戻る。肯定の場合にはス
テップ930で、PART_Aがドラッグ・オブジェクトの次
の部分にセットされる。ステップ935では、ドラッグ
・オブジェクトの全ての部分が処理されたかどうかが判
断される。否定の場合、処理はステップ910に戻る。
肯定の場合、処理は終了する。図14に対応する擬似コ
ードを表7に示す。
【表7】 オブジェクトの再表示: METHOD OBJECT REDISPLAY: DRAW THE DRAGGED OBJECT; SET PART_A = THE FIRST PART OF THE DRAGGED OBJECT; REPEAT_START: START FROM THE FIRST PART OF THE ABOVE_LIST OF PART_A; REPEAT_START: DISPLAY THE OBJECT THAT CONTAINS THE PART IN THE ABOVE_LIST OF PART_A; MOVE TO THE NEXT PART OF THE ABOVE_LIST OF PART_A; REPEAT_UNTIL ALL THE PARTS OF THE ABOVE_LIST OF PART_A HAVE BEEN PROCESSED; SET PART_A = THE NEXT PART OF THE DRAGGED OBJECT; REPEAT_UNTIL ALL THE PARTS OF THE DRAGGED OBJECT HAVE BEEN PROCESSED; ENDMETHOD.
【0028】本発明は特定の実施例に関して述べられて
きたが、他の実施例についても当業者には明らかであろ
う。従って、上述の説明は本発明の範囲を制限するもの
ではない。
【0029】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0030】(1)グラフィカル・オブジェクトを移動
する装置であって、表示優先順位に従い複数のグラフィ
カル・オブジェクトを表示するディスプレイと、ユーザ
入力に応答して表示グラフィカル・オブジェクトを移動
する手段と、グラフィカル・オブジェクトの移動時に、
移動グラフィカル・オブジェクトが第2の表示グラフィ
カル・オブジェクトの1部の下方に表示されるように、
ユーザ入力に応答して、前記移動グラフィカル・オブジ
ェクトの表示優先順位を変更する手段と、を含む、装
置。 (2)前記変更手段が、グラフィカル・オブジェクトの
移動時に、移動グラフィカル・オブジェクトが第2の表
示グラフィカル・オブジェクトの第2部分の上に表示さ
れるように、前記移動グラフィカル・オブジェクトの表
示優先順位を変更する、前記(1)記載の装置。 (3)移動グラフィカル・オブジェクトが第2の表示グ
ラフィカル・オブジェクトをインターロックするかどう
かを計算する手段を含む、前記(2)記載の装置。 (4)移動グラフィカル・オブジェクトが第2の表示グ
ラフィカル・オブジェクトをインターロックすると計算
されると、前記移動グラフィカル・オブジェクトのそれ
以上の移動を阻止する手段を含む、前記(3)記載の装
置。 (5)前記第2の表示グラフィカル・オブジェクト及び
前記移動グラフィカル・オブジェクトの両者が一緒に移
動されるように、前記第2の表示グラフィカル・オブジ
ェクトを前記移動グラフィカル・オブジェクトと一緒に
グループ化する手段を含む、前記(3)記載の装置。 (6)表示優先順位に従い複数のグラフィカル・オブジ
ェクトを表示するディスプレイと、データを記憶するメ
モリと、前記記憶データを処理するプロセッサと、を含
むデータ処理システムであって、前記プロセッサが、 i)ユーザ入力に応答して表示グラフィカル・オブジェ
クトを移動する手段と、 ii)グラフィカル・オブジェクトの移動時に、移動グ
ラフィカル・オブジェクトが第2の表示グラフィカル・
オブジェクトの1部の下方に表示されるようにユーザ入
力に応答して、前記移動グラフィカル・オブジェクトの
表示優先順位を変更する手段と、を含む、前記データ処
理システム。 (7)前記変更手段が、グラフィカル・オブジェクトの
移動時に、移動グラフィカル・オブジェクトが第2の表
示グラフィカル・オブジェクトの第2部分の上に表示さ
れるように、前記移動グラフィカル・オブジェクトの表
示優先順位を変更する、前記(6)記載のデータ処理シ
ステム。 (8)前記プロセッサが、移動グラフィカル・オブジェ
クトが第2の表示グラフィカル・オブジェクトをインタ
ーロックするかどうかを計算する手段を含む、前記
(7)記載のデータ処理システム。 (9)移動グラフィカル・オブジェクトが第2の表示グ
ラフィカル・オブジェクトをインターロックすると計算
されると、前記プロセッサが前記移動グラフィカル・オ
ブジェクトのそれ以上の移動を阻止する手段を含む、前
記(8)記載のデータ処理システム。 (10)前記第2の表示グラフィカル・オブジェクト及
び前記移動グラフィカル・オブジェクトの両者が一緒に
移動されるように、前記第2の表示グラフィカル・オブ
ジェクトを前記移動グラフィカル・オブジェクトと一緒
にグループ化する手段を含む、前記(8)記載のデータ
処理システム。 (11)グラフィカル・オブジェクトを移動する方法で
あって、表示優先順位に従い複数のグラフィカル・オブ
ジェクトをディスプレイ上に表示するステップと、ユー
ザ入力に応答して表示グラフィカル・オブジェクトを移
動するステップと、グラフィカル・オブジェクトの移動
時に、移動グラフィカル・オブジェクトが第2の表示グ
ラフィカル・オブジェクトの1部の下方に表示されるよ
うに、ユーザ入力に応答して、前記移動グラフィカル・
オブジェクトの表示優先順位を変更するステップと、を
含む、方法。 (12)前記変更ステップが、グラフィカル・オブジェ
クトの移動時に、移動グラフィカル・オブジェクトが第
2の表示グラフィカル・オブジェクトの第2部分の上に
表示されるように、前記移動グラフィカル・オブジェク
トの表示優先順位を変更する、前記(11)記載の方
法。 (13)移動グラフィカル・オブジェクトが第2の表示
グラフィカル・オブジェクトをインターロックするかど
うかを計算するステップを含む、前記(12)記載の方
法。 (14)移動グラフィカル・オブジェクトが第2の表示
グラフィカル・オブジェクトをインターロックすると計
算されると、前記移動グラフィカル・オブジェクトのそ
れ以上の移動を阻止するステップを含む、前記(13)
記載の方法。 (15)前記第2の表示グラフィカル・オブジェクト及
び前記移動グラフィカル・オブジェクトの両者が一緒に
移動されるように、前記第2の表示グラフィカル・オブ
ジェクトを前記移動グラフィカル・オブジェクトと一緒
にグループ化するステップを含む、前記(13)記載の
方法。 (16)グラフィカル・オブジェクトを移動するコンピ
ュータ・プログラム・プロダクトであって、表示優先順
位に従い複数のグラフィカル・オブジェクトをディスプ
レイ上に表示する手段と、ユーザ入力に応答して表示グ
ラフィカル・オブジェクトを移動する手段と、グラフィ
カル・オブジェクトの移動時に、移動グラフィカル・オ
ブジェクトが第2の表示グラフィカル・オブジェクトの
1部の下方に表示されるように、ユーザ入力に応答し
て、前記移動グラフィカル・オブジェクトの表示優先順
位を変更する手段と、を含む、コンピュータ・プログラ
ム・プロダクト。 (17)前記変更手段が、グラフィカル・オブジェクト
の移動時に、移動グラフィカル・オブジェクトが第2の
表示グラフィカル・オブジェクトの第2部分の上に表示
されるように、前記移動グラフィカル・オブジェクトの
表示優先順位を変更する、前記(16)記載のコンピュ
ータ・プログラム・プロダクト。 (18)移動グラフィカル・オブジェクトが第2の表示
グラフィカル・オブジェクトをインターロックするかど
うかを計算する手段を含む、前記(17)記載のコンピ
ュータ・プログラム・プロダクト。 (19)移動グラフィカル・オブジェクトが第2の表示
グラフィカル・オブジェクトをインターロックすると計
算されると、前記移動グラフィカル・オブジェクトのそ
れ以上の移動を阻止する手段を含む、前記(18)記載
のコンピュータ・プログラム・プロダクト。 (20)前記第2の表示グラフィカル・オブジェクト及
び前記移動グラフィカル・オブジェクトの両者が一緒に
移動されるように、前記第2の表示グラフィカル・オブ
ジェクトを前記移動グラフィカル・オブジェクトと一緒
にグループ化する手段を含む、前記(18)記載のコン
ピュータ・プログラム・プロダクト。
【0031】
【発明の効果】以上説明したように、本発明によれば、
ユーザはグラフィカル・オブジェクトを別のグラフィカ
ル・オブジェクトの上方、下方、或いは上下両方(イン
ターロッキング)にドラッグすることが可能となる。
【図面の簡単な説明】
【図1】本発明の好適な実施例により使用される典型的
デジタル・コンピュータを表す図である。
【図2】グラフィックス機能を実行するために、ホスト
・コンピュータ及びグラフィックス・アダプタにより通
常、使用されるコード層を表すブロック図である。
【図3】凸状及び凹状多角形を含む幾つかの多角形の表
示を表す図である。
【図4】図3のオブジェクトCを図3のオブジェクトA
を横切りドラッグする様子を表す図である。
【図5】図3のオブジェクトCを図3のオブジェクトA
を横切りドラッグする様子を表す図である。
【図6】図3のオブジェクトCを図3のオブジェクトA
を横切りドラッグする様子を表す図である。
【図7】図3のオブジェクトCを図3のオブジェクトA
を横切りドラッグする様子を表す図である。
【図8】本発明の実施例によるグラフィカル・オブジェ
クトのドラッグ処理を表す流れ図である。
【図9】本発明の実施例によるグラフィカル・オブジェ
クトのドラッグ処理を表す流れ図である。
【図10】本発明の実施例によるグラフィカル・オブジ
ェクトのドラッグ処理を表す流れ図である。
【図11】本発明の実施例によるグラフィカル・オブジ
ェクトのドラッグ処理を表す流れ図である。
【図12】本発明の実施例によるグラフィカル・オブジ
ェクトのドラッグ処理を表す流れ図である。
【図13】本発明の実施例によるグラフィカル・オブジ
ェクトのドラッグ処理を表す流れ図である。
【図14】本発明の実施例によるグラフィカル・オブジ
ェクトのドラッグ処理を表す流れ図である。
【符号の説明】
100 デジタル・コンピュータ 105 コンピュータ・ボックス 110 主プロセッサ 120 主メモリ 125 ハード・ディスク 130 入力装置 140 出力装置 150 グラフィックス出力装置 160 バス 170 入出力装置制御装置 180 入出力装置 190 コンピュータ読出し可能取り出し可能媒体 200 グラフィックス・アダプタ 230 グラフィックス・アダプタ・メモリ 240 フレーム・バッファ 250 RAMDAC(ランダム・アクセス・メモリ・
デジタル−アナログ変換器) 300 オペレーティング・システム 310 オペレーティング・システム・カーネル 320 ホスト・コンピュータ・マイクロコード 330、332 グラフィックス・アプリケーション 340、342 グラフィックス・アプリケーションA
PI(アプリケーション・プログラム・インタフェー
ス) 350、352 GAI(グラフィックス・アプリケー
ション・インタフェース) 360、362 プロセス 370 グラフィックス・アダプタ・デバイス・ドライ
バ 380 マイクロコード 400 ディスプレイ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・シ−ヤン・ワン アメリカ合衆国78746、テキサス州オース ティン、サークル・リッジ・ドライブ 1435

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】グラフィカル・オブジェクトを移動する装
    置であって、 表示優先順位に従い複数のグラフィカル・オブジェクト
    を表示するディスプレイと、 ユーザ入力に応答して表示グラフィカル・オブジェクト
    を移動する手段と、 グラフィカル・オブジェクトの移動時に、移動グラフィ
    カル・オブジェクトが第2の表示グラフィカル・オブジ
    ェクトの1部の下方に表示されるように、ユーザ入力に
    応答して、前記移動グラフィカル・オブジェクトの表示
    優先順位を変更する手段と、 を含む、装置。
  2. 【請求項2】前記変更手段が、グラフィカル・オブジェ
    クトの移動時に、移動グラフィカル・オブジェクトが第
    2の表示グラフィカル・オブジェクトの第2部分の上に
    表示されるように、前記移動グラフィカル・オブジェク
    トの表示優先順位を変更する、請求項1記載の装置。
  3. 【請求項3】移動グラフィカル・オブジェクトが第2の
    表示グラフィカル・オブジェクトをインターロックする
    かどうかを計算する手段を含む、請求項2記載の装置。
  4. 【請求項4】移動グラフィカル・オブジェクトが第2の
    表示グラフィカル・オブジェクトをインターロックする
    と計算されると、前記移動グラフィカル・オブジェクト
    のそれ以上の移動を阻止する手段を含む、請求項3記載
    の装置。
  5. 【請求項5】前記第2の表示グラフィカル・オブジェク
    ト及び前記移動グラフィカル・オブジェクトの両者が一
    緒に移動されるように、前記第2の表示グラフィカル・
    オブジェクトを前記移動グラフィカル・オブジェクトと
    一緒にグループ化する手段を含む、請求項3記載の装
    置。
  6. 【請求項6】表示優先順位に従い複数のグラフィカル・
    オブジェクトを表示するディスプレイと、 データを記憶するメモリと、 前記記憶データを処理するプロセッサと、 を含むデータ処理システムであって、前記プロセッサ
    が、 i)ユーザ入力に応答して表示グラフィカル・オブジェ
    クトを移動する手段と、 ii)グラフィカル・オブジェクトの移動時に、移動グ
    ラフィカル・オブジェクトが第2の表示グラフィカル・
    オブジェクトの1部の下方に表示されるようにユーザ入
    力に応答して、前記移動グラフィカル・オブジェクトの
    表示優先順位を変更する手段と、 を含む、前記データ処理システム。
  7. 【請求項7】前記変更手段が、グラフィカル・オブジェ
    クトの移動時に、移動グラフィカル・オブジェクトが第
    2の表示グラフィカル・オブジェクトの第2部分の上に
    表示されるように、前記移動グラフィカル・オブジェク
    トの表示優先順位を変更する、請求項6記載のデータ処
    理システム。
  8. 【請求項8】前記プロセッサが、移動グラフィカル・オ
    ブジェクトが第2の表示グラフィカル・オブジェクトを
    インターロックするかどうかを計算する手段を含む、請
    求項7記載のデータ処理システム。
  9. 【請求項9】移動グラフィカル・オブジェクトが第2の
    表示グラフィカル・オブジェクトをインターロックする
    と計算されると、前記プロセッサが前記移動グラフィカ
    ル・オブジェクトのそれ以上の移動を阻止する手段を含
    む、請求項8記載のデータ処理システム。
  10. 【請求項10】前記第2の表示グラフィカル・オブジェ
    クト及び前記移動グラフィカル・オブジェクトの両者が
    一緒に移動されるように、前記第2の表示グラフィカル
    ・オブジェクトを前記移動グラフィカル・オブジェクト
    と一緒にグループ化する手段を含む、請求項8記載のデ
    ータ処理システム。
  11. 【請求項11】グラフィカル・オブジェクトを移動する
    方法であって、 表示優先順位に従い複数のグラフィカル・オブジェクト
    をディスプレイ上に表示するステップと、 ユーザ入力に応答して表示グラフィカル・オブジェクト
    を移動するステップと、 グラフィカル・オブジェクトの移動時に、移動グラフィ
    カル・オブジェクトが第2の表示グラフィカル・オブジ
    ェクトの1部の下方に表示されるように、ユーザ入力に
    応答して、前記移動グラフィカル・オブジェクトの表示
    優先順位を変更するステップと、 を含む、方法。
  12. 【請求項12】前記変更ステップが、グラフィカル・オ
    ブジェクトの移動時に、移動グラフィカル・オブジェク
    トが第2の表示グラフィカル・オブジェクトの第2部分
    の上に表示されるように、前記移動グラフィカル・オブ
    ジェクトの表示優先順位を変更する、請求項11記載の
    方法。
  13. 【請求項13】移動グラフィカル・オブジェクトが第2
    の表示グラフィカル・オブジェクトをインターロックす
    るかどうかを計算するステップを含む、請求項12記載
    の方法。
  14. 【請求項14】移動グラフィカル・オブジェクトが第2
    の表示グラフィカル・オブジェクトをインターロックす
    ると計算されると、前記移動グラフィカル・オブジェク
    トのそれ以上の移動を阻止するステップを含む、請求項
    13記載の方法。
  15. 【請求項15】前記第2の表示グラフィカル・オブジェ
    クト及び前記移動グラフィカル・オブジェクトの両者が
    一緒に移動されるように、前記第2の表示グラフィカル
    ・オブジェクトを前記移動グラフィカル・オブジェクト
    と一緒にグループ化するステップを含む、請求項13記
    載の方法。
  16. 【請求項16】グラフィカル・オブジェクトを移動する
    コンピュータ・プログラム・プロダクトであって、 表示優先順位に従い複数のグラフィカル・オブジェクト
    をディスプレイ上に表示する手段と、 ユーザ入力に応答して表示グラフィカル・オブジェクト
    を移動する手段と、 グラフィカル・オブジェクトの移動時に、移動グラフィ
    カル・オブジェクトが第2の表示グラフィカル・オブジ
    ェクトの1部の下方に表示されるように、ユーザ入力に
    応答して、前記移動グラフィカル・オブジェクトの表示
    優先順位を変更する手段と、 を含む、コンピュータ・プログラム・プロダクト。
  17. 【請求項17】前記変更手段が、グラフィカル・オブジ
    ェクトの移動時に、移動グラフィカル・オブジェクトが
    第2の表示グラフィカル・オブジェクトの第2部分の上
    に表示されるように、前記移動グラフィカル・オブジェ
    クトの表示優先順位を変更する、請求項16記載のコン
    ピュータ・プログラム・プロダクト。
  18. 【請求項18】移動グラフィカル・オブジェクトが第2
    の表示グラフィカル・オブジェクトをインターロックす
    るかどうかを計算する手段を含む、請求項17記載のコ
    ンピュータ・プログラム・プロダクト。
  19. 【請求項19】移動グラフィカル・オブジェクトが第2
    の表示グラフィカル・オブジェクトをインターロックす
    ると計算されると、前記移動グラフィカル・オブジェク
    トのそれ以上の移動を阻止する手段を含む、請求項18
    記載のコンピュータ・プログラム・プロダクト。
  20. 【請求項20】前記第2の表示グラフィカル・オブジェ
    クト及び前記移動グラフィカル・オブジェクトの両者が
    一緒に移動されるように、前記第2の表示グラフィカル
    ・オブジェクトを前記移動グラフィカル・オブジェクト
    と一緒にグループ化する手段を含む、請求項18記載の
    コンピュータ・プログラム・プロダクト。
JP6288245A 1993-12-15 1994-11-22 グラフィカル・オブジェクトをインターロックする方法及び装置 Expired - Lifetime JP2750318B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US167754 1993-12-15
US08/167,754 US5546524A (en) 1993-12-15 1993-12-15 Method and apparatus for interlocking graphical objects

Publications (2)

Publication Number Publication Date
JPH07200218A true JPH07200218A (ja) 1995-08-04
JP2750318B2 JP2750318B2 (ja) 1998-05-13

Family

ID=22608685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6288245A Expired - Lifetime JP2750318B2 (ja) 1993-12-15 1994-11-22 グラフィカル・オブジェクトをインターロックする方法及び装置

Country Status (5)

Country Link
US (1) US5546524A (ja)
EP (1) EP0658859B1 (ja)
JP (1) JP2750318B2 (ja)
KR (1) KR0150832B1 (ja)
DE (1) DE69429417T2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2692782B2 (ja) 1993-12-13 1997-12-17 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクトをリンクする方法
US6487588B1 (en) 1996-09-23 2002-11-26 International Business Machines Corporation Web browser which automatically loads selected types of graphics
US20020030843A1 (en) * 2000-02-02 2002-03-14 Tuli Raja Singh Portable high speed internet access device
US7356570B1 (en) 2000-08-29 2008-04-08 Raja Tuli Portable high speed communication device
US7068381B1 (en) 2000-02-02 2006-06-27 Raja Tuli Portable high speed internet access device
US7289244B2 (en) 2000-02-02 2007-10-30 Raja Singh Tuli Portable high speed internet access device
US20020115477A1 (en) * 2001-02-13 2002-08-22 Raja Singh Portable high speed internet access device with scrolling
US7023572B2 (en) * 2000-02-02 2006-04-04 Raja Singh Tuli Portable high speed internet access device
US6633314B1 (en) * 2000-02-02 2003-10-14 Raja Tuli Portable high speed internet device integrating cellular telephone and palm top computer
US6941382B1 (en) 2000-02-07 2005-09-06 Raja Tuli Portable high speed internet or desktop device
US6874009B1 (en) * 2000-02-16 2005-03-29 Raja Tuli Portable high speed internet device with user fees
JP3543942B2 (ja) * 2000-03-02 2004-07-21 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
US7191211B2 (en) * 2000-10-03 2007-03-13 Raja Tuli Portable high speed internet access device priority protocol
US6842777B1 (en) 2000-10-03 2005-01-11 Raja Singh Tuli Methods and apparatuses for simultaneous access by multiple remote devices
US6915327B1 (en) 2000-10-30 2005-07-05 Raja Singh Tuli Portable high speed communication device peripheral connectivity
US6928461B2 (en) 2001-01-24 2005-08-09 Raja Singh Tuli Portable high speed internet access device with encryption
US8176428B2 (en) 2002-12-03 2012-05-08 Datawind Net Access Corporation Portable internet access device back page cache
US8675951B2 (en) * 2007-05-11 2014-03-18 Three Pixels Wide Pty Ltd. Method and system for generating a 3D model

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8411579D0 (en) * 1984-05-05 1984-06-13 Ibm Graphic display systems
EP0212563B1 (en) * 1985-08-14 1994-11-02 Hitachi, Ltd. Display control method for multi-window system
JP2585515B2 (ja) * 1985-08-16 1997-02-26 株式会社日立製作所 図形描画方法
US5072412A (en) * 1987-03-25 1991-12-10 Xerox Corporation User interface with multiple workspaces for sharing display system objects
US4888583A (en) * 1988-03-14 1989-12-19 Ligocki Terry J Method and apparatus for rendering an image from data arranged in a constructive solid geometry format
US5355447A (en) * 1988-05-27 1994-10-11 Wang Laboratories, Inc. Method for color image reduction based upon determination of color components of pixels in neighboring blocks
ATE161979T1 (de) * 1988-05-27 1998-01-15 Kodak Ltd Dokumentenmappen-abbild zur anzeige in einem datenverarbeitungssystem
US5371845A (en) * 1990-04-27 1994-12-06 Ashlar, Inc. Technique for providing improved user feedback in an interactive drawing system
US5377317A (en) * 1991-12-20 1994-12-27 International Business Machines Corporation Method and apparatus for distinctively displaying windows on a computer display screen

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FUJI XEROX AKANEþ´ib°cð±lxbýÐ=1992 *

Also Published As

Publication number Publication date
EP0658859A2 (en) 1995-06-21
JP2750318B2 (ja) 1998-05-13
EP0658859B1 (en) 2001-12-12
US5546524A (en) 1996-08-13
DE69429417D1 (de) 2002-01-24
KR0150832B1 (ko) 1998-10-15
KR950020280A (ko) 1995-07-24
DE69429417T2 (de) 2002-08-22
EP0658859A3 (en) 1996-02-14

Similar Documents

Publication Publication Date Title
JP3030206B2 (ja) グラフィック多角形をクリップ領域にクリップする方法および装置
US5734806A (en) Method and apparatus for determining graphical object visibility
JP2750318B2 (ja) グラフィカル・オブジェクトをインターロックする方法及び装置
US5487145A (en) Method and apparatus for compositing display items which minimizes locked drawing areas
KR960016886B1 (ko) 다수의 3차원 객체로부터 가시 객체를 픽크하는 장치 및 방법과 그를 이용한 비디오 디스플레이 시스템
US6229542B1 (en) Method and apparatus for managing windows in three dimensions in a two dimensional windowing system
US5825363A (en) Method and apparatus for determining visible surfaces
US5678015A (en) Four-dimensional graphical user interface
US20040075654A1 (en) 3-D digital image processor and method for visibility processing for use in the same
JPH02230470A (ja) コンピユータグラフイツクス・デイスプレイシステム
JPH0877365A (ja) 多重プロセッサ・グラフィカル作業負荷分配を管理するための方法および装置
US7412706B2 (en) Input redirection
US5926182A (en) Efficient rendering utilizing user defined shields and windows
JP3177143B2 (ja) 補助バッファ情報を用いる改良型グラフィクス・ピッキング方法及び装置
US6392662B1 (en) Draw order preservation in a computer-implemented graphics system
KR100256472B1 (ko) 사용자가 정의한 룸 및 윈도우를 이용하는 효율적인 렌더링
JPH0714029A (ja) 線描画装置及び方法
EP1242972B1 (en) A method and apparatus for ensuring backward compatibility in a bucket rendering system
GB2238215A (en) Computer display system with a three dimensional cursor shadow
JP2000331185A (ja) 画像処理方法、画像処理装置、及びプログラム提供媒体
US5563990A (en) Method and apparatus for processing a pick event
JP2897441B2 (ja) イメージ処理方法及び装置
JPH04267427A (ja) 3次元カーソル表示方式
JP3074912B2 (ja) 3次元画像生成装置
JPH04239984A (ja) 描画処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080227

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090227

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100227

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110227

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 16

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

EXPY Cancellation because of completion of term