19#ifndef HPP_AFFORDANCE_OPERATIONS_HH
20#define HPP_AFFORDANCE_OPERATIONS_HH
22#include <hpp/fcl/data_types.h>
54 const double nbTriMargin = 0.3,
55 const double minArea = 0.05,
56 const char* affordanceName =
"noAffordance")
94 const double nbTriMargin = 0.3,
95 const double minArea = 0.05,
96 const char* affordanceName =
"Support")
97 :
OperationBase(margin, nbTriMargin, minArea, affordanceName) {}
118 const double nbTriMargin = 0.3,
119 const double minArea = 0.05,
120 const char* affordanceName =
"Lean")
121 :
OperationBase(margin, nbTriMargin, minArea, affordanceName) {}
143 const double nbTriMargin = 0.3,
144 const double minArea = 0.05,
145 const char* affordanceName =
"Support45")
147 axis45_(fcl::Vec3f(1. / sqrt(2.), 0, 1. / sqrt(2.))) {}
150 const fcl::Vec3f axis45_;
156 bool requirement(
const fcl::Vec3f& normal) {
157 fcl::Vec3f projectedNormal(0, 0, normal[2]);
158 projectedNormal[0] = sqrt(normal[0] * normal[0] + normal[1] * normal[1]);
159 return ((axis45_ - projectedNormal).squaredNorm() <
margin_);
Definition: operations.hh:107
bool requirement(const fcl::Vec3f &normal)
Definition: operations.hh:125
LeanOperation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Lean")
Definition: operations.hh:117
Definition: operations.hh:32
const double minArea_
Definition: operations.hh:77
OperationBase(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="noAffordance")
Definition: operations.hh:53
OperationBase()
Definition: operations.hh:38
virtual bool requirement(const fcl::Vec3f &normal)=0
const double margin_
The error margin within which the requirement function must be fullfilled.
Definition: operations.hh:71
const char * affordance_
Name of the affordance type for which te requirement exists.
Definition: operations.hh:79
const double neighbouringTriangleMargin_
Definition: operations.hh:74
const fcl::Vec3f zWorld_
Definition: operations.hh:69
Definition: operations.hh:132
Support45Operation(const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="Support45")
Definition: operations.hh:142
Definition: operations.hh:83
bool requirement(const fcl::Vec3f &normal)
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:93
Definition: affordance-extraction.hh:25