All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Grid.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2011 Nate Koenig
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 // This was leveraged from rviz.
18 
19 #ifndef _GRID_HH_
20 #define _GRID_HH_
21 
22 #include <stdint.h>
23 #include <vector>
24 #include <string>
25 
26 // TODO: remove this line
27 #include "rendering/ogre_gazebo.h"
28 
29 #include "common/Color.hh"
30 
31 namespace Ogre
32 {
33  class ManualObject;
34  class SceneNode;
35  class Any;
36 }
37 
38 namespace gazebo
39 {
40  namespace rendering
41  {
42  class Scene;
43 
46 
52  class Grid
53  {
62  public: Grid(Scene *_scene, uint32_t _cellCount, float _cellLength,
63  float _lineWidth, const common::Color &_color);
64 
66  public: ~Grid();
67 
69  public: void Init();
70 
75  public: void Enable(bool _enable);
76 
79  public: Ogre::SceneNode *GetSceneNode() { return this->sceneNode; }
80 
83  public: void SetUserData(const Ogre::Any &_data);
84 
87  public: void SetColor(const common::Color &_color);
88 
91  public: common::Color GetColor() const {return this->color;}
92 
95  public: void SetCellCount(uint32_t _count);
96 
98  public: uint32_t GetCellCount() const {return this->cellCount;}
99 
102  public: void SetCellLength(float _len);
103 
106  public: float GetCellLength() const {return this->cellLength;}
107 
110  public: void SetLineWidth(float _width);
111 
114  public: float GetLineWidth() const {return this->lineWidth;}
115 
118  public: void SetHeight(uint32_t _count);
119 
122  public: uint32_t GetHeight() const {return this->height;}
123 
124  private: void Create();
125 
126  private: Ogre::SceneNode *sceneNode;
127  private: Ogre::ManualObject *manualObject;
128 
129  private: Ogre::MaterialPtr material;
130 
131  private: unsigned int cellCount;
132  private: float cellLength;
133  private: float lineWidth;
134  private: common::Color color;
135  private: float heightOffset;
136 
137  private: std::string name;
138  private: unsigned int height;
139 
140  private: Scene *scene;
141  };
143  }
144 }
145 #endif