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
common
MeshCSG.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
#ifndef _MESHCSG_HH_
18
#define _MESHCSG_HH_
19
20
#include "
gazebo/math/Pose.hh
"
21
22
struct
_GtsSurface;
23
typedef
_GtsSurface
GtsSurface
;
24
struct
_GPtrArray;
25
typedef
_GPtrArray
GPtrArray
;
26
27
namespace
gazebo
28
{
29
namespace
common
30
{
31
class
Mesh;
32
35
38
class
MeshCSG
39
{
41
public
:
enum
BooleanOperation
{
UNION
,
INTERSECTION
,
DIFFERENCE
};
42
44
public
:
MeshCSG
();
45
47
public
:
virtual
~MeshCSG
();
48
55
public
:
Mesh
*
CreateBoolean
(
const
Mesh
*_m1,
const
Mesh
*_m2,
56
const
int
_operation,
const
math::Pose
&_offset =
math::Pose::Zero
);
57
59
private
:
void
ConvertMeshToGTS(
const
Mesh
*mesh,
GtsSurface
*surface);
60
62
// are within epsilon
65
private
:
void
MergeVertices(
GPtrArray
* _vertices,
double
_epsilon);
66
};
68
}
69
}
70
71
#endif