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 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 #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 
62  typedef boost::shared_ptr<WorldPlugin> WorldPluginPtr;
63  typedef boost::shared_ptr<ModelPlugin> ModelPluginPtr;
64  typedef boost::shared_ptr<SensorPlugin> SensorPluginPtr;
65  typedef boost::shared_ptr<GUIPlugin> GUIPluginPtr;
66  typedef boost::shared_ptr<SystemPlugin> SystemPluginPtr;
67  typedef boost::shared_ptr<VisualPlugin> VisualPluginPtr;
68 
69  namespace common
70  {
71  class Param;
72  class Time;
73  class Image;
74  class Mesh;
75  class MouseEvent;
76  class PoseAnimation;
77  class NumericAnimation;
78  class Animation;
79  class Color;
80  class SkeletonAnimation;
81 
82  template <typename T>
83  class ParamT;
84 
85  typedef std::vector<common::Param*> Param_V;
86  typedef std::map<std::string, std::string> StrStr_M;
87  typedef boost::shared_ptr<Animation> AnimationPtr;
88  typedef boost::shared_ptr<PoseAnimation> PoseAnimationPtr;
89  typedef boost::shared_ptr<NumericAnimation> NumericAnimationPtr;
90  }
91 
92  namespace event
93  {
94  class Connection;
95  typedef boost::shared_ptr<Connection> ConnectionPtr;
96  typedef std::vector<ConnectionPtr> Connection_V;
97  }
98 }
100 
101 #endif