![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: indirectArtilleryActuator.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00012 00014 00015 #ifndef _DT_INDRECT_ARTILLERY_COMPONENT 00016 #define _DT_INDRECT_ARTILLERY_COMPONENT 00017 00018 #include <vector> 00019 #include "vrfobjcore/actCmpnt.h" 00020 #include "vrfmodel/vrfmodelDefines.h" 00021 00022 class DtIndirectArtilleryPSR; 00023 class DtSimMessage; 00024 class DtIfIndirectArtilleryData; 00025 class DtVrfObjectMessage; 00026 00031 class DT_DLL_vrfmodel DtIndirectArtilleryComponent : public DtActuatorComponent 00032 { 00033 protected: 00035 DtIndirectArtilleryComponent(const DtString& name, 00036 DtVrfObject* owner, 00037 DtSimManager* simManager, 00038 DtComponentDescriptor* desc = 0, 00039 DtReaderWriterRegistry* parentRegistry = 0); 00040 00042 DtIndirectArtilleryComponent(const DtIndirectArtilleryComponent & orig); 00043 00045 virtual DtIndirectArtilleryComponent const & operator = (const DtIndirectArtilleryComponent & rhs); 00046 00047 public: 00049 virtual ~DtIndirectArtilleryComponent(void); 00050 00052 virtual bool init(); 00053 00059 virtual bool createPSR(); 00060 00062 virtual DtString type() const; 00063 00065 virtual void tick(); 00068 static DtSimComponent* creator(const DtString& name, DtVrfObject* object, 00069 DtSimManager* simManager, DtComponentDescriptor* compDescriptor, 00070 DtReaderWriterRegistry* parentRegistry); 00071 00072 static void requestIndirectArtilleryInformationCallback(const DtVrfObjectMessage* msg, void* usr); 00073 00074 protected: 00076 virtual void setCoords(DtTime t); 00077 virtual void setEllipseData(const DtIfIndirectArtilleryData & data); 00078 static void modifyCallBack (DtSimMessage * msg, void * usr); 00079 virtual void processModifyCallback(const DtIfIndirectArtilleryData & data); 00080 00081 virtual void processRequestIndirectArtilleryInformation(const DtVrfObjectMessage* msg); 00082 00084 virtual void sendCurrentState (); 00085 00088 virtual bool isDataDifferent(const DtIfIndirectArtilleryData& data) const; 00089 00090 private: 00092 bool myDataInitialized; 00093 00095 bool myDataModified; 00096 00099 std::vector<DtVector> myVertices; 00100 00103 DtIndirectArtilleryPSR* myProcessState; 00104 00106 std::vector<double> myBurstTimes; 00107 00109 DtVector myCenter; 00110 00112 DtVector myMajor; 00113 00115 DtVector myMinor; 00116 }; 00117 #endif 00118