ODECollision.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 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 /* Desc: Collision class
18  * Author: Nate Koenig
19  * Date: 13 Feb 2006
20  */
21 
22 #ifndef _ODECOLLISION_HH_
23 #define _ODECOLLISION_HH_
24 
26 
30 #include "gazebo/util/system.hh"
31 
32 namespace gazebo
33 {
34  namespace physics
35  {
38 
40  class GZ_PHYSICS_VISIBLE ODECollision : public Collision
41  {
44  public: explicit ODECollision(LinkPtr _parent);
45 
47  public: virtual ~ODECollision();
48 
49  // Documentation inherited.
50  public: virtual void Load(sdf::ElementPtr _sdf);
51 
52  // Documentation inherited.
53  public: virtual void Fini();
54 
58  public: void SetCollision(dGeomID _collisionId, bool _placeable);
59 
62  public: dGeomID GetCollisionId() const;
63 
66  public: int GetCollisionClass() const;
67 
68  // Documentation inherited.
69  public: virtual void OnPoseChange();
70 
71  // Documentation inherited.
72  public: virtual void SetCategoryBits(unsigned int bits);
73 
74  // Documentation inherited.
75  public: virtual void SetCollideBits(unsigned int bits);
76 
77  // Documentation inherited.
78  public: virtual ignition::math::Box BoundingBox() const;
79 
82  public: dSpaceID GetSpaceId() const;
83 
86  public: void SetSpaceId(dSpaceID _spaceid);
87 
92 
94  private: void OnPoseChangeGlobal();
95 
97  private: void OnPoseChangeRelative();
98 
100  private: void OnPoseChangeNull();
101 
103  protected: dSpaceID spaceId;
104 
106  protected: dGeomID collisionId;
107 
109  private: void (ODECollision::*onPoseChangeFunc)();
110  };
112  }
113 }
114 #endif
dSpaceID spaceId
Collision space for this.
Definition: ODECollision.hh:103
Base class for all collision entities.
Definition: Collision.hh:39
Forward declarations for the common classes.
Definition: Animation.hh:27
virtual ~ODECollision()
Destructor.
dGeomID collisionId
ID for the collision.
Definition: ODECollision.hh:106
boost::shared_ptr< ODESurfaceParams > ODESurfaceParamsPtr
Definition: ODETypes.hh:55
void SetCollision(dGeomID _collisionId, bool _placeable)
Set the encapsulated collision object.
Base class for all ODE collisions.
Definition: ODECollision.hh:41
default namespace for gazebo
virtual void SetCollideBits(unsigned int bits)
Set the collide bits, used during collision detection.
virtual void SetCategoryBits(unsigned int bits)
Set the category bits, used during collision detection.
virtual ignition::math::Box BoundingBox() const
Get the bounding box for this collision.
int GetCollisionClass() const
Get the ODE collision class.
dGeomID GetCollisionId() const
Return the collision id.
virtual void OnPoseChange()
This function is called when the entity's (or one of its parents) pose of the parent has changed.
ODE wrapper forward declarations and typedefs.
boost::shared_ptr< Link > LinkPtr
Definition: PhysicsTypes.hh:109
virtual void Load(sdf::ElementPtr _sdf)
Load the collision.
ODECollision(LinkPtr _parent)
Constructor.
virtual void Fini()
Finalize the collision.
ODESurfaceParamsPtr GetODESurface() const
Similar to Collision::GetSurface, but provides dynamically casted pointer to ODESurfaceParams.
void SetSpaceId(dSpaceID _spaceid)
Set the collision's space ID.
dSpaceID GetSpaceId() const
Get the collision's space ID.