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 const fcl::Vec3f zWorld_
The orientation of the world z axis. Needed to find potential affordance objects. ...
Definition: operations.hh:62
const double minArea_
Definition: operations.hh:70
Support45Operation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Support45")
Definition: operations.hh:138
Definition: affordance-extraction.hh:25
Definition: operations.hh:32
objects of type Lean. Inherits the OperationBase class.
Definition: operations.hh:127
const double margin_
The error margin within which the requirement function must be fullfilled.
Definition: operations.hh:64
OperationBase()
Definition: operations.hh:39
bool requirement(const fcl::Vec3f &normal)
Definition: operations.hh:119
bool requirement(const fcl::Vec3f &normal)
Definition: operations.hh:94
Definition: operations.hh:76
objects of type Lean. Inherits the OperationBase class.
Definition: operations.hh:101
SupportOperation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Support")
Definition: operations.hh:87
const char * affordance_
Name of the affordance type for which te requirement exists.
Definition: operations.hh:72
const double neighbouringTriangleMargin_
Definition: operations.hh:67
LeanOperation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Lean")
Definition: operations.hh:112
virtual bool requirement(const fcl::Vec3f &normal)=0
OperationBase(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="noAffordance")
Definition: operations.hh:50