📄 sceneconverteroctree.h
字号:
#include "Ogre.h"
#include "stdio.h"
#include <vector>
#include <tinyxml.h>
#include "OgreStringConverter.h"
#include "SceneConverterOctreeObjects.h"
namespace Ogre{
class SceneConverterOctree
{
public:
SceneConverterOctree();
~SceneConverterOctree();
void SetMaxDepth( int NewDepth );
void SetMaxTriPerNode( int NewTriPerNode );
int Save( TiXmlElement *OctreeRoot, const String& BinFilename );
void Unload();
void AddMesh( Ogre::Mesh *Source, Vector3 NewPos, Quaternion NewRot, Vector3 NewScale );
/*
int AddGeometry( int TotalVerts, float* VertData,
int TotalTris, int* TriData,
float* NormalData=NULL,
float* ColorData=NULL,
int TotalTexSets=1, float* TexData=NULL,
char* Material=NULL, char* Texture=NULL );
*/
// Decompiles the Octree Data Back to the Data Root Node
//void Decompile();
// Recompiles the Octree
void Compile();
private:
enum BranchID{
TopFrontLeft,
TopFrontRight,
TopRearLeft,
TopRearRight,
BottomFrontLeft,
BottomFrontRight,
BottomRearLeft,
BottomRearRight
};
// Save Functions and Data //
int CurOctreeDepth, MaxOctreeDepth;
int CurTriPerNode, MaxTriPerNode;
// Octree Data Structures
SceneOctreeNode *DataRootNode;
void SaveXMLNode( TiXmlElement *XMLParentNode, SceneOctreeNode *ParentNode, SceneOctreeNode *CurNode );
void SaveXMLSharedGeometry( TiXmlElement *XMLOctree );
void ProcessNode( SceneOctreeNode *ParentNode , SceneOctreeNode *CurNode );
void DivideNode( SceneOctreeNode *ParentNode );
void CreateNewNode( SceneOctreeNode *ParentNode, BranchID BranchName, int* HasTri );
Ogre::SceneNode *RootNode;
FILE *fpXML, *fpBin, *fpResults;
int CurBinOffset, TotalOctreeMeshes, TotalOctreeTriangles, TotalOctreeNodes;
int MinTriMesh, MaxTriMesh, MinTriNode, MaxTriNode;
std::vector <SceneOctreeMesh*> SharedGeometry;
void PopulateRootNode( void );
};
} // namespace Ogre
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -