//------------------------------------------------------------------------------------
// irr::scene::SParticle wrappers
//------------------------------------------------------------------------------------

extern "C" {

	SParticle* IrrScene_SParticle_new()
	{
		return new SParticle();
	}
	
	void IrrScene_SParticle_del(SParticle* sp)
	{
		if (sp)
			delete sp;
		sp=0;
	}
	
	// do not delete pointer
	SColor* IrrScene_SParticle_color(SParticle* sp)
	{
		if (sp)
			return &sp->color;
		else return 0;
	}
	
	u32 IrrScene_SParticle_getEndTime(SParticle* sp)
	{
		if (sp)
			return sp->endTime;
		else return 0;
	}
	
	void IrrScene_SParticle_setEndTime(SParticle* sp,u32 time)
	{
		if (sp)
			sp->endTime=time;
	}
	
	vector3df* IrrScene_SParticle_pos(SParticle* sp)
	{
		if (sp)
			return &sp->pos;
		else return 0;
	}
	
	// do not delete pointer
	SColor* IrrScene_SParticle_startColor(SParticle* sp)
	{
		if (sp)
			return &sp->startColor;
		else return 0;
	}
	
	u32 IrrScene_SParticle_getStartTime(SParticle* sp)
	{
		if (sp)
			return sp->startTime;
		else return 0;
	}
	
	void IrrScene_SParticle_setStartTime(SParticle* sp,u32 time)
	{
		if (sp)
			sp->startTime=time;
	}
	
	// do not delete pointer
	vector3df* IrrScene_SParticle_startVector(SParticle* sp)
	{
		if (sp)
			return &sp->startVector;
		else return 0;
	}
	
	// do not delete pointer
	vector3df* IrrScene_SParticle_vector(SParticle* sp)
	{
		if (sp)
			return &sp->vector;
		else return 0;
	}

	// do not delete pointer
	dimension2df* IrrScene_SParticle_size(SParticle* sp)
	{
		if (sp)
			return &sp->size;
		else return 0;
	}

	// do not delete pointer
	dimension2df* IrrScene_SParticle_startSize(SParticle* sp)
	{
		if (sp)
			return &sp->startSize;
		else return 0;
	}
}


