hpp-fcl: hpp::fcl::HeightField< BV > Class Template Reference

hpp-fcl 1.8.0 HPP fork of FCL -- The Flexible Collision Library

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
hpp::fcl::HeightField< BV > Class Template Reference
Construction_Of_HeightField

Data structure depicting a height field given by the base grid dimensions and the elevation along the grid. More...

`#include <hpp/fcl/hfield.h>`

Inheritance diagram for hpp::fcl::HeightField< BV >:

## Public Types
typedef CollisionGeometry | Base
typedef HFNode< BV > | Node
typedef std::vector< Node > | BVS

## Public Member Functions
| HeightField ()
| Constructing an empty HeightField. More...
| HeightField (const FCL_REAL x_dim, const FCL_REAL y_dim, const MatrixXf &heights, const FCL_REAL min_height=(FCL_REAL) 0)
| Constructing an HeightField from its base dimensions and the set of heights points. The granularity of the height field along X and Y direction is extraded from the Z grid. More...
| HeightField (const HeightField &other)
| Copy contructor from another HeightField. More...
const VecXf & | getXGrid () const
| Returns a const reference of the grid along the X direction. More...
const VecXf & | getYGrid () const
| Returns a const reference of the grid along the Y direction. More...
const MatrixXf & | getHeights () const
| Returns a const reference of the heights. More...
FCL_REAL | getXDim () const
| Returns the dimension of the Height Field along the X direction. More...
FCL_REAL | getYDim () const
| Returns the dimension of the Height Field along the Y direction. More...
FCL_REAL | getMinHeight () const
| Returns the minimal height value of the Height Field. More...
FCL_REAL | getMaxHeight () const
| Returns the maximal height value of the Height Field. More...
virtual HeightField< BV > * | clone () const
| Clone *this into a new CollisionGeometry. More...
virtual | ~HeightField ()
| deconstruction, delete mesh data related. More...
void | computeLocalAABB ()
| Compute the AABB for the HeightField, used for broad-phase collision. More...
bool | operator== (const HeightField &other) const
| Comparison operators. More...
bool | operator!= (const HeightField &other) const
| Difference operator. More...
void | updateHeights (const MatrixXf &new_heights)
| Update Height Field height. More...
const HFNode< BV > & | getBV (unsigned int i) const
| Access the bv giving the its index. More...
HFNode< BV > & | getBV (unsigned int i)
| Access the bv giving the its index. More...
NODE_TYPE | getNodeType () const
| Get the BV type: default is unknown. More...
NODE_TYPE | getNodeType () const
| Specialization of getNodeType() for HeightField with different BV types. More...
NODE_TYPE | getNodeType () const
| get the node type More...
NODE_TYPE | getNodeType () const
| get the node type More...
NODE_TYPE | getNodeType () const
| get the node type More...
NODE_TYPE | getNodeType () const
| get the node type More...
NODE_TYPE | getNodeType () const
| get the node type More...
NODE_TYPE | getNodeType () const
| get the node type More...
NODE_TYPE | getNodeType () const
| get the node type More...
Public Member Functions inherited from hpp::fcl::CollisionGeometry
| CollisionGeometry ()
| CollisionGeometry (const CollisionGeometry &other)
| Copy constructor. More...
virtual | ~CollisionGeometry ()
bool | operator== (const CollisionGeometry &other) const
| Equality operator. More...
bool | operator!= (const CollisionGeometry &other) const
| Difference operator. More...
void * | getUserData () const
| get user data in geometry More...
void | setUserData (void *data)
| set user data in geometry More...
bool | isOccupied () const
| whether the object is completely occupied More...
bool | isFree () const
| whether the object is completely free More...
bool | isUncertain () const
| whether the object has some uncertainty More...
virtual Matrix3f | computeMomentofInertiaRelatedToCOM () const
| compute the inertia matrix, related to the com More...

## Protected Member Functions
void | init (const FCL_REAL x_dim, const FCL_REAL y_dim, const MatrixXf &heights, const FCL_REAL min_height)
OBJECT_TYPE | getObjectType () const
| Get the object type: it is a HFIELD. More...
Vec3f | computeCOM () const
| compute center of mass More...
FCL_REAL | computeVolume () const
| compute the volume More...
Matrix3f | computeMomentofInertia () const
| compute the inertia matrix, related to the origin More...
int | buildTree ()
| Build the bounding volume hierarchy. More...
FCL_REAL | recursiveUpdateHeight (const size_t bv_id)
FCL_REAL | recursiveBuildTree (const size_t bv_id, const Eigen::DenseIndex x_id, const Eigen::DenseIndex x_size, const Eigen::DenseIndex y_id, const Eigen::DenseIndex y_size)

## Protected Attributes
FCL_REAL | x_dim
| Dimensions in meters along X and Y directions. More...
FCL_REAL | y_dim
MatrixXf | heights
| Elevation values in meters of the Height Field. More...
FCL_REAL | min_height
| Minimal height of the Height Field: all values bellow min_height will be discarded. More...
FCL_REAL | max_height
VecXf | x_grid
| Grids along the X and Y directions. Useful for plotting or other related things. More...
VecXf | y_grid
BVS | bvs
| Bounding volume hierarchy. More...
unsigned int | num_bvs

## Additional Inherited Members
Public Attributes inherited from hpp::fcl::CollisionGeometry
Vec3f | aabb_center
| AABB center in local coordinate. More...
FCL_REAL | aabb_radius
| AABB radius. More...
AABB | aabb_local
| AABB in local coordinate, used for tight AABB when only translation transform. More...
void * | user_data
| pointer to user defined data specific to this object More...
FCL_REAL | cost_density
| collision cost for unit volume More...
FCL_REAL | threshold_occupied
| threshold for occupied ( >= is occupied) More...
FCL_REAL | threshold_free
| threshold for free (<= is free) More...

## Detailed Description

template<typename BV>
class hpp::fcl::HeightField< BV >

Data structure depicting a height field given by the base grid dimensions and the elevation along the grid.

Template Parameters

  BV | one of the bounding volume class in Bounding volumes.

An height field is defined by its base dimensions along the X and Y axes and a set ofpoints defined by their altitude, regularly dispatched on the grid. The height field is centered at the origin and the corners of the geometry correspond to the following coordinates [± x_dim/2; ± y_dim/2].

## Member Typedef Documentation

## ◆ Base

template<typename BV >

typedef CollisionGeometry hpp::fcl::HeightField< BV >::Base

## ◆ BVS

template<typename BV >

typedef std::vector<Node> hpp::fcl::HeightField< BV >::BVS

## ◆ Node

template<typename BV >

typedef HFNode<BV> hpp::fcl::HeightField< BV >::Node

## Constructor & Destructor Documentation

## ◆ HeightField() [1/3]

template<typename BV >

hpp::fcl::HeightField< BV >::HeightField | ( |  | ) |
| inline

Constructing an empty HeightField.

## ◆ HeightField() [2/3]

template<typename BV >

hpp::fcl::HeightField< BV >::HeightField | ( | const FCL_REAL | x_dim,
|  | const FCL_REAL | y_dim,
|  | const MatrixXf & | heights,
|  | const FCL_REAL | min_height = `(FCL_REAL)0`
| ) |  |
| inline

Constructing an HeightField from its base dimensions and the set of heights points. The granularity of the height field along X and Y direction is extraded from the Z grid.

Parameters

  [in] | x_dim | Dimension along the X axis
  [in] | y_dim | Dimension along the Y axis
  [in] | heights | Matrix containing the altitude of each point compositng the height field
  [in] | min_height | Minimal height of the height field

## ◆ HeightField() [3/3]

template<typename BV >

hpp::fcl::HeightField< BV >::HeightField | ( | const HeightField< BV > & | other | ) |
| inline

Copy contructor from another HeightField.

Parameters

  [in] | other | to copy.

## ◆ ~HeightField()

template<typename BV >

virtual hpp::fcl::HeightField< BV >::~HeightField | ( |  | ) |
| inlinevirtual

deconstruction, delete mesh data related.

## Member Function Documentation

## ◆ buildTree()

template<typename BV >

int hpp::fcl::HeightField< BV >::buildTree | ( |  | ) |
| inlineprotected

Build the bounding volume hierarchy.

## ◆ clone()

template<typename BV >

virtual HeightField< BV > * hpp::fcl::HeightField< BV >::clone | ( |  | ) | const
| inlinevirtual

Clone *this into a new CollisionGeometry.

Implements hpp::fcl::CollisionGeometry.

## ◆ computeCOM()

template<typename BV >

Vec3f hpp::fcl::HeightField< BV >::computeCOM | ( |  | ) | const
| inlineprotectedvirtual

compute center of mass

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ computeLocalAABB()

template<typename BV >

void hpp::fcl::HeightField< BV >::computeLocalAABB | ( |  | ) |
| inlinevirtual

Compute the AABB for the HeightField, used for broad-phase collision.

Implements hpp::fcl::CollisionGeometry.

## ◆ computeMomentofInertia()

template<typename BV >

Matrix3f hpp::fcl::HeightField< BV >::computeMomentofInertia | ( |  | ) | const
| inlineprotectedvirtual

compute the inertia matrix, related to the origin

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ computeVolume()

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::computeVolume | ( |  | ) | const
| inlineprotectedvirtual

compute the volume

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getBV() [1/2]

template<typename BV >

HFNode< BV > & hpp::fcl::HeightField< BV >::getBV | ( | unsigned int | i | ) |
| inline

Access the bv giving the its index.

## ◆ getBV() [2/2]

template<typename BV >

const HFNode< BV > & hpp::fcl::HeightField< BV >::getBV | ( | unsigned int | i | ) | const
| inline

Access the bv giving the its index.

## ◆ getHeights()

template<typename BV >

const MatrixXf & hpp::fcl::HeightField< BV >::getHeights | ( |  | ) | const
| inline

Returns a const reference of the heights.

## ◆ getMaxHeight()

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::getMaxHeight | ( |  | ) | const
| inline

Returns the maximal height value of the Height Field.

## ◆ getMinHeight()

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::getMinHeight | ( |  | ) | const
| inline

Returns the minimal height value of the Height Field.

## ◆ getNodeType() [1/9]

template<typename BV >

NODE_TYPE hpp::fcl::HeightField< BV >::getNodeType | ( |  | ) | const
| inlinevirtual

Get the BV type: default is unknown.

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [2/9]

NODE_TYPE hpp::fcl::HeightField< AABB >::getNodeType | ( |  | ) | const
| virtual

Specialization of getNodeType() for HeightField with different BV types.

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [3/9]

NODE_TYPE hpp::fcl::HeightField< OBB >::getNodeType | ( |  | ) | const
| virtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [4/9]

NODE_TYPE hpp::fcl::HeightField< RSS >::getNodeType | ( |  | ) | const
| virtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [5/9]

NODE_TYPE hpp::fcl::HeightField< kIOS >::getNodeType | ( |  | ) | const
| virtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [6/9]

NODE_TYPE hpp::fcl::HeightField< OBBRSS >::getNodeType | ( |  | ) | const
| virtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [7/9]

NODE_TYPE hpp::fcl::HeightField< KDOP< 16 > >::getNodeType | ( |  | ) | const
| virtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [8/9]

NODE_TYPE hpp::fcl::HeightField< KDOP< 18 > >::getNodeType | ( |  | ) | const
| virtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getNodeType() [9/9]

NODE_TYPE hpp::fcl::HeightField< KDOP< 24 > >::getNodeType | ( |  | ) | const
| virtual

get the node type

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getObjectType()

template<typename BV >

OBJECT_TYPE hpp::fcl::HeightField< BV >::getObjectType | ( |  | ) | const
| inlineprotectedvirtual

Get the object type: it is a HFIELD.

Reimplemented from hpp::fcl::CollisionGeometry.

## ◆ getXDim()

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::getXDim | ( |  | ) | const
| inline

Returns the dimension of the Height Field along the X direction.

## ◆ getXGrid()

template<typename BV >

const VecXf & hpp::fcl::HeightField< BV >::getXGrid | ( |  | ) | const
| inline

Returns a const reference of the grid along the X direction.

## ◆ getYDim()

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::getYDim | ( |  | ) | const
| inline

Returns the dimension of the Height Field along the Y direction.

## ◆ getYGrid()

template<typename BV >

const VecXf & hpp::fcl::HeightField< BV >::getYGrid | ( |  | ) | const
| inline

Returns a const reference of the grid along the Y direction.

## ◆ init()

template<typename BV >

void hpp::fcl::HeightField< BV >::init | ( | const FCL_REAL | x_dim,
|  | const FCL_REAL | y_dim,
|  | const MatrixXf & | heights,
|  | const FCL_REAL | min_height
| ) |  |
| inlineprotected

## ◆ operator!=()

template<typename BV >

bool hpp::fcl::HeightField< BV >::operator!= | ( | const HeightField< BV > & | other | ) | const
| inline

Difference operator.

## ◆ operator==()

template<typename BV >

bool hpp::fcl::HeightField< BV >::operator== | ( | const HeightField< BV > & | other | ) | const
| inline

Comparison operators.

## ◆ recursiveBuildTree()

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::recursiveBuildTree | ( | const size_t | bv_id,
|  | const Eigen::DenseIndex | x_id,
|  | const Eigen::DenseIndex | x_size,
|  | const Eigen::DenseIndex | y_id,
|  | const Eigen::DenseIndex | y_size
| ) |  |
| inlineprotected

## ◆ recursiveUpdateHeight()

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::recursiveUpdateHeight | ( | const size_t | bv_id | ) |
| inlineprotected

## ◆ updateHeights()

template<typename BV >

void hpp::fcl::HeightField< BV >::updateHeights | ( | const MatrixXf & | new_heights | ) |
| inline

Update Height Field height.

## Member Data Documentation

## ◆ bvs

template<typename BV >

BVS hpp::fcl::HeightField< BV >::bvs
| protected

Bounding volume hierarchy.

## ◆ heights

template<typename BV >

MatrixXf hpp::fcl::HeightField< BV >::heights
| protected

Elevation values in meters of the Height Field.

## ◆ max_height

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::max_height
| protected

## ◆ min_height

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::min_height
| protected

Minimal height of the Height Field: all values bellow min_height will be discarded.

## ◆ num_bvs

template<typename BV >

unsigned int hpp::fcl::HeightField< BV >::num_bvs
| protected

## ◆ x_dim

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::x_dim
| protected

Dimensions in meters along X and Y directions.

## ◆ x_grid

template<typename BV >

VecXf hpp::fcl::HeightField< BV >::x_grid
| protected

Grids along the X and Y directions. Useful for plotting or other related things.

## ◆ y_dim

template<typename BV >

FCL_REAL hpp::fcl::HeightField< BV >::y_dim
| protected

## ◆ y_grid

template<typename BV >

VecXf hpp::fcl::HeightField< BV >::y_grid
| protected

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

- include/hpp/fcl/hfield.h