www.pudn.com > sancedit.rar > OgreFrameWork.h


#pragma once 
 
#include "OgreRenderSystem.h" 
#include "OgreRoot.h" 
#include "OgreGLRenderSystem.h"  
#include "OgreD3D9RenderSystem.h" 
#include "OgreCommon.h" 
#include "OgreRenderWindow.h"  
#include "OgreStringConverter.h"  
#include "OgreConfigFile.h"  
#include "OgreCamera.h"  
#include "OgreViewport.h"  
#include "OgreMeshManager.h"  
#include "OgreEntity.h" 
 
 
 
#include "MapGenView.h" 
using namespace Ogre; 
 
 
class COgreFrameWork 
{ 
public: 
	 
	 
	CMapGenView *mView; 
	bool mIsInit; 
	Root * mRoot; 
	Camera *mCamera; 
	SceneManager* mSceneMgr; 
	RenderWindow * mWindow; 
public: 
	static COgreFrameWork * mInstance; 
	static COgreFrameWork * GetInstance(); 
public: 
	void InitOgre(CView * pView); 
	bool IsInitOgre(); 
	void SetUpResources(); 
	COgreFrameWork(void); 
	void SetupScene(); 
	void UpdateOgreView(); 
	virtual ~COgreFrameWork(void); 
	// 摄象机移动 
	void CameraMove(float *vec); 
	// //摄象机旋转 
	void CameraRotate(float rx, float ry); 
	// //在当前的摄象机所在的位置放下模型 
	void PlaceMeshAtCamera(char * meshFile, char * entityName, char * nodeName); 
	// //get the position of the node 
	void GetNodePosition(char * nodeName, float * pos); 
	void GetNodeQuaternion(char * nodeName, float * q); 
	// //get scale of the node 
	void GetNodeScale(char* nodeName, float * scale); 
	// //旋转场景节点 
	void RotateNode(char * nodeName, int axis , float delta); 
	void HighLight(char * nodeName, bool state); 
	void HighLight2(char * nodeName, bool state); 
	// // scale the scene node  
	void ScaleNode(char * nodeName, int axis , float delta); 
	// set the position of the scene node 
	void SetNodePosition(char * nodeName, float * pos); 
	void SetNodeQuaternion(char * nodeName, float * q); 
	void SetNodeScale(char * nodeName , float * scale); 
	void TranslateNode(char * nodeName, int axis, float delta); 
	void WindowMovedOrResized(void); 
	void DeleteNode(char * nodeName); 
};