hpp-affordance: hpp::affordance::OperationBase Class Reference

hpp-affordance 9.0.2 Implementation to Extract Whole-Body Affordances for Mutli-Contact Planning.

Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
hpp::affordance::OperationBase Class Referenceabstract
Affordance

`#include <hpp/affordance/operations.hh>`

Inheritance diagram for hpp::affordance::OperationBase:
[legend]

## Public Member Functions
| OperationBase ()
| OperationBase (const double margin=0.3, const double nbTriMargin=0.3, const double minArea=0.05, const char *affordanceName="noAffordance")
virtual bool | requirement (const coal::Vec3s &normal)=0

## Public Attributes
const coal::Vec3s | zWorld_
const double | margin_
| The error margin within which the requirement function must be fullfilled.
const double | neighbouringTriangleMargin_
const double | minArea_
const char * | affordance_
| Name of the affordance type for which te requirement exists.

## Detailed Description

Base class for the data needed to determine affordances of different types. For each affordance type, a child class inheriting OperationBase will have to be created.

## Constructor & Destructor Documentation

## ◆ OperationBase() [1/2]

hpp::affordance::OperationBase::OperationBase | ( |  | ) |
| inline

If an OperationBase object is created without parameters, an affordance type called "noAffordance" is created as default, with certain default values for its member variables. This constructor should not be used..!

## ◆ OperationBase() [2/2]

hpp::affordance::OperationBase::OperationBase | ( | const double | margin = 0.3,
|  | const double | nbTriMargin = 0.3,
|  | const double | minArea = 0.05,
|  | const char * | affordanceName = "noAffordance" )
| inline explicit

Constructor that allows for user-defined parameters. Default values are given for parameters that are not defined by the user.

Parameters

  margin | Margin needed for the evaluation of the requirement function
  nbTriMargin | Margin between two triangles tested for a single affordance surface. If the angle between two triangles is greater than the provided margin, the triangles cannot be part of the same affordance surface.
  minArea | Minimum area needed for the formation of an affordance object
  affordanceName | The name of the affordance type

## Member Function Documentation

## ◆ requirement()

virtual bool hpp::affordance::OperationBase::requirement | ( | const coal::Vec3s & | normal | ) |
| pure virtual

Fully virtual function that will determine whether or not a given triangle normal fullfils the requirement of a child class. If yes, the tested triangle forms part of a potential affordance.

Parameters

  normal | Normal vector of the tested triangle.

Implemented in hpp::affordance::LeanOperation, and hpp::affordance::SupportOperation.

## Member Data Documentation

## ◆ affordance_

const char* hpp::affordance::OperationBase::affordance_

Name of the affordance type for which te requirement exists.

## ◆ margin_

const double hpp::affordance::OperationBase::margin_

The error margin within which the requirement function must be fullfilled.

## ◆ minArea_

const double hpp::affordance::OperationBase::minArea_

The minimum area required for an affordance object. The total area may comprise multiple triangles.

## ◆ neighbouringTriangleMargin_

const double hpp::affordance::OperationBase::neighbouringTriangleMargin_

The margin for the deviation of the normal of neighbouring triangles. Used to determine affordance objects comprising more than one triangle.

## ◆ zWorld_

const coal::Vec3s hpp::affordance::OperationBase::zWorld_

The orientation of the world z axis. Needed to find potential affordance objects.

The documentation for this class was generated from the following file:

- include/hpp/affordance/operations.hh