ember/external/meshtree/MeshTree.h
Erik Ogenvik 271cf8024f More compiler warnings and use "external".
Put all external code under "external".
We can't use too many warnings though since there's a lot of code we
don't control.
2019-09-22 01:23:55 +02:00

74 lines
1.8 KiB
C++

#ifndef __MeshTree_H__
#define __MeshTree_H__
#include "components/ogre/OgreIncludes.h"
#include "TTypes.h"
#include "TStem.h"
#include "TParameters.h"
#define FLARE_RESOLUTION 10
/*
Based "The Creation and Rendering of Realistic Trees" article by Jason Weber and Joseph Penn
Based on a port of Delphi code from TReal project by Ton van den Heuvel
For further information go see:
http://members.chello.nl/~l.vandenheuvel2/TReal/
Copyright (c) 2002-2003, Ton van den Heuvel
Copyright (c) 2004, Nicolas Chauvin
==================================
Tree generation classes for Ogre3D
==================================
*/
namespace Ogre {
#define POSITION_BINDING 0
#define COLOUR_BINDING 1
//---------------------------------------------------------------------------
class Tree
{
friend class TStem;
private:
TStem *mpTrunk;
Real mfTrunkLength;
Real mfTrunkRadius;
Real mfScale;
int miTotalStems;
Real mfMaxX; // Variables holding the maximum x, y and z values
Real mfMaxY; // occurring in the tree
Real mfMaxZ;
uchar mu8Season;
protected:
TParameters *mpParameters;
int miTotalLeaves;
int miTotalVertices;
int miTotalFaces;
int miTotalLeavesFaces;
int miTotalCoordFrames;
public:
Tree(const String& name, TParameters *pParameters, uchar u8Season, int iSeed = -1);
~Tree();
void Grow(void);
Real GetRandomValue(const Real fUpperBound);
Ogre::MeshPtr CreateMesh(const String &name);
inline TParameters* GetParameters(void){return mpParameters;};
inline Real GetScale(void){return mfScale;};
};
//---------------------------------------------------------------------------
} // namespace
#endif