82 lines
1.8 KiB
C
82 lines
1.8 KiB
C
|
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
|||
|
//
|
|||
|
// Purpose:
|
|||
|
//
|
|||
|
// $NoKeywords: $
|
|||
|
//
|
|||
|
//=============================================================================//
|
|||
|
// FIXME: Should we just pass the Particle draw members directly as
|
|||
|
// arguments to IParticleEffect::SimulateAndRender?
|
|||
|
|
|||
|
// This file defines and implements the ParticleDraw class, which is used
|
|||
|
// by ParticleEffects to render particles. It simply stores render + simulation
|
|||
|
// state
|
|||
|
//
|
|||
|
|
|||
|
#ifndef PARTICLEDRAW_H
|
|||
|
#define PARTICLEDRAW_H
|
|||
|
|
|||
|
|
|||
|
class IMaterial;
|
|||
|
class CMeshBuilder;
|
|||
|
class CParticleSubTexture;
|
|||
|
|
|||
|
|
|||
|
class ParticleDraw
|
|||
|
{
|
|||
|
friend class CParticleEffectBinding;
|
|||
|
|
|||
|
public:
|
|||
|
|
|||
|
ParticleDraw();
|
|||
|
|
|||
|
void Init( CMeshBuilder *pMeshBuilder, IMaterial *pMaterial, float fTimeDelta );
|
|||
|
|
|||
|
// Time delta..
|
|||
|
float GetTimeDelta() const;
|
|||
|
|
|||
|
// Get the material being used (mostly useful for getting the tcoord padding).
|
|||
|
//IMaterial* GetPMaterial();
|
|||
|
|
|||
|
// This can return NULL if the particle system is only being simulated.
|
|||
|
CMeshBuilder* GetMeshBuilder();
|
|||
|
|
|||
|
CParticleSubTexture *m_pSubTexture;
|
|||
|
|
|||
|
private:
|
|||
|
CMeshBuilder *m_pMeshBuilder;
|
|||
|
IMaterial *m_pMaterial;
|
|||
|
float m_fTimeDelta;
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// ------------------------------------------------------------------------- //
|
|||
|
// Inlines
|
|||
|
// ------------------------------------------------------------------------- //
|
|||
|
|
|||
|
inline ParticleDraw::ParticleDraw()
|
|||
|
{
|
|||
|
m_pMaterial = 0;
|
|||
|
}
|
|||
|
|
|||
|
inline void ParticleDraw::Init( CMeshBuilder *pMeshBuilder, IMaterial *pMaterial, float fTimeDelta )
|
|||
|
{
|
|||
|
m_pMeshBuilder = pMeshBuilder;
|
|||
|
m_pMaterial = pMaterial;
|
|||
|
m_fTimeDelta = fTimeDelta;
|
|||
|
}
|
|||
|
|
|||
|
inline float ParticleDraw::GetTimeDelta() const
|
|||
|
{
|
|||
|
return m_fTimeDelta;
|
|||
|
}
|
|||
|
|
|||
|
inline CMeshBuilder* ParticleDraw::GetMeshBuilder()
|
|||
|
{
|
|||
|
return m_pMeshBuilder;
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
|