VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSenSimSensorModule.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 #pragma once
6 
10 
11 #include <vrvSenSim/vrvSenSim.h>
12 
13 #include <vrvCore/DtSensorModule.h>
14 #include <vrvCore/DtUniqueID.h>
15 
17 
19 
20 #include <osg/Camera>
21 
22 
23 namespace makVrv
24 {
25  class DtSenSim;
26  class DtDe;
27  class DtOsgChannel;
28  class DtModelInstance;
29  class DtGlBuffer;
30  class DtSignalConnectionManager;
31  class DtOsgModelInstance;
32  class DtModel;
33 
39  {
40  public:
42  enum ModelType
43  {
46  ModelTypeEntity
47  };
48 
49  public:
52 
53 
55  virtual ~DtSenSimSensorModule();
56 
60  virtual std::string name() const;
61 
65  virtual std::string displayName() const;
66 
68  virtual void enableSensor(DtSensor& sensor, DtChannel& channel);
69 
71  virtual void disableSensor(DtSensor& sensor, DtChannel& channel);
72 
74  virtual void defaultSensorConfiguration(
76 
78  virtual DtSenSim* senSim(DtOsgChannel* osgChannel);
79 
82  virtual void initModel(DtModelInstance& model);
83 
84 
85  protected:
86 
89  virtual void slot_postInit();
90 
93  void updateCameraUniforms(const DtSensor* sensor, DtOsgChannel* osgChannel);
94 
95  //@name Handlers for sensor attribute changes
97  virtual void slot_attributeChangedBool(DtSenSim* sensim, const std::string& attributeName, bool val, const DtSensor* sensor, DtOsgChannel* osgChannel);
98  virtual void slot_attributeChangedFloat(DtSenSim* sensim, const std::string& attributeName, float val, const DtSensor* sensor, DtOsgChannel* osgChannel);
99  virtual void slot_setFromRecord(const DtSensor* sensor, DtOsgChannel* osgChannel);
100  virtual void slot_channelToBeDestroyed(DtChannel *channel);
102 
105  virtual void cleanupChannel(DtChannel& channel);
106 
109  virtual void modelToBeDestroyed(DtModelInstance& model);
110 
113  virtual void initInstance(DtUniqueID id, DtModel* model);
114 
117  virtual void updateActiveRegion(DtOsgModelInstance* model, const std::string& regionName, bool value);
118  protected:
119 
121  typedef std::map<DtChannel*, DtSenSim*> ChannelToSenSim;
123 
124  typedef std::map<DtChannel*, DtSignalConnectionManager*> ChannelToSignalManager;
126 
128 
130 
131  typedef std::map < DtOsgModelInstance*, DtUniqueID > ModelInstanceIdMap;
132 
134 
135  };
136 
138  {
139  public:
140  DtSenSimPostProcessor(const std::string& postProcessType, bool handles2D, DtSenSim* senSim, DtDe& de);
141 
142  virtual ~DtSenSimPostProcessor();
143 
144  virtual bool update(DtChannel *channel);
145 
146  protected:
149  };
150 
152  : public DtPostProcessorCreator
153  {
154  public:
156  friend class DtPostProcessManager;
157 
160 
162  virtual ~DtSenSimPostProcessorCreator();
163 
164  protected:
166  virtual DtPostProcessor* create(DtDe& de, const std::string& postProcessType);
167  };
168 }
The base class for all model instances.
Definition: DtModelInstance.h:39
Contains makVrv::DtSensorModule class.
std::map< DtChannel *, DtSignalConnectionManager * > ChannelToSignalManager
Definition: DtSenSimSensorModule.h:124
DtDe & myDe
Definition: DtSenSimSensorModule.h:127
Contains DLL export macros.
Definition: DtSenSimSensorModule.h:137
DtPostProcessorCreator is the common base class for all post processor creators.
Definition: DtPostProcessor.h:213
Interface for a sensor implementation module.
Definition: DtSensorModule.h:31
DtSignalConnectionManager mySignalManager
Definition: DtSenSimSensorModule.h:129
DtDe & myDe
Definition: DtSenSimSensorModule.h:148
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:75
std::map< DtOsgModelInstance *, DtUniqueID > ModelInstanceIdMap
Definition: DtSenSimSensorModule.h:131
JRM SenSim sensor module implementation.
Definition: DtSenSimSensorModule.h:38
The abstract Channel Class.
Definition: DtChannel.h:29
Definition: DtSenSim.h:26
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:72
ModelInstanceIdMap myModelInstanceToInstanceId
Definition: DtSenSimSensorModule.h:133
std::map< DtChannel *, DtSenSim * > ChannelToSenSim
Map of channels to DtSenSim objects.
Definition: DtSenSimSensorModule.h:121
This class provides the OSG-specific management of post-processing effects.
Definition: DtPostProcessManager.h:25
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
ChannelToSignalManager myChannelToSignalMap
Definition: DtSenSimSensorModule.h:125
Definition of a sensor.
Definition: DtSensor.h:30
Definition: DtSenSimSensorModule.h:151
ModelType
used by the lighting shader to know which adjustment to use based on model type
Definition: DtSenSimSensorModule.h:42
DtSenSim * mySenSim
Definition: DtSenSimSensorModule.h:147
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
Base class to provide boost signal/slot management.
A model which owns a single model instance.
Definition: DtModel.h:56
Contains makVrv::DtUniqueID type.
ChannelToSenSim mySenSimChannels
Definition: DtSenSimSensorModule.h:122
Record for a sensor definition.
Definition: DtSensorRecord.h:19
#define DT_DLL_VRVSENSIM
Definition: vrvSenSim.h:19
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Definition: DtSenSimSensorModule.h:45
This class provides the OSG-specific implementation of a post processor.
Definition: DtPostProcessor.h:62
Definition: DtSenSimSensorModule.h:44

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)