MAK Legion 1.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
embark/clutterSim.h
Go to the documentation of this file.
1 /*********************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************************/
5 
7 #include "legionDataStore/span.h"
8 
9 #include "legionStandardOM/controls/playControl.hpp"
10 #include "legionStandardOM/controls/pauseControl.hpp"
11 
12 #include "legionStandardOM/sets/writeEntityRepository.hpp"
13 #include "legionStandardOM/sets/writeEmbarkedEntityRepository.hpp"
14 
15 #include "makUtil/simTime.h"
16 
17 #include <vector>
18 
19 namespace Legion
20 {
21  class EventManager;
22  class ControlManager;
23  class ViewManager;
24 }
25 
26 namespace LOM
27 {
28  class WriteEntityRepository;
29  class EntityView;
30 }
31 
32 namespace Clutter
33 {
34  class SimEngine
35  {
36  public:
38  Legion::Vector2d referenceCoordinate, int maxEntites, int testCase);
39  ~SimEngine();
40 
41  void finish();
42  void tick();
43 
44  // Toggle play/pause
45  void togglePause() { myTogglePause = true; }
46  bool isPaused() const { return mySimTime.isPaused(); }
47 
48  double simTime() { return mySimTime.time(); }
49 
50  protected:
51  bool init();
52 
53  void updateForce();
54 
57 
58  void addEmbarkation();
59  void removeEmbarkation();
60  void addEmbarkationBack();
62 
64  void updateEntities(int firstEntityIndex, int numberOfEntites);
65  bool entityAtDestination(LOM::WriteEntityRepository* ent);
66  void selectNewDestination(LOM::WriteEntityRepository* ent);
67  double nextRand(int maxRange);
68 
71 
72  std::vector<std::pair<LOM::WriteEntityRepository, bool>> myEntites;
73 
78 
80 
82  MAK::SimTime mySimTime;
84 
85  //extended attributes of the entity
88 
91  };
92 }
bool myIsInitalized
Definition: embark/clutterSim.h:81
void updateForce()
Definition: legionClutterClient/clutterSim.cxx:367
int myNumberEntities
Definition: embark/clutterSim.h:77
void updateEmbarkedEntities()
Definition: embark/clutterSim.cxx:292
Legion::SimulationDatabase * mySimDatabase
Definition: embark/clutterSim.h:69
Legion::Vector2d myMax
Definition: embark/clutterSim.h:75
void processPauseControls(Legion::Span< LOM::PauseControl > &controlList)
Definition: embark/clutterSim.cxx:537
void finish()
Definition: embark/clutterSim.cxx:217
Legion::Vector2d myMin
Definition: embark/clutterSim.h:74
Legion::ControlManager * myControlManager
Definition: embark/clutterSim.h:70
~SimEngine()
Definition: embark/clutterSim.cxx:131
std::vector< std::pair< LOM::WriteEntityRepository, bool > > myEntites
Definition: embark/clutterSim.h:72
bool isPaused() const
Definition: embark/clutterSim.h:46
Legion::UInt32 myMoveDelayAttrIndex
Definition: embark/clutterSim.h:86
A span represents a contiguous array of objects in memory.
Definition: span.h:22
void selectNewDestination(LOM::WriteEntityRepository *ent)
Definition: embark/clutterSim.cxx:630
Definition: vector.h:116
Legion::UInt32 myPauseCallbackHandle
Definition: embark/clutterSim.h:90
void extendEntityAttributes()
Definition: embark/clutterSim.cxx:137
void addEmbarkation()
Definition: embark/clutterSim.cxx:336
unsigned int UInt32
Definition: dataTypes.h:44
The SimulationDatabase stores all data for the simulation. It also owns the event, control, and view managers.
Definition: simulationDatabase.h:42
void togglePause()
Definition: embark/clutterSim.h:45
bool entityAtDestination(LOM::WriteEntityRepository *ent)
Definition: embark/clutterSim.cxx:616
Definition: embark/clutterSim.h:34
Legion::Vector2d myReferenceCoordinate
Definition: embark/clutterSim.h:76
bool myTogglePause
Definition: embark/clutterSim.h:83
double simTime()
Definition: embark/clutterSim.h:48
Legion::UInt32 myMoveGoalAttrIndex
Definition: embark/clutterSim.h:87
int myFractionToToggle
Definition: embark/clutterSim.h:79
Legion::UInt32 myPlayCallbackHandle
Definition: embark/clutterSim.h:89
void processPlayControls(Legion::Span< LOM::PlayControl > &controlList)
Definition: embark/clutterSim.cxx:517
bool init()
Definition: embark/clutterSim.cxx:164
MAK::SimTime mySimTime
Definition: embark/clutterSim.h:82
The control manager is responsible for creating and adding controls to the simulation database...
Definition: controlManager.h:33
void updateEntities(int firstEntityIndex, int numberOfEntites)
Definition: embark/clutterSim.cxx:557
void removeEmbarkation()
Definition: embark/clutterSim.cxx:375
void tick()
Definition: embark/clutterSim.cxx:230
void addEmbarkationBack()
Definition: embark/clutterSim.cxx:469
SimEngine(Legion::SimulationDatabase *db, Legion::Vector2d minBounds, Legion::Vector2d maxBounds, Legion::Vector2d referenceCoordinate, int maxEntites, int testCase)
Definition: embark/clutterSim.cxx:107
double nextRand(int maxRange)
Definition: embark/clutterSim.cxx:648

Document ID: Generated on Wed May 26 15:17:05 EDT 2021 from SVN revision 229676
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)