MAK RTIspy API Documentation for HLA 1.3
 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 #ifdef DtIFSPEC1516
14 #elif defined(DtIFSPEC1516E)
17 #else
18 #ifdef DtIFSPEC13DLC
21 #else
22 #include "simpleTimeAttribute13.h"
24 #endif
25 #endif
26 #include <queue>
27 
29 {
30  public:
31  enum entity_state{ Alive = 0,
32  FiredUpon = 1,
33  Damaged = 2,
34  Dead = 3 };
35  enum active_state{ Initial = 0,
36  Firing = 1,
38  Idle = 5};
39 
40  // constructor and destructor for timeManagedEntity
43 
44 
45  // Peek at our queue's of attributes and Interaction to see if there
46  // is an event waiting to be processed.
47  bool attrUpdateWaiting();
48  bool interactionWaiting();
49 
50  // retreive an event from one of the event queue's
53 
54  // add an event to our event queue.
57 
58  // access this timeManagedEntity's state.
59  bool shouldFire();
60  bool shouldDetonate();
61  bool isFiredUpon();
62  bool isDetonated();
63 
64  // Change this timeManagedEntity's state.
65  void setPhaseLine(double phaseLine);
66  void incPosition(double deltaTime);
67  void firePressed();
68  void reset();
69 
70  // Sets myState to the correct Value.
71  void tick();
72 
73 private:
74  void sendFire();
75  void sendDetonate();
76  void processEvents();
77 
78 private:
79 
81  double myPosition;
82  double myVelocity;
83 
84  // myPhaseLine acts as a boundary for this federate. When the position of the timeManagedEntity is past
85  // the myPhaseLine, the timeManagedEntity will start firing on other federates.
86  double myPhaseLine;
89  std::queue< attributeUpdateEvent* > myAttrUpdateQueue;
90  std::queue< interactionEvent* > myInteractionQueue;
91 };
92 
93 
94 #endif
Definition: simpleTimeTimeManagedEntity.h:35
Definition: simpleTimeTimeManagedEntity.h:37
void incPosition(double deltaTime)
bool interactionWaiting()
Definition: simpleTimeTimeManagedEntity.h:31
bool myFirePressed
Definition: simpleTimeTimeManagedEntity.h:80
attributeUpdateEvent * getNextAttrUpdateEvent()
Definition: simpleTimeInteraction13.h:23
double myPosition
Definition: simpleTimeTimeManagedEntity.h:81
Definition: simpleTimeTimeManagedEntity.h:28
entity_state myPhysicalState
Definition: simpleTimeTimeManagedEntity.h:87
interactionEvent * getNextInteractionEvent()
Definition: simpleTimeAttribute13.h:23
void addAttrUpdateEvent(attributeUpdateEvent *)
std::queue< attributeUpdateEvent * > myAttrUpdateQueue
Definition: simpleTimeTimeManagedEntity.h:89
Definition: simpleTimeTimeManagedEntity.h:32
Definition: simpleTimeTimeManagedEntity.h:38
void setPhaseLine(double phaseLine)
double myPhaseLine
Definition: simpleTimeTimeManagedEntity.h:86
Definition: simpleTimeTimeManagedEntity.h:36
Definition: simpleTimeTimeManagedEntity.h:34
entity_state
Definition: simpleTimeTimeManagedEntity.h:31
active_state myState
Definition: simpleTimeTimeManagedEntity.h:88
Definition: simpleTimeTimeManagedEntity.h:33
double myVelocity
Definition: simpleTimeTimeManagedEntity.h:82
bool attrUpdateWaiting()
std::queue< interactionEvent * > myInteractionQueue
Definition: simpleTimeTimeManagedEntity.h:90
active_state
Definition: simpleTimeTimeManagedEntity.h:35
void addInteractionEvent(interactionEvent *)

Document ID: Generated on Thu May 11 15:55:32 EDT 2023 from SVN revision 254743
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)