VR-Forces 4.0.4 Class Documentation
include/vrfmodel/indirectArtilleryActuator.h
Go to the documentation of this file.
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 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)