46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#pragma once
|
|
#include "etbaseeffect.h"
|
|
|
|
class CEtLineTrailEffect;
|
|
typedef CSmartPtr< CEtLineTrailEffect > EtLineTrailHandle;
|
|
|
|
#define MAX_LINE_TRAIL_VERTEX 100
|
|
class CEtLineTrailEffect : public CEtBaseEffect
|
|
{
|
|
public:
|
|
CEtLineTrailEffect(void);
|
|
virtual ~CEtLineTrailEffect(void);
|
|
|
|
protected:
|
|
float m_fLineWidth;
|
|
float m_fLifeTime;
|
|
float m_fInverseLifeTime;
|
|
float m_fMinSegment;
|
|
EtColor m_LineColor;
|
|
|
|
bool m_bModify;
|
|
float m_fCurrentStartTime;
|
|
std::vector< EtVector3 > m_vecPosition;
|
|
std::vector< EtVector3 > m_vecTangent;
|
|
std::vector< EtVector2 > m_vecTime;
|
|
|
|
bool m_bShow;
|
|
|
|
static EtMaterialHandle s_hMaterial;
|
|
static EtIndexBuffer *s_pCommonIndexBuffer;
|
|
|
|
float m_fElapsedTime;
|
|
|
|
public:
|
|
void Initialize( EtTextureHandle hTexture, float fLifeTime, float fLineWidth, float fMinSegment = 50.0f );
|
|
void SetLineColor( EtColor &LineColor ) { m_LineColor = LineColor; }
|
|
void CreateVertexBuffer();
|
|
void CopyVertexBuffer();
|
|
void AddPoint( EtVector3 &Point );
|
|
void Show( bool bShow ) {m_bShow=bShow;}
|
|
bool IsShow() {return m_bShow;}
|
|
virtual void Render( float fElapsedTime );
|
|
|
|
static void InitializeEffect();
|
|
static void FinializeEffect();
|
|
};
|