VR-Forces 4.1.1 Class Documentation
simCmpnt.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 
15 
16 #include <vlutil/vlString.h>
17 #include <vlutil/vlList.h>
18 #include "vrfutil/rdrWritr.h"
19 #include "vrfobjcore/compFactory.h"
20 #include "vrfobjcore/vrfObjSR.h"
21 #include <vlutil/vlHashlist.h>
23 
24 class DtSimManager;
25 class DtVrfObject;
27 class DtInputPort;
28 class DtOutputPort;
29 class DtInputPortGroup;
30 class DtOutputPortGroup;
31 class DtAttachedTerrain;
32 class DtPhysicalWorld;
33 class Coordinate_System;
34 class DtComponentSystem;
37 
61 {
62 
63 public:
64 
72  DtSimComponent(const DtString& name,
73  DtVrfObject* owner,
74  DtSimManager* simManager,
75  DtComponentDescriptor* desc = 0,
76  DtReaderWriterRegistry* parentRegistry = 0);
77 
79  virtual ~DtSimComponent();
80 
85  void setParentSystem(DtComponentSystem* system);
86 
89  virtual bool init();
90 
94  virtual bool postAddComponentsInit() { return true; }
95 
99  virtual void enable();
100  virtual void disable();
101  virtual bool isEnabled();
102  virtual void setIsEnabled(bool yesNo);
104 
108  virtual void preFirstTickInit();
109 
113  virtual void tick();
114 
117  virtual void postTick();
118 
126  virtual void timedTick();
127 
130  virtual void setMinTickPeriod(double minTickPeriod);
131 
133  virtual double minTickPeriod() const;
134 
136  virtual void setMinTickPeriodVariance(double minTickPeriodVariance);
137 
139  virtual double minTickPeriodVariance() const;
140 
144  virtual void setNextTickTime(double nextTickTime);
145 
147  virtual double nextTickTime() const;
148 
154  virtual double calculateNextTickTime() const;
155 
160  virtual double calculateFirstTickTime() const;
161 
166  virtual DtString type() const;
167 
174  virtual void setEntity(DtVrfObject* entity);
175 
177  virtual DtSimComponent* nextComponent();
178  virtual DtSimComponent* prevComponent();
179 
181  virtual void setListItem(DtListItem* item);
182  virtual DtListItem* listItem();
183 
186  virtual void putData(FILE* fp, int indentLevel = 0);
187 
190  virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
191  const DtVariableBindingsList& variableBindings);
192 
195  virtual void addInputPort(DtInputPort* port);
196  virtual void removeInputPort(DtInputPort* port);
197 
203  virtual DtInputPort* lookupInputPort(const DtString& portName);
204 
206  virtual DtList inputPortList() const;
207 
210  virtual void addOutputPort(DtOutputPort* port);
211  virtual void removeOutputPort(DtOutputPort* port);
212 
218  virtual DtOutputPort* lookupOutputPort(const DtString& portName);
219 
221  virtual DtList outputPortList() const;
222 
225  virtual void addInputPortGroup(DtInputPortGroup* group);
226  virtual void removeInputPortGroup(DtInputPortGroup* group);
227 
230  virtual DtInputPortGroup* lookupInputPortGroup(const DtString& groupName);
231 
233  virtual DtList inputPortGroupList() const;
234 
237  virtual void addOutputPortGroup(DtOutputPortGroup* group);
238  virtual void removeOutputPortGroup(DtOutputPortGroup* group);
239 
242  virtual DtOutputPortGroup* lookupOutputPortGroup(const DtString& groupName);
243 
245  virtual DtList outputPortGroupList() const;
246 
253  virtual int priority() const;
259  virtual void setPriority(int priority);
260 
264  double dT() const;
265 
270  virtual void setDT(double deltaT);
271 
275  virtual void setComponentDescriptor(DtComponentDescriptor* componentDescriptor);
276  virtual const DtComponentDescriptor* componentDescriptor() const;
277 
282  virtual bool tickWhileDestroyed() const;
283 
286  virtual DtOutputStream& objectConsoleDebug() const;
287  virtual DtOutputStream& objectConsoleVerbose() const;
288  virtual DtOutputStream& objectConsoleInfo() const;
289  virtual DtOutputStream& objectConsoleWarn() const;
290  virtual DtOutputStream& objectConsoleError() const;
292 
298 
301 
302  virtual DtSimResourceManager& resourceManager();
303  virtual const DtSimResourceManager& resourceManager() const;
305 
309  virtual DtString componentFullName() const;
310 
314  static DtSimComponentFactory* factory();
315  static void setFactory(DtSimComponentFactory* factory);
316 
319  static DtSimComponent* createComponent(const DtString& name,
320  const DtString& type, DtVrfObject* owner, DtSimManager* simManager,
321  DtComponentSystem* parentSystem,
322  DtComponentDescriptor* desc = 0,
323  DtReaderWriterRegistry* parentRegistry = 0);
324 
330  static void addSimComponentCreatorFcn(const DtString& type,
332 
333 protected:
334 
339  bool testInvariant() const;
340 
344  virtual bool createPortGroups();
345 
349  virtual bool createPorts();
350 
352  virtual DtPhysicalWorld* physicalWorld();
353  virtual const DtPhysicalWorld* physicalWorld() const;
354 
356  virtual DtAttachedTerrain* terrainAttachedTo();
357  virtual const DtAttachedTerrain* terrainAttachedTo() const;
358 
360  virtual DtVrfObject* entity();
361  virtual const DtVrfObject* entity() const;
362 
364  virtual DtSimManager* simManager();
365  virtual const DtSimManager* simManager() const;
366 
371  virtual const Coordinate_System* coordinateSystem() const;
372  virtual Coordinate_System* coordinateSystem();
373 
375  virtual DtVrfObjectStateRepository* localStateRepository();
376  virtual const DtVrfObjectStateRepository* localStateRepository() const;
377 
378 
379 private:
382  DtSimComponent();
383 
385  DtSimComponent(const DtSimComponent& orig);
386 
389 
390 
391 protected:
397  DtListItem* myListItem;
398 
399  typedef std::map<DtString, DtInputPort*> DtInputPortMap;
400  typedef std::map<DtString, DtOutputPort*> DtOutputPortMap;
401  typedef std::map<DtString, DtInputPortGroup*> DtInputPortGroupMap;
402  typedef std::map<DtString, DtOutputPortGroup*> DtOutputPortGroupMap;
403 
408 
410 
412 
417  double myDT;
418 
422 
426 
428 };
429 
430 inline double DtSimComponent::dT() const
431 {
432  return myDT;
433 }

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)