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 (C) 2012-2014 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 #include "gazebo/util/system.hh"
25 
27 // Defines
29 #ifndef NULL
30 #define NULL 0
31 #endif
32 
34 // Macros
36 
37 #if defined(__GNUC__)
38 #define GAZEBO_DEPRECATED(version) __attribute__((deprecated))
39 #define GAZEBO_FORCEINLINE __attribute__((always_inline))
40 #elif defined(MSVC)
41 #define GAZEBO_DEPRECATED(version) ()
42 #define GAZEBO_FORCEINLINE __forceinline
43 #else
44 #define GAZEBO_DEPRECATED(version) ()
45 #define GAZEBO_FORCEINLINE
46 #endif
47 
48 
52 
54 namespace gazebo
55 {
56  class WorldPlugin;
57  class ModelPlugin;
58  class SensorPlugin;
59  class GUIPlugin;
60  class SystemPlugin;
61  class VisualPlugin;
62 
65  typedef boost::shared_ptr<WorldPlugin> WorldPluginPtr;
66 
69  typedef boost::shared_ptr<ModelPlugin> ModelPluginPtr;
70 
73  typedef boost::shared_ptr<SensorPlugin> SensorPluginPtr;
74 
77  typedef boost::shared_ptr<GUIPlugin> GUIPluginPtr;
78 
81  typedef boost::shared_ptr<SystemPlugin> SystemPluginPtr;
82 
85  typedef boost::shared_ptr<VisualPlugin> VisualPluginPtr;
86 
87  namespace common
88  {
89  class Animation;
90  class Color;
91  class DiagnosticTimer;
92  class Image;
93  class Mesh;
94  class SubMesh;
95  class MouseEvent;
96  class NumericAnimation;
97  class Param;
98  class PoseAnimation;
99  class SkeletonAnimation;
100  class SphericalCoordinates;
101  class Time;
102 
103  template <typename T>
104  class ParamT;
105 
107  static const double SpeedOfLight = 299792458;
108 
111  typedef std::vector<common::Param*> Param_V;
112 
115  typedef std::map<std::string, std::string> StrStr_M;
116 
119  typedef boost::shared_ptr<Animation> AnimationPtr;
120 
123  typedef boost::shared_ptr<PoseAnimation> PoseAnimationPtr;
124 
127  typedef boost::shared_ptr<NumericAnimation> NumericAnimationPtr;
128 
131  typedef boost::shared_ptr<DiagnosticTimer> DiagnosticTimerPtr;
132 
135  typedef boost::shared_ptr<SphericalCoordinates> SphericalCoordinatesPtr;
136  }
137 
138  namespace event
139  {
140  class Connection;
141 
144  typedef boost::shared_ptr<Connection> ConnectionPtr;
145 
148  typedef std::vector<ConnectionPtr> Connection_V;
149  }
150 }
152 
153 #endif