lmolvieProteinStatus(API)
提供: Eospedia
DataExpress/eosOpenGL/src/lmolvieProteinStatusはAPI です。
定数
構造体
typedef struct pdbCenter{ GLfloat xCenter; GLfloat yCenter; GLfloat zCenter; GLfloat xMax; GLfloat xMin; GLfloat xWidth; GLfloat yMax; GLfloat yMin; GLfloat yWidth; GLfloat zMax; GLfloat zMin; GLfloat zWidth; }pdbCenter;
typedef struct elementSwitch{ GLint elementC; GLint elementO; GLint elementN; GLint elementS; GLint elementP; GLint elementH; GLint elementFE; }elementSwitch;
typedef struct ProteinStatus { pdbCenter __pdbCenter; elementSwitch __elementSwitch; GLint spin_x; GLint spin_y; GLint spin_z; GLfloat move_x; GLfloat move_y; // GLfloat move_z; } ProteinStatus;
API
画面表示
Normal mode画面表示
extern void lmolvieDisplayNormal(void);
PDB表示の初期化
extern void proteinInit();
全てのelementSwitchがON(1)となり、回転角度、移動座標を0とします。
先頭のPDBにテクスチャを張り付けます。
extern void texture();
elementSwitch
elementSwitchの取得(0: OFF, 1: ON)
extern elementSwitch get_elementSwitch(int ID);
elementSwitchの切り替え(0(OFF), 1(ON))
extern void put_elementSwitch(int ID, char atom);
中心座標
returnIDに依るPDBの中心座標(protein[returnID].__pdbCenter)を返します。
extern pdbCenter getpdbCenter(int returnID);
入力PDBファイルputpdbFileから中心座標を算出し、カメラを中心に合わせます。中心座標はprotein[ProteinNumber].__pdbCenterに格納します。
extern void putpdbCenter(pdbFile* putpdbfile);
回転角度
pdbIDで設定したPDBの回転角度を取得します。
extern int getSpin_x(int pdbID); extern int getSpin_y(int pdbID); extern int getSpin_z(int pdbID);
pdbIDで設定したPDBの回転角度からpanをマイナスします。
extern void proteinRotateX(int pan, int pdbID); extern void proteinRotateY(int pan, int pdbID); extern void proteinRotateZ(int pan, int pdbID);
移動座標
pdbIDで設定したPDBの移動座標を取得します。
extern int getMultiMoveX(int pdbID); extern int getMultiMoveY(int pdbID);
移動座標にmove/10.0をプラスします。
extern void MultiMoveX(GLint move); extern void MultiMoveY(GLint move);
保存・読み込み
状態保存(未実装)
extern void saveproteinStatus(ProteinStatus saveprotein);