#ifndef _COMMAND_H
#define _COMMAND_H

class CCommand
{
public:
	// virtual destructor
	virtual ~CCommand() {}

	// return the texture name of this command
	virtual const char* GetName() const { return 0; }
	
	// execute this command
	virtual void Execute() = 0;
	
	// can undo command?
	virtual bool IsUndoable() const = 0;
	// undo 
	virtual void Undo() {}
	// redo 
	virtual void Redo() {}
};

#endif
