VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
obstructionSensor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include "vrfutil/simClock.h"
17 #include <vl/hostStructs.h>
18 #include <vl/objectIdHashlist.h>
20 #include "gdb/specification.h"
22 
23 #include <list>
24 
25 class DtString;
26 class DtSimManager;
27 class Dt3dBoundingVolume;
30 
37 {
38 
39 public:
40 
43  DtObstructionSensor(const DtString& name,
44  DtVrfObject* owner,
45  DtSimManager* simManager,
46  DtComponentDescriptor* desc = 0,
47  DtReaderWriterRegistry* parentRegistry = 0);
48 
50  virtual ~DtObstructionSensor();
51 
52 private:
55 
58 
59 
60 public:
66  virtual bool init();
67 
69  virtual void preFirstTickInit();
70 
79  virtual void tick();
80 
83  virtual const char* type() const;
84 
85 protected:
86 
92  virtual bool createPSR();
93 
95  virtual bool createCollisionDetector();
96 
102  virtual bool setObstructionIDsInCollisionDetector();
103 
107  virtual bool initializeCollisionBV();
108 
123  virtual bool calculateStoppingDistance(const DtObstructionSensorDescriptor& obstructionSensorDesc,
124  double& stoppingDistance);
125 
133  virtual bool calculateCollisionBV();
134 
136  virtual void registerMessageCallbacks();
137 
139  static void setCollisionAvoidTypesCallback(DtSimMessage* msg, void* usr);
140 
143  virtual void processCollisionAvoidTypes(DtSimMessage* msg);
144 
148  virtual bool addFeatureTypeToAvoid(DtRwString featureType);
149 
153  virtual bool removeFeatureTypeToAvoid(DtRwString featureType);
154 
159  virtual DtRwString buildingFeatureType() const;
160 
165  virtual DtRwString treeFeatureType() const;
166 
167  virtual double decelerationSoilFactor() const;
168 
169 public:
173  static DtSimComponent * creator(const DtString& name,
174  DtVrfObject* owner,
175  DtSimManager* simManager,
176  DtComponentDescriptor* desc = 0,
177  DtReaderWriterRegistry* parentRegistry = 0);
178 
179 protected:
180 
185  virtual bool createPorts();
186 
190  virtual bool createPortGroups();
191 
192 protected:
193 
196 
204 
208 
210 
211  Dt3dBoundingVolume* myCollisionBV;
216 
220 
221 protected:
223 };
DtCollision * myPotentialCollision
Definition: obstructionSensor.h:222
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
std::list< DtRwString > DtFeatureTypeContainer
Definition: collisionDetector.h:61
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
Definition: readerWriterRegistry.h:39
DtOutputPortGroup is a data port group of a data provider.
Definition: outputPortGroup.h:30
DtObstructionSensorPSR; Process state repository for DtObstructionSensor.
Definition: obstructionSensorPSR.h:24
virtual bool init()
Calls createPorts and createPortGroups Initializes myLastTickSimTime.
Dt3dBoundingVolume * myCollisionBV
Definition: obstructionSensor.h:211
Instances of DtCollisionOutputPort are output ports through which data producers can send information...
Definition: collisionIOPort.h:50
DtCollisionDetector::DtObjectObstructionIDContainer myObjectObstructionIDs
Definition: obstructionSensor.h:213
std::set< DtObjectType > DtObjectObstructionIDContainer
Definition: collisionDetector.h:59
DtOutputPortGroup * myObstructionInfoPortGroup
Output Port Group Name: obstruction-info Output Port Group Description:
Definition: obstructionSensor.h:207
File: simMsg.h.
Definition: simMessage.h:35
File: vlClock.h.
virtual void tick()
This gives the thread of control to the component.
DtObstructionSensorPSR * myProcessState
Container for state data associated with this component.
Definition: obstructionSensor.h:219
DtObstructionSensorDescriptor is a DtComponentDescriptor that has the name of the DtObstructionSensor...
Definition: obstructionSensorDescriptor.h:39
The DtCollisionDetector is a class used to detect collisions between a specified list of obstructions...
Definition: collisionDetector.h:55
DtSimComponent & operator=(const DtSimComponent &orig)
assignment operator, not implemented
virtual bool createPorts()
Called by init.
Definition: collision.h:24
virtual bool createPortGroups()
Called by init.
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
DtCollisionDetector * myCollisionDetector
Definition: obstructionSensor.h:212
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:102
DtCollisionDetector::DtFeatureTypeContainer myFeatureObstructionTypes
Definition: obstructionSensor.h:214
DtObstructionSensor models a sensor able to detect potential collisions with other entities and/or te...
Definition: obstructionSensor.h:36
DtCollisionOutputPort * myPotentialCollisionInfoPort
Output Port Name: potential-collision-info Output Port Description: Information about an impending po...
Definition: obstructionSensor.h:203
virtual const char * type() const =0
Returns a string identifies the class type of component.
const DtObstructionSensorDescriptor * myObstructionSensorDesc
Definition: obstructionSensor.h:215

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)