RigsofRods
Soft-body Physics Simulation
MeshObject.h
Go to the documentation of this file.
1 /*
2  This source file is part of Rigs of Rods
3  Copyright 2005-2012 Pierre-Michel Ricordel
4  Copyright 2007-2012 Thomas Fischer
5  Copyright 2013-2020 Petr Ohlidal
6 
7  For more information, see http://www.rigsofrods.org/
8 
9  Rigs of Rods is free software: you can redistribute it and/or modify
10  it under the terms of the GNU General Public License version 3, as
11  published by the Free Software Foundation.
12 
13  Rigs of Rods is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with Rigs of Rods. If not, see <http://www.gnu.org/licenses/>.
20 */
21 
25 
26 #pragma once
27 
28 #include <Ogre.h>
29 
30 #include "Application.h"
31 
34 
36 {
37 public:
38  MeshObject(Ogre::String meshName, Ogre::String entityRG, Ogre::String entityName, Ogre::SceneNode* sceneNode);
39 
40  void setMaterialName(Ogre::String m);
41  void setCastShadows(bool b);
42  void setVisible(bool b);
43  inline Ogre::Entity* getEntity() { return m_entity; };
44  inline Ogre::SceneNode* GetSceneNode() { return m_scene_node; }
45  inline Ogre::MeshPtr getLoadedMesh() { return m_mesh; }
46 
47 protected:
48  Ogre::SceneNode* m_scene_node = nullptr;
49  Ogre::Entity* m_entity = nullptr;
50  Ogre::MeshPtr m_mesh;
51  bool m_cast_shadows = false;
52 
53  void createEntity(Ogre::String meshName, Ogre::String entityRG, Ogre::String entityName);
54 };
55 
MeshObject::MeshObject
MeshObject(Ogre::String meshName, Ogre::String entityRG, Ogre::String entityName, Ogre::SceneNode *sceneNode)
Definition: MeshObject.cpp:35
MeshObject::m_mesh
Ogre::MeshPtr m_mesh
Definition: MeshObject.h:50
MeshObject::createEntity
void createEntity(Ogre::String meshName, Ogre::String entityRG, Ogre::String entityName)
Definition: MeshObject.cpp:69
MeshObject::getLoadedMesh
Ogre::MeshPtr getLoadedMesh()
Definition: MeshObject.h:45
MeshObject::setMaterialName
void setMaterialName(Ogre::String m)
Definition: MeshObject.cpp:43
MeshObject::getEntity
Ogre::Entity * getEntity()
Definition: MeshObject.h:43
MeshObject::m_entity
Ogre::Entity * m_entity
Definition: MeshObject.h:49
MeshObject::m_cast_shadows
bool m_cast_shadows
Definition: MeshObject.h:51
MeshObject::m_scene_node
Ogre::SceneNode * m_scene_node
Definition: MeshObject.h:48
MeshObject
Definition: MeshObject.h:35
Application.h
Central state/object manager and communications hub.
MeshObject::GetSceneNode
Ogre::SceneNode * GetSceneNode()
Definition: MeshObject.h:44
MeshObject::setVisible
void setVisible(bool b)
Definition: MeshObject.cpp:60
MeshObject::setCastShadows
void setCastShadows(bool b)
Definition: MeshObject.cpp:51