[第1実施例]
図1はこの発明の第1実施例である情報処理装置10の電気的な構成を示すブロック図である。
図1を参照して、この発明の第1実施例である情報処理装置10はCPU12を含む。CPU12には、バス30を介してRAM14、タッチパネル制御回路16、描画制御回路18および無線通信回路24が接続される。また、タッチパネル制御回路16にはタッチパネル20が接続され、描画制御回路18にはディスプレイ22が接続される。
この第1実施例では、情報処理装置10が電子黒板に適用される場合について説明するが、電子黒板のみならず、電子ペン200による入力が可能なものであれば、タブレット端末等、他の情報機器ないし電子機器に適用されてもよい。この情報処理装置10では、複数のユーザ(利用者)の各々が電子ペン200(図2(A)、(B)参照)を用いて文字、図形、記号等(以下、「文字等」という。)をタッチパネル20上で手書きすることにより、手書きの文字等がディスプレイ22に描画(表示)される。また、電子ペン200は、手書きの文字等の描画に用いられる他に、ファイルを選択したり、機能を実行するためのボタン(アイコン)を選択したりする等、ポインティングデバイスとしても用いられる。
また、この第1実施例では、入力手段の一例として、タッチパネル20が用いられる場合について説明するが、タッチパネル20以外の入力手段として、たとえばタッチパッドを用いてもよい。さらに、情報処理装置10には、他の入力手段として、タッチパネル20とは別に、操作パネルのようなハードウェアキーが設けられたり、ハードウェアのキーボードが接続されたりすることがある。
図1に戻って、CPU12は、情報処理装置10の全体的な制御を司る。RAM14は、CPU12のワーク領域およびバッファ領域として用いられる。無線通信回路24は、電子ペン200との間で電波または赤外線等による無線通信を行う。
タッチパネル制御回路16は、タッチパネル20に必要な電圧などを付与するとともに、タッチパネル20のタッチ有効範囲内でのタッチ操作(タッチ入力)を検出して、そのタッチ入力の位置を示すタッチ座標データをCPU12に出力する。タッチパネル20を用いた操作(入力)としては、タップ(短押し)、スライド(ドラッグ)、フリック、ロングタップ(長押し)などがあり、この第1実施例では、これらを「タッチ入力」または単に「入力」のように総称する。また、タッチパネル20をタッチしていない状態からタッチしている状態に変化することをタッチオン(ペンダウン)と言い、タッチパネル20をタッチしている状態からタッチしていない状態に変化することをタッチオフ(ペンアップ)と言う。継続的なタッチ入力つまりスライドやフリックによる入力に対しては、タッチパネル20は、現在のタッチ位置に対応するタッチ座標データを所定周期よりも短い周期で出力する。たとえば、所定周期は、1〜数フレームであり、1フレームは1/30秒または1/60秒である。
タッチパネル20は、汎用のタッチパネルであり、静電容量方式、電磁誘導方式、抵抗膜方式、赤外線方式など、任意の方式のものを用いることができる。この第1実施例では、タッチパネル20としては、静電容量方式のタッチパネルがディスプレイ22の表示面上に設けられる。また、この第1実施例のタッチパネル20は、マルチタッチのタッチパネルであり、複数のタッチ位置を同時に検出することができる。
この第1実施例では、タッチパネル20において、タッチオン(ペンダウン)されたときに、CPU12は、タッチ座標データと電子ペン200から送信された識別情報(ペンID)とを対応付けて記憶するとともに、タッチオフ(ペンアップ)されるまでのタッチ座標データを追跡(記憶)することにより、同時に検出される複数のタッチ座標データがいずれの電子ペン200の操作によるものかを判別可能にしてある。
描画制御回路18は、GPU18aおよびVRAM18bなどを含んでおり、CPU12の指示の下、GPU18aは、RAM14に記憶されたペン入力データ(304b、304c)や画像生成データ304d(図7参照)を用いてディスプレイ22に画面(後述するタッチ画面100)を表示するための表示画像データをVRAM18bに生成し、生成した表示画像データをディスプレイ22に出力する。ディスプレイ22としては、たとえばLCDやEL(Electro-Luminescence)ディスプレイなどを用いることができる。
図2(A)は電子ペンの構成を示す図解図であり、図2(B)は電子ペンの電気的な構成を示すブロック図である。
図2(A)に示すように、電子ペン200は、ペン本体202とペン先スイッチ204を含む。ペン先スイッチ204は、利用者が電子ペン200のペン先を指示対象物(この第1実施例では、タッチパネル20の検出面(パネル表面))に接触させたときに、オン状態になり、ペン先に何も接触していないときには、オフ状態となる機械式のスイッチである。ただし、ペン先スイッチ204は、機械式スイッチに限定される必要は無く、ペン先が指示対象物に接触したことと接触していないことを検出できるものであれば、光学式のスイッチ(センサ)等を用いることもできる。
また、図2(B)に示すように、電子ペン200には、上記のようなペン先スイッチ204のオン状態およびオフ状態を検出するスイッチ状態検出回路224が設けられている。スイッチ状態検出回路224には、バス240を介して制御回路220、メモリ222および無線通信回路226が接続される。メモリ222は、ROMやEEPROM(登録商標)のような不揮発性のメモリであり、当該メモリ222を内蔵する電子ペン200に設定された識別情報を記憶する。たとえば、制御回路220は、スイッチ状態検出回路224によってペン先スイッチ204がオン状態となったことが検出されると、メモリ222に記憶された識別情報を、無線通信回路226を介して情報処理装置10に送信する。
図3は情報処理装置10のディスプレイ22に表示されるタッチ画面100の一例を示す図解図である。図4は電子ペン200の機能や描画(編集)に関するアクションを選択するためのメニュー150の一例を示す図解図である。
一般的な電子黒板では、利用者が文字等を手書きすると、手書きの入力についての軌跡に従う線がタッチ画面100に表示(描画)される。つまり、手書きの文字等を含む画像(以下、「手書き画像」という。)がタッチ画面100に表示される。
たとえば、編集モードでは、図3に示すように、タッチ画面100がディスプレイ22に表示される。ただし、編集モードが開始された時点においては、文字等はディスプレイ22に描画されていない。なお、上述したように、ディスプレイ22の表示面上にはタッチパネル20が設けられる。以下、タッチ画面100が表示される場合について同様である。
タッチ画面100には、利用者の操作に応じて、図4に示すようなメニュー150が表示される。ただし、電子ペン200毎にメニュー150は表示される。図4に示すように、メニュー150は、ペン(手書き入力)、消しゴム、線の太さ、色の選択などの電子ペン200の機能(モード)を設定(選択)するためのボタンと、元に戻す、保存などの描画に関する所定のアクションを実行させるボタンを含む。他のモードとしては、範囲指定、範囲指定を伴うカット、範囲指定を伴うコピーなどが該当する。また、他のアクションとしては、ペースト、範囲指定を伴わないカット、範囲指定を伴わないコピーなどが該当する。
このようなメニュー150で所望の項目を選択することにより、所望の機能を選択したり、所望のアクションを実行したりして、文字等を描画したり、削除したりするなどの編集が実行される。
具体的には、ペンボタンが選択(タッチ)されると、手書き入力モードが設定され、利用者が電子ペン200を用いて文字等を手書きすることができる。また、消しゴムボタンが選択されると、文字等を消去する消しゴムモードが設定され、文字等のうち、利用者が電子ペン200でなぞった部分が消去される。さらに、線の太さボタンがタッチされると、線の太さを変更するモードが設定され、サブメニューで線の太さを変更することができる。同様に、色の選択ボタンがタッチされると、色を選択するモードが設定され、サブメニューで色を選択することができる。また、元に戻すボタンがタッチされると、最後のアクションが取り消され、タッチ画面100が直前の状態に戻される。さらに、保存ボタンがタッチされると、タッチ画面100に描画された文字等のデータが保存(セーブ)される。
たとえば、2人の利用者がそれぞれ電子ペン200を用いて情報処理装置10のディスプレイ22に文字等を手書きすることができる。以下、説明の都合上、一方の利用者(第1利用者)が一方の電子ペン200(第1電子ペン200a)を使用し、他方の利用者(第2利用者)が他方の電子ペン200(第2電子ペン200b)を使用するものとする。図3に示す例では、第1利用者が、第1電子ペン200aでタッチ画面100の左側(利用者の立ち位置から向かって左)に丸を一つ手書きし、第2利用者が、第2電子ペン200bでタッチ画面100の右側と中央から左寄りとに二つの三角形を手書きしたタッチ画面100が示される。図3からも分かるように、第1利用者が手書きした丸の一部の上側(前面)に、第2利用者が手書きした一方の三角形の一部が重なっている。
このような場合、文字等の重なりを解消するために、丸の一部と三角形の一部とが重なった部分を消去したり、修正したりすることが考えられる。つまり、編集することが考えられる。
しかしながら、一方の利用者が消しゴム機能を実行してタッチ画面100に書いた文字等を消去する場合に、他の利用者が書いた文字等までも消去してしまうことがある。ただし、このようなことは、文字等が重なっていない場合であっても起こり得る。
したがって、この第1実施例では、このような不都合を回避するために、他の利用者が手書きした文字等を編集するような誤操作を防止するようにしてある。以下、具体的に説明する。
簡単に説明すると、この第1実施例では、複数の電子ペン200のそれぞれに対応付けられた複数のレイヤー(入力情報の記憶エリア)110が設けられている。具体的には、第1電子ペン200aに対応付けられた第1レイヤー110aと、第2電子ペン200bに対応付けられた第2レイヤー110bとが設けられている。レイヤー110(110a、110b)は、描画制御回路18に含まれるVRAM18bにおいて、各電子ペン200に対応付けて設けられた描画領域である。そして、この第1実施例では、第1電子ペン200aを用いたタッチ入力による指示(入力指示)に基づく入力情報は、第1レイヤー110aのみに反映され、第2電子ペン200bを用いた入力指示に基づく入力情報は、第2レイヤー110bのみに反映される。ただし、入力情報とは、電子ペン200を用いて手書きされた文字等についてのタッチ座標データの集合であり、この第1実施例では、後述する第1ペン入力データ304bおよび第2ペン入力データ304cに相当する。
なお、この第1実施例では、二本の電子ペン200が用いられる場合について説明するが、三本以上の電子ペン200が用いられてもよい。
たとえば、手書き入力モードにおいては、第1電子ペン200aで書かれた文字等は、第1レイヤー110aに描画される。同様に、第2電子ペン200bで書かれた文字等は、第2レイヤー110bに描画されるようにしてある。つまり、文字等は、当該文字等を書くのに用いられた電子ペン200に対応付けられたレイヤー110に振り分けて描画される。
詳細な説明は省略するが、線の太さ、色の選択についても、タッチ入力による指示が行われた電子ペン200または当該電子ペン200に対応付けられたレイヤー110に描画された文字等に対して反映される。
また、消しゴムモードでは、第1電子ペン200aでスライドされると、スライドに従って移動される消しゴムカーソル120が表示される位置ないし部分であり、第1レイヤー110aに描画された文字等が消去される。同様に、消しゴムモードでは、第2電子ペン200bでスライドされると、スライドに従って移動される消しゴムカーソル120が表示される位置ないし部分であり、第2レイヤー110bに描画された文等が消去される。
図5(A)はVRAM18b上の第1レイヤー110aを示す図解図である。図5(B)はVRAM18b上の第2レイヤー110bを示す図解図である。また、図6(A)は文字等の一部を消去した状態の第2レイヤー110bを示す図解図である。図6(B)は文字等の一部を消去した状態のタッチ画面100を示す図解図である。
この第1実施例では、第1電子ペン200aを用いたタッチ入力による指示は第1レイヤー110aに反映されるので、図3を用いて説明したように、第1利用者が第1電子ペン200aで丸を手書きすると、図5(A)に示すように、第1レイヤー110aに丸が描画される。また、第2電子ペン200bを用いたタッチ入力による指示は第2レイヤー110bに反映されるので、図3を用いて説明したように、第2利用者が第2電子ペン200bで二つの三角形を手書きすると、図5(B)に示すように、第2レイヤー110bに二つの三角形が描画される。
たとえば、図5(A)に示す第1レイヤー110aおよび図5(B)に示す第2レイヤー110bを、第2レイヤー110bが手前になるように重ねてディスプレイ22に表示すると、図3に示したようなタッチ画面100がディスプレイ22に表示される。このような状況において、たとえば、第2利用者が、第2電子ペン200bで消しゴム機能を実行し、この第2電子ペン200bをスライドさせることにより消しゴムカーソル120を移動させて、ディスプレイ22に表示された三角形の一部を消去する。すると、図6(A)に示すように、VRAM18bに設けられた第2レイヤー110bに描画された画像の一部(ここでは、左側の三角形の一部)が消去される。また、第2電子ペン200bを用いたタッチ入力による指示であるので、この指示は第1レイヤー110aには何ら反映されない。つまり、消しゴムカーソル120(第2電子ペン200b)が第1レイヤー110aに描画された画像の上を移動した(なぞった)としても、当該画像は消去されない。したがって、図6(B)に示すように、タッチ画面100には、第2レイヤー110bに描画された三角形の一部だけが消去された手書き画像が表示されている。
なお、第2電子ペン200bが使用される場合には、文字等を描画したり削除したりする場合に限らず、文字等を切り取り、移動、拡大または縮小したりする場合にも、第2レイヤー110bに描画された文字等だけに、第2電子ペン200bを用いたタッチ入力による指示が反映される。
また、図6(A)および図6(B)を用いた例では、第2利用者が第2電子ペン200bを使用する場合について説明したが、第1利用者が第1電子ペン200aを使用する場合についても同様である。つまり、第1電子ペン200aが使用される場合には、文字等を描画したり削除したりする場合に限らず、文字等を切り取り、移動、拡大または縮小したりする場合にも、第1レイヤー110aに描画された文字等だけに、第1電子ペン200aを用いたタッチ入力による指示が反映される。
ここでは、第1電子ペン200aおよび第2電子ペン200bが予め情報処理装置10(RAM14)に登録され、それぞれに対応する第1レイヤー110aおよび第2レイヤー110bがVRAM18bに設けられていることを前提として説明した。
ただし、実際には、情報処理装置10で編集モードが開始された当初は、いずれの電子ペン200も登録されておらず、また、初期のタッチ画面100が表示されるだけであるため、VRAM18bには、一つの描画領域(たとえば、第1レイヤー110a)しか設けられていない。
したがって、この第1実施例では、登録されていない電子ペン200を用いたタッチ入力が検出されると、当該電子ペン200が情報処理装置10(RAM14)に登録されるとともに、当該電子ペン200に対応するレイヤー110がVRAM18bに設けられる。そして、電子ペン200がRAM14に登録された後は、当該電子ペン200に対応するレイヤー110に当該電子ペン200の入力指示が反映されるようになる。
ただし、上述したように、情報処理装置10で編集モードが開始された当初では、一つの描画領域(第1レイヤー110a)が設けられ、初期のタッチ画面100についての画像が描画されるため、最初に登録された電子ペン200については、RAM14に登録されると、レイヤー110が新しく設けられるのではなく、第1レイヤー100aが割り当てられる。
情報処理装置10の上記のような動作は、CPU12がRAM14に記憶された情報処理プログラムを実行することにより実現される。具体的な処理については、後でフロー図を用いて説明する。
図7は図1に示したRAM14のメモリマップ300の一例を示す。図7に示すように、RAM14は、プログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、上述したように、情報処理プログラムが記憶される。情報処理プログラムは、入力検出プログラム302a、描画プログラム302b、表示プログラム302c、ペン識別情報検出プログラム302d、ペン管理プログラム302e、およびレイヤー管理プログラム302fを含む。
入力検出プログラム302aは、タッチパネル制御回路16から出力されたタッチパネル20におけるタッチ入力の位置を示すタッチ座標データを取得し、データ記憶領域304に記憶するためのプログラムである。ただし、入力検出プログラム302aは、情報処理装置10に接続されたハードウェアのキーボードや情報処理装置10に設けられたハードウェアの操作パネルないし操作ボタンからの入力を検出するためのプログラムでもある。
描画プログラム302bは、後述する電子ペン入力データ(この実施例では、第1電子ペン入力データ304bおよび第2電子ペン入力データ304c)や画像生成データ304dを用いて、文字等を含むタッチ画面100やメニュー150についての表示画像データを生成するためのプログラムである。具体的には、描画プログラム302bが実行されると、描画制御回路18では、CPU12の指示の下、GPU18aが手書きの文字等をVRAM18bに設けられたレイヤー110に描画する。このとき、文字等を書くのに使用された電子ペン200に対応付けられた(割り当てられた)レイヤー110に手書きの文字等が描画される。また、ユーザが電子ペン150を用いてメニュー150の表示を指示すと、CPU12の指示の下、GPU18aは画像生成データ304dを用いて、当該電子ペン150についてのメニュー150に対応する画像をVRAM18bの空き領域に描画する。
ただし、描画プログラム302bは、他の任意の画面(たとえば、情報処理装置10で実行される他のアプリケーションソフトの実行画面等)についての表示画像データを生成するためのプログラムでもある。
表示プログラム302cは、描画プログラム302bに従ってVRAM18bに生成された表示画像データをディスプレイ22に出力するためのプログラムである。ただし、VRAM18b上の各レイヤー110に描画された手書きの文字等を含む画像(表示画像データ)が重ねて表示されるようにディスプレイ22に出力される。したがって、一人または複数人の利用者が手書きした文字等を含む手書き画像がディスプレイ22に表示される。このとき、複数のレイヤー110の各々に描画された表示画像データは、後述するレイヤー管理データ304fに対応するレイヤー管理テーブルに記載される表示順に従って重なるように、ディスプレイ22に出力される。
また、メニュー150についての画像は、すべてのレイヤー110の前面(最前面)となるようにディスプレイ22に表示される。
ペン識別情報検出プログラム302dは、無線通信回路24に入力された電子ペン200の識別情報(ペンID)、つまりペン先スイッチ204がオンである電子ペン200の識別情報を検出するためのプログラムである。また、ペン識別情報検出プログラム302dは、検出した電子ペン200の識別情報を、これと同時またはほぼ同時に入力検出プログラム302aで検出されたタッチ座標データに関連付ける(付加する)ためのプログラムでもある。したがって、後述するように、手書きの文字等に関するタッチ座標データが電子ペン200毎に記憶される。
ペン管理プログラム302eは、利用者によって使用される電子ペン200を登録および管理するためのプログラムである。このペン管理プログラム302eに従って、後述するペン管理データ304eが記憶(更新)される。
レイヤー管理プログラム302fは、VRAM18bに生成された(設けられた)レイヤー110を管理するためのプログラムである。このレイヤー管理プログラム302fに従って、後述するレイヤー管理データ304fが記憶(更新)される。
なお、図示は省略するが、プログラム記憶領域302には、各種の機能やアクションを選択および実行するためのプログラムや他のアプリケーションプログラムなども記憶される。
データ記憶領域304には、タッチ座標データ304a、第1電子ペン入力データ304b、第2電子ペン入力データ304c、画像生成データ304d、ペン管理データ304e、およびレイヤー管理データ304fなどが記憶される。
タッチ座標データ304aは、入力検出プログラム302aに従って検出(取得)された現在(現フレーム)のタッチ座標データであり、入力された電子ペン200の識別情報が関連付けられている。タッチ座標データ304aは、CPU12の処理に用いられると消去される。ただし、利用者が手書きした文字等についてのタッチ座標データ304aは、電子ペン200毎に、電子ペン入力データ(この第1実施例では、第1電子ペン入力データ304bおよび第2電子ペン入力データ304c)としてRAM14に記憶される。つまり、手書きの文字等に関するタッチ座標データが電子ペン200毎に記憶される。
第1電子ペン入力データ304bは、第1電子ペン200aを用いて手書きされた文字等についてのタッチ座標データの集合である。具体的には、第1電子ペン入力データ304bは、タップによる点、または、スライドによる線を、点または線毎に管理するデータである。ただし、線については、スライドにおけるタッチオンからタッチオフまでに検出された複数のタッチ入力に対応するタッチ座標データが記憶される。また、アイコン等の指示や任意のアクションの指示のためのタッチ座標データは第1電子ペン入力データ304bに含まれない。なお、詳細な説明は省略するが、第1電子ペン入力データ304bでは、点や線毎に識別可能に管理されるとともに、点や線毎に属性情報(線種、線色および線幅の情報)も管理される。
第2電子ペン入力データ304cは、第2電子ペン200bを用いて手書きされた文字等についてのタッチ座標データの集合である。なお、具体的なデータの内容は第1電子ペン入力データ304bと同様であるので詳細な説明は省略する。
画像生成データ304dは、タッチ画面100のような各種の画面やメニュー150に対応する表示画像データを生成するためのポリゴンデータやテクスチャデータなどのデータである。また、画像生成データ304dには、タッチ画面100に表示される各種のアイコンについての画像データも含まれる。
ペン管理データ304eは、ペン管理プログラム302eに従って記憶(更新)されるペン管理テーブルについてのデータである。また、レイヤー管理データ304fは、レイヤー管理プログラム302fに従って記憶(更新)されるレイヤー管理テーブルについてのデータである。
図8(A)はペン管理テーブルの一例を示す図であり、図8(B)はレイヤー管理テーブルの一例を示す図である。
図8(A)に示すように、ペン管理テーブルには、ペンIDに対応して、編集可能なレイヤーIDが記載される。ペンIDは、電子ペン200(第1実施例では、第1電子ペン200a、第2電子ペン200b)を識別するための識別情報である。レイヤーIDは、レイヤー110(第1実施例では、第1レイヤー110a、第2レイヤー110b)を識別するための識別情報である。第1実施例では、第1電子ペン200aのペンIDは“P1”であり、第2電子ペン200bのペンIDは“P2”である。また、第1レイヤー110aのレイヤーIDは“L1”であり、第2レイヤー110bのレイヤーIDは“L2”である。
図8(A)に示すペン管理テーブルでは、第1電子ペン200aが第1レイヤー110aを編集可能に対応付けられている(割り当てられている)ことが分かる。同様に、第2電子ペン200bが第2レイヤー110bを編集可能に対応付けられている(割り当てられている)ことが分かる。
したがって、CPU12は、ペン管理テーブル(後述するレイヤー管理テーブルでもよい。)を参照して、第1電子ペン入力データ304bに従って第1レイヤー110aに文字等を描画することをGPU18aに指示する。同様に、CPU12は、ペン管理テーブル(または、レイヤー管理テーブル)を参照して、第2電子ペン入力データ304cに従って第2レイヤー110bに文字等を描画することをGPU18aに指示する。このため、電子ペン200を用いて手書きした文字等が当該電子ペン200に割り当てられたレイヤー110に描画される。
なお、ペンIDおよびレイヤーIDはローマ字および数字を用いて示してあるが、これに限定される必要はない。ペンIDおよびレイヤーIDは、ローマ字または数字のみで表してもよいし、人間が解読できない記号で表してもよい。また、ペンIDおよびレイヤーIDは3文字以上で表されてもよい。
このペン管理テーブルには、編集モードが開始された当初はペンIDおよびレイヤーIDは登録されておらず、新しい電子ペン200が検出される毎に、ペンIDおよびレイヤーIDが登録(追加)され、対応するペン管理データ304eがRAM14に記憶(登録)される。具体的には、一本目の電子ペン200のペンIDが検出されると、VRAM18bに設けられた描画領域(第1レイヤー110a)にレイヤーIDが付与され、それらが対応付けられてペン管理テーブルに登録される。二本目以降の電子ペン200では、ペン管理テーブルに登録されていない電子ペン200のペンIDが検出されると、VRAM18bに新しく描画領域(レイヤー110)が生成され、生成されたレイヤー110にレイヤーIDが付与される。そして、検出されたペンIDおよびこれに対応付けられたレイヤーIDがペン管理テーブルに追加される。したがって、ペン管理データ304eが更新される。
図8(B)に示すように、レイヤー管理テーブルには、レイヤーIDに対応して、編集可能なペンIDおよび表示順が記載される。このレイヤー管理テーブルでは、第1電子ペン200aが第1レイヤー110aを編集可能に対応付けられている(割り当てられている)ことが分かる。同様に、第2電子ペン200bが第2レイヤー110bを編集可能に対応付けられている(割り当てられている)ことが分かる。また、レイヤーの表示順は、第1レイヤー110aが“2”であり、第2レイヤー110bが“1”である。ただし、表示順は“1”が最前面(最上層)であり、数字が大きくなるにつれて背面(下層)側に配置される。
このレイヤー管理テーブルの作成および記憶(更新)は、上記のペン管理テーブルの作成および記憶(更新)と同様であるため、重複した説明は省略する。表示順は、利用者の指示に従って変更される。ただし、ペンIDおよびレイヤーIDが登録(追加)される場合には、追加されたレイヤーが最前面となるように、各レイヤー110の表示順が決定(更新)される。ただし、編集中のレイヤー110が有る場合には、当該レイヤー110が最前面となるように、各レイヤー110の表示順が決定される。
なお、図示は省略するが、データ記憶領域304には、キーボードや操作パネルからの操作データなど、情報処理プログラムの実行に必要な他のデータが記憶されたり、情報処理プログラムの実行に必要なタイマ(カウンタ)やレジスタが設けられたりする。
図9は図1に示すCPU12のペン登録処理の一例を示すフロー図である。このペン登録処理は、利用者によって用いられる電子ペン200をペン管理テーブルおよびレイヤー管理テーブルに登録するための処理である。
図9に示すように、CPU12は、ペン登録処理を開始すると、ステップS1で、タッチ入力が有るかどうかを判断する。ここでは、現フレームにおいて、タッチ入力に対応するタッチ座標データ304aがデータ記憶領域304に記憶されているかどうかを判断する。以下、タッチ入力が有るかどうかを判断する場合について同様である。また、このとき、ペン識別情報検出プログラム302dに従って検出された電子ペン200の識別情報(ペンID)が関連付けられる。
なお、タッチ入力に対応するタッチ座標データを検出してデータ記憶領域304に記憶するための処理(タッチ入力検出処理)は、図9に示すペン登録処理および後述するペン入力処理(図10参照)と並行して実行される。
ステップS1で“NO”であれば、つまり、タッチ入力が無ければ、同じステップS1に戻り、タッチ入力が有るのを待機する。一方、ステップS1で“YES”であれば、つまりタッチ入力が有れば、ステップS3で、タッチ入力を行った電子ペン200のペンIDを検出する。ここでは、CPU12は、タッチ座標データ304aに関連付けられたペンIDを検出する。
次に、ステップS5で、タッチ入力した電子ペン200が登録されているかどうかを判断する。ここでは、CPU12は、ペン管理テーブル(レイヤー管理テーブルでもよい)を参照して、ステップS3で検出したペンIDが登録されているか否かを判断する。
ステップS5で“YES”であれば、つまり、タッチ入力した電子ペン200がペン管理テーブルに登録されている場合には、そのままステップS1に戻る。一方、ステップS5で“NO”であれば、つまり、タッチ入力した電子ペン200がペン管理テーブルに登録されていない場合には、新規の電子ペン200が検出されたと判断して、ステップS7で、一本目の電子ペン200であるかどうかを判断する。ここでは、CPU12は、ペン管理テーブルに、何らペンIDが登録されていないかどうかを判断する。
ステップS7で“YES”であれば、つまり一本目の電子ペン200であれば、ステップS9で、現在のレイヤー(第1レイヤー110a)にレイヤーIDを付与して、ステップS15に進む。一方、ステップS7で“NO”であれば、つまり二本目以降の電子ペン200であれば、ステップS11で、新規のレイヤー110を作成し、ステップS13で、作成した新規のレイヤー110にレイヤーIDを付与する。
続くステップS15では、ペン管理テーブルにペンを登録する。つまり、今回検出したペンIDと付与したレイヤーIDを対応付けてペン管理テーブルに登録する。したがって、ペン管理データ304eが更新される。さらに、ステップS17で、レイヤー管理テーブルにペンを登録する。つまり、今回検出したペンIDと付与したレイヤーIDを対応付けてレイヤー管理テーブルに登録する。このとき、表示順を最下位に設定する。したがって、レイヤー管理データ304fが更新される。そして、ステップS19で、タッチ入力した電子ペン200についてのペン入力処理を起動(開始)して、ステップS1に戻る。
図10は図1に示すCPU12のペン入力処理の一例を示すフロー図である。上述したように、このペン入力処理は、図9に示したペン登録処理と並行して実行される。また、複数本の電子ペン200が使用される場合には、各電子ペン200についてのペン入力処理が並行して実行される。
図10に示すように、CPU12は、ペン入力処理を開始すると、ステップS31で、タッチ入力が有るかどうかを判断する。ステップS31で“NO”であれば、そのまま同じステップS31に戻る。一方、ステップS31で“YES”であれば、ステップS33で、メニュー選択かどうかを判断する。具体的には、CPU12は、タッチ入力によって、メニュー150のいずれかの項目(ボタン)が選択されたかどうかを判断する。
ステップS33で“YES”であれば、つまりメニュー選択であれば、ステップS35で、選択されたモードを設定したり、選択されたアクションを実行したりして、ステップS31に戻る。モードやアクションについては、図4を用いて説明したとおりである。一方、ステップS33で“NO”であれば、つまりメニュー選択でなければ、ステップS37で、手書き入力モードが設定されているかどうかを判断する。
ステップS37で“YES”であれば、つまり手書き入力モードが設定されていれば、ステップS39で、ペン管理テーブル(またはレイヤー管理テーブル)を参照して、当該電子ペン200に割り当てられたレイヤー110に、当該電子ペン200についての電子ペン入力データ(第1実施例では、第1電子ペン入力データ304bまたは第2電子ペン入力データ304cである。以下、同様である)に従って文字等を描画して、ステップS31に戻る。ただし、CPU12の指示の下、GPU18aがVRAM18bに設けられたレイヤー110に文字等を描画する。
一方、ステップS37で“NO”であれば、つまり手書き入力モードが設定されていなければ、ステップS41で、消しゴムモードが設定されているかどうかを判断する。ステップS41で“YES”であれば、つまり消しゴムモードが設定されていれば、ステップS43で、当該電子ペン200に割り当てられたレイヤー110で文字等を消去して、ステップS31に戻る。ステップS43では、CPU12は、消しゴムカーソル120が指示する位置に描画された点や線に対応するタッチ座標データを、当該電子ペン200に対応する電子ペン入力データから消去する。したがって、次のフレームで、GPU18aが、電子ペン入力データに従って文字等を描画する場合に、消去された点や線については描画されない。このようにして、利用者の操作に従って文字等の一部ないし全部が消去される。
一方、ステップS41で“NO”であれば、つまり消しゴムモードが設定されていなければ、ステップS45で、当該電子ペン200に割り当てられたレイヤー110でその他の処理を実行して、ステップS31に戻る。その他の処理としては、線の太さや線の色を変更したり、範囲指定を行ったり、当該電子ペン200についてのメニュー150を表示したりなどすることが該当する。
この第1実施例によれば、複数の電子ペン200の各々にレイヤー110を割り当てて、電子ペン200を用いたタッチ入力があると、当該電子ペン200に割り当てられたレイヤー110において、文字等を描画したり、文字等を削除したりするので、他の電子ペン200で手書きした文字等を消去または修正することがない。つまり、他人が書いた文字等を誤って編集してしまうような誤操作を防止することができる。
[第2実施例]
第2実施例の情報処理装置10は、電子ペン200毎に割り当てられたレイヤー110をさらに合成できるようにした以外は、第1実施例と同じであるため、第1実施例と異なる内容について説明し、重複した説明については省略することにする。
簡単に説明すると、一方の利用者が他方の利用者に対して、レイヤー110を合成することを要求(合成要求)する。他方の利用者は、その合成要求を承諾または拒否する。合成要求が承諾すると、一方の利用者が使用する電子ペン200に割り当てられたレイヤー110と、他の利用者が使用する電子ペン200に割り当てられたレイヤー110とが合成される。つまり、二つのレイヤー110が一つのレイヤー110に統合され、それぞれのレイヤー110に描画されていた文字等が、統合された一つのレイヤー110に描画される。この第2実施例では、二つのレイヤー110は、合成することを要求した電子ペン200に割り当てられているレイヤー110に統合される。ただし、合成要求が拒否された場合には、二つのレイヤー110は合成(統合)されない。
以下、第2実施例では、二つのレイヤー110が合成される場合について説明するが、三つ以上のレイヤー110が選択的に合成されるようにしてもよい。かかる場合には、合成要求する際に、合成(合成要求を通知)するレイヤー110を選択するようしたり、合成要求を承諾した電子ペン200に割り当てられたレイヤー110とだけ合成したり、合成要求を受けた電子ペン200のいずれか一つでも拒否した場合には、合成しないようにしたりすればよい。
図11は第2実施例における合成操作の一例を説明するための図解図である。この図11では、第1利用者が第1電子ペン200aを用いて、第2電子ペン200b(第2利用者)に対して合成要求し、これに対して、第2利用者が第2電子ペン200bを用いて合成を承諾する場合についての一例が示される。
この第2実施例では、図11に示すように、利用者の操作に応じて、タッチ画面100に表示されるメニュー150には、ペン、消しゴム、線の太さ、色の選択などの機能を設定(選択)するためのボタンに加えて、レイヤー110を合成することを設定(選択)するためのボタン(合成ボタン)がさらに設けられる。図11(A)からも分かるように、第1電子ペン200aを使用する第1利用者に対して表示されるメニュー150には合成を要求する相手(ここでは、第2電子ペン200bまたは第2利用者)が分かるように、合成ボタンには、“ペン2と合成する”の文字列が表示される。なお、この文字列は、ペン管理テーブルまたはレイヤー管理テーブルを参照することにより、合成を要求する相手を検出して表示される。
第1電子ペン200aにより合成ボタンがタッチされると、合成要求が第2電子ペン200bの第2利用者に通知される。この第2実施例では、図11(B)に示すようなウインドウ160がディスプレイ22に表示される。なお、ウインドウ160は、ディスプレイ22の任意の位置に表示してよいし、第2利用者が文字等を手書きした際に最後にタッチしたタッチ位置の近傍に表示してもよい。ただし、最後にタッチしたタッチ位置は、第2電子ペン入力データ304cに含まれる最新のタッチ位置データが示すタッチ位置である。
このウインドウ160には、“ペン1と合成しますか”のメッセージが表示されるとともに、合成することを承諾するためのボタン(“はい”が表示されたボタン)および合成することを拒否するためのボタン(“いいえ”が表示されたボタン)が表示される。
図11(B)に示すように、第2電子ペン200bにより承諾するためのボタン(承諾ボタン)がタッチされた場合は、第1電子ペン200aは、合成することが承諾されたと判断して、レイヤー110を合成する。つまり、第1レイヤー110aと第2レイヤー110bが合成される。この第1実施例は、合成要求した電子ペン110に割り当てられたレイヤー110と、合成することを承諾した電子ペン200に割り当てられたレイヤー110が、合成要求した電子ペン200に割り当てられたレイヤー110に統合される。したがって、図11(A)および図11(B)に示す例では、第1レイヤー110aと第2レイヤー110bが、一つの第1レイヤー110aに統合される。
ただし、合成要求した電子ペン110に割り当てられたレイヤー110と、合成することを承諾した電子ペン200に割り当てられたレイヤー110が、合成することを承諾した電子ペン200に割り当てられたレイヤー110に統合されるようにしてもよい。
レイヤー110が合成されると、その後において、合成要求した電子ペン110の電子ペン入力データに従う文字等および合成することを承諾した電子ペン200の電子ペン入力データに従う文字等は、合成されたレイヤー110に描画される。また、合成されたレイヤー110には、第1電子ペン200aおよび第2電子ペン200bのいずれのタッチ入力による指示も反映させる。
一方、第2電子ペン200bにより拒否するためのボタン(拒否ボタン)がタッチされると、第1電子ペン200aは、合成することが拒否されたと判断して、レイヤー110を合成する処理をキャンセルする。
なお、第2実施例では、ウインドウ160におけるタッチ入力は、合成要求を受けた電子ペン200のみが行うことができ、したがって、合成要求を受けていない電子ペン200で承諾ボタンや拒否ボタンがタッチされた場合には、そのタッチ入力は受け付けないようにされている。
図12は第2実施例におけるタッチ画面100の一例を示す図解図である。ただし、図12に示すタッチ画面100は、図5(A)に示した第1レイヤー110aと図5(B)に示した第2レイヤー110bを合成することにより、図3に示したようなタッチ画面100が表示され、このタッチ画面100において文字等を消去する操作が行われることにより、表示される。
上述したように、合成されたレイヤー110には、第1電子ペン200aおよび第2電子ペン200bのいずれの入力指示も反映させる。たとえば、第1利用者が第1電子ペン200aを用いてまたは第2利用者が第2電子ペン200bを用いて、消しゴム機能を実行し、タッチ画面100に書いた文字等の一部を消去すると、合成されたレイヤー110に含まれる文字等のうち、消しゴムカーソル120が移動された部分が消去される。したがって、図3に示したようなタッチ画面100において、丸と三角が重なる部分が、第1電子ペン200aや第2電子ペン200bを用いてなぞられると、なぞられた部分の画像が消去される。
このような合成処理を実行するために、第2実施例では、情報処理プログラムは、さらに、合成プログラムを含む。合成プログラムは、レイヤー110の合成を要求する側の要求プログラムと、レイヤー110の合成を要求される側の被要求プログラムを含む。
具体的には、図11(A)に示したようなメニュー150で、電子ペン200を用いて合成することが選択されると、要求プログラムは、合成する他のレイヤー110が割り当てられた他の電子ペン200に対して合成要求を通知する。つまり、図11(B)に示したようなウインドウ160がディスプレイ22に表示される。また、要求プログラムは、合成要求した他の電子ペン200から承諾することが通知されると、当該電子ペン200に割り当てられたレイヤー110と、合成要求を承諾した他の電子ペンに割り当てられた電子ペン200に割り当てられたレイヤー110を合成する。ただし、要求プログラムは、合成要求した他の電子ペン200から拒否することが通知されると、レイヤー110の合成要求をキャンセルする。また、レイヤー110が合成されると、要求プログラムは、合成を承諾した電子ペン200に割り当てられていたレイヤー110をVRAM18bから消去する。
また、被要求プログラムは、合成要求に対して、他の電子ペン200のタッチ入力受け付け、承諾(はい)または拒否(いいえ)を合成要求した電子ペン200に通知する。
なお、ここでは、合成要求を受けた他の電子ペン200の利用者が承諾または拒否することを前提として説明してあるが、当該利用者が承諾または拒否を選択しない場合には、合成要求してから所定時間(たとえば、60秒)を経過した後に、合成要求をキャンセルするようにしてある。ただし、所定時間を経過しても、他の電子ペン200から何ら通知が無い場合には、合成を実行(強制実行)するようにしてもよい。
図13(A)は第2実施例のペン管理テーブルの一例を示す図解図である。図13(B)は第2実施例のレイヤー管理テーブルの一例を示す図解図である。上記のようなレイヤー110の合成は、厳密には、ペン管理テーブルおよびレイヤー管理テーブルを用いて行われる。また、図13(A)に示すペン管理テーブルおよび図13(B)に示すレイヤー管理テーブルは、図11(A)および図11(B)を用いて第1レイヤー110aと第2実レイヤー110bが合成された場合の例を示す。
図13(A)に示すように、第2実施例のペン管理テーブルでは、ペンIDに対応して、編集可能なレイヤーIDおよび合成されたペンIDが記載される。つまり、図8(A)に示したペン管理テーブルに合成されたペンIDの項目が追加される。ただし、合成されるのはレイヤー110であるため、合成されたペンIDとは、ペンIDの項目に記載されたペンIDを有する電子ペン200に割り当てられていたペンIDと合成された他のレイヤー110に対応付けられていた他の電子ペン200のペンIDを意味する。
上述したように、第1レイヤー110aおよび第2レイヤー110bが合成され、第2レイヤー110bが第1レイヤー110aに統合される。また、第2レイヤー110bは消去される。
したがって、図13(A)に示すペン管理テーブルでは、編集可能なレイヤーIDとして、ペンID“P1”および“P2”に対応して“L1”が記載されている。また、合成されたペンIDとして、ペンID“P1”に対応してペンID“P2”が記載され、ペンID“P2”に対応してペンID“P1”が記載される。
図示は省略するが、レイヤー110が合成される前においては、合成されるペンIDの欄には何も記載されない。
また、図13(B)に示すように、レイヤー管理テーブルでは、レイヤーID“L1”に対応して、編集可能なペンIDとしてペンID“P1”および“P2”が記載される。また、当然のことではあるが、レイヤー110は一つであるため、表示順として“1”が記載される。
第2実施例においても、ペン管理テーブル(レイヤー管理テーブルでもよい。)に従って文字等が描画および消去される。したがって、上述したように、二つのレイヤー110が合成された場合には、図13(A)に示すペン管理テーブル(図13(B)に示すレイヤー管理テーブルでもよい。)を参照して、GPU18aは、CPU12の指示の下、第1電子ペン入力データ304bに従う文字等を第1レイヤー110aに描画するとともに、第2電子ペン入力データ304cに従う文字等を第1レイヤー110aに描画する。
なお、この第2実施例では、第1電子ペン200aの利用者が第2電子ペン200bの利用者に合成要求する場合について説明したが、第2電子ペン200bの利用者が第1電子ペン200aの利用者に合成要求する場合も同様である。
以下、フロー図を用いて、第2実施例におけるCPU12のペン入力処理について説明するが、第1実施例で説明したペン入力処理と同じ処理については同じ参照符号を付し、重複した内容については、説明を省略するまたは簡単に説明することにする。なお、ペン登録処理は、第1実施例と同じであるため、重複した説明は省略する。
図14および図15は第2実施例におけるCPU12のペン入力処理の一例を示すフロー図である。
図14に示すように、第2実施例では、CPU12は、ステップS31で、タッチ入力が有るかどうかを判断する。ステップS31で“NO”であれば、同じステップS31に戻る。一方、ステップS31で“YES”であれば、ステップS33で、タッチ入力がメニュー選択かどうかを判断する。ステップS33で“YES”であれば、ステップS51で、合成することが選択されたかどうかを判断する。
ステップS51で“NO”であれば、ステップS35で、選択された機能を設定したり、選択されたアクションを実行したりして、ステップS31に戻る。一方、ステップS51で“YES”であれば、つまり合成することが選択されれば、ステップS53で、他の電子ペン200(ここでは、第1電子ペン200aまたは第2電子ペン200b)に合成要求を通知し、ステップS55で、ウインドウ160を表示し、そして、ステップS57で、タイマをリセットおよびスタートしてから、ステップS31に戻る。
ただし、ステップS53では、CPU12は、実際には、他の電子ペン200に合成要求を通知するのでは無く、当該他の電子ペン200について実行されているペン入力処理に対して合成要求を通知する。また、ステップS55では、CPU12の指示の下、GPU18aは、図11(B)に示したようなウインドウ160の画像を生成し、ディスプレイ22に表示する。さらに、タイマは、合成要求された他の電子ペン200からの応答(承諾または拒否の通知)を待機する時間をカウントするためのタイマであり、RAM14に設けられる。ただし、タイマは、ペン入力処理(電子ペン200)毎に設けられる。
また、ステップS33で“NO”であれば、つまりメニュー選択でなければ、ステップS59で、他の電子ペン200からの合成要求があるかどうかを判断する。ステップS59で“NO”であれば、つまり合成要求が無い場合には、図15に示すステップS69に進む。
一方、ステップS59で“YES”であれば、つまり他の電子ペン200からの合成要求がある場合は、ステップS61で、合成要求に対して、承諾または拒否が選択されたかどうかを判断する。ここでは、当該電子ペン200を用いて、ウインドウ160における承諾ボタンまたは拒否ボタンがタッチされたかどうかを判断する。ただし、このウインドウ160は、他の電子ペン200におけるペン入力処理によって表示される。
ステップS61で“NO”であれば、つまり合成要求に対して、承諾または拒否が選択されていなければ、図16に示すステップS35に進む。一方、ステップS61で“YES”であれば、つまり合成要求に対して、承諾または拒否が選択されれば、ステップS61で、承諾するかどうかを判断する。ここでは、CPU12は、タッチされたボタンが承諾ボタンかどうかを判断する。
ステップS63で“YES”であれば、つまり承諾する場合には、ステップS65で、合成要求してきた他の電子ペン200に承諾を通知して、ステップS31に戻る。一方、ステップS63で“NO”であれば、つまり拒否する場合には、ステップS67で、合成要求してきた他の電子ペン200に拒否を通知して、ステップS31に戻る。ただし、ステップS65およびS67の処理は、実際には、他の電子ペン200に通知するのでは無く、他の電子ペン200について実行されているペン入力処理に対して、承諾または拒否を返す。
図15に示すステップS69では、合成要求中かどうかを判断する。ここでは、CPU12は、上記のステップS53において、合成要求を通知し、これをキャンセル(後述するステップS73)していないかどうかを判断する。具体的には、CPU12は、合成要求したときに表示したウインドウ160を閉じていないかどうかを判断する。
ステップS69で“NO”であれば、つまり合成要求中であれば、ステップS37に進む。なお、図16に示すステップS37〜S45の処理は第1実施例のペン入力処理と同じであるため、重複した説明は省略する。
一方、ステップS69で“YES”であれば、つまり合成要求中であれば、ステップS71で、合成要求に対して、他の電子ペン200から通知があるかどうかを判断する。ステップS71で“NO”であれば、つまり合成要求に対して、他の電子ペンから通知が無ければ、ステップS73で、所定時間を経過したかどうかを判断する。ここでは、CPU12は、タイマのカウント値が所定時間(たとえば、60秒)を経過したかどうかを判断する。
ステップS73で“NO”であれば、つまり所定時間を経過していなければ、ステップS31に戻る。一方、ステップS73で“YES”であれば、つまり所定時間を経過していれば、ステップS75で、合成要求をキャンセルして、図14に示したステップS31に戻る。ただし、ステップS75では、CPU12は、合成要求したときに表示したウインドウ160を閉じる。
また、ステップS71で“YES”であれば、つまり合成要求に対して通知があれば、ステップS77で、合成要求に対して、承諾されたかどうかを判断する。つまり、CPU12は、承諾の通知を受けたかどうかを判断する。ステップS77で“NO”であれば、つまり拒否の通知を受ければ、ステップS75に進む。一方、ステップS77で“YES”であれば、つまり承諾の通知を受ければ、ステップS79で、レイヤー110を合成する。ここでは、CPU12の指示の下、GPU18aが当該電子ペン110に割り当てられたレイヤー110を残して、合成することを承諾した他の電子ペン110に割り当てられたレイヤー110をVRAM18bから消去する。
続くステップS81では、レイヤー管理テーブルを更新する。つまり、CPU12は、合成することを承諾した他の電子ペン200に割り当てられたレイヤーID、編集可能なペンIDおよび表示順を消去して、合成要求した電子ペン200に割り当てられたレイヤー110のレイヤーIDに対応する編集可能なペンIDの当該他の電子ペン200のペンIDを追記する。
そして、ステップS83で、ペン管理テーブルを更新して、ステップS31に戻る。ステップS83では、CPU12は、合成することを承諾した他の電子ペン200のペンIDに対応する編集可能なレイヤーIDの欄に記載されたレイヤーIDを、合成要求した電子ペン200に割り当てられたレイヤーIDに書き換える。また、CPU12は、合成要求した電子ペン200のペンIDに対応する合成されたペンIDの欄に、合成することを承諾した他の電子ペン200のペンIDを記載する。さらに、CPU12は、合成することを承諾した他の電子ペン200のペンIDに対応する合成されたペンIDの欄に、合成要求した電子ペン200のペンIDを記載する。
この第2実施例によれば、二つのレイヤー110を合成するので、合成した後では、合成前の二つのレイヤー110のそれぞれに割り当てられていた電子ペン200を使用する利用者が協力して文字等を編集することができる。
なお、第2実施例では、二つのレイヤー110を合成した後では、二人の利用者が一つのレイヤー110において文字等を編集するため、他の利用者が手書きした文字等を削除したり、訂正したりすることもあるが、合意の上で二つのレイヤー110が合成されるため、他の利用者が手書きした文字等を誤って編集したことにはならないと考えられる。
また、第2実施例では、二つのレイヤー110を合成するようにしたが、上述したように、三つ以上のレイヤー110を合成するようにしてもよい。
さらに、第2実施例では、複数のレイヤー110を合成する場合について説明したが、合成したレイヤー110をさらに分離するようにしてもよい。たとえば、二つのレイヤー110が合成されていた場合には、レイヤー110を分離することが決定されると、他の電子ペン200についてのレイヤー110が生成され、ペン管理テーブルと、レイヤー管理テーブルとが合成前の状態に戻される(更新される)。
さらにまた、第2実施例によれば、複数のレイヤー110が合成されると、合成前のレイヤー110が割り当てられていた電子ペン200のそれぞれに、合成後のレイヤー110を編集可能なレイヤー110として割り当てるようにしたが、いずれか一本の電子ペン200にのみ、合成されたレイヤー110を割り当てるようにしてもよい。かかる場合には、合成されたレイヤー110が対応付けられた電子ペン20を使用する一人の利用者だけが文字等を編集することができるので、合成されたレイヤー110に関係しない他の利用者が手書きした文字等を消去または編集する等の誤操作を防止できる。
[第3実施例]
第3実施例は、上述した複数の電子ペン200(200a、200b)とは異なる権限を有する電子ペン200mを設けるようにした以外は、第1実施例および第2実施例の情報処理装置10と同じであるため、異なる内容について説明し、重複した説明については省略することにする。
簡単に説明すると、第1実施例で示した複数の電子ペン(以下、説明の都合上、「通常電子ペン」と呼ぶ。)200(第1通常電子ペン200a、第2通常電子ペン200b)は、対応づけられた一つのレイヤー110に対して文字等を描画するなどの編集を可能にしてあるが、第3実施例の電子ペン(以下、「管理用電子ペン」と呼ぶ。)200mは、自身に割り当てられたレイヤー110のみならず、通常電子ペン200に割り当てられたレイヤー110に対しても編集可能に設定されている。つまり、管理用電子ペン200mは、すべてのレイヤー110に対して個別に編集することができる。したがって、この管理用電子ペン200mを用いた利用者は、編集するレイヤー110を自由に選択できるとともに、各レイヤー110を自由に合成することができる。
たとえば、第1利用者および第2利用者以外の利用者(以下、「管理者」という。)は、自分以外の利用者が手書きした文字等を編集したい場合、管理用電子ペン200mを用いて編集したいレイヤー110を選択して、選択したレイヤー110に描画された文字等を編集することができる。
このため、管理用電子ペン200mについては、図17に示すようなメニュー150mが表示される。つまり、通常電子ペン200に割り当てられたレイヤー110について編集することを選択する機能についてのボタンが設けられる。たとえば、通常電子ペン200aおよび通常電子ペン200bが設けられるため、ペン1の管理ボタンおよびペン2の管理ボタンが設けられる。
なお、通常電子ペン200が三本以上であれば、さらに、三本目以降の通常電子ペン200に割り当てられたレイヤー110において編集するためのボタンがさらに設けられる。
ペン1の管理ボタンが選択されると、第1通常電子ペン200aについてのメニュー150(図11(A))がサブメニューとしてさらに表示される。また、ペン2の管理ボタンが選択されると、第2通常電子ペン200bについてのメニューがサブメニューとしてさらに表示される。ただし、第2通常電子ペン200bについてのサブメニューは、図11(A)のメニュー150において、ペン2と合成するボタンを、ペン1と合成するボタンに代えたメニューである。
したがって、管理用電子ペン200mで、通常電子ペン200に割り当てられたレイヤー110において編集することが選択された場合、レイヤー110が変更されるまで、管理用電子ペン200mによってタッチ入力されると、当該タッチ入力は、選択されたレイヤー110に反映される。したがって、第3実施例では、管理用電子ペン200mについては、編集中のレイヤー110を識別するための情報(編集中レイヤー情報)が、データ記憶領域304にさらに記憶される。ここでは、管理用電子ペン200mに割り当てられレイヤー110m(図示せず)、第1通常電子ペン200aに割り当てられたレイヤー110aまたは第2通常電子ペン200bに割り当てられたレイヤー110bのレイヤーIDが編集中レイヤー情報として記憶される。そして、編集するレイヤー110が変更されると、編集中レイヤー情報が更新される。ただし、管理用電子ペン200mに割り当てられたレイヤー110mのレイヤーIDは、“L0”である(図18(A)参照)。
なお、管理用電子ペン200mを用いて各レイヤー110において編集する方法については、第1実施例で説明した、通常電子ペン200a、200bのそれぞれを用いて編集する方法と同じであるため、重複した説明は省略する。
ただし、レイヤー110mは、通常電子ペン200と同様に、管理用電子ペン200mがペン登録処理によって情報処理装置10(RAM14)に登録されるときに、CPU12の指示の下、GPU18aによってVRAM18bに生成される。また、このとき、ペン管理テーブルおよびレイヤー管理テーブルに管理用電子ペン200mの情報が登録される。ただし、管理用電子ペン200mの識別情報(ペンID)は“PM”である。
図18(A)は第3実施例のペン管理テーブルの一例を示す図解図であり、図18(B)は第3実施例のレイヤー管理テーブルの一例を示す図解図である。ただし、図18(A)および図18(B)は、レイヤー110が合成されていない状態におけるペン管理テーブルおよびレイヤー管理テーブルである。
図16(A)に示すように、第3実施例のペン管理テーブルでは、ペンIDに対応して、編集可能なレイヤーID、合成されたペンIDおよび権限が記載される。つまり、第3実施例のペン管理テーブルは、第2実施例のペン管理テーブルにおいて、権限の情報が追加される。これは、通常電子ペン200と管理用電子ペン200mを区別するために設けられる。この第3実施例では、通常電子ペン200のペンIDに対応して、権限の欄に“一般”の情報が記載され、管理用電子ペン200のペンIDに対応して、権限の欄に“管理”の情報が記載される。
したがって、第3実施例では、情報処理装置10に通常電子ペン200または管理用電子ペン200mの識別情報が予め登録されており、登録された識別情報と通常電子ペン200および管理用電子ペン200mから送信された識別情報とが比較されて、通常電子ペン200または管理用電子ペン200mが識別される。
また、図18(A)からも分かるように、管理用電子ペン200は、すべてのレイヤー110について編集可能であるため、編集可能なレイヤーIDの欄に、“L0”、“L1”、“L2”が記載される。
なお、通常電子ペン200と管理用電子ペン200mが識別されて、編集可能なレイヤーIDが記載されるため、権限の情報はペン管理テーブルに記載されなくてもよい。
同様に、管理用電子ペン200は、すべてのレイヤー110について編集可能であるため、図18(B)に示すレイヤー管理テーブルでは、レイヤーID“L1”に対する編集可能なペンIDとして、“P1”および“PM”が記載され、レイヤーID“L2”に対する編集可能なペンIDとして、“P2”および“PM”が記載される。ただし、レイヤーID“L0”に対しては、編集可能なペンIDとして、“PM”のみが記載される。
第3実施例においても、ペン管理テーブル(レイヤー管理テーブルでもよい。)に従って文字等が描画および消去される。したがって、CPU12の指示の下、GPU18aは、ペン管理テーブル(レイヤー管理テーブルでもよい。)を参照して、第1電子ペン入力データ304bに従う文字等を割り当てられたレイヤー110に描画するとともに、第2電子ペン入力データ304cに従う文字等を割り当てられたレイヤー110に描画する。
ただし、管理用電子ペン200mは、すべてのレイヤー110において編集可能であるため、ペン管理テーブル(またはレイヤー管理テーブル)に従わないで文字等が描画および消去される。このため、管理用電子ペン200mの入力データ(管理用電子ペン入力データ)は、データ記憶領域304に記憶される際、点や線に対応するタッチ座標データに、編集中のレイヤー110のレイヤーIDが付加される。このレイヤーIDが示すレイヤー110に管理用電子ペン200mを用いたタッチ入力が反映される。
また、上述したように、この第3実施例では、管理用電子ペン200mは、第1レイヤー110aと第2レイヤー110bを合成することができる。ただし、管理権限を有している管理用電子ペン200mを用いて、通常電子ペン200に割り当てられたレイヤー110を合成することが選択された場合には、合成されることについての承諾を各通常電子ペン200の利用者から得なくても良いように設定されている。
したがって、第3実施例では、合成プログラムは、第2実施例で説明した、通常電子ペン200を用いた合成についてのプログラム(要求プログラムおよび被要求プログラム)の他に、管理電子ペン200mを用いた合成についてのプログラム(以下、「管理用合成プログラム」という。)が設けられる。この管理用合成プログラムは、管理用電子ペン200mを用いて、複数のレイヤー110を合成することが指示されると、直ちに、当該複数のレイヤー110が合成される。ただし、第3実施例では、合成される複数のレイヤー110は、通常電子ペン200に割り当てられたレイヤー110である。
以下、フロー図を用いて、第3実施例におけるCPU12の管理用ペン入力処理について説明するが、第1実施例または第2実施例で示したペン入力処理と同様の処理については、簡単に説明することにする。
なお、第3実施例のペン登録処理は、第1実施例で説明したおよびペン入力処理と同様であるため、図示および重複した説明は省略する。第3実施例のペン登録処理では、新規の電子ペン200が検出されると、当該新規の電子ペン200についての権限が識別され、識別された権限に応じて、ペン管理テーブルおよびレイヤー管理テーブルにペンIDおよびレイヤーIDが登録される点が第1実施例と異なる。
また、通常電子ペン200のペン入力処理は、第1実施例または第2実施例で示したペン入力処理と同じであるため、重複した説明は省略する。
図19および図20は第3実施例におけるCPU12の管理用電子ペン処理の一例を示すフロー図である。
図19に示すように、CPU12は、管理用ペン入力処理を開始すると、ステップS101で、タッチ入力が有るかどうかを判断する。ステップS101で“NO”であれば、そのまま同じステップS101に戻る。一方、ステップS101で“YES”であれば、ステップS103で、メニュー選択かどうかを判断する。具体的には、CPU12は、タッチ入力によって、管理用電子ペン200mのメニュー150mのいずれかの項目(ボタン)が選択されたかどうかを判断する。
ステップS103で“YES”であれば、図20に示すステップS115に進む。一方、ステップS103で“NO”であれば、ステップS105で、手書き入力モードが設定されているかどうかを判断する。ステップS105で“YES”であれば、ステップS107で、選択中のレイヤー110に、管理用電子ペン入力データに従って文字等を描画して、ステップS101に戻る。
ただし、CPU12の指示の下、GPU18aがVRAM18bに設けられたレイヤー110に文字等を描画する。また、編集中のレイヤー110のレイヤーIDが編集中レイヤー情報として記憶され、これに従って、管理用電子ペン200mのタッチ入力によるタッチ座標データにレイヤーIDが付加されるため、編集中のレイヤー110に文字等を描画することができる。後述するステップS111で、文字等を消去する場合についても同様に、タッチ座標データに付加されたレイヤーIDに従って、消去するレイヤー110が判断される。また、編集中のレイヤー110でその他の処理を実行する場合についても同様に、タッチ座標データに付加されたレイヤーIDに従って、その他の処理を実行するレイヤー110が判断される。
また、ステップS105で“NO”であれば、ステップS109で、消しゴムモードが設定されているかどうかを判断する。ステップS109で“YES”であれば、ステップS111で、編集中のレイヤー110で文字等を消去して、ステップS101に戻る。
一方、ステップS109で“NO”であれば、ステップS113で、編集中のレイヤー110でその他の処理を実行して、ステップS101に戻る。
上述したように、ステップS103で“YES”であれば、図20に示すステップS115で、レイヤー選択かどうかを判断する。つまり、CPU12は、メニュー150mにおいて、ペン1の管理ボタンまたはペン2の管理ボタンがタッチされたかどうかを判断する。ステップS115で“YES”であれば、つまりレイヤー選択であれば、ステップS117で、選択されたレイヤー110を編集中のレイヤー110に設定して、図19に示したステップS101に戻る。つまり、ステップS117では、CPU12は、選択されたレイヤー110のレイヤーIDを編集中レイヤー情報として記憶する。また、このとき、選択された通常電子ペン200に応じたメニュー(150など)がサブメニューとして表示される。
一方、ステップS115で“NO”であれば、つまりレイヤー選択でなければ、合成かどうかを判断する。ステップS119で“NO”であれば、ステップS121で、選択されたモードを設定したり、選択されたアクションを実行したりして、ステップS101に戻る。一方、ステップS121で“YES”であれば、ステップS123で、レイヤー110を合成する。そして、ステップS125で、レイヤー管理テーブルを更新し、ステップS127で、ペン管理テーブルを更新して、ステップS101に戻る。
この第3実施例によれば、すべてのレイヤー110にタッチ入力による指示を反映させることが可能な管理用電子ペン200mをさらに設けるので、他の利用者が手書きした文字等をまとめて編集することができ、情報処理装置10の使い勝手を向上させることができる。
なお、第3実施例では、管理用電子ペン200mを用いるのは、すべてのレイヤー110を編集する権限のある管理者であるため、管理用電子ペン200mを用いて、他の利用者が手書きした文字等を編集したり、通常電子ペン200に割り当てられたレイヤー110を合成したりしても、他の利用者が手書きした文字等を誤って編集したことにはならないと考えられる。
また、第1実施例〜第3実施例では、ペン管理テーブルおよびレイヤー管理テーブルを設けるようにしたが、これは、第2実施例において、レイヤー110を合成したり、第3実施例において、管理用電子ペン200mを設けたりするためである。したがって、第1実施例では、電子ペン200毎にレイヤーを割り当てるだけなので、ペン管理テーブルを設ける必要は無く、レイヤー管理テーブルだけを設けるようにしてもよい。
さらに、第1実施例〜第3実施例に示した態様は、いずれか二つ以上を同時に採用することも可能である。
さらにまた、上述の実施例で挙げた具体的な数値、画面構成等は一例であり、実際の製品に応じて適宜変更することが可能である。
また、上述の実施例で示したフロー図の各ステップは、同じ結果が得られるのであれば、処理される順番は適宜変更することが可能である。