VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSilverLiningCameraManager.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>
13 
15 
16 
17 #include <osg/observer_ptr>
18 #include <osg/Camera>
19 
20 #include <OpenThreads/Mutex>
21 
22 #include <map>
23 #include <atomic>
24 
25 
26 namespace SilverLining
27 {
28  class Camera;
29  class ThreadCameraStreamData;
30  class Atmosphere;
31 }
32 
33 namespace osg
34 {
35  class Camera;
36 }
37 
38 namespace makVrv
39 {
42 
45 
47  template <>
48  inline const char* creatorTypeName<DtSilverLiningCameraManager>(void) { return "DtSilverLiningCameraManagerCreator"; }
49 
51  {
52  public:
55 
57  virtual ~DtSilverLiningCameraManager();
58 
59  protected:
62 
63  private:
65  DtSilverLiningCameraManager() = delete;
69  DtSilverLiningCameraManager& operator=(const DtSilverLiningCameraManager& rhs) = delete;
70 
71  public:
73  virtual SilverLining::ThreadCameraStreamData* getOrCreateSilverLiningTcsData(const osg::Camera* osgCamera);
74 
76  virtual SilverLining::ThreadCameraStreamData* findSilverLiningTcsData(const osg::Camera* osgCamera);
77 
80  virtual void flushInvalidCameras(const boost::function<void(SilverLining::ThreadCameraStreamData*)>& callback);
81 
83  virtual void deleteAll();
84 
86  virtual void deleteCloudLayer(unsigned int layerHandle);
87 
89  virtual void reloadShaders(const std::vector<unsigned int>& shaderVector
90  , const std::string& userDefinedVertString, const std::string& userDefinedFragString);
91 
93  virtual void setAtmosphere(SilverLining::Atmosphere* atmosphere);
94 
99  virtual void findTcsDatasWithContext(std::vector<SilverLining::ThreadCameraStreamData*>& vecTcsDatas, void* context);
100 
101  protected:
105  virtual void addGraphicsContextIfNecessary(const osg::Camera* osgCamera, SilverLining::ThreadCameraStreamData* tcsData);
106 
107  protected:
109 
110  typedef std::map< osg::observer_ptr<const osg::Camera>, SilverLining::ThreadCameraStreamData*> MapOsgCamerasToTcsDatas;
112 
116 
117  SilverLining::Atmosphere* myAtmosphere;
118 
119  std::unordered_map<SilverLining::ThreadCameraStreamData*, void*> myMapTcsDataToContext;
120 
121  protected:
122 
123  static std::atomic<int> theCameraId;
124  };
125 }
const char * creatorTypeName< DtSilverLiningCameraManager >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtSilverLiningCameraManager.h:48
MapOsgCamerasToTcsDatas myMapOsgCamerasToTcsDatas
Definition: DtSilverLiningCameraManager.h:111
DtDe & myDe
Definition: DtSilverLiningCameraManager.h:108
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Definition: DtSilverLiningCameraManager.h:50
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
OpenThreads::Mutex myMapMutex
the map can be accessed from cull or draw of the sky/cloud. so we need a mutex
Definition: DtSilverLiningCameraManager.h:115
SilverLining::Atmosphere * myAtmosphere
Definition: DtSilverLiningCameraManager.h:117
DtVirtualBaseClassCreator< DtSilverLiningCameraManager > DtSilverLiningCameraManagerCreator
creator
Definition: DtSilverLiningCameraManager.h:41
friend DtSilverLiningCameraManagerCreator
only creator can create
Definition: DtSilverLiningCameraManager.h:54
OpenThreads::Mutex Mutex
Definition: DtOsgThreadingUtils.h:12
static std::atomic< int > theCameraId
Definition: DtSilverLiningCameraManager.h:123
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
std::unordered_map< SilverLining::ThreadCameraStreamData *, void * > myMapTcsDataToContext
Definition: DtSilverLiningCameraManager.h:119
std::map< osg::observer_ptr< const osg::Camera >, SilverLining::ThreadCameraStreamData * > MapOsgCamerasToTcsDatas
Definition: DtSilverLiningCameraManager.h:110

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)