SimbodyCylinderShape.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
18#ifndef _SIMBODY_CYLINDERSHAPE_HH_
19#define _SIMBODY_CYLINDERSHAPE_HH_
20
23#include "gazebo/util/system.hh"
24
25namespace gazebo
26{
27 namespace physics
28 {
32
34 class GZ_PHYSICS_VISIBLE SimbodyCylinderShape : public CylinderShape
35 {
37 public: explicit SimbodyCylinderShape(CollisionPtr _parent)
38 : CylinderShape(_parent) {}
39
41 public: virtual ~SimbodyCylinderShape() {}
42
43 // Documentation inherited
44 public: void SetSize(double _radius, double _length)
45 {
46 if (_radius < 0)
47 {
48 gzerr << "Cylinder shape does not support negative radius\n";
49 return;
50 }
51 if (_length < 0)
52 {
53 gzerr << "Cylinder shape does not support negative length\n";
54 return;
55 }
56 if (ignition::math::equal(_radius, 0.0))
57 {
58 // Warn user, but still create shape with very small value
59 // otherwise later resize operations using setLocalScaling
60 // will not be possible
61 gzwarn << "Setting cylinder shape's radius to zero \n";
62 _radius = 1e-4;
63 }
64 if (ignition::math::equal(_length, 0.0))
65 {
66 gzwarn << "Setting cylinder shape's length to zero \n";
67 _length = 1e-4;
68 }
69
70 CylinderShape::SetSize(_radius, _length);
71 SimbodyCollisionPtr bParent;
72 bParent = boost::dynamic_pointer_cast<SimbodyCollision>(
73 this->collisionParent);
74
75 // set collision shape
76 }
77 };
79 }
80}
81#endif
Cylinder collision.
Definition CylinderShape.hh:33
virtual void SetSize(double _radius, double _length)
Set the size of the cylinder.
CollisionPtr collisionParent
This shape's collision parent.
Definition Shape.hh:73
Cylinder collision.
Definition SimbodyCylinderShape.hh:35
virtual ~SimbodyCylinderShape()
Destructor.
Definition SimbodyCylinderShape.hh:41
SimbodyCylinderShape(CollisionPtr _parent)
Constructor.
Definition SimbodyCylinderShape.hh:37
void SetSize(double _radius, double _length)
Set the size of the cylinder.
Definition SimbodyCylinderShape.hh:44
#define gzerr
Output an error message.
Definition Console.hh:50
#define gzwarn
Output a warning message.
Definition Console.hh:47
boost::shared_ptr< SimbodyCollision > SimbodyCollisionPtr
Definition SimbodyTypes.hh:44
boost::shared_ptr< Collision > CollisionPtr
Definition PhysicsTypes.hh:113
Forward declarations for the common classes.
Definition Animation.hh:27