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],