All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CommonTypes.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2012 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 #ifndef _GAZEBO_COMMON_TYPES_HH_
18 #define _GAZEBO_COMMON_TYPES_HH_
19 
20 #include <vector>
21 #include <map>
22 #include <string>
23 #include <boost/shared_ptr.hpp>
24 
26 // Defines
28 #ifndef NULL
29 #define NULL 0
30 #endif
31 
33 // Macros
35 
36 #if defined(__GNUC__)
37 #define GAZEBO_DEPRECATED __attribute__((deprecated))
38 #define GAZEBO_FORCEINLINE __attribute__((always_inline))
39 #elif defined(MSVC)
40 #define GAZEBO_DEPRECATED
41 #define GAZEBO_FORCEINLINE __forceinline
42 #else
43 #define GAZEBO_DEPRECATED
44 #define GAZEBO_FORCEINLINE
45 #endif
46 
47 
51 
53 namespace gazebo
54 {
55  class WorldPlugin;
56  class ModelPlugin;
57  class SensorPlugin;
58  class GUIPlugin;
59  class SystemPlugin;
60  class VisualPlugin;
61 
64  typedef boost::shared_ptr<WorldPlugin> WorldPluginPtr;
65 
68  typedef boost::shared_ptr<ModelPlugin> ModelPluginPtr;
69 
72  typedef boost::shared_ptr<SensorPlugin> SensorPluginPtr;
73 
76  typedef boost::shared_ptr<GUIPlugin> GUIPluginPtr;
77 
80  typedef boost::shared_ptr<SystemPlugin> SystemPluginPtr;
81 
84  typedef boost::shared_ptr<VisualPlugin> VisualPluginPtr;
85 
86  namespace common
87  {
88  class Param;
89  class Time;
90  class Image;
91  class Mesh;
92  class MouseEvent;
93  class PoseAnimation;
94  class NumericAnimation;
95  class Animation;
96  class Color;
97  class SkeletonAnimation;
98 
99  template <typename T>
100  class ParamT;
101 
104  typedef std::vector<common::Param*> Param_V;
105 
108  typedef std::map<std::string, std::string> StrStr_M;
109 
112  typedef boost::shared_ptr<Animation> AnimationPtr;
113 
116  typedef boost::shared_ptr<PoseAnimation> PoseAnimationPtr;
117 
120  typedef boost::shared_ptr<NumericAnimation> NumericAnimationPtr;
121  }
122 
123  namespace event
124  {
125  class Connection;
126 
129  typedef boost::shared_ptr<Connection> ConnectionPtr;
130 
133  typedef std::vector<ConnectionPtr> Connection_V;
134  }
135 }
137 
138 #endif