opensurgsim
OsgTextureCubeMap.h
1 // This file is a part of the OpenSurgSim project.
2 // Copyright 2013, SimQuest Solutions Inc.
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 #ifndef SURGSIM_GRAPHICS_OSGTEXTURECUBEMAP_H
17 #define SURGSIM_GRAPHICS_OSGTEXTURECUBEMAP_H
18 
19 #include "SurgSim/Graphics/OsgTexture.h"
20 #include "SurgSim/Graphics/TextureCubeMap.h"
21 
22 #include <osg/TextureCubeMap>
23 
24 #if defined(_MSC_VER)
25  #pragma warning(push)
26  #pragma warning(disable:4250)
27 #endif
28 
29 namespace SurgSim
30 {
31 
32 namespace Graphics
33 {
34 
39 {
40 public:
44 
45  void setSize(int width, int height) override;
46 
47  void getSize(int* width, int* height) const override;
48 
62  bool loadImage(const std::string& filePath) override;
63 
64  bool loadImageFaces(const std::string& negativeX, const std::string& positiveX,
65  const std::string& negativeY, const std::string& positiveY,
66  const std::string& negativeZ, const std::string& positiveZ) override;
67 
69  osg::ref_ptr<osg::TextureCubeMap> getOsgTextureCubeMap() const;
70 
71 protected:
79  osg::ref_ptr<osg::Image> copyImageBlock(const osg::Image& source,
80  size_t startColumn, size_t startRow,
81  size_t width, size_t height);
82 };
83 
84 }; // namespace Graphics
85 
86 }; // namespace SurgSim
87 
88 #if defined(_MSC_VER)
89  #pragma warning(pop)
90 #endif
91 
92 #endif // SURGSIM_GRAPHICS_OSGTEXTURECUBEMAP_H
Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
void setSize(int width, int height) override
Sets the size of the texture, which is the same for each face of the cube.
Definition: OsgTextureCubeMap.cpp:28
osg::ref_ptr< osg::Image > copyImageBlock(const osg::Image &source, size_t startColumn, size_t startRow, size_t width, size_t height)
Makes a copy of an image block.
Definition: OsgTextureCubeMap.cpp:115
OSG implementation of a Cube Map Texture.
Definition: OsgTextureCubeMap.h:38
Base class defining the interface for a Cube Map Graphics Texture.
Definition: TextureCubeMap.h:29
void getSize(int *width, int *height) const override
Gets the size of the texture, which is the same for each face of the cube.
Definition: OsgTextureCubeMap.cpp:33
OsgTextureCubeMap()
Constructor.
Definition: OsgTextureCubeMap.cpp:23
Base class for OSG implementations of Graphics Textures.
Definition: OsgTexture.h:32
bool loadImageFaces(const std::string &negativeX, const std::string &positiveX, const std::string &negativeY, const std::string &positiveY, const std::string &negativeZ, const std::string &positiveZ) override
Loads images from files into the faces of the cube map.
Definition: OsgTextureCubeMap.cpp:87
bool loadImage(const std::string &filePath) override
Loads an image into the texture from a file.
Definition: OsgTextureCubeMap.cpp:47
osg::ref_ptr< osg::TextureCubeMap > getOsgTextureCubeMap() const
Returns the osg::TextureCubeMap.
Definition: OsgTextureCubeMap.cpp:147