#if !defined(BUILDCURVES_HPP)
	#define BUILDCURVES_HPP

	#include <gosFX\PointCloud.hpp>
	#include <gosFX\ShardCloud.hpp>
	#include <gosFX\PertCloud.hpp>
	#include <gosFX\CardCloud.hpp>
	#include <gosFX\EffectCloud.hpp>
	#include <gosFX\EffectLibrary.hpp>
	#include <gosFX\Card.hpp>
	#include <gosFX\Tube.hpp>
	#include <gosFX\Beam.hpp>
	#include <gosFX\Flare.hpp>

	#define EFFECT_COUNT 9

	gosFX::PointCloud::Specification*
		CreatePointCloud(
			gosFX::EffectLibrary *library,
			unsigned index,
			unsigned child = EFFECT_COUNT
		);

	gosFX::ShardCloud::Specification*
		CreateShardCloud(
			gosFX::EffectLibrary *library,
			unsigned index,
			unsigned child = EFFECT_COUNT
		);

	gosFX::PertCloud::Specification*
		CreatePertCloud(
			gosFX::EffectLibrary *library,
			unsigned index,
			unsigned child = EFFECT_COUNT
		);

	gosFX::CardCloud::Specification*
		CreateCardCloud(
			gosFX::EffectLibrary *library,
			unsigned index,
			MidLevelRenderer::MLRTexture *texture,
			unsigned child = EFFECT_COUNT
		);

	gosFX::EffectCloud::Specification*
		CreateEffectCloud(
			gosFX::EffectLibrary *library,
			unsigned index,
			unsigned effect,
			unsigned child = EFFECT_COUNT
		);

	gosFX::Card::Specification*
		CreateCard(
			gosFX::EffectLibrary *library,
			unsigned index,
			MidLevelRenderer::MLRTexture *texture,
			unsigned child = EFFECT_COUNT
		);

	gosFX::Tube::Specification*
		CreateTube(
			gosFX::EffectLibrary *library,
			unsigned index,
			MidLevelRenderer::MLRTexture *texture,
			unsigned child = EFFECT_COUNT
		);

	gosFX::Beam::Specification*
		CreateBeam(
			gosFX::EffectLibrary *library,
			unsigned index,
			MidLevelRenderer::MLRTexture *texture,
			unsigned child = EFFECT_COUNT
		);

	gosFX::Flare::Specification*
		CreateFlare(
			gosFX::EffectLibrary *library,
			unsigned index,
			MidLevelRenderer::MLRTexture *texture,
			unsigned child = EFFECT_COUNT
		);

#endif
