VR-Forces 4.10 Class Documentation
 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) 2020 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 
21 #include <boost/unordered_map.hpp>
23 
24 namespace osg
25 {
26  class Node;
27  class Texture;
28  class StateSet;
29 }
30 
31 namespace makVrv
32 {
33  class DtOsgSceneConnector;
34 
37  class DT_DLL_VRVOSG DtCachedNodeHolder : public DtInstanceHolder<osg::ref_ptr<osg::Node> >
38  {
39  public:
40  DtCachedNodeHolder(DtDe& de, osg::Node* node);
41 
42  virtual ~DtCachedNodeHolder();
43 
44  protected:
45 
46  void releaseGLObjects();
47 
49 
51  };
52 
55  class DT_DLL_VRVOSG DtCachedTextureHolder : public DtInstanceHolder<osg::ref_ptr<osg::Texture> >
56  {
57  public:
59 
60  virtual ~DtCachedTextureHolder();
61 
62  protected:
63 
64  void releaseGLObjects();
65 
67 
69  };
70 
71 
72 
77  {
78  public:
79 
82  {
83  USE_GLOBAL, // use the global setting
84  FORCE_OFF, // force alpha to coverage off
85  FORCE_ON //force alpha to coverage on for this model
86  };
87 
88  public:
90  virtual ~DtOsgModelInstance();
91 
92  protected:
95 
96  public:
97 
100  virtual bool realize(DtModelDefinition& definition);
101 
104  virtual bool cloneInstance(DtModelDefinition& definition);
105 
107  virtual void addToConnector(DtOsgSceneConnector* connector);
108 
111  virtual bool removeFromConnector(DtOsgSceneConnector* connector);
112 
114  virtual osg::Node* rootNode();
116  virtual const osg::Node* rootNode() const;
118 
120  virtual osg::Node* sensorNode();
122  virtual const osg::Node* sensorNode() const;
124 
126  virtual bool saveModelToFile(const std::string& filename) const;
127 
128  virtual void enableColorBlending(bool b);
129 
130  virtual void setBlendColor(float r, float g, float b, float a);
131 
132  virtual void enableTexture(bool onOff);
133 
135 
138  typedef boost::unordered_map<std::string, bool> SensorRegionStateMap;
139 
141  virtual void addDynamicSensorRegion(const std::string& region);
142 
144  virtual void setDynamicSensorRegion(const std::string& region, bool state);
145 
147  virtual bool dynamicSensorRegion(const std::string& region);
148 
150  SensorRegionStateMap const dynamicSensorRegionMap() const;
151 
153  virtual void slot_atcGlobalModelEnableChanged();
154 
156  virtual bool alphaToCoverageEnabled();
157 
160  virtual void registerLightPoints(const std::string& groupName, bool daylightControlledLights);
161 
163  boost::signalslib::signal< void(const std::string&) > signal_dynamicSensorRegionAdded;
164 
166  boost::signalslib::signal< void(const std::string&, bool) > signal_dynamicSensorRegionChanged;
167 
169  boost::signalslib::signal<void(bool)> signal_atcModeEnableChanged;
170 
172 
173  //Utility function for reading a Vec4 from a definition.
174  static osg::Vec4 readVec4(const std::string& paramName, const DtModelDefinition& definition, const osg::Vec4& initValue = osg::Vec4(1,1,1,1));
175 
176  //Utility function for reading a Vec3 from a definition.
177  static osg::Vec3 readVec3(const std::string& paramName, const DtModelDefinition& definition, const osg::Vec3& initValue = osg::Vec3(1, 1, 1));
178 
179  protected:
180 
183  virtual void updateColorBlending();
184 
185  virtual void updateColorBlending(osg::Node* node);
186  virtual void enableTexture(osg::Node* root, bool onOff);
187 
188  virtual void updateBoundingBoxViaContents();
189 
190 
192  virtual void setRootNode(osg::Node* node);
193 
197  virtual void setUpDepthTest(osg::StateSet* stateSet);
198 
199  protected:
200 
204 
207 
212  };
213 }
214 
215 
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
The base class for all model instances.
Definition: DtModelInstance.h:39
boost::unordered_map< std::string, bool > SensorRegionStateMap
Dynamic Sensor Region methods.
Definition: DtOsgModelInstance.h:138
boost::signalslib::signal< void(const std::string &, bool) > signal_dynamicSensorRegionChanged
Signal raised when a dynamic sensor region&#39;s state changes.
Definition: DtOsgModelInstance.h:166
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
bool myModelInstanceShaderSet
Has this model instance had a shader generated for it? Used for classes (ex.
Definition: DtOsgModelInstance.h:211
DtSignalConnectionManager myConnectionManager
Definition: DtOsgModelInstance.h:50
Helper class used to hold and own a pointer to an object.
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:201
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:66
SensorRegionStateMap mySensorRegionMap
Definition: DtOsgModelInstance.h:203
boost::signalslib::signal< void(bool)> signal_atcModeEnableChanged
Signal raised when alpha to coverage for this model is changed.
Definition: DtOsgModelInstance.h:169
Definition: DtOsgModelInstance.h:83
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:76
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
AlphaToCoverageState myAlphaToCoverageState
Definition: DtOsgModelInstance.h:205
AlphaToCoverageState
The possible states of a control point.
Definition: DtOsgModelInstance.h:81
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:163
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtSignalConnectionManager myConnectionManager
Definition: DtOsgModelInstance.h:68
DtDe & myDe
Definition: DtOsgModelInstance.h:48
Helper class used to simple hold and own a pointer.
Definition: DtOsgModelInstance.h:55
DtSignalConnectionManager myConnections
Definition: DtOsgModelInstance.h:206
Helper class used to simple hold and own a pointer.
Definition: DtOsgModelInstance.h:37
Definition: DtOsgModelInstance.h:84
osg::ref_ptr< osg::StateSet > myCachedState
Definition: DtOsgModelInstance.h:202

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)