VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtOsgModelInstance.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
15 #include <osg/ref_ptr>
16 #include <osg/Vec3>
17 #include <osg/Vec4>
18 #include <osg/Texture>
19 #include <osg/Node>
20 
22 
23 #include <unordered_map>
24 
25 namespace osg
26 {
27  class Node;
28  class Texture;
29  class StateSet;
30 }
31 
32 namespace makVrv
33 {
34  class DtOsgSceneConnector;
35 
38  class DT_DLL_VRVOSG DtCachedNodeHolder : public DtInstanceHolder<osg::ref_ptr<osg::Node> >
39  {
40  public:
41  DtCachedNodeHolder(DtDe& de, osg::Node* node);
42 
43  virtual ~DtCachedNodeHolder();
44 
45  protected:
46 
47  void releaseGLObjects();
48 
50 
52  };
53 
56  class DT_DLL_VRVOSG DtCachedTextureHolder : public DtInstanceHolder<osg::ref_ptr<osg::Texture> >
57  {
58  public:
59  DtCachedTextureHolder(DtDe&, osg::Texture* node);
60 
61  virtual ~DtCachedTextureHolder();
62 
63  protected:
64 
65  void releaseGLObjects();
66 
68 
70  };
71 
72 
73 
78  {
79  public:
80 
83  {
84  USE_GLOBAL, // use the global setting
85  FORCE_OFF, // force alpha to coverage off
86  FORCE_ON //force alpha to coverage on for this model
87  };
88 
89  public:
91  virtual ~DtOsgModelInstance();
92 
93  protected:
96 
97  public:
98 
101  virtual bool realize(DtModelDefinition& definition);
102 
105  virtual bool cloneInstance(DtModelDefinition& definition);
106 
108  virtual void addToConnector(DtOsgSceneConnector* connector);
109 
112  virtual bool removeFromConnector(DtOsgSceneConnector* connector);
113 
115  virtual osg::Node* rootNode();
117  virtual const osg::Node* rootNode() const;
119 
121  virtual osg::Node* sensorNode();
123  virtual const osg::Node* sensorNode() const;
125 
127  virtual bool saveModelToFile(const std::string& filename) const;
128 
129  virtual void enableColorBlending(bool b);
130 
131  virtual void setBlendColor(float r, float g, float b, float a);
132 
133  virtual void enableTexture(bool onOff);
134 
136 
139  typedef std::unordered_map<std::string, bool> SensorRegionStateMap;
140 
142  virtual void setDynamicSensorRegion(const std::string& region, bool state);
143 
145  virtual bool dynamicSensorRegion(const std::string& region);
146 
148  virtual const SensorRegionStateMap& dynamicSensorRegionMap() const;
149 
151  virtual void slot_atcGlobalModelEnableChanged();
152 
154  virtual bool alphaToCoverageEnabled();
155 
158  virtual void registerLightPoints(const std::string& groupName, bool daylightControlledLights);
159 
161  boost::signalslib::signal< void(const std::string&) > signal_dynamicSensorRegionAdded;
162 
164  boost::signalslib::signal< void(const std::string&, bool) > signal_dynamicSensorRegionChanged;
165 
167  boost::signalslib::signal<void(bool)> signal_atcModeEnableChanged;
168 
170 
171  //Utility function for reading a Vec4 from a definition.
172  static osg::Vec4 readVec4(const std::string& paramName, const DtModelDefinition& definition, const osg::Vec4& initValue = osg::Vec4(1,1,1,1));
173 
174  //Utility function for reading a Vec3 from a definition.
175  static osg::Vec3 readVec3(const std::string& paramName, const DtModelDefinition& definition, const osg::Vec3& initValue = osg::Vec3(1, 1, 1));
176 
177  protected:
178 
181  virtual void updateColorBlending();
182 
183  virtual void updateColorBlending(osg::Node* node);
184  virtual void enableTexture(osg::Node* root, bool onOff);
185 
186  virtual void updateBoundingBoxViaContents();
187 
188 
190  virtual void setRootNode(osg::Node* node);
191 
195  virtual void setUpDepthTest(osg::StateSet* stateSet);
196 
197  protected:
198 
202 
205 
210  };
211 }
212 
213 
The base class for all model instances.
Definition: DtModelInstance.h:39
boost::signalslib::signal< void(const std::string &, bool) > signal_dynamicSensorRegionChanged
Signal raised when a dynamic sensor region&#39;s state changes.
Definition: DtOsgModelInstance.h:164
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myModelInstanceShaderSet
Has this model instance had a shader generated for it? Used for classes (ex. Dt3DSegmentedLineModelIn...
Definition: DtOsgModelInstance.h:209
DtSignalConnectionManager myConnectionManager
Definition: DtOsgModelInstance.h:51
Helper class used to hold and own a pointer to an object. This class destroys the referenced object d...
Definition: DtVirtualBaseClass.h:35
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
osg::ref_ptr< osg::Node > myModelRoot
Definition: DtOsgModelInstance.h:199
DtOsgSceneConnector is used by models to create an OSG position/orientation transform so that it can ...
Definition: DtOsgSceneConnector.h:76
DtDe & myDe
Definition: DtOsgModelInstance.h:67
SensorRegionStateMap mySensorRegionMap
Definition: DtOsgModelInstance.h:201
boost::signalslib::signal< void(bool)> signal_atcModeEnableChanged
Signal raised when alpha to coverage for this model is changed.
Definition: DtOsgModelInstance.h:167
Definition: DtOsgModelInstance.h:84
The base class for simple OSG based model instances. This call can&#39;t be instantiated itself...
Definition: DtOsgModelInstance.h:77
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::unordered_map< std::string, bool > SensorRegionStateMap
Dynamic Sensor Region methods.
Definition: DtOsgModelInstance.h:139
AlphaToCoverageState myAlphaToCoverageState
Definition: DtOsgModelInstance.h:203
AlphaToCoverageState
The possible states of a control point.
Definition: DtOsgModelInstance.h:82
Contains makVrv::DtModelInstance class.
Base class to provide boost signal/slot management.
boost::signalslib::signal< void(const std::string &) > signal_dynamicSensorRegionAdded
Signal raised when a dynamic sensor region is added.
Definition: DtOsgModelInstance.h:161
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
DtSignalConnectionManager myConnectionManager
Definition: DtOsgModelInstance.h:69
DtDe & myDe
Definition: DtOsgModelInstance.h:49
Helper class used to simple hold and own a pointer.
Definition: DtOsgModelInstance.h:56
DtSignalConnectionManager myConnections
Definition: DtOsgModelInstance.h:204
Helper class used to simple hold and own a pointer.
Definition: DtOsgModelInstance.h:38
Definition: DtOsgModelInstance.h:85
osg::ref_ptr< osg::StateSet > myCachedState
Definition: DtOsgModelInstance.h:200

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)