VR-Forces 4.0.4 Class Documentation
include/vrfobjcore/missileSR.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 1999 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00006 #pragma once
00007 
00011 
00015 
00016 #include <vlutil/vlMachineTypes.h>
00017 #include <vl/detonateInter.h>
00018 
00019 #include "vrfobjcore/vrfMvObjSR.h"
00020 #include "vrfutil/simMunition.h"
00021 #include "vrfobjcore/vrfObjMgr.h"
00022 
00023 #include <vl/objectId.h>
00024 #include <vl/eventId.h>
00025 
00026 class DtMissileParameters;
00027 class DtVector;
00028 class DtVrfObjectManager;
00029 
00035 #include "vrfobjcore/vrfobjcoreDefines.h"
00036 class DT_DLL_vrfobjcore DtMissileStateRepository : public DtVrfMovingObjectStateRepository
00037 {
00038 
00039   protected:
00040    //default constructor  do not use
00041    DtMissileStateRepository();
00042 
00043 public:
00044 
00046    DtMissileStateRepository(DtVrfObject* vrfObject,
00047       const DtObjectType& objectType, DtVrfObjectParameters* parameters,
00048       const DtString& rwName = DtString::nullString(),
00049       DtReaderWriterRegistry* parentRegistry = 0);
00050 
00052    DtMissileStateRepository(const DtMissileStateRepository
00053       & orig, const DtString& rwName = DtString::nullString(),
00054       DtReaderWriterRegistry* parentRegistry = 0);
00055 
00057    const DtMissileStateRepository & operator=(const
00058       DtMissileStateRepository & orig);
00059 
00061    virtual ~DtMissileStateRepository();
00062 
00063    virtual DtSimObjectStateRepository* clone(
00064       const DtString& rwName = DtString::nullString(),
00065       DtReaderWriterRegistry*  parentRegistry = 0) const;
00066 
00067    virtual bool init();
00068 
00070    virtual DtString type() const;
00071 
00073    virtual const int vrfMovingObjectStateRepositorySubType() const;
00074 
00076    virtual const int missileEntityStateRepositorySubType() const;
00077 
00078 
00081    virtual void tick();
00082 
00083    virtual bool createParameters();
00084 
00085    virtual void initializeFromParameters();
00086 
00087    virtual const DtMissileParameters * missileParameters() const;
00088 
00090    virtual DtReal range() const;
00091    virtual void setRange(const DtReal range);
00092 
00094    virtual DtReal maxManeuverGs() const;
00095    virtual void setMaxManeuverGs(const DtReal maxAcceleration);
00096 
00098    virtual void setFuzeType(DtDetonatorFuze fuze);
00099    virtual DtDetonatorFuze fuzeType() const;
00100 
00102    virtual void setWarheadType(DtWarheadType type);
00103    virtual DtWarheadType warheadType() const;
00104 
00106    virtual void setFireAndForget(bool isFireAndForget);
00107    virtual bool fireAndForget() const;
00108 
00110    virtual void setAttackerId(const DtObjectId& attackerId);
00111    virtual const DtObjectId& attackerId() const;
00112 
00121    virtual DtReal radiusCEP() const;
00122    virtual void setRadiusCEP(const DtReal radiusCEP);
00123 
00126    virtual void place(const DtVector& location);
00127 
00135    virtual void place(const DtReal heading);
00136 
00144    virtual void place(const DtReal heading, const DtReal pitch);
00145 
00153    virtual void place(const DtVector& location, const DtReal heading);
00154 
00161    virtual void place(const DtVector& location, const DtReal heading,
00162       const DtReal pitch);
00163 
00169    virtual void setStartLocalPosition(const DtVector& localPosition);
00170    virtual void setStartLocalVelocity(const DtVector& localVelocity);
00171    virtual void setStartLocalOrientationWrtDatabase(
00172       const DtTaitBryan& localOrientation);
00173 
00177    virtual bool setTargetPoint(const DtVector& localTerrainPoint);
00178    virtual bool setTargetEntity(const DtObjectId & id);
00179 
00184    virtual void setEventId(const DtEventId& eventId);
00185    virtual const DtEventId& eventId() const;
00186 
00194    virtual void setDisconnectedFromLauncher();
00195 
00200    virtual bool missilePassedTarget(double &distSquaredToTargetOut) const;
00201 
00203    virtual void missileDetonated(DtDetonationInteraction * detInter);
00204 
00205    static void detonationCallback(DtDetonationInteraction * detInter,
00206                                                            void * usr);
00207 
00209    virtual DtReal currentPitch() const;
00210 
00213    virtual double calcDistanceSquaredToTarget();
00214 
00217    virtual DtReal transitionAngle() const;
00218    virtual void setTransitionAngle(DtReal angle);
00219 
00221    virtual DtReal proportionalNavigationGain() const;
00222    virtual void setProportionalNavigationGain(DtReal gain);
00223 
00227    virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false,
00228       const DtFilename& path = DtReaderWriter::appPath());
00229    virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath,
00230       const DtVariableBindingsList& variableBindings);  
00231 
00232    static DtVrfObjectStateRepository * creator(const DtString& name,
00233       DtVrfObject* vrfObject, const DtObjectType& objectType,
00234       DtVrfObjectParameters * parameters,
00235       DtReaderWriterRegistry * parentRegistry);
00236 
00239    static DtMissileStateRepository* isMissileStateRepository(
00240       DtSimObjectStateRepository* repository);
00241 
00242    static const DtMissileStateRepository* isMissileStateRepository(
00243       const DtSimObjectStateRepository* repository);
00244 
00250    virtual void setStartLocalOrientation(const DtTaitBryan& 
00251       topocentricOrientation);
00252 
00253 protected:
00254 
00255    DtObjectId myAttackerId;
00256 
00257    DtReal          myRange;
00258    DtReal          myMaxManeuverGs;
00259    DtDetonatorFuze myFuzeType;
00260    DtWarheadType   myWarheadType;
00261    bool       myFireAndForget;
00262    DtReal          myRadiusCEP;
00263 
00264    bool  myMarkedForRemoval;
00265 
00266    DtObjectId      *myTargetEntity;
00267    DtVector        *myTargetPoint;
00268 
00271    DtVector   myVectorToTarget;
00272 
00273    double     myDistanceSquaredToTarget;
00274    double     myLastDistanceSquaredToTarget;
00275 
00278    static DtVrfObjectManager  *myDetCbackRegWithThisEntMgr;
00279 
00280    DtReal          myTransitionAngle;
00281    DtReal          myProportionalNavigationGain;
00282 
00283    DtRwString     myAttackerName;
00284    DtRwString     myTargetEntityName;
00285 
00286    DtEventId      myEventId;
00287 };

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)