#ifndef ALGO_VIEW_INTERFACE_H
#define ALGO_VIEW_INTERFACE_H

/*!
  \file
  \brief アルゴリズムを視覚描画するためのインターフェース
  
  \author Satofumi KAMIMURA
  
  $Id: algoViewInterface.h 286 2008-10-20 09:40:22Z satofumi $
*/


/*!
  \brief アルゴリズムを視覚描画するためのインターフェース定義
*/
class AlgoViewInterface {
  virtual void draw(void) = 0;

public:
  virtual ~AlgoViewInterface(void) {}

  /*!
    \brief 実行
  */
  virtual void run(void) = 0;

  /*!
    \brief 逐次実行

    \param n [i] 実行回数
    \retval true 実行途中
    \retval false 完了
  */
  virtual bool step(int n) = 0;

  /*!
    \brief 実行状態の描画指示

    \param on [i] 描画する場合 true
  */
  virtual void show(bool on) = 0;
};

#endif /* !ALGO_VIEW_INTERFACE_H */
