![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2005 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: disaggregatedEmbarkationController.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef disaggregatedEmbarkationController_H_ 00016 #define disaggregatedEmbarkationController_H_ 00017 00018 #include "vrfmodel/embarkationController.h" 00019 #include "vrfobjcore/orgViewManagedObjList.h" 00020 #include "vrfobjcore/cmdChanRadio.h" 00021 00022 class DtVrfAggregateStateRepository; 00023 class DtSetDataRequest; 00024 class DtSubordinateManager; 00025 class DtAggregateEmbarkationDescriptor; 00026 00045 #include "vrfmodel/vrfmodelDefines.h" 00046 class DT_DLL_vrfmodel DtDisaggregatedEmbarkationController : public DtEmbarkationController 00047 { 00048 public: 00051 DtDisaggregatedEmbarkationController(const DtString& name, 00052 DtVrfObject* owner, 00053 DtSimManager* simManager, 00054 DtComponentDescriptor* desc = 0, 00055 DtReaderWriterRegistry* parentRegistry = 0); 00056 00058 virtual ~DtDisaggregatedEmbarkationController(); 00059 00062 virtual DtString type() const; 00063 00067 static DtSimComponent * creator(const DtString& name, 00068 DtVrfObject* owner, 00069 DtSimManager* simManager, 00070 DtComponentDescriptor* desc = 0, 00071 DtReaderWriterRegistry* parentRegistry = 0); 00072 00074 virtual bool init(); 00075 00076 protected: 00082 virtual void moveToIngress(const DtString& parent); 00083 00085 virtual void preprocessEmbarkTask(); 00086 00088 virtual void moveToEgress(); 00089 00091 virtual void preprocessDisembarkTask(); 00092 00095 virtual void sendTaskToSubordinate(const DtSimTask& task, 00096 const DtString& subordinateObjectName) const; 00097 00100 virtual void sendSetDataToSubordinate(const DtSetDataRequest& setData, 00101 const DtString& subordinateObjectName) const; 00102 00105 virtual void atEmbarkationPoint(); 00106 00108 virtual void tick(); 00109 00114 virtual void checkEmbarkationState(); 00115 00118 virtual void embarkObject(bool overridePosition, 00119 const DtVector& loadPosition, 00120 const DtString& parentName, int appearance = 0xFFFFFFFF, 00121 const DtTaitBryan& orientation = DtTaitBryan(), 00122 const DtVector& acceleration = DtVector(), 00123 const DtVector& velocty = DtVector()); 00124 00127 virtual void unloadObject(const DtVector& unloadPoint); 00128 00129 virtual void setupTaskableSubordiantes(); 00130 00133 virtual void processTaskComplete(DtSimMessage * msg); 00134 00136 virtual void processEmbarkObjectCallback(DtSimMessage* msg); 00137 virtual void processDisembarkObjectCallback(DtSimMessage* msg); 00138 00140 virtual void clearTask(); 00141 00143 virtual void registerTaskMsgCallbacks(); 00144 00145 private: 00146 00148 DtDisaggregatedEmbarkationController(); 00149 00151 DtDisaggregatedEmbarkationController(const DtDisaggregatedEmbarkationController & 00152 orig); 00153 00155 const DtDisaggregatedEmbarkationController & operator=(const 00156 DtDisaggregatedEmbarkationController & orig); 00157 00158 protected: 00159 00162 DtVrfAggregateStateRepository* myAggregateStateRepository; 00163 00167 DtCommandChannelRadio* myCommandRadio; 00168 00170 DtAggregateEmbarkationDescriptor* myAggregateEmbarkationDescriptor; 00171 00174 DtOrgViewManagedObjectListConstPtr myTaskableSubordinates; 00175 }; 00176 00177 #endif