Public Member Functions | Public Attributes | Friends
ICR::InclusionRule Struct Reference

Describes a volume centered on a vertex of the target object; The id's of all vertices within this volume form a patch on the target object's surface. More...

#include <finger.h>

List of all members.

Public Member Functions

 InclusionRule ()
 InclusionRule (double rule_parameter_in, RuleType rule_type_t_in=Sphere, bool filter_in=false)
 Constructs an inclusion rule. Default values are chose when input values are out of scope.
bool inclusionTest (ContactPoint const *center_point, ContactPoint const *test_point) const

Public Attributes

bool filter_inside_points_
double rule_parameter_
RuleType rule_type_

Friends

std::ostream & operator<< (std::ostream &stream, InclusionRule const &inclusion_rule)

Detailed Description

Describes a volume centered on a vertex of the target object; The id's of all vertices within this volume form a patch on the target object's surface.

Each ICR::MultiPointContactModel has an inclusion rule as a member. Those inclusion rules can differ between fingers. If they do, a separate list of patches will be created for each finger during initialization of the grasp. If the flag ICR::InclusionRule::filter_inside_points_ is true, all patches corresponding to the respective finger only contain the center-point and border points. Here, the border is defined by those points having neighbors which don't qualify for patch inclusion. Right now, the inclusion rule is governed only by the scalar ICR::InclusionRule::rule_parameter_ which gives the radius of a sphere centered at a given center-point on the target object. One possibility to generalize this struct would be to change the rule parameter to a 3x3 Matrix parametrizing an ellipsoid and add an additional rotation matrix to give the orientation of this ellipsoid w.r.t the target object. An even more sophisticated possibility would be to formulate the rule parameter as a mesh describing the respective finger tip with a given offset. Maybe also change the name to ICR::PatchRule or something like that to avoid confusion with ICR::IndependentContactRegions::searchZoneInclusionTest and ICR::IndependentContactRegions::primitiveSearchZoneInclusionTest.

Definition at line 43 of file finger.h.


Constructor & Destructor Documentation

Definition at line 12 of file finger.cpp.

ICR::InclusionRule::InclusionRule ( double  rule_parameter_in,
RuleType  rule_type_t_in = Sphere,
bool  filter_in = false 
)

Constructs an inclusion rule. Default values are chose when input values are out of scope.

Parameters:
rule_parameter_in[in] In current config, it is radius of a sphere must be > 0. otherwise default value is chosen.

Definition at line 17 of file finger.cpp.


Member Function Documentation

bool ICR::InclusionRule::inclusionTest ( ContactPoint const *  center_point,
ContactPoint const *  test_point 
) const

Returns true if the volume parametrized by ICR::InclusionRule::rule_parameter_, which is centered at center_point, contains test_point

Definition at line 33 of file finger.cpp.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  stream,
InclusionRule const &  inclusion_rule 
) [friend]

Definition at line 49 of file finger.cpp.


Member Data Documentation

Definition at line 47 of file finger.h.

Definition at line 45 of file finger.h.

Definition at line 46 of file finger.h.


The documentation for this struct was generated from the following files:


libicr
Author(s): Robert Krug
autogenerated on Mon Jan 6 2014 11:34:32