#include "vector.h"

#ifndef BULLET_H
#define BULLET_H

class Bullet
{
public:
	// Constructors
	Bullet();
	Bullet(const Vector& _loc, const Vector& _vel);
	~Bullet();

	// Display
	void draw();

	// Collision detection
	Vector getNextLoc(double time) const;
	Vector transformPosition(float* tmatrix) const;
	Vector transformVelocity(float* tmatrix) const;

	// Time step movement
	Vector move(double time);

	// Getters
	Vector getLoc() const;
	Vector getVel() const;

	// Setters
	void setLoc(const Vector& newloc);
	void setVel(const Vector& newVel);
	void setColor(const Vector& col);

	// Bullet Life
	int getLife() const;
	void decrementLife();

private:
	// Movement
	Vector loc;
	Vector vel;
	Vector acceleration;

	// Life counter
	int life;

	// Appearance
	Vector color;
	double radius;
};

#endif // BULLET_H