MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simpleTimeTimeManagedEntity.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2006 MaK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: simpleTimeTimeManagedEntity.h,v $ $Revision: 1.3 $ $State: Exp $
7 *******************************************************************************/
8 #ifndef _TIMEMANAGEDOBJECTDEFINITION_
9 #define _TIMEMANAGEDOBJECTDEFINITION_
10 // A simple object that dictates the behavior of an advancing entity.
11 
12 #if defined(DtIFSPEC13)
13 #ifdef DtIFSPEC13DLC
16 #else
17 #include "simpleTimeAttribute13.h"
19 #endif
20 #elif defined(DtIFSPEC1516)
23 #elif defined(DtIFSPEC1516E)
26 #else
29 #endif
30 #include <queue>
31 
33 {
34  public:
35  enum entity_state{ Alive = 0,
36  FiredUpon = 1,
37  Damaged = 2,
38  Dead = 3 };
39  enum active_state{ Initial = 0,
40  Firing = 1,
42  Idle = 5};
43 
44  // constructor and destructor for timeManagedEntity
47 
48 
49  // Peek at our queue's of attributes and Interaction to see if there
50  // is an event waiting to be processed.
51  bool attrUpdateWaiting();
52  bool interactionWaiting();
53 
54  // retreive an event from one of the event queue's
57 
58  // add an event to our event queue.
61 
62  // access this timeManagedEntity's state.
63  bool shouldFire();
64  bool shouldDetonate();
65  bool isFiredUpon();
66  bool isDetonated();
67 
68  // Change this timeManagedEntity's state.
69  void setPhaseLine(double phaseLine);
70  void incPosition(double deltaTime);
71  void firePressed();
72  void reset();
73 
74  // Sets myState to the correct Value.
75  void tick();
76 
77 private:
78  void sendFire();
79  void sendDetonate();
80  void processEvents();
81 
82 private:
83 
85  double myPosition;
86  double myVelocity;
87 
88  // myPhaseLine acts as a boundary for this federate. When the position of the timeManagedEntity is past
89  // the myPhaseLine, the timeManagedEntity will start firing on other federates.
90  double myPhaseLine;
93  std::queue< attributeUpdateEvent* > myAttrUpdateQueue;
94  std::queue< interactionEvent* > myInteractionQueue;
95 };
96 
97 
98 #endif
Definition: simpleTimeTimeManagedEntity.h:39
Definition: simpleTimeTimeManagedEntity.h:41
void incPosition(double deltaTime)
bool interactionWaiting()
Definition: simpleTimeTimeManagedEntity.h:35
bool myFirePressed
Definition: simpleTimeTimeManagedEntity.h:84
attributeUpdateEvent * getNextAttrUpdateEvent()
Definition: simpleTimeInteraction13.h:23
double myPosition
Definition: simpleTimeTimeManagedEntity.h:85
Definition: simpleTimeTimeManagedEntity.h:32
entity_state myPhysicalState
Definition: simpleTimeTimeManagedEntity.h:91
interactionEvent * getNextInteractionEvent()
Definition: simpleTimeAttribute13.h:23
void addAttrUpdateEvent(attributeUpdateEvent *)
std::queue< attributeUpdateEvent * > myAttrUpdateQueue
Definition: simpleTimeTimeManagedEntity.h:93
Definition: simpleTimeTimeManagedEntity.h:36
Definition: simpleTimeTimeManagedEntity.h:42
void setPhaseLine(double phaseLine)
double myPhaseLine
Definition: simpleTimeTimeManagedEntity.h:90
Definition: simpleTimeTimeManagedEntity.h:40
Definition: simpleTimeTimeManagedEntity.h:38
entity_state
Definition: simpleTimeTimeManagedEntity.h:35
active_state myState
Definition: simpleTimeTimeManagedEntity.h:92
Definition: simpleTimeTimeManagedEntity.h:37
double myVelocity
Definition: simpleTimeTimeManagedEntity.h:86
bool attrUpdateWaiting()
std::queue< interactionEvent * > myInteractionQueue
Definition: simpleTimeTimeManagedEntity.h:94
active_state
Definition: simpleTimeTimeManagedEntity.h:39
void addInteractionEvent(interactionEvent *)

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)