cNetMgr
	The network manager initialize the network interface, and 
    receives and sends all PDUs.
cMsgMgr
	The message manager contains several message lists. When called
	by the cCmsMgr, it calls the message lists(in priority order) to select
	and send the next message to be processed. 
cCmsMgr
	cCmsMgr controls the system initialization, construction of globals. 
	The Run method is the main loop for running the CMS. Called from the
	main  after the initialization. The RunSim method is called repeatedly.
	In the RunSim method, RecvPdu is called on cNetMgr to receive incoming
	PDUs. And then ProcessMsgs method on cMsgMgr to execute next message
	from the message lists. 
cMfieldMgr
	cMfieldMgr keeps track of minefields. It is responsible of minefield
	operations like loading, creating, saving, deleting, etc.. 
cEntity
	Any object in CMS like minefield, mine or vehicle.
cMfieldObj
	Stationary object that is part of a minefield.
cMinefield
	A collection of components enclosed within minefield's perimeter.
cMine
	CMS simulates various land-based mines; Antitank(AT) and Antipersonnel(AP).
cSimMine
	Simulated mines interact with other simulations
cPlanMine
	CMS user interface supports a number of operations for editing mines
	during their creation. During this planning phase mines are not
	simulated. 
cApMine
	Antipersonnel mines
	* cApConv (conventional)
	* cApScatterable (scatterable)
	* cApConvBding (conventional bounding)
	* cApScatBding (scatterable bounding)
	* cApCommandDet (command detonated)
	* cApTripCommandDet (?)
	* cApOffRoute (off route)
cAtMine
	Antitank mines 
	* cAtConv (conventional)	
	* cAtScatterable (scatterable)
	* cAtOffRoute (off route)
	* cAtWideArea (wide area)
cSaSensor
	Standalone sensor
cFalseMine
	That is not a mine, but can be detected by a mine detection system as
	if they were mine.
cVehicle
	Internally or externaly simulated vehicles like tanks.
cSimVehicle
	Stealth Entities or vehicles that are simulated within the CMS.
cMfComponent
	Minefield component includes mine components and perimeter of the
	minefield.
cPerimeter
	A closed curve bounding area enclosing the minefield. 
cMineComp
	A mine component is a collection of mines of one type, created together
	through GUI.
cRowComp
	Same type of mines are emplaced in a row.
cIndivCom
	Same type of mines are emplaced individually. 
cGridComp
	Same type of mine are emplaced as grid.
cMessage
	A message is a temporary object that exists to invoke a function in
	another object. Messages are highly customizable and may contain a
	great deal of knowledge about their purpose.
	In general, major simulation functions are controlled by messages.
	Simulated objects also communicate using messages.
cMessageList
	MsgLists contain linked lists of messages. When a message list is
	called, it sends its next message if there is one ready. Each message
	priority level has a separate list. The lists differ in whether the
	messages need immediate or timed dispatch. The immediate lists use FIFO
	discipline, while timed lists are ordered by time of dispatch.
cPrEventList
	list of first priority events(cMsgPrEvent), and FIFO 
cMsgPrEvent
	Mine detonation, projectile fire and detonation, emission and priority
	entity state events
	* cFireProjectileMsg
		created by ApMine or AtWideArea mine when a target in the range
        and mine fires to the target or mine explodes 
	* cProjFireMunitionMsg
	* cProjDetonationMsg
	* cInDetMsg
		created whenever detonation pdu is received on the network
	* cEmissionMsg
		created whenever emission pdu is received on the network 
	* cMineDetonationMsg
  		created based on the interaction with mine during plowing
        or by ApMine/AtWideArea mine due to detonation
	* cPriorityVehStateMsg
		created whenever Entity State pdu received and the vehicle is
		in the priority list
cPrUpdtList
	list of second priority events(cMsgPrUpdt), and time order 
cMsgPrUpdt
	Projectile and mine priority updates
	* cUpdateMinePrMsg
		created by simulation mines during mine updates whenever
		mine's internal state indicates urgency.
   	* cFireButtonActivateMsg
		a command-detonated mine within the field has been triggered.
        The minefield sends a msg to itself to turn on the operator's
   		fire button, after the commmunications delay
	* cFireMunitionMsg
		created by callback function CbFire related to Field Control Window
		fire action
cEventList
	list of third priority events(cMsgEvent), and FIFO
cMsgEvent
	* cMinefieldRequestMsg
		created during processing minefield request pdus
	* cMinefieldResponseMsg
		after processing minefield request, total response is created and
		sent back to to network manager.
	* cSendResponsePduMsg
	* cSimulateMinefieldMsg
		created for each minefields to start simulating that particular
		minefield.
	* cOnOffMinefieldMsg
	* cFieldControlMsg
	* cSimulateComponentMsg
		created for each components within a minefield to start simulating
		it.
	* cOnOffComponentMsg
	* cOnOffMineMsg
	* cSimulateMineMsg
		created for each mine in the components to start simulating the
		individual mines.
	* cSetMineTypeMsg
	* cSetMineDepthMsg
	* cSetMineSpacingMsg
	* cVehStateMsg
	* cSendViewControlMsg
	* cSendVehStateMsg
cUpdtList
    list of fourth priority events(cMsgUpdt), and FIFO 
cMsgUpdt
	Simulation Object such as mine, component and vehicle updates
	* cUpdateComponentMsg
		created the first time in the being of the simulation by the simulate
		components and then created repeately by mine components during
		mine component updates. Each component within each minefield
		creates its own update message.
	* cUpdateMineMsg
		one of the driving force in the CMS. During the initialization for
		the simulation first thing in the CMS for the mines is to invoke 
		simulate mine method on each simulated mines. cUpdateMineMsg is
		created the first time during the simulate mine method and then 
		repeats itself based on the mine's internal state. 
	* cUpdateVehicleMsg
		update message for a vehicle in the simulation. Created for the
	   	first time during simulate vehicle method then are created repeately
		for the lifetime of the vehicle.
cDispUpdtList
	list of fifth priority events(cMsgDispUpdt), and FIFO
cMsgDispUpdt
	Plain view display (PVD) and data display events
	* cUpdateTactmapMsg
	* cUpdateMfCompStatusMsg
	* cSetMineSummMsg
cLowPrEventList
	list of sixth priority events(cMsgLowPrEvent), and FIFO
cMsgLowPrEvent
	* cCreateMinefieldMsg 	* cCreateCompMsg
	* cReadMineFileMsg 		* cReadMinefieldMsg
	* cReadGridMsg 			* cReadIndivMsg
	* cReadRowMsg 			* cEditMinefieldMsg
	* cComponentStatusMsg 	* cEditCompMsg
	* cSaveMinefieldMsg 	* cSaveCompMsg
	* cLoadMinefieldsMsg 	* cDuplicateMinefieldMsg
	* cDeleteMinefieldMsg 	* cSaveMfStateMsg
	* cDeleteComponentMsg 	* cDuplicateComponentMsgcMoveMinefieldMsg
	* cDeleteMineMsg
cLowRateUpdtList
	list of seventh priority events(cMsgLowRateUpdt), and time order
cMsgLowRateUpdt
	* cSendCpMfMsg 			* cSendCpMinesMsg
	* cRemoveExplosionMsg 	* cRemoveDetonationMsg
	* cCheckVehDamageMsg 	* cSendMfStateMsg
	* cTestVehTurnMsg
cControl
cWamSubletControl
cMineControl
	* cMfControl
	* cTrWidthControl
	* cDetSensorControl
	* cCmsFireControl
	* cTrkSensorControl
	* cOffRouteControl
	* cCmdTripCmdFirControl
	* cWarmContrl
	* cFullWidthControl
cTracker
	Trackers produce track lists. Differences between classes include range
	and entity types tracked.
	* cLandTracker
	* cTripWireTracker
	* cWideAreaTracker
	* cSubletTracker
	* cOffRouteTracker
	* sSensTrkTracker

