VR-Forces Developer's Guide
 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 
16 #include "vrfutil/simClock.h"
18 #include "gdb/specification.h"
20 
21 #include <list>
22 
23 class DtString;
25 class Dt3dBoundingVolume;
28 
35 {
36 
37 public:
38 
41  DtObstructionSensor(const DtString& name,
42  DtLocalObject* owner,
43  DtSimulationServices* simManager,
44  DtComponentDescriptor* desc = 0,
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
48  virtual ~DtObstructionSensor() override;
49 
50 private:
53 
56 
57 
58 public:
64  virtual bool init() override;
65 
67  virtual void preFirstTickInit() override;
68 
77  virtual void tick() override;
78 
81  virtual const char* type() const override;
82 
83 protected:
84 
90  virtual bool createPSR();
91 
93  virtual bool createCollisionDetector();
94 
100  virtual bool setObstructionIDsInCollisionDetector();
101 
105  virtual bool initializeCollisionBV();
106 
121  virtual bool calculateStoppingDistance(const DtObstructionSensorDescriptor& obstructionSensorDesc,
122  double& stoppingDistance);
123 
131  virtual bool calculateCollisionBV();
132 
134  virtual void registerMessageCallbacks();
135 
137  static void setCollisionAvoidTypesCallback(DtSimMessage* msg, void* usr);
138 
141  virtual void processCollisionAvoidTypes(DtSimMessage* msg);
142 
146  virtual bool addFeatureTypeToAvoid(DtRwString featureType);
147 
151  virtual bool removeFeatureTypeToAvoid(DtRwString featureType);
152 
157  virtual DtRwString buildingFeatureType() const;
158 
163  virtual DtRwString treeFeatureType() const;
164 
165  virtual double decelerationSoilFactor() const;
166 
167 public:
171  static DtSimComponent * creator(const DtString& name,
172  DtLocalObject* owner,
173  DtSimulationServices* simManager,
174  DtComponentDescriptor* desc = 0,
175  DtReaderWriterRegistry* parentRegistry = 0);
176 
177 protected:
178 
183  virtual bool createPorts() override;
184 
188  virtual bool createPortGroups() override;
189 
190 protected:
191 
194 
202 
206 
208 
209  Dt3dBoundingVolume* myCollisionBV;
214 
218 
219 protected:
221 
224 };
DtCollision * myPotentialCollision
Definition: obstructionSensor.h:220
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
std::list< DtRwString > DtFeatureTypeContainer
Definition: collisionDetector.h:63
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Member to allow for access to platform specific data.
Definition: obstructionSensor.h:223
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:49
Definition: readerWriterRegistry.h:39
DtOutputPortGroup is a data port group of a data provider. It may contain any number of DtOutputPorts...
Definition: outputPortGroup.h:34
DtObstructionSensorPSR; Process state repository for DtObstructionSensor.
Definition: obstructionSensorPSR.h:24
std::set< DtEntityType > DtObjectObstructionIDContainer
Definition: collisionDetector.h:61
virtual bool init()
Calls createPorts and createPortGroups Initializes myLastTickSimTime.
Dt3dBoundingVolume * myCollisionBV
Definition: obstructionSensor.h:209
Instances of DtCollisionOutputPort are output ports through which data producers can send information...
Definition: collisionIOPort.h:50
DtOutputPortGroup * myObstructionInfoPortGroup
Output Port Group Name: obstruction-info Output Port Group Description:
Definition: obstructionSensor.h:205
File: simMsg.h.
Definition: simMessage.h:35
File: vlClock.h.
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtObstructionSensorPSR * myProcessState
Container for state data associated with this component. This state is saved and restored as part of ...
Definition: obstructionSensor.h:217
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:57
DtSimComponent & operator=(const DtSimComponent &orig)
assignment operator, not implemented
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
Definition: collision.h:25
virtual bool createPortGroups()
Called by init. Derived classes should override this method to create all their input/output port gro...
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:89
DtCollisionDetector * myCollisionDetector
Definition: obstructionSensor.h:210
Contains the DtSimComponent class declaration.
DtCollisionDetector::DtFeatureTypeContainer myFeatureObstructionTypes
Definition: obstructionSensor.h:212
DtCollisionDetector::DtObjectObstructionIDContainer myObjectObstructionTypes
Definition: obstructionSensor.h:211
DtObstructionSensor models a sensor able to detect potential collisions with other entities and/or te...
Definition: obstructionSensor.h:34
DtCollisionOutputPort * myPotentialCollisionInfoPort
Output Port Name: potential-collision-info Output Port Description: Information about an impending po...
Definition: obstructionSensor.h:201
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
A locally simulated VRF object.
Definition: localObject.h:98
const DtObstructionSensorDescriptor * myObstructionSensorDesc
Definition: obstructionSensor.h:213

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)