(57)【要約】【課題】一連の操作に対する描画を高速化すること。【解決手段】記憶部１ａは、物体の配置を示す情報を変更する複数の操作を示す情報を記憶する。演算部１ｂは、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対しては物体の外形を示す情報の生成を行わずに第２の操作後の物体の外形を示す情報を生成する。演算部１ｂは、第２の操作後の物体の外形を示す情報を用いて物体を描画する。【選択図】図１
2014085901.tif 000002
【特許請求の範囲】
【請求項１】
物体の配置を示す第１の情報に基づいて物体の外形を示す第２の情報を生成し、当該第２の情報を用いて物体を描画する処理に用いられる情報処理装置であって、
第１の情報を変更する複数の操作を示す情報を記憶する記憶部と、
複数の操作のうち第１の操作から第２の操作までを順に実行する際に、前記第１の操作から前記第２の操作の直前の操作までのそれぞれの操作に対する第２の情報の生成を行わずに前記第２の操作後の第２の情報を生成し、生成された当該第２の情報を用いて物体を描画する演算部と、
を有する情報処理装置。
【請求項２】
前記演算部は、前記第１の操作から前記第２の操作までの各操作に応じて第１の情報を変更する代わりに、前記第１の操作から前記第２の操作までの各操作による第１の情報の変化分を示す情報を生成し、当該変化分を示す情報に基づいて前記第２の操作後の第２の情報を生成する、請求項１記載の情報処理装置。
【請求項３】
前記演算部は、前記変化分が前記第１の操作前と比べて変化なしである場合、前記第１の操作から前記第２の操作までの各操作をないものとみなすことで、前記第２の操作後の第２の情報を生成しないように制御する、請求項２記載の情報処理装置。
【請求項４】
前記演算部は、前記第１の操作から前記第２の操作までを１つの操作とみなすための変更情報を生成し、当該変更情報に基づいて、前記第１の操作から前記第２の操作までの各操作のうち前記第２の操作後に対してのみ第２の情報が生成されるように制御する、請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
前記記憶部は、物体の配置以外の当該物体の描画に用いられる属性を示す情報を変更する複数の操作を示す情報を記憶し、
前記演算部は、当該複数の操作のうち第３の操作から第４の操作までを順に実行する際に、前記第４の操作後の前記属性を示す情報が、前記第３の操作前と比べて変化なしである場合、前記第３の操作から前記第４の操作までの各操作をないものとみなす、
請求項１乃至４の何れか一項に記載の情報処理装置。
【請求項６】
前記演算部は、物体を描画する際に、物体に含まれる複数の部品のうちユーザにより注目されている部品上の点を示す情報を取得し、当該点を示す情報に基づいて前記複数の部品それぞれの描画順序を決定し、前記複数の部品それぞれを当該描画順序で描画する、請求項１乃至５の何れか一項に記載の情報処理装置。
【請求項７】
物体の配置を示す第１の情報に基づいて物体の外形を示す第２の情報を生成し、当該第２の情報を用いて物体を描画する描画方法であって、情報処理装置が、
第１の情報を変更する複数の操作を示す情報を参照して、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、前記第１の操作から前記第２の操作の直前の操作までのそれぞれの操作に対する第２の情報の生成を行わずに前記第２の操作後の第２の情報を生成し、
生成された当該第２の情報を用いて物体を描画する、
描画方法。
【請求項８】
物体の配置を示す第１の情報に基づいて物体の外形を示す第２の情報を生成し、当該第２の情報を用いて物体を描画する処理に用いられるプログラムであって、
コンピュータに、
第１の情報を変更する複数の操作を示す情報を参照して、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、前記第１の操作から前記第２の操作の直前の操作までのそれぞれの操作に対する第２の情報の生成を行わずに前記第２の操作後の第２の情報を生成し、
生成された当該第２の情報を用いて物体を描画する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、描画方法およびプログラムに関する。
【背景技術】
【０００２】
現在、設計開発を支援する情報処理装置が利用されている。設計支援に役立つ技術として、例えばＣＡＤ（Computer Aided Design）やＤＭＵ（Digital Mock-Up）などがある。ＣＡＤは２次元や３次元のモデルの設計作業を支援する技術である。ＤＭＵは、複数の部品モデルを組み合わせて製品モデルを生成し、分解／組立、製品の動作および操作性などの検証作業を、実機の試作前に行えるよう支援する技術である。ＤＭＵでは、ケーブルやワイヤハーネスなどの柔軟性（例えば、撓み）をも表現して実物に近い検証を行い得る。
【０００３】
また、物体の動作を画像で表現する種々の方法が考えられている。例えば、複数の部品より成る物体について下位部品の上位部品に対する位置を特定するための変換マトリクスを時間経過に応じて変更し、当該変換マトリクスに基づいて物体の姿態が変化する様子を順次画面に表示させる提案がある。また、例えば、３次元モデルの形状を関数で表現し、当該関数を用いて３次元モデルの形状変化をアニメーションとして表示する提案もある。
【０００４】
なお、描画の所要時間がより長いことを示す表示オブジェクトを優先して選択し、当該表示オブジェクトよりも他の表示オブジェクトを優先して画面に描画させる提案もある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６１−２４３５６７号公報
【特許文献２】特開平５−２４２２１９号公報
【特許文献３】特開平９−６９９０号公報
【特許文献４】特開２００８−１８５８８５号公報
【非特許文献】
【０００６】
【非特許文献１】富士通株式会社、“VPS/Harness（ハーネス検証）”、［online］、富士通株式会社、［平成24年6月18日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｊｐ．ｆｕｊｉｔｓｕ．ｃｏｍ／ｓｏｌｕｔｉｏｎｓ／ｐｌｍ／ｖｉｒｔｕａｌ／ｖｐｓ／ｈａｒｎｅｓｓ．ｈｔｍｌ＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
物体の配置を示す情報に基づいて物体の外形を示す情報を生成し、当該外形を示す情報を用いて物体を描画することがある。例えば、柔軟性をもつ物体（柔軟体という）は剛体と異なり不定形であり、配置により外形が変わり得る。例えば、ケーブルの一端の位置が変わればケーブル全体の撓み具合も変わる。これを画像で表現するために、柔軟体の配置を変更するたびに、柔軟体の配置を示す情報に基づく所定の演算により柔軟体の外形を示す情報を生成し、描画を行うことがある。
【０００８】
しかし、この場合、物体に対する一連の操作を再生する際の描画の遅延が問題となる。例えば、柔軟体の外形を示す情報を生成するための演算が、順次実行される操作のたびに行われると、複数の操作後の物体の状態を確認できるまでに時間がかかることがある。
【０００９】
一側面によれば、本発明は、一連の操作に対する描画を高速化できる情報処理装置、描画方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
一実施態様によれば、物体の配置を示す第１の情報に基づいて物体の外形を示す第２の情報を生成し、当該第２の情報を用いて物体を描画する処理に用いられる情報処理装置が提供される。この情報処理装置は、記憶部と演算部とを有する。記憶部は、第１の情報を変更する複数の操作を示す情報を記憶する。演算部は、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する第２の情報の生成を行わずに第２の操作後の第２の情報を生成し、生成された当該第２の情報を用いて物体を描画する。
【００１１】
また、一実施態様によれば、物体の配置を示す第１の情報に基づいて物体の外形を示す第２の情報を生成し、当該第２の情報を用いて物体を描画する描画方法が提供される。この描画方法では、情報処理装置が、第１の情報を変更する複数の操作を示す情報を参照して、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する第２の情報の生成を行わずに第２の操作後の第２の情報を生成し、生成された第２の情報を用いて物体を描画する。
【００１２】
また、一実施態様によれば、コンピュータによって実行されるプログラムであって、物体の配置を示す第１の情報に基づいて物体の外形を示す第２の情報を生成し、当該第２の情報を用いて物体を描画する処理に用いられるプログラムが提供される。このプログラムは、コンピュータに、第１の情報を変更する複数の操作を示す情報を参照して、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する第２の情報の生成を行わずに第２の操作後の第２の情報を生成し、生成された当該第２の情報を用いて物体を描画する、処理を実行させる。
【発明の効果】
【００１３】
一実施態様によれば、一連の操作に対する描画を高速化できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の設計支援装置のハードウェア例を示す図である。
【図３】第２の実施の形態の設計支援装置のソフトウェア例を示す図である。
【図４】第２の実施の形態のアセンブリの描画例を示す図である。
【図５】第２の実施の形態の３次元データの例を示す図である。
【図６】第２の実施の形態の三角形テーブルの例を示す図である。
【図７】第２の実施の形態の通過点テーブルの例を示す図である。
【図８】第２の実施の形態の操作履歴テーブルの例を示す図である。
【図９】第２の実施の形態の変更管理テーブルの例を示す図である。
【図１０】第２の実施の形態の処理例を示すフローチャートである。
【図１１】第２の実施の形態の変更管理の例を示すフローチャートである。
【図１２】第２の実施の形態の変更管理の例を示す図である。
【図１３】第２の実施の形態の描画処理の例を示すフローチャートである。
【図１４】第２の実施の形態の処理と他の処理との比較を示す図である。
【図１５】第３の実施の形態の変更管理テーブルの例を示す図である。
【図１６】第３の実施の形態の変更管理の例を示すフローチャートである。
【図１７】第３の実施の形態の変更管理の例を示す図である。
【図１８】第４の実施の形態の設計支援装置のソフトウェア例を示す図である。
【図１９】第４の実施の形態のブロックの例を示す図である。
【図２０】第４の実施の形態のブロック管理テーブルの例を示す図である。
【図２１】第４の実施の形態の描画実行の例を示すフローチャートである。
【図２２】第４の実施の形態の注目点の特定方法の例を示す図である。
【図２３】第４の実施の形態の処理と他の処理との比較例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。情報処理装置１は、例えばＤＭＵの機能を提供する。情報処理装置１は、物体の配置を示す情報（第１の情報）に基づいて物体の外形を示す情報（第２の情報）を生成し、当該外形を示す情報を用いて物体を描画する。情報処理装置１は、記憶部１ａおよび演算部１ｂを有する。記憶部１ａはＲＡＭ（Random Access Memory）などのメモリでもよい。演算部１ｂはＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などのプロセッサでもよい。第１の実施の形態の情報処理は、記憶部１ａに記憶されたプログラムを演算部１ｂが実行することで実現されてもよい。
【００１６】
記憶部１ａは、物体の配置を示す情報を変更する複数の操作を示す情報を記憶する。物体の配置を示す情報とは、例えば、物体の配置の基準となる複数の座標点を示す情報である。例えば、ケーブルなどの線状の物体を表現する場合であれば、ケーブルが通過する複数の通過点を示す情報でもよい。ゴム膜などの面状の物体を表現する場合であれば、当該物体内の所定の面上の点を示す情報でもよい。ゲル体などの物体を表現する場合であれば、当該物体の格子点を示す情報でもよい。物体の配置を示す情報は、物体の配置箇所における姿勢を示す情報を含んでもよい。
【００１７】
また、物体の配置を示す情報を変更する操作とは、例えば、上述の物体の配置の基準となる複数の座標点や姿勢の情報を変更する操作である。当該操作は、直接的に変更を行うものでもよいし、間接的に変更を行うものでもよい。直接的に変更を行うとは、例えば、当該物体の配置を直接変更することである。ケーブルの例でいえば、ケーブルそのものの３次元空間内の配置を変更することを示す。間接的に変更を行うとは、例えば、当該物体が接続する他の物体の配置が変更されることで、当該他の物体に追随して、当該物体の配置を変更することである。他の部品に接続されたケーブルの例でいえば、他の部品の３次元空間内の配置が変更されることで、当該他の部品に追随して、当該ケーブルの３次元空間内の配置を変更することを示す。
【００１８】
演算部１ｂは、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する物体の外形を示す情報の生成を行わずに第２の操作後の物体の外形を示す情報を生成する。第１の操作の次の操作が第２の操作でもよい。その場合、第２の操作の直前の操作は第１の操作である。
【００１９】
例えば、ケーブルの画像Ｐ１，Ｐ２の生成過程について考える。この場合、操作とはケーブルの配置を示す情報を変更する操作である。画像Ｐ１では、ケーブルの外形Ａ１が描画されている。画像Ｐ１は、第１の操作前（第１の操作の直前）の画像である。画像Ｐ２では、ケーブルの外形Ａ２が描画されている。画像Ｐ２は、第２の操作後の画像である。
【００２０】
例えば、演算部１ｂは、第１の操作から第２の操作までを順に実行する旨の指示を受け付ける。当該指示は、情報処理装置１に接続された入力デバイスをユーザが操作することで、演算部１ｂに入力されてもよい。演算部１ｂは、記憶部１ａを参照して、第１の操作から第２の操作までを順番に実行する。このとき、演算部１ｂは第１の操作から第２の操作の直前の操作までのそれぞれの操作に対するケーブルの外形を示す情報の生成を行わずに第２の操作後のケーブルの外形Ａ２を示す情報を生成する。
【００２１】
演算部１ｂは、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する物体の配置を示す情報の変更を行ってもよい。この場合、演算部１ｂは、第２の操作の直前の操作後の物体の配置を示す情報に基づいて、第２の操作後の物体の配置を示す情報を生成する。
【００２２】
あるいは、演算部１ｂは、第１の操作から第２の操作までのそれぞれの操作に対する物体の配置を示す情報の変化分を示す情報を生成してもよい。この場合、演算部１ｂは当該変化分を示す情報に基づいて、第２の操作後の物体の配置を示す情報を生成する。また、この場合、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する物体の配置を示す情報を、操作のたびに変更しなくてもよい。
【００２３】
演算部１ｂは、生成された第２の操作後の物体の外形を示す情報を用いて物体を描画する。例えば、演算部１ｂは第２の操作後のケーブルの外形Ａ２を示す情報を用いて当該ケーブルを描画する。
【００２４】
情報処理装置１によれば、演算部１ｂにより、物体の配置を変更する複数の操作を示す情報が参照されて、複数の操作のうち第１の操作から第２の操作までを順に実行する際に、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する物体の外形を示す情報の生成が行われずに第２の操作後の物体の外形を示す情報が生成される。演算部１ｂにより、生成された第２の操作後の物体の外形を示す情報が用いられて物体が描画される。
【００２５】
これにより、一連の操作に対する描画を高速化できる。具体的には、次の通りである。
例えば、柔軟体は剛体と異なり不定形であり、配置により外形が変わり得る。これを画像で表現するために、柔軟体の描画を行う都度、柔軟体の配置を示す情報に基づく所定の演算により柔軟体の外形を示す情報を生成し、描画を行うことがある。あるいは、柔軟体のように複雑な物体を表現するためには比較的多数のパラメータを用い得る。このため、一連の操作に対して柔軟体の形状を全て記録しようとすると、ＲＡＭなどの記憶領域を圧迫し得る。このような理由から、柔軟体のように複雑な物体については、その描画を行う都度、柔軟体の外形を示す情報を生成することも考え得る。
【００２６】
ところが、この場合、物体に対する一連の操作を再生して物体の動作などを検証する際に、描画が遅延し得る。例えば、柔軟体などの外形の変化は、単純な平行移動や回転などで表すことが難しく、外形を示す情報を生成するための演算コストが比較的大きい。このため、柔軟体の外形を示す情報を生成するための演算が、順次実行される操作のたびに行われると、複数の操作後の物体の状態を確認できるまでに時間がかかることがある。描画する物体が複雑化すると、演算コストが更に高まり、描画の遅延が更に増大し得る。
【００２７】
そこで、情報処理装置１は、第１の操作から第２の操作までを順に実行する際に、第１の操作から第２の操作の直前の操作までのそれぞれの操作に対する物体の外形を示す情報の生成を行わずに第２の操作後の物体の外形を示す情報を生成する。すなわち、第２の操作よりも前の操作については、物体の外形を示す情報の生成を行わないようにする。これにより、一連の操作における全体の演算コストを軽減できる。その結果、一連の操作に対する描画を高速化できる。
【００２８】
［第２の実施の形態］
図２は、第２の実施の形態の設計支援装置のハードウェア例を示す図である。設計支援装置１００は、部品や製品などの設計を支援するコンピュータである。設計支援装置１００は、ＤＭＵの機能を提供する。設計支援装置１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ（Hard Disk Drive）１０３、通信部１０４、入力信号処理部１０５、画像信号処理部１０６、ディスクドライブ１０７および機器接続部１０８を有する。各ユニットが設計支援装置１００のバスに接続されている。
【００２９】
プロセッサ１０１は、設計支援装置１００の情報処理を制御する。プロセッサ１０１は、例えばＣＰＵ、ＧＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）またはＰＬＤ（Programmable Logic Device）などである。設計支援装置１００は複数のプロセッサを備えてもよい。プロセッサ１０１は、ＣＰＵ、ＧＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＰＬＤなどのうちの２以上の要素の組み合わせでもよい。
【００３０】
ＲＡＭ１０２は、設計支援装置１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。設計支援装置１００は複数の主記憶装置を備えてもよい。
【００３１】
ＨＤＤ１０３は、設計支援装置１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。設計支援装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００３２】
通信部１０４は、ネットワーク１０を介して他のコンピュータと通信を行えるインタフェースである。通信部１０４は、有線インタフェースでもよいし、無線インタフェースでもよい。
【００３３】
入力信号処理部１０５は、設計支援装置１００に接続された入力デバイス１１から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１１としては、例えばマウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００３４】
画像信号処理部１０６は、プロセッサ１０１からの命令に従って、設計支援装置１００に接続されたディスプレイ１２に画像を出力する。ディスプレイ１２としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００３５】
ディスクドライブ１０７は、レーザ光などを利用して、光ディスク１３に記録されたプログラムやデータを読み取る駆動装置である。光ディスク１３として、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などを使用できる。ディスクドライブ１０７は、例えば、プロセッサ１０１からの命令に従って、光ディスク１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３６】
機器接続部１０８は、設計支援装置１００に周辺機器を接続するための通信インタフェースである。例えば、機器接続部１０８にはメモリ装置１４やリーダライタ装置１５を接続できる。メモリ装置１４は、機器接続部１０８との通信機能を搭載した記録媒体である。リーダライタ装置１５は、メモリカード１６へのデータの書き込み、またはメモリカード１６からのデータの読み出しを行う装置である。メモリカード１６は、カード型の記録媒体である。機器接続部１０８は、例えば、プロセッサ１０１からの命令に従って、メモリ装置１４またはメモリカード１６から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００３７】
図３は、第２の実施の形態の設計支援装置のソフトウェア例を示す図である。図３に示すユニットの全部または一部は、プロセッサ１０１がＲＡＭ１０２に記憶されたプログラムを実行することで実現されてもよい。設計支援装置１００は、記憶部１１０および描画制御部１２０を有する。
【００３８】
記憶部１１０は、物体を描画するための各種の情報を記憶する。また、記憶部１１０は、物体の画像に対する一連の操作を示す情報を記憶する。一連の操作を示す情報とは、例えば、操作のやり直しのための（undo用の）操作記録でもよい。あるいは、例えば、物体の動作の様子をアニメーションで再生するための（redo用の）操作記録でもよい。操作記録を操作の履歴と呼んでもよい。記憶部１１０は、ＲＡＭ１０２やＨＤＤ１０３の記憶領域を用いて実装できる。
【００３９】
描画制御部１２０は、物体の画像に対する操作の入力を受け付け、当該操作を反映させた画像をディスプレイ１２に表示させる。ユーザは、入力デバイス１１を操作して、物体の画像に対する操作を示す情報を描画制御部１２０に入力できる。物体の画像に対する操作とは、例えば、物体の移動、拡大／縮小、縦横サイズの変更、回転（姿勢の変更）、透過率の変更、色調の変更および物体単位の表示／非表示の切替えなどを含む。
【００４０】
描画制御部１２０は、物体の画像に対する一連の操作の実行開始の指示を受け付けることもある。一連の操作が新しい操作から古い操作へ順に並ぶもの（時系列の逆）であれば、当該一連の操作はundoの操作である。一連の操作が古い操作から新しい操作へ順に並ぶもの（時系列）であれば、当該一連の操作はredoの操作である。描画制御部１２０は、基本処理部１２１、変更管理部１２２、描画前処理部１２３および描画部１２４を有する。
【００４１】
基本処理部１２１は、物体の画像に対する操作に対して、物体を描画するための基本的な処理を行う。具体的には、基本処理部１２１は物体の配置に関する情報を処理する。物体の配置に関する情報は、仮想的な３次元空間内の物体の位置や姿勢を示す情報を含む。基本処理部１２１は、操作の履歴を記憶部１１０に格納する。基本処理部１２１は、一連の操作の実行開始の指示に対して、記憶部１１０に記憶された操作の履歴に基づき、指示された一連の操作に対する基本的な処理を再実行する。
【００４２】
変更管理部１２２は、基本処理部１２１が一連の操作に対する基本的な処理を再実行する際に、操作内容をマージ（merge）し、マージ後の操作内容を示す情報を生成する。例えば、変更管理部１２２は、同じ種類の複数の操作を１つの操作とみなせるように、当該複数の操作を集約する。また、例えば、変更管理部１２２は、相反する複数の操作を、操作が行われなかったものとみなせるように（複数の操作がないものとみなせるように）、複数の操作を相殺する。
【００４３】
描画前処理部１２３は、変更管理部１２２により生成された情報を参照し、マージ後の操作に対して、描画前処理を行う。描画前処理とは、描画に用いられる情報を生成するための処理である。例えば、柔軟体の描画であれば、柔軟体の配置を示す情報に基づく所定の演算により、当該柔軟体の外形を示す情報を生成する処理が含まれる。
【００４４】
描画部１２４は、描画前処理部１２３により生成された情報に基づいて、物体の描画処理を行う。描画部１２４は、描画された画像をディスプレイ１２に表示させる。
図４は、第２の実施の形態のアセンブリの描画例を示す図である。アセンブリ２００は、部品２１０，２２０，２３０を組み合わせた部品の集合体である。部品２１０，２２０は剛体である。部品２３０は柔軟体である。部品２３０は部品２１０，２２０に接続されたケーブルである。部品２１０，２２０，２３０それぞれは、仮想的な３次元空間に配置された物体である。アセンブリ２００を１つの物体と呼んでもよい。座標軸２１は仮想的な３次元空間のｘｙｚ軸である。アセンブリ２００は例えば次のような情報を用いて管理される。
【００４５】
図５は、第２の実施の形態の３次元データの例を示す図である。３次元データ１１１は、記憶部１１０に格納される。３次元データ１１１は、アセンブリデータ１１１ａおよび部品データ１１１ｂ，１１１ｃ，１１１ｄを含む。アセンブリデータ１１１ａは、アセンブリ２００を示す情報である。部品データ１１１ｂ，１１１ｃ，１１１ｄは、部品２１０，２２０，２３０を示す情報である。
【００４６】
部品データ１１１ｂ，１１１ｃ，１１１ｄは、アセンブリデータ１１１ａの配下に関連付けられている。部品２１０，２２０，２３０はアセンブリ２００の要素だからである。アセンブリ２００の要素に他のアセンブリが含まれてもよい。その場合、他のアセンブリを示す他のアセンブリデータがアセンブリデータ１１１ａの配下に関連付けられる。
【００４７】
アセンブリデータ１１１ａは、アセンブリ識別子、名前、相対位置、相対姿勢、表示／非表示、透過率および輝度の項目を含む。
アセンブリ識別子の項目には、アセンブリを識別するための情報が登録される。名前の項目には、アセンブリの名前が登録される。相対位置の項目には、仮想的な３次元空間の所定の点（原点でもよい）に対する相対的な座標が登録される。相対姿勢の項目には、当該３次元空間の所定の座標軸（絶対的な座標軸でもよい）に対する相対的な姿勢を示す情報（例えば、回転行列の情報）が登録される。表示／非表示の項目には、アセンブリ単位に描画を行うか否かを制御するための情報が登録される。“表示”であれば当該アセンブリの描画が行われる。“非表示”であれば当該アセンブリの描画が行われない。透過率の項目には、アセンブリの透明度の度合いを示す情報が登録される。透過率が高いほど、背後の物体をより濃く透視できるように描画することになる。輝度の項目には、アセンブリの輝度を示す情報が登録される。
【００４８】
例えば、アセンブリデータ１１１ａでは、アセンブリ２００に対して、アセンブリ識別子“Ａ”、名前“ケーブル接続部品”、相対位置“Ｐ０”、相対姿勢“Ｍ０”、表示／非表示“表示”、透過率“０％”、輝度“Ｌ０”という情報が登録されている。
【００４９】
部品データ１１１ｂ，１１１ｃ，１１１ｄは、部品識別子、名前、アセンブリ識別子、相対位置、相対姿勢、表示／非表示、透過率、輝度および形状データの項目を含む。
名前、相対位置、相対姿勢、表示／非表示、透過率および輝度の項目については、アセンブリデータ１１１ａと同様の情報が登録される。ただし、部品単位の情報である点が異なる。アセンブリ単位の情報と登録値が異なる場合には、部品単位の情報を優先して各部品の描画に適用してもよい。相対位置や相対姿勢の項目には、アセンブリ単位の相対位置や相対姿勢の登録値に対する相対的な位置座標や行列が登録されてもよい。これらの項目に登録される情報の説明は、アセンブリデータ１１１ａと同様である。
【００５０】
形状データの項目には、部品の配置を示す情報や外形を示す情報が登録される。形状データは、剛体の部品と柔軟体の部品とで管理される項目が異なる。
剛体の部品２１０，２２０に対応する部品データ１１１ｂ，１１１ｃの形状データであれば、色、三角形数および三角形情報の項目を含む。色の項目には、部品の色が登録される。三角形数の項目には、三角形状のポリゴンの数が登録される。三角形情報の項目には、当該ポリゴンを示す情報が登録される。例えば、部品データ１１１ｂでは部品２１０に対する形状データとして、色“Ｈ１”、三角形数“Ｔ１”という情報が登録されている。三角形情報の具体例は後述する。
【００５１】
柔軟体（ここでは、ケーブル）の部品２３０に対応する部品データ１１１ｄであれば、形状データは色、断面形状、通過点数、通過点情報、三角形数および三角形情報の項目を含む。色、三角形数および三角形情報の項目に登録される情報は、部品データ１１１ｂ，１１１ｃと同様である。断面形状の項目には、部品２３０の断面の形状を示す情報が登録される。通過点数の項目には、部品２３０が通過する点の数を示す情報が登録される。通過点情報の項目には、通過点の座標が登録される。例えば、部品データ１１１ｄでは、部品２３０に対する形状データとして、断面形状“円形”、通過点数“Ｎ”、三角形数“Ｔ３”という情報が登録されている。通過点情報および三角形情報の具体例は後述する。
【００５２】
図６は、第２の実施の形態の三角形テーブルの例を示す図である。三角形テーブル１１２は、記憶部１１０に格納される。三角形テーブル１１２は、部品データ１１１ｂにおける三角形情報の一例である。三角形テーブル１１２は、項番、頂点１、頂点２、頂点３および法線の項目を含む。
【００５３】
項番の項目には、１つのポリゴンを示すレコードを識別するための番号が登録される。頂点１、頂点２、頂点３の項目には、１つの３角形状のポリゴンにおける３つの頂点それぞれを示す座標が登録される。法線の項目には、当該ポリゴンを含む面に対する法線ベクトルを示す情報が登録される。
【００５４】
例えば、三角形テーブル１１２には、項番が“１”、頂点１が“（ｘ１１，ｙ１１，ｚ１１）”、頂点２が“（ｘ１２，ｙ１２，ｚ１２）”、頂点３が“（ｘ１３，ｙ１３，ｚ１３）”、法線が“（ｘ１４，ｙ１４，ｚ１４）”という情報が登録されている。
【００５５】
図７は、第２の実施の形態の通過点テーブルの例を示す図である。通過点テーブル１１３は、記憶部１１０に格納される。通過点テーブル１１３は、部品データ１１１ｄにおける通過点情報の一例である。通過点テーブル１１３は、項番、通過点位置および通過点姿勢の項目を含む。
【００５６】
項番の項目には、１つの通過点を示すレコードを識別するための番号が登録される。通過点位置の項目には、通過点を示す座標が登録される。通過点姿勢の項目には、当該通過点におけるケーブルの部品２３０の姿勢を示す行列が登録される。例えば、通過点テーブル１１３には、項番が“１”、通過点位置が“Ｐ２１”、通過点姿勢が“Ｍ２１”という情報が登録されている。
【００５７】
図８は、第２の実施の形態の操作履歴テーブルの例を示す図である。操作履歴テーブル１１４は、記憶部１１０に格納される。操作履歴テーブル１１４は、操作番号、識別子、変更タイプ、変更前および変更後の項目を含む。
【００５８】
操作番号の項目には、１つの操作を示すレコードを識別するための番号が登録される。識別子の項目には、操作対象のアセンブリを示すアセンブリ識別子、または、操作対象の部品を示す部品識別子が登録される。変更タイプの項目には、操作によって変更される属性を示す情報が登録される。変更前の項目には、当該属性の変更前の設定値が登録される。変更後の項目には、当該属性の変更後の設定値が登録される。なお、ここでいう“変更前”および“変更後”は、時系列の順方向の意味で“前”、“後”と称している。変更前および変更後の項目に登録される情報は、変更タイプに応じた情報が登録されることになる。いくつか例を挙げると各変更タイプに対して次のような情報が登録される。
【００５９】
（１）変更タイプ“相対位置”：変更前後の座標
（２）変更タイプ“表示／非表示”：“表示”または“非表示”
（３）変更タイプ“姿勢”：変更前後の回転量を示す行列
（４）変更タイプ“色”：変更前後の色を示す情報
（５）変更タイプ“透過率”：変更前後の透過率を示す情報
【００６０】
例えば、操作履歴テーブル１１４には次のような操作を示す情報が登録されている。
操作番号“１”の操作は、識別子が“Ａ”、変更タイプが“相対位置”、変更前の相対位置の座標が“Ｐ０”、変更後の相対位置の座標が“Ｐ０ａ”である。これは、アセンブリ２００単位で配置が変更されたことを示している。
【００６１】
操作番号が“２”の操作は、識別子が“Ｂ２”、変更タイプが“表示／非表示”、変更前が“非表示”、変更後が“表示”である。これは、部品２２０単位で非表示に設定されていたものが、表示に切替えられたことを示している。
【００６２】
操作番号“３”の操作は、識別子が“Ｂ１”、変更タイプが“相対位置”、変更前の相対位置の座標が“Ｐ１”、変更後の相対位置の座標が“Ｐ１ａ”である。これは、部品２１０単位で配置が変更されたことを示している。また、操作番号“３”の操作は、識別子が“Ｂ２”、変更タイプが“相対位置”、変更前の相対位置の座標が“Ｐ２”、変更後の相対位置の座標が“Ｐ２ａ”である。これは、部品２２０単位で配置が変更されたことを示している。ここで、操作番号“３”の操作のように、１つの操作によって、複数の部品が変更されることもある。
【００６３】
操作番号“４”の操作は、識別子が“Ｂ２”、変更タイプが“表示／非表示”、変更前が“表示”、変更後が“非表示”である。これは、部品２２０単位で表示に設定されていたものが、非表示に切替えられたことを示している。
【００６４】
操作番号“５”の操作は、識別子が“Ｂ１”、変更タイプが“相対位置”、変更前の相対位置の座標が“Ｐ１ａ”、変更後の相対位置の座標が“Ｐ１ｂ”である。これは、部品２１０単位で配置が変更されたことを示している。
【００６５】
操作番号“６”の操作は、識別子が“Ａ”、変更タイプが“相対位置”、変更前の相対位置の座標が“Ｐ０ａ”、変更後の相対位置の座標が“Ｐ０”である。これは、アセンブリ２００単位で配置が変更されたことを示している。
【００６６】
なお、部品２１０または部品２２０の配置が変更される場合、部品２１０，２２０に接続された部品２３０もそれに追随して、配置が変更されることになる（例えば、ケーブルの一端が別の位置に配置されるなど）。部品２３０は配置の変更に伴って変形し得る。
【００６７】
ここで、操作履歴テーブル１１４では操作番号の昇順に各操作が時系列に登録されている。例えば、操作番号“１”〜“６”で示される操作でいえば、操作番号“１”の操作が時間的に最も古い操作である。操作番号“６”の操作が時間的に最も新しい操作である。
【００６８】
例えば、undoであれば、時系列の逆順に操作を追うことになる。よって、操作番号“６”、“５”、“４”、“３”、“２”、“１”と操作番号の降順に、各操作を実行すればよい（ただし、変更後から変更前の状態となるように各操作を時系列の逆方向に実行する）。redoであれば、時系列の順に操作を追うことになる。よって、操作番号“１”、“２”、“３”、“４”、“５”、“６”と操作番号の昇順に、各操作を実行すればよい（変更前から変更後の状態となるように各操作を時系列の順方向に実行する）。
【００６９】
図９は、第２の実施の形態の変更管理テーブルの例を示す図である。変更管理テーブル１１５は、一連の操作内容に対して、変更管理部１２２によって生成されるマージ後の操作内容を示す情報の一例である。変更管理テーブル１１５の１つのレコードを指して、変更情報と呼ぶことがある。変更管理テーブル１１５は、記憶部１１０に格納される。変更管理テーブル１１５は、識別子および変更タイプの項目を含む。
【００７０】
識別子の項目には、操作対象のアセンブリを示すアセンブリ識別子、または、操作対象の部品を示す部品識別子が登録される。変更タイプの項目には、操作によって変更される属性を示す情報が登録される。
【００７１】
例えば、変更管理テーブル１１５には、識別子が“Ａ”、変更タイプが“相対位置”という情報が登録される。これは、アセンブリ２００に対する同一種類の操作をマージした後の操作内容を示しており、“相対位置”の変更を行うことを示す。変更管理テーブル１１５には、部品２１０（識別子“Ｂ１”）および部品２２０（識別子“Ｂ２”）に関する変更タイプ“相対位置”のレコードも登録されている。
【００７２】
図１０は、第２の実施の形態の処理例を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。なお、ステップＳ１１の直前において、記憶部１１０に記憶された操作履歴テーブル１１４には、上述の操作番号“１”〜“６”のエントリが存在するものとする。また、ステップＳ１１の直前において、当該各エントリのうち操作番号“６”の操作後の状態で３次元データ１１１が管理されているものとする。
【００７３】
（ステップＳ１１）基本処理部１２１は、一括再生の入力を受け付ける。ユーザは、例えば、入力デバイス１１を操作して、設計支援装置１００に一括操作の入力を行える。例えば、一括再生の入力は、操作履歴テーブル１１４のうち操作番号の範囲および順序を指定する情報を含む。例えば、操作番号“６”〜“１”までの降順（undo）が指定される。
【００７４】
（ステップＳ１２）基本処理部１２１は、一括再生の入力で指定された操作内容を操作履歴テーブル１１４から指定された順番に１つ取得する。１つの操作内容とは１つの操作番号に相当する。例えば、操作番号“６”〜“１”までを降順に実行するのであれば、最初に取得されるのは操作番号“６”のレコードである。
【００７５】
（ステップＳ１３）基本処理部１２１は、基本処理を実行し３次元データ１１１の一部を更新する。例えば、基本処理部１２１は物体の配置に関する情報を処理する。より具体的には、操作番号“６”の操作であればアセンブリ識別子“Ａ”に対する操作である。また、undo操作であれば操作履歴テーブル１１４における操作番号“６”のレコードの変更後の状態から変更前の状態となるようにする。すなわち、アセンブリデータ１１１ａの相対位置“Ｐ０”を“Ｐ０ａ”に変更する。また、操作番号“５”のundo操作であれば、部品識別子“Ｂ１”に対する操作である。よって、同様に、部品データ１１１ｂの相対位置“Ｐ１ｂ”を“Ｐ１ａ”に変更する。基本処理部１２１は、部品２１０，２２０に対して、形状データの各情報（三角形数／三角形情報など）の更新まで行ってもよい。部品２１０，２２０は剛体イメージであり、配置によって変形させないため、平行移動や回転などの単純な演算で形状データの各情報の更新を行え、その演算コストが比較的小さいからである。部品２３０に対しては形状データの通過点数／通過点情報の更新までを行ってもよい。ただし、部品２３０に対しては三角形数／三角形情報の更新を行わない。部品２３０は柔軟体であり配置変更による変形を伴い、その演算コストが比較的大きいからである。
【００７６】
（ステップＳ１４）変更管理部１２２は、ステップＳ１２で取得された操作に対して、変更管理の処理を行う。ステップＳ１１で指定された一連の操作について、操作内容をマージする処理である。当該変更管理の処理により、変更管理部１２２は、変更管理テーブル１１５に対して、新規レコードの登録やレコードの削除を行う。
【００７７】
（ステップＳ１５）基本処理部１２１は、ステップＳ１１で指定された一連の操作のうち、全ての操作について処理済であるか否かを判定する。処理済である場合、処理をステップＳ１６に進める。残りの操作がある場合、処理をステップＳ１２に進める。
【００７８】
（ステップＳ１６）描画前処理部１２３は、変更管理テーブル１１５に基づいて、描画前処理を行い、３次元データ１１１（ステップＳ１３で未更新の部分）を更新する。例えば、描画前処理部１２３は柔軟体について外形を示す情報の生成を行う。描画部１２４は、描画前処理部１２３による更新後の３次元データ１１１に基づいて、アセンブリ２００の画像を描画し、ディスプレイ１２に表示させる。
【００７９】
このようにして、一連の操作に含まれる全ての操作に対して、基本処理のみを行った後、描画前処理および描画処理を１度だけ実行する。次に、図１０で示したステップＳ１４，Ｓ１６の手順を説明する。まず、ステップＳ１４の手順を説明する。
【００８０】
図１１は、第２の実施の形態の変更管理の例を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。
（ステップＳ２１）変更管理部１２２は、ステップＳ１２で取得された操作に対する変更情報を生成する。
【００８１】
（ステップＳ２２）変更管理部１２２は、記憶部１１０に記憶された変更管理テーブル１１５を参照して、ステップＳ１２で取得された操作の対象部品と同一部品に対する変更情報（レコード）が登録済であるか否かを判定する。同一部品に対する変更情報が登録済である場合、処理をステップＳ２３に進める。同一部品に対する変更情報が登録済でない場合、処理をステップＳ２４に進める。同一部品に対する変更情報が登録済か否かは、ステップＳ１２で取得された操作の対象を示す識別子と、変更管理テーブル１１５に登録された識別子と、を照合することで判定できる。操作対象を示す識別子を含む変更情報が変更管理テーブル１１５にあれば、同一部品に対する変更情報が登録済である。操作対象を示す識別子を含む変更情報が変更管理テーブル１１５になければ、同一部品に対する変更情報が登録済でない。
【００８２】
（ステップＳ２３）変更管理部１２２は、変更管理テーブル１１５に登録済の同一部品に対する変更情報に、ステップＳ２１で生成された変更情報と同じ変更タイプのものがあるか否かを判定する。同じ変更タイプのものがある場合、処理をステップＳ２５に進める。同じ変更タイプのものがない場合、処理をステップＳ２４に進める。
【００８３】
（ステップＳ２４）変更管理部１２２は、ステップＳ２１で新たに生成された変更情報を変更管理テーブル１１５に登録する。そして、処理を終了する。
（ステップＳ２５）変更管理部１２２は、ステップＳ２１で生成された変更情報で示される操作が、変更管理テーブル１１５に登録済の同一部品・同一変更タイプの変更情報で示される操作に対して、相反する変更となるか否かを判定する。相反する変更となる場合、処理をステップＳ２６に進める。相反する変更とならない場合、処理をステップＳ２７に進める。相反する変更とは、オン／オフを切替える変更である。一例として、表示と非表示の変更が挙げられる。
【００８４】
（ステップＳ２６）変更管理部１２２は、ステップＳ２１で生成された変更情報と同一部品・同一変更タイプの変更情報を変更管理テーブル１１５から削除する。
（ステップＳ２７）変更管理部１２２は、ステップＳ２１で生成された変更情報を破棄する。そして、処理を終了する。
【００８５】
図１２は、第２の実施の形態の変更管理の例を示す図である。図１２では図８で例示した操作履歴テーブル１１４の操作番号“６”〜“１”を降順に実行した場合（undoの場合）の変更管理テーブル１１５の変遷を例示している。変更管理テーブル１１５ａは、図１１で示した手順により、操作番号“６”，“５”，“４”の操作を順番に反映させた場合である。変更管理テーブル１１５ｂは、変更管理テーブル１１５ａの状態から、更に、操作番号“３”の操作を反映させた場合である。変更管理テーブル１１５ｂは次のように生成される。
【００８６】
操作履歴テーブル１１４によれば、操作番号“３”は（部品）識別子“Ｂ１”に対する変更タイプ“相対位置”の操作を含む。よって、変更管理部１２２は、当該操作に対して、識別子“Ｂ１”、変更タイプ“相対位置”の変更情報を生成する（ステップＳ２１）。一方、変更管理テーブル１１５ａは（部品）識別子“Ｂ１”の変更情報を含む（ステップＳ２２のＹｅｓ）。更に、当該変更情報の変更タイプは“相対位置”である（ステップＳ２３のＹｅｓ）。変更タイプ“相対位置”の変更同士であり、オン／オフを切替えるような操作ではないので、相反する変更ではない（ステップＳ２５のＮｏ）。よって、変更管理部１２２は、新たに生成された変更情報のみを破棄する（ステップＳ２７）。
【００８７】
同様に、操作履歴テーブル１１４によれば、操作番号“３”は（部品）識別子“Ｂ２”に対する変更タイプ“相対位置”の操作を含む。よって、変更管理部１２２は、当該操作に対して、識別子“Ｂ２”、変更タイプ“相対位置”の変更情報を生成する（ステップＳ２１）。一方、変更管理テーブル１１５ａは（部品）識別子“Ｂ２”に対する変更情報を含む（ステップＳ２２のＹｅｓ）。当該変更情報の変更タイプは“表示／非表示”であり、“相対位置”ではない（ステップＳ２３のＮｏ）。よって、変更管理部１２２は、新たに生成された変更情報（識別子“Ｂ２”、変更タイプ“相対位置”）を変更管理テーブル１１５ａに登録する（ステップＳ２４）。その結果が変更管理テーブル１１５ｂである。
【００８８】
変更管理テーブル１１５ｃは、変更管理テーブル１１５ｂの状態から、更に、操作番号“２”の操作を反映させた場合である。変更管理テーブル１１５ｃは次のように生成される。
【００８９】
操作履歴テーブル１１４によれば、操作番号“２”は（部品）識別子“Ｂ２”に対する変更タイプ“表示／非表示”の操作である。よって、変更管理部１２２は、当該操作に対して、識別子“Ｂ２”、変更タイプ“表示／非表示”の変更情報を生成する（ステップＳ２１）。一方、変更管理テーブル１１５ｂは（部品）識別子“Ｂ２”の変更情報を含む（ステップＳ２２のＹｅｓ）。更に、当該変更情報の変更タイプは“表示／非表示”である（ステップＳ２３のＹｅｓ）。変更タイプ“表示／非表示”の操作は、オン／オフを切替える操作であり、相反する変更である（ステップＳ２５のＹｅｓ）。よって、変更管理部１２２は、変更管理テーブル１１５ｂから識別子“Ｂ２”、変更タイプ“表示／非表示”の変更情報を削除する（ステップＳ２６）。更に、変更管理部１２２は新たに生成された変更情報も破棄する（ステップＳ２７）。その結果が変更管理テーブル１１５ｃである。
【００９０】
変更管理テーブル１１５ｄは、変更管理テーブル１１５ｃの状態から、更に、操作番号“１”の操作を反映させた場合である。変更管理テーブル１１５ｄは次のように生成される。
【００９１】
操作履歴テーブル１１４によれば、操作番号“１”は（アセンブリ）識別子“Ａ”に対する変更タイプ“相対位置”の操作である。よって、変更管理部１２２は、当該操作に対して、識別子“Ａ”、変更タイプ“相対位置”の変更情報を生成する（ステップＳ２１）。一方、変更管理テーブル１１５ｃは（アセンブリ）識別子“Ａ”の変更情報を含む（ステップＳ２２のＹｅｓ）。更に、当該変更情報の変更タイプは“相対位置”である（ステップＳ２３のＹｅｓ）。変更タイプ“相対位置”の操作同士は相反する変更ではない（ステップＳ２５のＮｏ）。よって、変更管理部１２２は、新たに生成された変更情報のみを破棄する（ステップＳ２７）。
【００９２】
このようにして、変更管理部１２２は一連の操作をマージする。これにより、できるだけ少ない操作に対して、描画前処理部１２３による処理が行われるように制御できる。
図１３は、第２の実施の形態の描画処理の例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【００９３】
（ステップＳ３１）描画前処理部１２３は、記憶部１１０に記憶された変更管理テーブル１１５から変更情報を１つ取得する。
（ステップＳ３２）描画前処理部１２３は、対応する部品の３次元データを更新する。描画前処理部１２３が実行する処理としては、例えば、次の（１）（２）の２つのパターンが考え得る（部品２３０を例に挙げる）。（１）描画前処理部１２３は、部品２３０について、ステップＳ１３で通過点数／通過点情報の更新を行っていない場合、部品２１０，２２０の配置に応じて通過点数／通過点情報を更新する。更に、描画前処理部１２３は、更新後の通過点数／通過点情報および断面形状の情報に基づく所定の演算を実行して、部品２３０の三角形数／三角形情報を更新する。（２）描画前処理部１２３は、部品２３０について、ステップＳ１３で通過点数／通過点情報の更新を行っている場合、当該更新後の通過点数／通過点情報および断面形状の情報に基づく所定の演算を実行して、部品２３０の三角形数／三角形情報を更新する。
【００９４】
（ステップＳ３３）描画前処理部１２３は、変更管理テーブル１１５に登録された全ての変更情報について、ステップＳ３２の処理を行ったか否かを判定する。全ての変更情報を処理済の場合、処理をステップＳ３４に進める。全ての変更情報を処理済でない場合、処理をステップＳ３１に進める。
【００９５】
（ステップＳ３４）描画部１２４は、描画前処理部１２３により更新された３次元データを用いて描画を行い、描画結果の画像をディスプレイ１２に表示させる。
このようにして、描画前処理部１２３は、変更管理テーブル１１５に基づいて、描画前処理を行う。描画前処理部１２３は変更管理テーブル１１５に登録された変更情報に対する部品についてのみ、描画前処理を行えばよい。このため、描画前処理部１２３の処理負担が軽減される。
【００９６】
図１４は、第２の実施の形態の処理と他の処理との比較を示す図である。図１４（Ａ）は第２の実施の形態の手順を例示している。図１４（Ｂ）は他の処理の手順を例示している。以下、図１４（Ａ）（Ｂ）に示す各処理をステップ番号に沿って説明する。
【００９７】
図１４（Ａ）は次の手順となる。まず、設計支援装置１００は、一連の操作の実行指示を受け付ける（ステップＳＴ１１）。例えば、当該指示は、入力デバイス１１を用いたユーザによる所定の操作入力により、設計支援装置１００に入力される。
【００９８】
設計支援装置１００は、基本処理を行う（ステップＳＴ１２）。基本処理は、例えば、３次元データ１１１のうち、相対位置や相対姿勢、表示／非表示、透過率、輝度、剛体に関する形状データの全部および柔軟体に対する形状データのうち通過点数や通過点情報の変更を含み得る。ただし、剛体に関する形状データや柔軟体に対する形状データ（通過点数および通過点情報）のうちの少なくとも何れかの変更を含まなくてもよい。また、基本処理には、柔軟体に対する形状データのうち三角形数や三角形情報の変更を含まない。
【００９９】
設計支援装置１００は、更新管理を行う（ステップＳＴ１３）。ステップＳＴ１１で指示された一連の操作について、操作内容をマージする処理である。複数の操作が１回の操作に集約される。また、相反する操作が相殺されて、相反するそれぞれの操作がないものとみなされる。
【０１００】
設計支援装置１００は、指示された一連の操作のそれぞれの操作について、ステップＳＴ１２，１３を繰り返し行う。
設計支援装置１００は、一連の操作の全ての操作について、更新管理の処理を行うと、モデル形状の更新（描画前処理）を行う（ステップＳＴ１４）。３次元データ１１１のうち、ステップＳＴ１２で更新されていない情報の更新である。例えば、剛体である部品２１０，２２０の相対位置などの情報に基づいて、柔軟体である部品２３０の形状データを更新する。あるいは、柔軟体である部品２３０の形状データに含まれる断面形状、通過点数および通過点情報などに基づいて、部品２３０の三角形数や三角形情報を更新する。これによって、部品２３０の外形を示す情報が生成されることになる。
【０１０１】
設計支援装置１００は、当該外形を示す情報に基づいて、アセンブリ２００を描画し、描画結果の画像をディスプレイ１２に表示させる（ステップＳＴ１５）。
図１４（Ｂ）は次の手順となる。ここで、図１４（Ｂ）の手順を実行する装置を便宜的に設計支援装置と称する。まず、設計支援装置は、一連の操作の実行指示を受け付ける（ステップＳＴ１１ａ）。具体的な入力方法はステップＳＴ１１と同様である。設計支援装置は、基本処理を行う（ステップＳＴ１２ａ）。具体的な処理は、ステップＳＴ１２と同様である。設計支援装置は、モデル形状の更新を行う（ステップＳＴ１４ａ）。これによって、描画対象の物体の外形を示す情報が生成されることになる。設計支援装置は、当該外形を示す情報に基づいて、描画対象の物体を描画し、描画結果の画像をディスプレイ１２に表示させる（ステップＳＴ１５ａ）。設計支援装置１００は、指示された一連の操作のそれぞれの操作について、ステップＳＴ１２ａ，ＳＴ１４ａ，ＳＴ１５ａを繰り返し行う。
【０１０２】
図１４（Ｂ）のように、１つの操作に対して描画を行う都度、柔軟体などの外形を示す情報を生成することも考え得る。ところが、この場合、一連の操作を再生して物体の動作などを検証する際に、描画が遅延し得る。例えば、柔軟体の外形を示す情報を生成するための演算が、順次実行される操作のたびに行われると、複数の操作後の物体の状態をユーザに提示し、ユーザが確認できるようになるまでに時間がかかることがある。描画する物体が複雑化すると、当該演算のコストが高まり、当該遅延が更に増大し得る。
【０１０３】
そこで、設計支援装置１００は、一連の操作を順に実行する際に、モデル形状の更新（すなわち、物体の外形を示す情報の更新）を、一連の操作後における基本処理結果を用いて、１回行う。このようにすれば、一連の操作のそれぞれの操作の都度、モデル形状の更新を行うよりも、一連の操作における全体の演算コストを軽減できる。その結果、一連の操作に対する描画を高速化できる。また、ユーザは一連の操作後の物体の状態を迅速に確認できるようになる。すなわち、ユーザによる検証作業の効率化を図れる。
【０１０４】
更に、ユーザにより指定される一連の操作の中で確認対象とする複数の操作を指定可能としてもよい。この場合、設計支援装置１００は指定された操作について、物体の外形を示す情報の生成を行って描画を実行し、それ以外の操作では配置を示す情報の更新のみを行って描画を行わないように制御する。このようにすれば、ユーザは、一連の操作について、間欠的に描画される画像を参照しながら、検証作業を効率的に行える。
【０１０５】
なお、第２の実施の形態では、部品２１０，２２０の配置が変更されることで、部品２３０の配置が間接的に変更される場合を例示したが、部品２３０の配置が直接的に変更される場合も同様に第２の実施の形態の処理を適用できる。また、部品２３０の配置が間接的に変更される場合は、部品２１０，２２０の配置が変更される場合に限られない。例えば、工具や作業員の手などを物体として挿入する場合に、当該工具や手などから部品２３０に加えられる荷重によって、部品２３０の配置が間接的に変更されることもある。その場合も第２の実施の形態の処理を適用できる。
【０１０６】
［第３の実施の形態］
以下、第３の実施の形態を説明する。前述の第２の実施の形態との相違点を主に説明し、共通の事項の説明を省略する。
【０１０７】
第２の実施の形態では、変更管理の処理において、相反する変更が行われた場合に、対応する処理が発生しなかったものとみなすように制御するものとした。これに加えて、基本処理において、ある属性値の変更時に、その変化分を記録しておくことで、相殺できる操作の範囲を拡張し得る。第３の実施の形態では、その機能を提供する。
【０１０８】
ここで、第３の実施の形態の設計支援装置のハードウェア例およびソフトウェア例は、図２，３で説明した第２の実施の形態の設計支援装置１００と同様である。そこで、第３の実施の形態でも、図２，３で説明した名称・符号と同一の名称・符号を用いる。ただし、変更管理部１２２がある属性値の変更時に、その変化分を変更管理テーブルに記録しておき、当該変更管理テーブルに基づいて操作内容をマージする点が第２の実施の形態と異なる。このため、第２の実施の形態の変更管理テーブル１１５に代えて、属性値の変更量を登録可能な変更管理テーブルを用いる。
【０１０９】
図１５は、第３の実施の形態の変更管理テーブルの例を示す図である。変更管理テーブル１１６は、一連の操作内容に対して、変更管理部１２２によって生成されるマージ後の操作内容を示す情報の一例である。変更管理テーブル１１６の１つのレコードを指して、変更情報と呼ぶことがある。変更管理テーブル１１６は、記憶部１１０に格納される。変更管理テーブル１１６は、識別子、変更タイプおよび変更量の項目を含む。
【０１１０】
識別子の項目には、操作対象のアセンブリを示すアセンブリ識別子、または、操作対象の部品を示す部品識別子が登録される。変更タイプの項目には、操作によって変更される属性を示す情報が登録される。変更量の項目には、属性値の変化分の積算を示す情報が登録される。例えば、変更タイプが相対位置であれば、位置の変化分を示すベクトルが登録される。例えば、変更タイプが相対姿勢であれば、回転量の変化分を示す行列が登録される。例えば、変更タイプが輝度であれば、輝度の変化分を示す値が登録される。
【０１１１】
例えば、変更管理テーブル１１６には、識別子が“Ｂ１”、変更タイプが“相対位置”、変更量が“Ｖ１”という情報が登録される。これは、一連の操作（あるいは、その途中までの操作）内容に対する部品２１０単位のマージ後の操作内容を示しており、“操作位置”の変更を行うことを示す。また、一連の操作（あるいは、その途中までの操作）による変更量が“Ｖ１”であったことを示す。
【０１１２】
次に、第３の実施の形態の処理手順を説明する。第３の実施の形態の全体処理の例および描画処理の例は、図１０，１３で説明した第２の実施の形態の各処理と同様であるため説明を省略する。第３の実施の形態では、変更管理の処理が第２の実施の形態と異なる。
【０１１３】
図１６は、第３の実施の形態の変更管理の例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。ここで、ステップＳ２５ａ，２５ｂ，２５ｃ以外の各ステップは、図１１で説明した同一符号の各ステップと同様である。ただし、変更管理部１２２は、変更管理テーブル１１６を参照して各ステップの処理を行う。また、第３の実施の形態では、ステップＳ２５で相反する変更とならないと判定される場合（ステップＳ２５のＮｏの場合）に、処理をステップＳ２５ａへ進める。
【０１１４】
（ステップＳ２５ａ）変更管理部１２２は、操作に伴う変更量を算出する。具体的には、変更管理部１２２は、記憶部１１０に記憶された操作履歴テーブル１１４における変更前後での属性値の差分を計算し、変更量とする。例えば、undoの操作であれば変更後の値から変更前の値に戻すことになる。操作番号“６”であれば、相対位置の座標“Ｐ０”と“Ｐ０ａ”との差分をとったベクトル（座標“Ｐ０”から“Ｐ０ａ”へ向かうベクトル）“Ｖ０”が当該変更量に相当する。redoの操作であれば逆である。
【０１１５】
（ステップＳ２５ｂ）変更管理部１２２は、記憶部１１０に記憶された変更管理テーブル１１６を参照して、既に登録済の変更量と今回の変更量との合計が０であるか否かを判定する。０である場合、処理をステップＳ２６に進める。０でない場合、処理をステップＳ２５ｃに進める。例えば、既に登録済の変更タイプ“相対位置”の変更量が“Ｖ１”であり、今回の変更量が“−Ｖ１”であれば、これらを加算した結果は０である。
【０１１６】
（ステップＳ２５ｃ）変更管理部１２２は、ステップＳ２５ｂで算出した変更量の合計値を、変更管理テーブル１１６の該当の変更情報における変更量の項目に登録する。これにより、当該変更情報の変更量が、ここまでの操作をマージした後の積算値で更新されることになる。そして、処理をステップＳ２７に進める。
【０１１７】
図１７は、第３の実施の形態の変更管理の例を示す図である。図１７では図８で例示した操作履歴テーブル１１４の操作番号“６”〜“１”を降順に実行した場合（undoの場合）の変更管理テーブル１１６の変遷を例示している。変更管理テーブル１１６ａは、図１６で示した手順により、操作番号“６”，“５”，“４”，“３”，“２”の操作を順番に反映させた場合である。ここで、操作番号“６”についてundo時の座標“Ｐ０”から“Ｐ０ａ”へ向かう変更量はベクトル“Ｖ０”である。変更管理テーブル１１６ｂは、変更管理テーブル１１６ａの状態から、更に、操作番号“１”の操作を反映させた場合である。変更管理テーブル１１６ｂは次のように生成される。
【０１１８】
操作履歴テーブル１１４によれば、操作番号“１”は（アセンブリ）識別子“Ａ”に対する変更タイプ“相対位置”の操作を含む。よって、変更管理部１２２は、当該操作に対して、識別子“Ａ”、変更タイプ“相対位置”の変更情報を生成する（ステップＳ２１）。一方、変更管理テーブル１１６ａは（アセンブリ）識別子“Ａ”の変更情報を含む（ステップＳ２２のＹｅｓ）。更に、当該変更情報の変更タイプは“相対位置”である（ステップＳ２３のＹｅｓ）。両方の変更情報の変更タイプは“相対位置”なので、相反する変更ではない（ステップＳ２５のＮｏ）。そこで、変更管理部１２２は、今回の操作による変更量を算出する。具体的には、操作番号“１”のundo操作は、座標“Ｐ０ａ”から“Ｐ０”に変更する処理である。この変更量はベクトル“−Ｖ０”である（ステップＳ２５ａ）。変更管理部１２２は、変更管理テーブル１１６ａにおける（アセンブリ）識別子“Ａ”の変更量“Ｖ０”と、算出した変更量“−Ｖ０”を加算する。結果は０である（ステップＳ２５ｂのＹｅｓ）。よって、変更管理部１２２は、変更管理テーブル１１６ａから識別子“Ａ”、変更タイプ“相対位置”、変更量“Ｖ０”の変更情報を削除する（ステップＳ２６）。更に、変更管理部１２２は、生成された変更情報も破棄する（ステップＳ２７）。その結果が変更管理テーブル１１６ｂである。
【０１１９】
このようにして、変更管理部１２２は一連の操作をマージする。特に、相反する操作に加えて、操作位置などの変更量を記録しておき、当該変更量が相殺される場合も、当該操作が発生しないものとみなす。これにより、第２の実施の形態よりも、更に少ない操作に対して、描画前処理部１２３による処理が行われるように制御できる。
【０１２０】
更に、変更管理テーブル１１６に各属性の変更量を記録するので、例えば、図１０におけるステップＳ１３（基本処理）の処理量を軽減できる。例えば、ステップＳ１３の処理をスキップしてもよい。すると、処理コストを更に軽減でき、一連の操作に対する描画の高速化に寄与し得る。
【０１２１】
［第４の実施の形態］
以下、第４の実施の形態を説明する。前述の第２，第３の実施の形態との相違点を主に説明し、共通の事項の説明を省略する。
【０１２２】
第４の実施の形態では、アセンブリの描画順序を制御する機能を提供する。これにより、アセンブリのうち所定の部分について描画の高速化を図る。ここで、第４の実施の形態の設計支援装置のハードウェア例は、図２で説明した第２の実施の形態の設計支援装置１００と同様である。
【０１２３】
図１８は、第４の実施の形態の設計支援装置のソフトウェア例を示す図である。図１８に示すユニットの全部または一部は、プロセッサ１０１がＲＡＭ１０２に記憶されたプログラムを実行することで実現されてもよい。設計支援装置１００ａは、記憶部１１０ａおよび描画制御部１２０ａを有する。
【０１２４】
記憶部１１０ａは、物体を描画するための各種の情報を記憶する。記憶部１１０ａは、第２または第３の実施の形態の記憶部１１０が記憶する情報と同様の情報を記憶する。更に、記憶部１１０ａは、仮想的な３次元空間上の複数の領域（ブロックという）を示す情報を記憶する。
【０１２５】
描画制御部１２０ａは、第２または第３の実施の形態の描画制御部１２０と同様の描画制御を行う。描画制御部１２０ａは、基本処理部１２１、変更管理部１２２、描画前処理部１２３、描画部１２４および描画順序決定部１２５を有する。ここで、基本処理部１２１、変更管理部１２２、描画前処理部１２３および描画部１２４は、図３で説明した第２の実施の形態の同一名称・符号の各ユニットと同様である。ただし、描画前処理部１２３と描画部１２４との間に描画順序決定部１２５を設ける点が第２，第３の実施の形態と異なる。
【０１２６】
描画順序決定部１２５は、描画前処理部１２３により３次元データ１１１が更新されると、記憶部１１０ａを参照して、ブロック単位に描画順序を決定する。描画順序決定部１２５は、現在のマウスポインタの位置や、視点位置および視線方向などに基づいて、現在描画中の視野に対しユーザが注目している点（注目点という）を特定する。注目点は、ユーザが現在作業中であると推定される点、あるいは、作業中である可能性の高い点ということもできる。なお、視点位置を示す情報や視線方向を示す情報は、仮想的な３次元空間の視野を決定するためのパラメータとして一般的に用いられている情報を利用できる。
【０１２７】
描画順序決定部１２５は、注目点を含むブロックを最優先とし注目点に近いブロックほど優先的に描画を行うように描画順を決定する。描画順序決定部１２５は、描画順序の決定結果を描画部１２４に通知する。描画部１２４は、決定された描画順序に従って描画を行う。
【０１２８】
図１９は、第４の実施の形態のブロックの例を示す図である。ブロック群４００は、ブロックの集合である。ブロック群４００はブロック４０１を含む。ブロック４０１は、１つのブロックである。ブロック４０１は頂点４０１ａを有する。頂点４０１ａは、紙面に向かってブロック４０１の左下隅の頂点である。例えば、ブロック群４００は、２７個のブロックを含んでいる。アセンブリ５００は、ノート型ＰＣ（Personal Computer）の部品の集合体である。
【０１２９】
イメージ６００は、アセンブリ５００を含む仮想的な３次元空間にブロック群４００を重畳させて表したものである。アセンブリ５００の各部分は、ブロック群４００のうちの何れかのブロックに属している。なお、座標軸３１は仮想的な３次元空間のｘｙｚ軸である。ブロック群４００は、例えば次のような情報を用いて管理される。
【０１３０】
図２０は、第４の実施の形態のブロック管理テーブルの例を示す図である。ブロック管理テーブル１１７は、記憶部１１０ａに格納される。ブロック管理テーブル１１７は、ブロック、エリアおよび部品名称の項目を含む。
【０１３１】
ブロックの項目には、１つのブロックを識別するための識別子が登録される。エリアの項目には、当該ブロックに属する座標範囲が登録される。部品名称の項目には、当該ブロックに属する部品の名称が登録される。ブロックに属するとは、部品の少なくとも一部分が、そのブロック内に含まれていることを意味する。なお、属する部品が存在しないブロックもあり得る。その場合、部品名称の項目には、設定なしを示すハイフン“−”が登録される。
【０１３２】
例えば、ブロック管理テーブル１１７には、ブロックが“ＢＬ０００”、エリアが“（０，０，０）〜（ｘ１，ｙ１，ｚ１）”、部品名称が“アッパーカバー、ロアカバー、バッテリー、キーボード”という情報が登録される。ここで、座標（０，０，０）は、頂点４０１ａの座標を示す。ブロック“ＢＬ０００”がエリア“（０，０，０）〜（ｘ１，ｙ１，ｚ１）”の座標範囲を示すものであり、当該ブロックに“アッパーカバー、ロアカバー、バッテリー、キーボード”の部品が属することを示している。
【０１３３】
次に、第４の実施の形態の処理手順を説明する。第４の実施の形態の全体処理の例、変更管理の例および描画処理の例は、図１０，１１で説明した第２の実施の形態の各処理と同様であるため説明を省略する。ただし、図１１の手順に代えて、図１６で説明した第３の実施の形態の手順を用いてもよい。一方、第４の実施の形態では、図１３で説明した第２の実施の形態のステップＳ３４における描画実行の手順が、第２，第３の実施の形態と異なる。
【０１３４】
図２１は、第４の実施の形態の描画実行の例を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。
（ステップＳ４１）描画順序決定部１２５は、記憶部１１０ａに記憶された３次元データ１１１に基づいて、現在の視野における注目点を特定する。注目点の特定方法としては、例えば、次の２つの方法が考えられる。（１）マウスポインタが指し示している部品上の座標を注目点とする。（２）現在の視野を決めている視点位置および視線方向を用いて、視点位置から視線方向へ伸ばした直線が最初に当たる部品上の座標を注目点とする。
【０１３５】
（ステップＳ４２）描画順序決定部１２５は、注目点を含むブロックを最優先とし、注目点に近いブロックをより優先的に描画するようにブロックごとの描画順序を決定し、描画部１２４に通知する。注目点に近いブロックは、注目点と、注目点を含むブロック以外の他のブロックとの距離によって判断できる。例えば、注目点と他のブロックとの距離は、注目点の座標と、他のブロックの基準となる座標との距離でもよい。他のブロックの基準となる座標とは、例えば他のブロックの中心や重心の座標などでもよい。
【０１３６】
（ステップＳ４３）描画部１２４は、決定された描画順序に従って、次に描画するブロックを特定する。描画部１２４は、記憶部１１０ａに記憶されたブロック管理テーブル１１７に基づいて、当該ブロックに含まれる部品を特定する。特定される部品は、１つの場合もあるし、複数の場合もある。
【０１３７】
（ステップＳ４４）描画部１２４は、特定された部品の３次元データに基づいて、当該部品を描画し、描画結果の画像をディスプレイ１２に表示させる。なお、他のブロックに含まれる部品を先に描画しており、ステップＳ４３で特定された部品が既に描画済であれば、該当の部品の描画をスキップしてよい。ステップＳ４３で複数の部品が特定されていれば、描画部１２４は複数の部品を描画することになる。
【０１３８】
（ステップＳ４５）描画部１２４は、描画が中断されたか否かを判定する。描画が中断された場合、処理を終了する。描画が中断されずに完了した場合、処理をステップＳ４６に進める。描画が中断される場合とは、例えば、ユーザによる入力デバイス１１を用いた所定の中断操作が行われた場合である。ユーザは、描画を中断後、それまでに描画された画像に対して、動作検証などの作業を行える。
【０１３９】
（ステップＳ４６）描画部１２４は、全ての部品の描画を完了したか否かを判定する。全ての部品の描画を完了した場合、処理を終了する。描画していない部品がある場合、処理をステップＳ４３に進める。
【０１４０】
このようにして、描画順序決定部１２５は注目点を特定し、注目点に基づいて部品の描画順序を決定する。
図２２は、第４の実施の形態の注目点の特定方法の例を示す図である。図２２（Ａ）は、マウスポインタ７００を用いた注目点の特定方法を例示している。図２２（Ｂ）は、視点位置８００および視線方向８１０を用いた注目点の特定方法を例示している。
【０１４１】
例えば、マウスポインタ７００を用いる場合、上述したようにマウスポインタ７００が指し示している部品上の座標を注目点とする。図２２（Ａ）の例では、マウスポインタ７００が指し示している部品はＣＤトレイである。したがって、描画順序決定部１２５は、マウスポインタ７００が指し示しているＣＤトレイ上の座標を注目点とする。
【０１４２】
また、例えば、視点位置８００および視線方向８１０を用いる場合、上述したように視点位置８００から視線方向８１０へ伸ばした（仮想的な３次元空間上の）直線８２０が最初に当たる部品上の座標を注目点とする。図２２（Ｂ）の例では、直線８２０が最初に当たる部品はディスプレイである。したがって、描画順序決定部１２５は、直線８２０が当たるディスプレイ上の座標を注目点とする。
【０１４３】
図２３は、第４の実施の形態の処理と他の処理との比較例を示す図である。図２３では画像Ｐ１１，Ｐ１２，Ｐ１３が例示されている。画像Ｐ１１は、注目点９００を説明するためのものである。注目点９００は、図２２（Ａ）で説明したマウスポインタ７００で指し示されるＣＤトレイ上の座標である。
【０１４４】
画像Ｐ１２は、第４の実施の形態の処理を適用した場合に表示される、描画途中のアセンブリ５１０を例示している。画像Ｐ１２には注目点９００も示されている。画像Ｐ１３は、第４の実施の形態の処理を適用しない場合に表示される、描画途中のアセンブリ５２０を例示している。画像Ｐ１２には注目点９００（ただし、図２３では注目点９００を中心とした円環に符号“９００”を付して図示している）も示されている。なお、画像Ｐ１２，Ｐ１３の何れも描画途中の段階であり、全ての部品の描画が完了すると、画像Ｐ１１のようにアセンブリ５００の全体が描画された状態となる。
【０１４５】
第４の実施の形態では、描画順序決定部１２５は注目点９００を含むブロックを最優先に描画するように描画順序を決定する。また、描画順序決定部１２５は、注目点９００に近いブロックを優先的に描画するように描画順序を決定する。その結果、注目点９００に近い部分からアセンブリ５００が描画されることになる。例えば、途中段階（画像Ｐ１２の段階）ではアセンブリ５１０が描画された状態となる。その後、アセンブリ５２０が注目点９００に近い部分から描画されることになる。
【０１４６】
一方、第４の実施の形態を適用しない場合、描画順序決定部１２５による描画順序の制御は行われないことになる。すなわち、注目点９００とは無関係の部分からアセンブリ５００の描画が開始され得る。例えば、途中段階（画像Ｐ１３の段階）でアセンブリ５１０よりも、アセンブリ５２０が先に描画されてしまうこともある。
【０１４７】
しかし、注目点９００は、ユーザにより現在作業中である可能性の高い点である。この点を後で描画するとなると、例えば、アセンブリ５００の全体が表示されるまで、注目点９００付近に描画される部品の動作検証など（図２３の例でいえばＣＤトレイの開閉検証など）を行えないことになる。このため、検証作業が遅延し得る。
【０１４８】
そこで、第４の実施の形態の設計支援装置１００ａは、注目点９００を含むブロックを最優先に描画し、注目点９００に近いブロックを優先的に描画するように描画順序を決定する。これにより、ユーザが現在作業中である可能性の高い部品を優先的に描画できる。このため、ユーザは迅速に検証作業を開始できる。例えば、ユーザは、アセンブリ５１０が描画された時点で描画を中断させて、アセンブリ５１０に含まれる部品の検証作業を行える。あるいは、ユーザは、アセンブリ５１０の描画後、残りの部分（アセンブリ５２０）の描画が継続中の状態で、アセンブリ５１０に含まれる部品の検証作業を行い得る。
【０１４９】
また、一連の操作を適用した後のアセンブリの一部の部品に対して検証作業を行いたいこともある。その場合、第２，第３の実施の形態を適用して、一連の操作後のアセンブリの描画を高速化できる。更に、第４の実施の形態を適用して、検証対象部分の描画を優先的に（他の部分に比べて早く）描画できる。このように第２，第３の実施の形態、あるいは、第２，第４の実施の形態を組み合わせて、検証作業の一層の効率化を図れる。
【０１５０】
なお、注目点の特定を、描画する直前のタイミングで行うものとしたが、他のタイミングでもよい。例えば、図１０のステップＳ１１の前（一括再生の入力を受け付ける前）のタイミングで注目点を特定しておいてもよい。その場合、例えば、ユーザは優先的に描画させたい部分をマウスポインタ７００により選択してから、設計支援装置１００ａに一連の操作を実行させることができる。
【０１５１】
なお、前述のように、第１の実施の形態の情報処理は、演算部１ｂにプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体（例えば、光ディスク１３、メモリ装置１４およびメモリカード１６など）に記録できる。
【０１５２】
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。
【０１５３】
また、上記の情報処理の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１５４】
１  情報処理装置
１ａ  記憶部
１ｂ  演算部
Ａ１，Ａ２  外形
Ｐ１，Ｐ２  画像
【図１】
2014085901.tif 000003
【図２】
2014085901.tif 000004
【図３】
2014085901.tif 000005
【図４】
2014085901.tif 000006
【図５】
2014085901.tif 000007
【図６】
2014085901.tif 000008
【図７】
2014085901.tif 000009
【図８】
2014085901.tif 000010
【図９】
2014085901.tif 000011
【図１０】
2014085901.tif 000012
【図１１】
2014085901.tif 000013
【図１２】
2014085901.tif 000014
【図１３】
2014085901.tif 000015
【図１４】
2014085901.tif 000016
【図１５】
2014085901.tif 000017
【図１６】
2014085901.tif 000018
【図１７】
2014085901.tif 000019
【図１８】
2014085901.tif 000020
【図１９】
2014085901.tif 000021
【図２０】
2014085901.tif 000022
【図２１】
2014085901.tif 000023
【図２２】
2014085901.tif 000024
【図２３】
2014085901.tif 000025