Gazebo Rendering

API Reference

3.7.2
gz/rendering/ogre2/Ogre2Mesh.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 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 GZ_RENDERING_OGRE2_OGRE2MESH_HH_
18 #define GZ_RENDERING_OGRE2_OGRE2MESH_HH_
19 
20 #include <map>
21 #include <string>
22 #include <vector>
27 
28 namespace Ogre
29 {
30  class Item;
31  class SubItem;
32 }
33 
34 namespace ignition
35 {
36  namespace rendering
37  {
38  inline namespace IGNITION_RENDERING_VERSION_NAMESPACE {
39  //
41  class IGNITION_RENDERING_OGRE2_VISIBLE Ogre2Mesh :
42  public BaseMesh<Ogre2Geometry>
43  {
45  protected: Ogre2Mesh();
46 
48  public: virtual ~Ogre2Mesh();
49 
50  // Documentation inherited
51  public: virtual void Destroy() override;
52 
53  // Documentation inherited.
54  public: virtual bool HasSkeleton() const override;
55 
56  // Documentation inherited.
58  SkeletonLocalTransforms() const override;
59 
60  // Documentation inherited.
61  public: virtual void SetSkeletonLocalTransforms(
62  const std::map<std::string, math::Matrix4d> &_tfs) override;
63 
64  // Documentation inherited
65  public: virtual Ogre::MovableObject *OgreObject() const override;
66 
68  protected: virtual SubMeshStorePtr SubMeshes() const override;
69 
72 
74  protected: Ogre::Item *ogreItem = nullptr;
75 
77  private: friend class Ogre2Scene;
78 
80  private: friend class Ogre2MeshFactory;
81  };
82 
84  class IGNITION_RENDERING_OGRE2_VISIBLE Ogre2SubMesh :
85  public BaseSubMesh<Ogre2Object>
86  {
88  protected: Ogre2SubMesh();
89 
91  public: virtual ~Ogre2SubMesh();
92 
94  public: virtual Ogre::SubItem *Ogre2SubItem() const;
95 
98  protected: virtual void SetMaterialImpl(MaterialPtr _material);
99 
101  protected: virtual void Init();
102 
104  protected: Ogre::SubItem *ogreSubItem = nullptr;
105 
107  private: friend class Ogre2Scene;
108 
111  private: friend class Ogre2SubMeshStoreFactory;
112  };
113  }
114  }
115 }
116 #endif
Definition: gz/rendering/ogre/OgreCamera.hh:27
Ogre2.x implementation of the submesh class.
Definition: gz/rendering/ogre2/Ogre2Mesh.hh:84
STL class.
Definition: gz/rendering/base/BaseMesh.hh:95
Ogre2SubMeshStorePtr subMeshes
Store containing all the submeshes.
Definition: gz/rendering/ogre2/Ogre2Mesh.hh:71
Ogre2.x implementation of a submesh store factory class.
Definition: gz/rendering/ogre2/Ogre2MeshFactory.hh:94
Ogre2.x implementation of the scene class.
Definition: gz/rendering/ogre2/Ogre2Scene.hh:41
Ogre2.x implementation of the mesh factory class.
Definition: gz/rendering/ogre2/Ogre2MeshFactory.hh:41
Definition: gz/rendering/ogre/OgreObject.hh:32
Definition: gz/rendering/base/BaseMesh.hh:34
STL class.
Ogre2.x implementation of the mesh class.
Definition: gz/rendering/ogre2/Ogre2Mesh.hh:41