include
fcl
narrowphase
cost_source-inl.h
Go to the documentation of this file.
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2011-2014, Willow Garage, Inc.
5
* Copyright (c) 2014-2016, Open Source Robotics Foundation
6
* All rights reserved.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* * Redistributions in binary form must reproduce the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer in the documentation and/or other materials provided
17
* with the distribution.
18
* * Neither the name of Open Source Robotics Foundation nor the names of its
19
* contributors may be used to endorse or promote products derived
20
* from this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*/
35
38
#ifndef FCL_COSTSOURCE_INL_H
39
#define FCL_COSTSOURCE_INL_H
40
41
#include "
fcl/narrowphase/cost_source.h
"
42
43
namespace
fcl
44
{
45
46
//==============================================================================
47
extern
template
48
struct
CostSource<double>;
49
50
//==============================================================================
51
template
<
typename
S>
52
CostSource<S>::CostSource
(
53
const
Vector3<S>
& aabb_min_,
54
const
Vector3<S>
& aabb_max_,
55
S cost_density_)
56
: aabb_min(aabb_min_),
57
aabb_max(aabb_max_),
58
cost_density(cost_density_)
59
{
60
total_cost
=
cost_density
61
* (
aabb_max
[0] -
aabb_min
[0])
62
* (
aabb_max
[1] -
aabb_min
[1])
63
* (
aabb_max
[2] -
aabb_min
[2]);
64
}
65
66
//==============================================================================
67
template
<
typename
S>
68
CostSource<S>::CostSource
(
const
AABB<S>
&
aabb
, S cost_density_)
69
: aabb_min(
aabb
.min_), aabb_max(
aabb
.max_), cost_density(cost_density_)
70
{
71
total_cost
=
cost_density
72
* (
aabb_max
[0] -
aabb_min
[0])
73
* (
aabb_max
[1] -
aabb_min
[1])
74
* (
aabb_max
[2] -
aabb_min
[2]);
75
}
76
77
//==============================================================================
78
template
<
typename
S>
79
CostSource<S>::CostSource
()
80
{
81
// Do nothing
82
}
83
84
//==============================================================================
85
template
<
typename
S>
86
bool
CostSource<S>::operator <
(
const
CostSource
& other)
const
87
{
88
if
(total_cost < other.
total_cost
)
89
return
false
;
90
if
(total_cost > other.
total_cost
)
91
return
true
;
92
93
if
(cost_density < other.
cost_density
)
94
return
false
;
95
if
(cost_density > other.
cost_density
)
96
return
true
;
97
98
for
(
size_t
i = 0; i < 3; ++i)
99
if
(aabb_min[i] != other.
aabb_min
[i])
100
return
aabb_min[i] < other.
aabb_min
[i];
101
102
return
false
;
103
}
104
105
}
// namespace fcl
106
107
#endif
fcl::CostSource::aabb_max
Vector3< S > aabb_max
aabb upper bound
Definition:
cost_source.h:55
cost_source.h
fcl::CostSource
Cost source describes an area with a cost. The area is described by an AABB region.
Definition:
cost_source.h:49
fcl::CostSource::CostSource
CostSource()
Definition:
cost_source-inl.h:79
fcl::AABB< S >
fcl::CostSource::aabb_min
Vector3< S > aabb_min
aabb lower bound
Definition:
cost_source.h:52
fcl::CostSource::operator<
bool operator<(const CostSource &other) const
Definition:
cost_source-inl.h:86
fcl::Vector3
Eigen::Matrix< S, 3, 1 > Vector3
Definition:
types.h:70
fcl::CostSource::total_cost
S total_cost
Definition:
cost_source.h:60
fcl::CostSource::cost_density
S cost_density
cost density in the AABB region
Definition:
cost_source.h:58
aabb
SaPCollisionManager< S >::SaPAABB * aabb
back pointer to SAP interval
Definition:
broadphase_SaP.h:184
fcl
Main namespace.
Definition:
broadphase_bruteforce-inl.h:45
fcl
Author(s):
autogenerated on Tue Dec 5 2023 03:40:48