#pragma once

#include "Vector3.h"


//-----------------------------------------------------------------------------
// Bubble attribute struct
//-----------------------------------------------------------------------------
struct BubbleAttributes
{
	float	fRiseVelocity;
	float	fRadius;
	float	fAlpha;
	Vector3 vecPosition;
};

//-----------------------------------------------------------------------------
// Bubble manager class
//-----------------------------------------------------------------------------
class CBubbleManager
{
public:
	CBubbleManager( int BubbleCount = 50, float fRange = 500.0f, float fMaxHeight = 200.0f,
					float fMaxRadius = 5.0f, float fMinRadius = 1.0f );
	~CBubbleManager();

public:
	void Render();
	void Update();
	void SetTexture( unsigned int Texture )
	{
		m_uTexture = Texture;
	}

protected:
	int				  m_BubbleCount;
	BubbleAttributes* m_pBubbleAttr;	// Attributes for each bubble
	float			  m_fMaxHeight;		// Maximum y value (height) bubbles can float up to
	float			  m_fRange;			// Maximum x and z value
	unsigned int	  m_uTexture;		// Sphere map texture
};
