VR-Forces 4.8 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) 2019 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  };
50 
53  class DT_DLL_VRVOSG DtCachedTextureHolder : public DtInstanceHolder<osg::ref_ptr<osg::Texture> >
54  {
55  public:
57 
58  virtual ~DtCachedTextureHolder();
59 
60  protected:
61 
62  void releaseGLObjects();
63 
65  };
66 
67 
68 
73  {
74  public:
75 
78  {
79  USE_GLOBAL, // use the global setting
80  FORCE_OFF, // force alpha to coverage off
81  FORCE_ON //force alpha to coverage on for this model
82  };
83 
84  public:
85 
87  virtual ~DtOsgModelInstance();
88 
91  virtual bool realize(DtModelDefinition& definition);
92 
95  virtual bool cloneInstance(DtModelDefinition& definition);
96 
98  virtual void addToConnector(DtOsgSceneConnector* connector);
99 
102  virtual bool removeFromConnector(DtOsgSceneConnector* connector);
103 
105  virtual osg::Node* rootNode();
107  virtual const osg::Node* rootNode() const;
109 
111  virtual osg::Node* sensorNode();
113  virtual const osg::Node* sensorNode() const;
115 
117  virtual bool saveModelToFile(const std::string& filename) const;
118 
119  virtual void enableColorBlending(bool b);
120 
121  virtual void setBlendColor(float r, float g, float b, float a);
122 
123  virtual void enableTexture(bool onOff);
124 
126 
129  typedef boost::unordered_map<std::string, bool> SensorRegionStateMap;
130 
132  virtual void addDynamicSensorRegion(const std::string& region);
133 
135  virtual void setDynamicSensorRegion(const std::string& region, bool state);
136 
138  virtual bool dynamicSensorRegion(const std::string& region);
139 
141  SensorRegionStateMap const dynamicSensorRegionMap() const;
142 
144  virtual void slot_atcGlobalModelEnableChanged();
145 
147  virtual bool alphaToCoverageEnabled();
148 
151  virtual void registerLightPoints(const std::string& groupName, bool daylightControlledLights);
152 
154  boost::signal< void(const std::string&) > signal_dynamicSensorRegionAdded;
155 
157  boost::signal< void(const std::string&, bool) > signal_dynamicSensorRegionChanged;
158 
160  boost::signal<void(bool)> signal_atcModeEnableChanged;
161 
163 
164  //Utility function for reading a Vec4 from a definition.
165  static osg::Vec4 readVec4(const std::string& paramName, const DtModelDefinition& definition, const osg::Vec4& initValue = osg::Vec4(1,1,1,1));
166 
167  //Utility function for reading a Vec3 from a definition.
168  static osg::Vec3 readVec3(const std::string& paramName, const DtModelDefinition& definition, const osg::Vec3& initValue = osg::Vec3(1, 1, 1));
169 
170  protected:
171 
174  virtual void updateColorBlending();
175 
176  virtual void updateColorBlending(osg::Node* node);
177  virtual void enableTexture(osg::Node* root, bool onOff);
178 
179  virtual void updateBoundingBoxViaContents();
180 
183 
185  virtual void setRootNode(osg::Node* node);
186 
187  protected:
188 
192 
195 
200  };
201 }
202 
203 
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:129
boost::signal< void(const std::string &, bool) > signal_dynamicSensorRegionChanged
Signal raised when a dynamic sensor region&#39;s state changes.
Definition: DtOsgModelInstance.h:157
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
boost::signal< void(bool)> signal_atcModeEnableChanged
Signal raised when alpha to coverage for this model is changed.
Definition: DtOsgModelInstance.h:160
bool myModelInstanceShaderSet
Has this model instance had a shader generated for it? Used for classes (ex.
Definition: DtOsgModelInstance.h:199
Helper class used to hold and own a pointer to an object.
Definition: DtVirtualBaseClass.h:38
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:33
osg::ref_ptr< osg::Node > myModelRoot
Definition: DtOsgModelInstance.h:189
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:64
SensorRegionStateMap mySensorRegionMap
Definition: DtOsgModelInstance.h:191
Definition: DtOsgModelInstance.h:79
The base class for simple OSG based model instances.
Definition: DtOsgModelInstance.h:72
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
boost::signal< void(const std::string &) > signal_dynamicSensorRegionAdded
Signal raised when a dynamic sensor region is added.
Definition: DtOsgModelInstance.h:154
AlphaToCoverageState myAlphaToCoverageState
Definition: DtOsgModelInstance.h:193
AlphaToCoverageState
The possible states of a control point.
Definition: DtOsgModelInstance.h:77
Contains makVrv::DtModelInstance class.
Base class to provide boost signal/slot management.
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtDe & myDe
Definition: DtOsgModelInstance.h:48
Helper class used to simple hold and own a pointer.
Definition: DtOsgModelInstance.h:53
DtSignalConnectionManager myConnections
Definition: DtOsgModelInstance.h:194
Helper class used to simple hold and own a pointer.
Definition: DtOsgModelInstance.h:37
Definition: DtOsgModelInstance.h:80
osg::ref_ptr< osg::StateSet > myCachedState
Definition: DtOsgModelInstance.h:190

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)