VR-Forces 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) 2023 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(const DtModelDefinition& definition);
102 
105  virtual bool cloneInstance(const 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 
157  boost::signalslib::signal< void(const std::string&) > signal_dynamicSensorRegionAdded;
158 
160  boost::signalslib::signal< void(const std::string&, bool) > signal_dynamicSensorRegionChanged;
161 
163  boost::signalslib::signal<void(bool)> signal_atcModeEnableChanged;
164 
166 
167  protected:
168 
171  virtual void updateColorBlending();
172 
173  virtual void updateColorBlending(osg::Node* node);
174  virtual void enableTexture(osg::Node* root, bool onOff);
175 
176  virtual void updateBoundingBoxViaContents();
177 
178 
180  virtual void setRootNode(osg::Node* node);
181 
185  virtual void setUpDepthTest(osg::StateSet* stateSet);
186 
187  protected:
188 
192 
195 
200  };
201 }
202 
203 
The base class for all model instances.
Definition: DtModelInstance.h:41
boost::signalslib::signal< void(const std::string &, bool) > signal_dynamicSensorRegionChanged
Signal raised when a dynamic sensor region&#39;s state changes.
Definition: DtOsgModelInstance.h:160
#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:199
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:42
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:77
DtDe & myDe
Definition: DtOsgModelInstance.h:67
SensorRegionStateMap mySensorRegionMap
Definition: DtOsgModelInstance.h:191
boost::signalslib::signal< void(bool)> signal_atcModeEnableChanged
Signal raised when alpha to coverage for this model is changed.
Definition: DtOsgModelInstance.h:163
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:193
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:157
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:72
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:194
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:190

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)