Class
List
Hierarchy
Modules
Common
Events
Math
Messages
Physics
Rendering
Sensors
Transport
Links
Gazebo Website
Wiki
Tutorials
Download
Report Documentation Issues
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gazebo
physics
simbody
SimbodyBoxShape.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012-2014 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_BOXSHAPE_HH_
19
#define _SIMBODY_BOXSHAPE_HH_
20
21
#include "
gazebo/physics/simbody/SimbodyPhysics.hh
"
22
#include "
gazebo/physics/BoxShape.hh
"
23
24
namespace
gazebo
25
{
26
namespace
physics
27
{
31
33
class
SimbodyBoxShape
:
public
BoxShape
34
{
36
public
:
SimbodyBoxShape
(
CollisionPtr
_parent) :
BoxShape
(_parent) {}
37
39
public
:
virtual
~SimbodyBoxShape
() {}
40
41
// Documentation inherited
42
public
:
void
SetSize
(
const
math::Vector3
&_size)
43
{
44
if
(_size.
x
< 0 || _size.
y
< 0 || _size.
z
< 0)
45
{
46
gzerr
<<
"Box shape does not support negative size\n"
;
47
return
;
48
}
49
math::Vector3
size = _size;
50
if
(
math::equal
(size.
x
, 0.0))
51
{
52
// Warn user, but still create shape with very small value
53
// otherwise later resize operations using setLocalScaling
54
// will not be possible
55
gzwarn
<<
"Setting box shape's x to zero \n"
;
56
size.
x
= 1e-4;
57
}
58
if
(
math::equal
(size.
y
, 0.0))
59
{
60
gzwarn
<<
"Setting box shape's y to zero \n"
;
61
size.
y
= 1e-4;
62
}
63
if
(
math::equal
(size.
z
, 0.0))
64
{
65
gzwarn
<<
"Setting box shape's z to zero \n"
;
66
size.
z
= 1e-4;
67
}
68
69
BoxShape::SetSize
(size);
70
71
SimbodyCollisionPtr
bParent;
72
bParent = boost::dynamic_pointer_cast<
SimbodyCollision
>(
73
this->
collisionParent
);
74
}
75
};
77
}
78
}
79
#endif