/** * @file Frame.hpp * @brief フレームのためのクラス * @author C.Kanai */ class Frame { typedef vector< vector > MolMat; protected: /** 化合物構造 */ BBMol ref, imol; /** ユニット数 */ int n_units; /** ユニット情報のベクター */ vector units; /** ユニット間ボンド */ vector< pair > bond; /** 分子マトリックス */ MolMat mat; /** 原子インデックスとユニットIDの対応表 */ vector uu; public: /** * @brief コンストラクタ */ Frame(BBMol a); /** * @brief デストラクタ */ virtual ~Frame(); /** * @brief コピーコンストラクタ */ Frame(const Frame &obj); /** * @brief 代入演算子 */ Frame &operator=(const Frame &obj); /** * @brief 初期設定する */ void Init(void); /** * @brief ユニット数を取得 */ int GetNumUnits(void); /** * @brief ユニットを取得 * @return ユニット情報のベクター */ vector& GetUnits(void); /** * @brief ユニットを取得 * @param u ユニットID * @return ユニット情報への参照 */ Unit& GetUnit(int u); /** * @brief 深さ優先探索 * @param a 原子番号 * @param u ユニットID */ void DFS(int a, int u); /** * @brief 原子に対応するユニットID番号を付与する */ void AssignID(void); /** * @brief ユニットを作成する */ void MkUnit(int id); /** * @brief ユニット間ボンドを作成する */ void MkBond(void); /** * @brief デバッグ用
後で削除する */ void print1(void) { for (int i=1; i