📄 sceneoctreerenderable.h
字号:
////////////////////////////////////////////////////////////////////////////////
// SceneOctreeRenderable.h
// Author : Doug Wolanick
// Start Date : July 24, 2003
// Copyright : (C) 2003 by Doug Wolanick
// Email : Doug@IceTecStudios.com
////////////////////////////////////////////////////////////////////////////////
#ifndef _SCENE_OCTREE_RENDERABLE_H
#define _SCENE_OCTREE_RENDERABLE_H
#include <OgreRenderable.h>
#include <OgreMovableObject.h>
#include <OgreAxisAlignedBox.h>
#include <OgreString.h>
#include <OgreHardwareBufferManager.h>
#include <vector>
#define POSITION_BINDING 0
#define NORMAL_BINDING 1
#define TEXCOORD_BINDING 2
#define COLOUR_BINDING 3
using namespace Ogre;
class SceneOctreeRenderable : public Renderable, public MovableObject
{
public:
SceneOctreeRenderable();
~SceneOctreeRenderable();
void deleteGeometry();
void init();
void SetSharedGeomPtr( VertexData* NewSharedPtr );
void AddVertices( int VertTotal, float* VertData );
void AddNormals( int NormalTotal, float* NormalData );
void AddColors( int ColorTotal, float* ColorData );
void AddTexCoords( int TexCoordTotal, float* TexCoordData , int TexSet=0, int TotalTexSets=1);
void AddIndices( int IndexTotal , unsigned short *IndexArray );
void SetMaterialIndex( int NewIndex );
int GetMaterialIndex();
//movable object methods
virtual const String& getName( void ) const
{
return mName;
};
void setName( String NewName )
{
mName = NewName;
}
virtual const String& getMovableType( void ) const
{
return mType;
};
const AxisAlignedBox& getBoundingBox( void ) const
{
return mBounds;
};
// Perhaps not used
virtual void _notifyCurrentCamera( Camera* cam );
virtual void _updateRenderQueue( RenderQueue* queue );
//virtual void getLegacyRenderOperation( LegacyRenderOperation& rend );
// Only 1 material per renderable
virtual Material* getMaterial( void ) const
{
return mMaterial;
};
virtual void getWorldTransforms( Matrix4* xform ) const;
virtual const Quaternion& getWorldOrientation(void) const;
virtual const Vector3& getWorldPosition(void) const;
/** @copydoc Renderable::getLights */
const LightList& getLights(void) const;
void setMaterial( Material *m )
{
mMaterial = m;
};
virtual void getRenderOperation( RenderOperation& rend );
// Overridden //
Real getSquaredViewDepth(const Camera* cam) const;
/** Overridden from MovableObject */
Real getBoundingRadius(void) const { return 0; /* not needed */ }
static int mRenderedTris;
float* GetVertexPtr( void ){
return PhysVertData;
}
int* GetIndexPtr( void ){
return PhysIndexData;
}
int GetNumVertex( void ){
return mVertData->vertexCount;
}
int GetNumIndex( void ){
return indexData->indexCount;
}
protected:
void SetupBoundingBox( unsigned short *IndexArray );
AxisAlignedBox mBounds;
Vector3 mCenter;
Vector3 mScale;
int mSize;
int mWorldSize;
String mName;
String mType;
int MaterialIndex;
Material *mMaterial;
bool mInit;
//GeometryData mGeomData;
VertexData* mVertData;
IndexData* indexData;
// Physics Geometry Data
float* PhysVertData;
int* PhysIndexData;
int mNearPlane;
int mMaxPixelError;
int mVertResolution;
Real mTopCoord;
bool mColored;
bool mLit;
int numOldVerts;
int numIndices;
//unsigned short *pIndices;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -