17 #ifndef GAZEBO_PHYSICS_ODE_ODEPLANESHAPE_HH_
18 #define GAZEBO_PHYSICS_ODE_ODEPLANESHAPE_HH_
48 boost::dynamic_pointer_cast<
ODECollision>(this->collisionParent);
49 ignition::math::Pose3d pose = oParent->
WorldPose();
50 double altitude = pose.Pos().Z();
51 ignition::math::Vector3d n = this->Normal();
52 if (oParent->GetCollisionId() ==
nullptr)
53 oParent->SetCollision(dCreatePlane(oParent->GetSpaceId(),
54 n.X(), n.Y(), n.Z(), altitude),
false);
56 dGeomPlaneSetParams(oParent->GetCollisionId(),
57 n.X(), n.Y(), n.Z(), altitude);
61 public:
virtual void SetAltitude(
const ignition::math::Vector3d &_pos)
66 boost::dynamic_pointer_cast<
ODECollision>(this->collisionParent);
70 dGeomPlaneGetParams(odeParent->GetCollisionId(), vec4);
73 vec4[3] = vec4[0] * _pos.X() + vec4[1] * _pos.Y() + vec4[2] * _pos.Z();
75 dGeomPlaneSetParams(odeParent->GetCollisionId(), vec4[0], vec4[1],
Base class for all ODE collisions.
Definition: ODECollision.hh:40
boost::shared_ptr< ODECollision > ODECollisionPtr
Definition: ODETypes.hh:39
virtual void CreatePlane()
Create the plane.
virtual void SetAltitude(const ignition::math::Vector3d &_pos)
Set the altitude of the plane.
ODEPlaneShape(CollisionPtr _parent)
Constructor.
Definition: ODEPlaneShape.hh:36
An ODE Plane shape.
Definition: ODEPlaneShape.hh:32
virtual void CreatePlane()
Create the plane.
Definition: ODEPlaneShape.hh:43
virtual const ignition::math::Pose3d & WorldPose() const
Get the absolute pose of the entity.
virtual ~ODEPlaneShape()
Destructor.
Definition: ODEPlaneShape.hh:40
virtual void SetAltitude(const ignition::math::Vector3d &_pos)
Set the altitude of the plane.
Definition: ODEPlaneShape.hh:61
Collision for an infinite plane.
Definition: PlaneShape.hh:37
boost::shared_ptr< Collision > CollisionPtr
Definition: PhysicsTypes.hh:113