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 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 _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 Animation;
89  class Color;
90  class DiagnosticTimer;
91  class Image;
92  class Mesh;
93  class MouseEvent;
94  class NumericAnimation;
95  class Param;
96  class PoseAnimation;
97  class SkeletonAnimation;
98  class Time;
99 
100  template <typename T>
101  class ParamT;
102 
105  typedef std::vector<common::Param*> Param_V;
106 
109  typedef std::map<std::string, std::string> StrStr_M;
110 
113  typedef boost::shared_ptr<Animation> AnimationPtr;
114 
117  typedef boost::shared_ptr<PoseAnimation> PoseAnimationPtr;
118 
121  typedef boost::shared_ptr<NumericAnimation> NumericAnimationPtr;
122 
125  typedef boost::shared_ptr<DiagnosticTimer> DiagnosticTimerPtr;
126  }
127 
128  namespace event
129  {
130  class Connection;
131 
134  typedef boost::shared_ptr<Connection> ConnectionPtr;
135 
138  typedef std::vector<ConnectionPtr> Connection_V;
139  }
140 }
142 
143 #endif