WideAngleCameraPrivate.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015-2016 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 #ifndef _GAZEBO_RENDERING_WIDE_ANGLE_CAMERA_CAMERA_PRIVATE_HH_
18 #define _GAZEBO_RENDERING_WIDE_ANGLE_CAMERA_CAMERA_PRIVATE_HH_
19 
20 #include <mutex>
21 
22 #include "gazebo/msgs/msgs.hh"
23 #include "gazebo/util/system.hh"
24 
25 
26 // Forward declarations
27 namespace Ogre
28 {
29  class Camera;
30  class CompositorInstance;
31  class RenderTarget;
32  class Texture;
33  class Viewport;
34 }
35 
36 namespace gazebo
37 {
38  namespace rendering
39  {
40  // Forward declarations
41  class CameraLens;
42 
45  {
47  public: int envTextureSize;
48 
50  public: Ogre::CompositorInstance *cubeMapCompInstance;
51 
54  public: Ogre::Camera *envCameras[6];
55 
57  public: Ogre::RenderTarget *envRenderTargets[6];
58 
60  public: Ogre::Viewport *envViewports[6];
61 
63  public: Ogre::Texture *envCubeMapTexture;
64 
66  public: Ogre::MaterialPtr compMat;
67 
69  public: CameraLens *lens;
70 
72  public: std::mutex renderMutex;
73 
75  public: std::mutex dataMutex;
76  };
77  }
78 }
79 #endif
Private data for the WideAngleCamera class.
Definition: WideAngleCameraPrivate.hh:44
std::mutex dataMutex
Mutex to lock while setting or reading camera properties.
Definition: WideAngleCameraPrivate.hh:75
Describes a lens of a camera as amapping function of type r = c1*f*fun(theta/c2+c3) ...
Definition: WideAngleCamera.hh:59
Ogre::Texture * envCubeMapTexture
A single cube map texture.
Definition: WideAngleCameraPrivate.hh:63
#define GZ_RENDERING_VISIBLE
Definition: system.hh:209
CameraLens * lens
Camera lens description.
Definition: WideAngleCameraPrivate.hh:69
Ogre::MaterialPtr compMat
Pointer to material, used for second rendering pass.
Definition: WideAngleCameraPrivate.hh:66
int envTextureSize
Environment texture size.
Definition: WideAngleCameraPrivate.hh:47
std::mutex renderMutex
Mutex to lock while rendering the world.
Definition: WideAngleCameraPrivate.hh:72
Ogre::CompositorInstance * cubeMapCompInstance
Compositor used to render rectangle with attached cube map.
Definition: WideAngleCameraPrivate.hh:50