|
From: julien r. <jul...@us...> - 2004-12-10 19:57:27
|
Update of /cvsroot/epfl/tgengine-0.1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26057 Added Files: beamemitter.cc beamemitter.h Log Message: beamemitter --- NEW FILE: beamemitter.cc --- #include "beamemitter.h" namespace tg { BeamEmitter::BeamEmitter (int numParticles, const Vector3& vOrig, const Vector3& end, Texture* t, float s) : SceneNode (vOrig) { _TG_INIT_DLINKEDNODE(NULL, NULL) iNumParticles = numParticles; vEnd = end; pTex = t; Initialize (); } BeamEmitter::~BeamEmitter () { } void BeamEmitter::PreRender(float eTime) { } void BeamEmitter::Initialize () { fEndPointWidth = 1.0f; fBeginPointWidth = 1.0f; pBeams = new Beam[iNumParticles]; for (int i=0; i<iNumParticles; i++) { pBeams[i].bActive = true; pBeams[i].vBegin = vPosition; pBeams[i].vEnd = vEnd; } } } --- NEW FILE: beamemitter.h --- #ifndef _TGBEAMEMITTER_H #define _TGBEAMEMITTER_H #include "scenenode.h" #include "dlinkednode.h" #include "texture.h" namespace tg { struct Beam { bool bActive; Vector3 vBegin; Vector3 vEnd; }; class BeamEmitter: public SceneNode { _TG_DLINKEDNODE(BeamEmitter) public: BeamEmitter (int numParticles, const Vector3& vOrig, const Vector3& end, Texture* t, float s); ~BeamEmitter (); void SetEndPointWidth (float f) { fEndPointWidth = f; } void SetBeginPointWidth (float f) { fBeginPointWidth = f; } float GetEndPointWidth () { return fEndPointWidth; } float GetBeginPointWidth () { return fBeginPointWidth; } void PreRender (float ); void Initialize (); int GetNumParticles () { return iNumParticles; } Beam* GetBeamsTab () { return pBeams; } Texture* GetTexture () { return pTex; } protected: int iNumParticles; float fEndPointWidth; float fBeginPointWidth; float fLife; float fFade; Vector3 vEnd; Texture* pTex; Beam* pBeams; }; } #endif |