VR-Forces 5.0.1 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 
92  virtual void setAtmosphere(SilverLining::Atmosphere* atmosphere);
93 
98  virtual void findTcsDatasWithContext(std::vector<SilverLining::ThreadCameraStreamData*>& vecTcsDatas, void* context);
99 
100  protected:
104  virtual void addGraphicsContextIfNecessary(const osg::Camera* osgCamera, SilverLining::ThreadCameraStreamData* tcsData);
105 
106  protected:
108 
109  typedef std::map< osg::observer_ptr<const osg::Camera>, SilverLining::ThreadCameraStreamData*> MapOsgCamerasToTcsDatas;
111 
115 
116  SilverLining::Atmosphere* myAtmosphere;
117 
118  std::unordered_map<SilverLining::ThreadCameraStreamData*, void*> myMapTcsDataToContext;
119 
120  protected:
121 
122  static std::atomic<int> theCameraId;
123  };
124 }
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:110
DtDe & myDe
Definition: DtSilverLiningCameraManager.h:107
#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:114
SilverLining::Atmosphere * myAtmosphere
Definition: DtSilverLiningCameraManager.h:116
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:122
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:118
std::map< osg::observer_ptr< const osg::Camera >, SilverLining::ThreadCameraStreamData * > MapOsgCamerasToTcsDatas
Definition: DtSilverLiningCameraManager.h:109

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)