📄 sceneconverteroctreeobjects.h
字号:
#ifndef _SCENE_OCTREE_OBJECTS_H
#define _SCENE_OCTREE_OBJECTS_H
#include "Ogre.h"
#include <vector>
using namespace Ogre;
struct UVSet
{
std::vector <float> u, v;
void Unload(){
if( !u.empty() ){
u.erase( u.begin() , u.end() );
}
if( !v.empty() ){
v.erase( v.begin() , v.end() );
}
}
};
class SceneOctreeMesh
{
public:
SceneOctreeMesh();
//SceneOctreeMesh& operator=( const SceneOctreeMesh& Source );
Ogre::Vector3 GetFaceCenter( int FaceIndex, std::vector <Ogre::Vector3> &SharedVertData );
// Used to Contactenate 2 Meshes together
void Concatenate( SceneOctreeMesh *Source );
// Used to remove redundant and unused vertices
void Condense(int CurOctreeDepth);
void LoadData( SubMesh* Source, Vector3 NewPos, Quaternion NewRot, Vector3 NewScale );
void LoadVertexData( const Ogre::VertexData* NewVertexData, Vector3 NewPos, Quaternion NewRot, Vector3 NewScale );
void LoadTriData( std::vector <int> &NewTriData, int* HasTri );
void Unload();
int TotalVerts;
std::vector <Ogre::Vector3> VertData;
int TotalNormals;
std::vector <Ogre::Vector3> NormData;
int TotalColors;
std::vector <Ogre::ColourValue> ColorData;
int TotalTris;
std::vector <int> TriData;
//int TotalUVs;
int TotalUVSets;
std::vector <UVSet*> UVData;
char* MeshName;
char* MaterialName;
char* MaterialFileName;
};
struct SceneOctreeNode
{
SceneOctreeNode();
int GetTriTotal();
void CalculateDimensions( std::vector <SceneOctreeMesh*> &SharedGeometry );
int HasChildren;
float Wide, High, Depth;
float CenterPos[3];
int TotalMeshes;
std::vector <SceneOctreeMesh*> MeshData;
// The Octree Branches
SceneOctreeNode *Branch[8];
void Unload();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -