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 
26 // Defines
28 #ifndef NULL
29 #define NULL 0
30 #endif
31 
33 // Macros
35 
36 #if defined(__GNUC__)
37 #define GAZEBO_DEPRECATED(version) __attribute__((deprecated))
38 #define GAZEBO_FORCEINLINE __attribute__((always_inline))
39 #elif defined(MSVC)
40 #define GAZEBO_DEPRECATED(version) ()
41 #define GAZEBO_FORCEINLINE __forceinline
42 #else
43 #define GAZEBO_DEPRECATED(version) ()
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 SubMesh;
94  class MouseEvent;
95  class NumericAnimation;
96  class Param;
97  class PoseAnimation;
98  class SkeletonAnimation;
99  class SphericalCoordinates;
100  class Time;
101 
102  template <typename T>
103  class ParamT;
104 
106  static const double SpeedOfLight = 299792458;
107 
110  typedef std::vector<common::Param*> Param_V;
111 
114  typedef std::map<std::string, std::string> StrStr_M;
115 
118  typedef boost::shared_ptr<Animation> AnimationPtr;
119 
122  typedef boost::shared_ptr<PoseAnimation> PoseAnimationPtr;
123 
126  typedef boost::shared_ptr<NumericAnimation> NumericAnimationPtr;
127 
130  typedef boost::shared_ptr<DiagnosticTimer> DiagnosticTimerPtr;
131 
134  typedef boost::shared_ptr<SphericalCoordinates> SphericalCoordinatesPtr;
135  }
136 
137  namespace event
138  {
139  class Connection;
140 
143  typedef boost::shared_ptr<Connection> ConnectionPtr;
144 
147  typedef std::vector<ConnectionPtr> Connection_V;
148  }
149 }
151 
152 #endif