VR-Forces 4.2 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 
68 {
69 
70 public:
71 
79  DtSimComponent(const DtString& name,
80  DtVrfObject* owner,
81  DtSimManager* simManager,
82  DtComponentDescriptor* desc = 0,
83  DtReaderWriterRegistry* parentRegistry = 0);
84 
86  virtual ~DtSimComponent();
87 
92  void setParentSystem(DtComponentSystem* system);
93 
96  virtual bool init();
97 
101  virtual bool postAddComponentsInit() { return true; }
102 
106  virtual void registerAttributeFunctions(){}
107 
111  virtual void enable();
112  virtual void disable();
113  virtual bool isEnabled();
114  virtual void setIsEnabled(bool yesNo);
116 
120  virtual void preFirstTickInit();
121 
125  virtual void tick();
126 
129  virtual void postTick();
130 
138  virtual void timedTick();
139 
142  virtual void setMinTickPeriod(double minTickPeriod);
143 
145  virtual double minTickPeriod() const;
146 
148  virtual void setMinTickPeriodVariance(double minTickPeriodVariance);
149 
151  virtual double minTickPeriodVariance() const;
152 
156  virtual void setNextTickTime(double nextTickTime);
157 
159  virtual double nextTickTime() const;
160 
166  virtual double calculateNextTickTime() const;
167 
172  virtual double calculateFirstTickTime() const;
173 
178  virtual DtString type() const;
179 
186  virtual void setEntity(DtVrfObject* entity);
187 
189  virtual DtSimComponent* nextComponent();
190  virtual DtSimComponent* prevComponent();
191 
193  virtual void setListItem(DtListItem* item);
194  virtual DtListItem* listItem();
195 
198  virtual void putData(FILE* fp, int indentLevel = 0);
199 
202  virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath,
203  const DtVariableBindingsList& variableBindings);
204 
207  virtual void addInputPort(DtInputPort* port);
208  virtual void removeInputPort(DtInputPort* port);
209 
215  virtual DtInputPort* lookupInputPort(const DtString& portName);
216 
218  virtual DtList inputPortList() const;
219 
222  virtual void addOutputPort(DtOutputPort* port);
223  virtual void removeOutputPort(DtOutputPort* port);
224 
230  virtual DtOutputPort* lookupOutputPort(const DtString& portName);
231 
233  virtual DtList outputPortList() const;
234 
237  virtual void addInputPortGroup(DtInputPortGroup* group);
238  virtual void removeInputPortGroup(DtInputPortGroup* group);
239 
242  virtual DtInputPortGroup* lookupInputPortGroup(const DtString& groupName);
243 
245  virtual DtList inputPortGroupList() const;
246 
249  virtual void addOutputPortGroup(DtOutputPortGroup* group);
250  virtual void removeOutputPortGroup(DtOutputPortGroup* group);
251 
254  virtual DtOutputPortGroup* lookupOutputPortGroup(const DtString& groupName);
255 
257  virtual DtList outputPortGroupList() const;
258 
265  virtual int priority() const;
271  virtual void setPriority(int priority);
272 
276  double dT() const;
277 
282  virtual void setDT(double deltaT);
283 
287  virtual void setComponentDescriptor(DtComponentDescriptor* componentDescriptor);
288  virtual const DtComponentDescriptor* componentDescriptor() const;
289 
294  virtual bool tickWhileDestroyed() const;
295 
298  virtual DtOutputStream& objectConsoleDebug() const;
299  virtual DtOutputStream& objectConsoleVerbose() const;
300  virtual DtOutputStream& objectConsoleInfo() const;
301  virtual DtOutputStream& objectConsoleWarn() const;
302  virtual DtOutputStream& objectConsoleError() const;
304 
310 
313 
314  virtual DtSimResourceManager& resourceManager();
315  virtual const DtSimResourceManager& resourceManager() const;
317 
321  virtual DtString componentFullName() const;
322 
326  static DtSimComponentFactory* factory();
327  static void setFactory(DtSimComponentFactory* factory);
328 
331  static DtSimComponent* createComponent(const DtString& name,
332  const DtString& type, DtVrfObject* owner, DtSimManager* simManager,
333  DtComponentSystem* parentSystem,
334  DtComponentDescriptor* desc = 0,
335  DtReaderWriterRegistry* parentRegistry = 0);
336 
342  static void addSimComponentCreatorFcn(const DtString& type,
344 
346  virtual DtPhysicalWorld* physicalWorld();
347  virtual const DtPhysicalWorld* physicalWorld() const;
348 
350  virtual DtAttachedTerrain* terrainAttachedTo();
351  virtual const DtAttachedTerrain* terrainAttachedTo() const;
352 
354  virtual DtVrfObject* entity();
355  virtual const DtVrfObject* entity() const;
356 
358  virtual DtSimManager* simManager();
359  virtual const DtSimManager* simManager() const;
360 
365  virtual const Coordinate_System* coordinateSystem() const;
366  virtual Coordinate_System* coordinateSystem();
367 
369  virtual DtVrfObjectStateRepository* localStateRepository();
370  virtual const DtVrfObjectStateRepository* localStateRepository() const;
371 
372 protected:
373 
378  bool testInvariant() const;
379 
383  virtual bool createPortGroups();
384 
388  virtual bool createPorts();
389 
390 private:
393  DtSimComponent();
394 
396  DtSimComponent(const DtSimComponent& orig);
397 
400 
401 
402 protected:
408  DtListItem* myListItem;
409 
410  typedef std::map<DtString, DtInputPort*> DtInputPortMap;
411  typedef std::map<DtString, DtOutputPort*> DtOutputPortMap;
412  typedef std::map<DtString, DtInputPortGroup*> DtInputPortGroupMap;
413  typedef std::map<DtString, DtOutputPortGroup*> DtOutputPortGroupMap;
414 
419 
421 
423 
428  double myDT;
429 
433 
437 
439 };
440 
441 inline double DtSimComponent::dT() const
442 {
443  return myDT;
444 }

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)