PhysicsTypes.hh
Go to the documentation of this file.
00001 /*
00002  * Copyright 2011 Nate Koenig & Andrew Howard
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  *
00016 */
00017 
00018 #include <vector>
00019 #include <boost/shared_ptr.hpp>
00020 
00024 namespace gazebo
00025 {
00026   namespace physics
00027   {
00028     class Base;
00029     class Entity;
00030     class World;
00031     class Model;
00032     class Link;
00033     class Collision;
00034     class Joint;
00035     class Contact;
00036     class PhysicsEngine;
00037     class Mass;
00038     class Shape;
00039     class RayShape;
00040     class MultiRayShape;
00041     class Inertial;
00042     class SurfaceParams;
00043 
00044     typedef boost::shared_ptr<Base> BasePtr;
00045     typedef boost::shared_ptr<Contact> ContactPtr;
00046     typedef boost::shared_ptr<Entity> EntityPtr;
00047     typedef boost::shared_ptr<World> WorldPtr;
00048     typedef boost::shared_ptr<Model> ModelPtr;
00049     typedef boost::shared_ptr<Link> LinkPtr;
00050     typedef boost::shared_ptr<Collision> CollisionPtr;
00051     typedef boost::shared_ptr<Joint> JointPtr;
00052     typedef boost::shared_ptr<PhysicsEngine> PhysicsEnginePtr;
00053     typedef boost::shared_ptr<Shape> ShapePtr;
00054     typedef boost::shared_ptr<RayShape> RayShapePtr;
00055     typedef boost::shared_ptr<MultiRayShape> MultiRayShapePtr;
00056     typedef boost::shared_ptr<Inertial> InertialPtr;
00057     typedef boost::shared_ptr<SurfaceParams> SurfaceParamsPtr;
00058 
00059     typedef std::vector<BasePtr> Base_V;
00060     typedef std::vector<ModelPtr> Model_V;
00061     typedef std::vector<JointPtr> Joint_V;
00062     typedef std::vector<LinkPtr>  Link_V;
00063     typedef std::vector<CollisionPtr>  Collision_V;
00064 
00065     #ifndef GZ_COLLIDE_BITS
00066     
00067     #define GZ_ALL_COLLIDE 0x0FFFFFFF
00068     #define GZ_NONE_COLLIDE 0x00000000
00069     #define GZ_FIXED_COLLIDE 0x00000001
00070     #define GZ_SENSOR_COLLIDE 0x00000003
00071     #define GZ_GHOST_COLLIDE 0x10000000
00072     
00073     #endif
00074   }
00075 }