#ifndef MOLWIN_H
#define MOLWIN_H


#include "RMWin.h"

#define MAXDEPTH 6

class MolWin : public RMWin
{
public:
	MolWin();
	BOOL CreateScene();
protected:
	//{{AFX_MSG(MolWin)
	afx_msg void OnRenderWireframe();
	afx_msg void OnRenderFlat();
	afx_msg void OnRenderGouraud();
	afx_msg void OnUpdateRenderFlat(CCmdUI* pCmdUI);
	afx_msg void OnUpdateRenderGouraud(CCmdUI* pCmdUI);
	afx_msg void OnUpdateRenderWireframe(CCmdUI* pCmdUI);
	afx_msg void OnChildren1();
	afx_msg void OnUpdateChildren1(CCmdUI* pCmdUI);
	afx_msg void OnChildren2();
	afx_msg void OnUpdateChildren2(CCmdUI* pCmdUI);
	afx_msg void OnChildren3();
	afx_msg void OnUpdateChildren3(CCmdUI* pCmdUI);
	afx_msg void OnChildren4();
	afx_msg void OnUpdateChildren4(CCmdUI* pCmdUI);
	afx_msg void OnDepth1();
	afx_msg void OnUpdateDepth1(CCmdUI* pCmdUI);
	afx_msg void OnDepth2();
	afx_msg void OnUpdateDepth2(CCmdUI* pCmdUI);
	afx_msg void OnDepth3();
	afx_msg void OnUpdateDepth3(CCmdUI* pCmdUI);
	afx_msg void OnDepth4();
	afx_msg void OnUpdateDepth4(CCmdUI* pCmdUI);
	afx_msg void OnDepth5();
	afx_msg void OnUpdateDepth5(CCmdUI* pCmdUI);
	afx_msg void OnDepth6();
	afx_msg void OnUpdateDepth6(CCmdUI* pCmdUI);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
private:
    BOOL CreateHierarchy();
    BOOL CreateChildren(LPDIRECT3DRMFRAME frame, int depth);
    LPDIRECT3DRMMESH mesh[MAXDEPTH];
    int curdepth;
    int numchildren;
    int framecount;
	LPDIRECT3DRMMESHBUILDER meshbuilder;
};


#endif
