VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
javelinMissileFlightController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
23 //
29 
30 #pragma once
31 
33 
35 
36 #include <matrix/vlVector.h>
37 #include <vlutil/vlString.h>
38 
39 
40 class DtString;
42 class DtConstrainedAnalogPort;
43 class boolPort;
44 class DtSimMessage;
45 
46 
50 
53 
55  {
56  public:
57 
61  DtLocalObject* owner,
62  DtSimulationServices* simManager,
63  DtComponentDescriptor* desc = 0,
64  DtReaderWriterRegistry* parentRegistry = 0);
65 
67  virtual ~DtJavelinMissileFlightController() override;
68 
71  virtual const char* type() const override;
72 
74  virtual void preFirstTickInit() override;
75 
78  virtual void setTargetEntity(const DtUUID& entity) override;
79  virtual DtSimObjectReference targetEntity() const override;
80 
82  virtual void calculateSteering(const DtVector& relativeVelocity,
83  const DtVector& localPosition,
84  const DtVector& targetVelocity,
85  const DtVector& targetPoint,
86  double& maneuverAccelXOut,
87  double& maneuverAccelYOut,
88  double& maneuverAccelZOut) override;
89 
93  static void targetPointCallback(DtSimMessage* msg, void* usr);
94 
97  virtual void processTargetPointTask(DtSimMessage* msg) override;
98 
102  static DtSimComponent* creator(const DtString& name,
103  DtLocalObject* owner,
104  DtSimulationServices* simManager,
105  DtComponentDescriptor* desc = 0,
106  DtReaderWriterRegistry* parentRegistry = 0);
107 
108  protected:
112 
115  orig);
116 
120 
123  virtual void registerTaskMsgCallbacks() override;
124 
127  virtual bool setupControlPoint() override;
128 
130  virtual DtVector calculateClimbOutPoint();
131 
133  virtual bool reachedClimbOutAltitude();
134 
136  virtual DtVector calculateAltitudeHoldPoint();
137 
140  virtual bool reachedTerminalAngleToTarget();
141 
143  virtual DtVector calculateTerminalPoint();
144 
145  protected:
146 
147  virtual void lookupAndCacheProcessSR() override;
148 
149  protected:
150 
153 
157 
161 
164 
170  };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual void calculateSteering(const DtVector &relativeVelocity, const DtVector &localPosition, const DtVector &targetVelocity, const DtVector &targetPoint, double &maneuverAccelXOut, double &maneuverAccelYOut, double &maneuverAccelZOut) override
Just calls down to calculateSteeringToPoint (ignoring targetVelocity).
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
const DtMissileMoveToControllerComponent & operator=(const DtMissileMoveToControllerComponent &orig)
assignment operator; see comments on copy constructor!
DtJavelinMissileFlightPSR * myJavelinMissileFlightPSR
Cache our derived type of DtVrfProcessStateRepository for convenience.
Definition: javelinMissileFlightController.h:160
virtual const char * type() const override
Returns a string identifies the class type of component. Type values are defined in compTypes...
double myTerminalAngle
Definition: javelinMissileFlightController.h:168
virtual void lookupAndCacheProcessSR()
This function looks up a process state repository in the process state repository manager by name...
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
virtual void setTargetEntity(const DtUUID &entity)
When setTargetEntity is called it will call setUpControlPoint to update where the missile should be f...
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
Definition: readerWriterRegistry.h:39
DtSimObjectReference myTargetPointer
Set fresh each frame by setupControlPoint.
Definition: javelinMissileFlightController.h:152
virtual void processTargetPointTask(DtSimMessage *msg)
This function calls setTargetPoint(), passing in the location of target point given in the target-poi...
DtMissileMoveToControllerComponent is a controller that maneuvers a missile toward a given target poi...
Definition: missileMoveToControllerComponent.h:37
File: simMsg.h.
Definition: simMessage.h:35
class DtJavelinMissileFlightPSR:
Definition: javelinMissileFlightPSR.h:20
virtual bool setupControlPoint()
Returns the boolean member data flag myMissilesTargeted, indicating whether or not a target location ...
DtJavelinMissileFlightControllerDescriptor; component descriptor that holds the parameters describing...
Definition: javelinMissileFlightControllerDescriptor.h:41
Definition: javelinMissileFlightController.h:54
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:89
DtJavelinMissileFlightControllerDescriptor * myJavelinMissileFlightControllerDescriptor
Cache our derived type of DtComponentDescriptor for convenience.
Definition: javelinMissileFlightController.h:163
bool myLookupWarningSent
Flag to keep this component from spamming &#39;failed to find target&#39; warnings more than once...
Definition: javelinMissileFlightController.h:156
double myClimbOutAngle
These values are used to cache the values for the given attack mode. Set up in preFirstTickInit and d...
Definition: javelinMissileFlightController.h:167
static void targetPointCallback(DtSimMessage *msg, void *usr)
Instances of this component will register this callback with their own &#39;this&#39; pointer as user data wi...
double myMaxAltitude
Definition: javelinMissileFlightController.h:169
virtual DtSimObjectReference targetEntity() const
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
virtual void registerTaskMsgCallbacks() override
Overrides this so it can register its interest in MoveTo commands.
A locally simulated VRF object.
Definition: localObject.h:98

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)