#ifndef PARTICLEVECTOR_H
#define PARTICLEVECTOR_H

#include <GL/glut.h>

struct ParticleVector {
	GLfloat x;
	GLfloat y;
	GLfloat z;
	
	ParticleVector(GLfloat vx=0.0f, GLfloat vy=0.0f, GLfloat vz=0.0f) :
	x(vx), y(vy), z(vz) {}
	
	//Vector addition.
	ParticleVector& operator+=(const ParticleVector& rhs) {
		x += rhs.x;
		y += rhs.y;
		z += rhs.z;

		return *this;
	}

	//Scaling.
	ParticleVector operator*(const float rhs) {
		return ParticleVector(x * rhs, y * rhs, z * rhs);
	}
};

struct ColorVector {
	GLfloat r;
	GLfloat g;
	GLfloat b;
	GLfloat a;

	ColorVector(GLfloat rv = 1.0f, GLfloat gv = 1.0f, GLfloat bv = 1.0f,
	GLfloat av = 1.0f) : r(rv), g(gv), b(bv), a(av) {}
};

#endif

