hpp-affordance
4.10.0
Implementation to Extract Whole-Body Affordances for Mutli-Contact Planning.
|
Go to the documentation of this file.
19 #ifndef HPP_AFFORDANCE_OPERATIONS_HH
20 #define HPP_AFFORDANCE_OPERATIONS_HH
22 # include <hpp/fcl/data_types.h>
25 namespace affordance {
50 explicit OperationBase (
const double margin = 0.3,
const double nbTriMargin = 0.3,
51 const double minArea = 0.05,
52 const char* affordanceName =
"noAffordance"):
60 virtual bool requirement (
const fcl::Vec3f& normal) =0;
88 const double minArea = 0.05,
89 const char* affordanceName =
"Support"):
90 OperationBase(margin, nbTriMargin, minArea, affordanceName) {}
112 explicit LeanOperation (
const double margin = 0.3,
const double nbTriMargin = 0.3,
113 const double minArea = 0.05,
114 const char* affordanceName =
"Lean"):
115 OperationBase(margin, nbTriMargin, minArea, affordanceName) {}
139 const double minArea = 0.05,
140 const char* affordanceName =
"Support45"):
142 , axis45_ (fcl::Vec3f(1./sqrt(2.),0,1./sqrt(2.))) {}
144 const fcl::Vec3f axis45_;
150 bool requirement (
const fcl::Vec3f& normal)
152 fcl::Vec3f projectedNormal(0,0,normal[2]);
153 projectedNormal[0] = sqrt(normal[0]*normal[0] + normal[1]*normal[1]);
154 return ((axis45_ - projectedNormal).squaredNorm() <
margin_);
163 #endif // HPP_AFFORDANCE_OPERATIONS_HH
OperationBase(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="noAffordance")
Definition: operations.hh:50
const fcl::Vec3f zWorld_
The orientation of the world z axis. Needed to find potential affordance objects.
Definition: operations.hh:62
LeanOperation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Lean")
Definition: operations.hh:112
const double minArea_
Definition: operations.hh:70
SupportOperation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Support")
Definition: operations.hh:87
objects of type Lean. Inherits the OperationBase class.
Definition: operations.hh:101
const double margin_
The error margin within which the requirement function must be fullfilled.
Definition: operations.hh:64
Support45Operation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Support45")
Definition: operations.hh:138
OperationBase()
Definition: operations.hh:39
Definition: affordance-extraction.hh:25
bool requirement(const fcl::Vec3f &normal)
Definition: operations.hh:119
const char * affordance_
Name of the affordance type for which te requirement exists.
Definition: operations.hh:72
Definition: operations.hh:32
bool requirement(const fcl::Vec3f &normal)
Definition: operations.hh:94
const double neighbouringTriangleMargin_
Definition: operations.hh:67
Definition: operations.hh:76
virtual bool requirement(const fcl::Vec3f &normal)=0
objects of type Lean. Inherits the OperationBase class.
Definition: operations.hh:127