//===========================================================================//
// File: Command.hpp                                                   //
//---------------------------------------------------------------------------//
//   Date    Who  Modification                                               //
// --------  ---  ---------------------------------------------------------- //
//	12/15/97  DPB	Create file										  //
//---------------------------------------------------------------------------//
// Copyright (C) 1997, Virtual World Entertainment, Inc.                     //
// All Rights reserved worldwide                                             //
// This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL               //
//===========================================================================//

#pragma once
#include <Stuff\StuffHeaders.hpp>

//This is the command class.  It is the base class for all commands
//It contains two virtual functions that must be overridden in
//the next layer.  It also stores all the entites that are currently
//selected for the command to process.  There will be an extern
//that stores the current command.  This way all areas know what
//they need to do.  It is also there for the Undo and Redo Functionality
class CSelectionNode;

class Command :
	public Plug
	{
	
	public:
		Command();
		virtual ~Command();

		virtual void 
			Execute();
		virtual void 
			Undo();
		virtual void 
			Delete();
		void
			TestInstance();
		
	public:
		Stuff::ChainOf<CSelectionNode *>
			selectedEntities;
		Stuff::Point3D 
			cursorPosition;
	
	};

	extern Command
		*Current_Command;


