Public Member Functions | Friends | List of all members
TestMask Class Reference
Inheritance diagram for TestMask:
Inheritance graph
[legend]

Public Member Functions

 TestMask (const point_containment_filter::ShapeMask::TransformCallback &transformCallback, double minSensorDist, double maxSensorDist, bool doClipping, bool doContainsTest, bool doShadowTest)
 
- Public Member Functions inherited from robot_body_filter::RayCastingShapeMask
MultiShapeHandle addShape (const shapes::ShapeConstPtr &shape, double containsScale, double containsPadding, double shadowScale, double shadowPadding, double bsphereScale, double bspherePadding, double bboxScale, double bboxPadding, bool updateInternalStructures=true, const std::string &name="")
 Add the given shape to the set of filtered bodies. The internally created body will be transformed by the TransformCallback to which the handle of this shape will be passed. More...
 
MultiShapeHandle addShape (const shapes::ShapeConstPtr &shape, double scale=1.0, double padding=0.0, bool updateInternalStructures=true, const std::string &name="")
 Add the given shape to the set of filtered bodies. The internally created body will be transformed by the TransformCallback to which the handle of this shape will be passed. More...
 
std::map< point_containment_filter::ShapeHandle, const bodies::Body * > getBodies () const
 Provides the map of shape handle to corresponding body (for all added shapes). More...
 
std::map< point_containment_filter::ShapeHandle, const bodies::Body * > getBodiesForBoundingBox () const
 Provides the map of shape handle to corresponding body for shapes that should be used in bounding box computation. More...
 
std::map< point_containment_filter::ShapeHandle, const bodies::Body * > getBodiesForBoundingSphere () const
 Provides the map of shape handle to corresponding body for shapes that should be used in bounding sphere computation. More...
 
std::map< point_containment_filter::ShapeHandle, const bodies::Body * > getBodiesForContainsTest () const
 Provides the map of shape handle to corresponding body for shapes that should be used in contains tests. More...
 
std::map< point_containment_filter::ShapeHandle, const bodies::Body * > getBodiesForShadowTest () const
 Provides the map of shape handle to corresponding body for shapes that should be used in shadow testing. More...
 
bodies::BoundingSphere getBoundingSphere () const
 Get the bounding sphere containing all registered shapes. More...
 
std::map< point_containment_filter::ShapeHandle, bodies::BoundingSpheregetBoundingSpheres () const
 Get the map of bounding spheres of all registered shapes. More...
 
std::map< point_containment_filter::ShapeHandle, bodies::BoundingSpheregetBoundingSpheresForContainsTest () const
 Get the map of bounding spheres of all registered shapes that are used for testing INSIDE points. More...
 
void maskContainmentAndShadows (const Cloud &data, std::vector< MaskValue > &mask, const Eigen::Vector3d &sensorPos=Eigen::Vector3d::Zero())
 Decide whether the points in data are either INSIDE the robot, OUTSIDE of it, SHADOWed by the robot body, or CLIPped by min/max sensor measurement distance. INSIDE points can also be viewed as being SHADOW points, but in this algorithm, INSIDE has precedence. Invalid points (containing NaNs) are reported as OUTSIDE. More...
 
void maskContainmentAndShadows (const Eigen::Vector3f &data, MaskValue &mask, const Eigen::Vector3d &sensorPos=Eigen::Vector3d::Zero(), bool updateBodyPoses=true)
 Decide whether the point is either INSIDE the robot, OUTSIDE of it, SHADOWed by the robot body, or CLIPped by min/max sensor measurement distance. INSIDE points can also be viewed as being SHADOW points, but in this algorithm, INSIDE has precedence. Invalid points (containing NaNs) are reported as OUTSIDE. More...
 
 RayCastingShapeMask (const TransformCallback &transformCallback, double minSensorDist=0.0, double maxSensorDist=1e10, bool doClipping=true, bool doContainsTest=true, bool doShadowTest=true, double maxShadowDist=-1.0)
 
void removeShape (const MultiShapeHandle &handle, bool updateInternalStructures=true)
 Remove the shape identified by the given handle from the filtering mask. More...
 
void setIgnoreInContainsTest (std::unordered_set< MultiShapeHandle > ignoreInContainsTest, bool updateInternalStructures=true)
 Set the shapes to be ignored when doing test for INSIDE in maskContainmentAndShadows. More...
 
void setIgnoreInShadowTest (std::unordered_set< MultiShapeHandle > ignoreInShadowTest, bool updateInternalStructures=true)
 Set the shapes to be ignored when doing test for SHADOW in maskContainmentAndShadows. More...
 
void setTransformCallback (const TransformCallback &transform_callback)
 Set the callback which is called whenever a pose of a body needs to be updated. More...
 
void updateBodyPoses ()
 Update the poses of bodies and recompute corresponding bounding spheres. More...
 
void updateInternalShapeLists ()
 Update internal structures. Should be called whenever a shape is added, removed or ignored. By default, it is called automatically by the methods that affect the list of shapes. However, for efficiency, the caller can tell these methods to not update the shape lists and call this when a batch operation is finished. More...
 
virtual ~RayCastingShapeMask ()
 

Friends

class RayCastingShapeMask_Basic_Test
 
class RayCastingShapeMask_Bspheres_Test
 
class RayCastingShapeMask_ClassifyPoint_Test
 

Additional Inherited Members

- Public Types inherited from robot_body_filter::RayCastingShapeMask
enum  MaskValue : std::uint8_t { MaskValue::INSIDE = 0, MaskValue::OUTSIDE = 1, MaskValue::CLIP = 2, MaskValue::SHADOW = 3 }
 
- Protected Types inherited from point_containment_filter::ShapeMask
typedef boost::function< bool(ShapeHandle, Eigen::Isometry3d &)> TransformCallback
 
- Protected Member Functions inherited from robot_body_filter::RayCastingShapeMask
void classifyPointNoLock (const Eigen::Vector3d &data, MaskValue &mask, const Eigen::Vector3d &sensorPos)
 Decide whether the point is either INSIDE the robot, OUTSIDE of it, SHADOWed by the robot body, or CLIPped by min/max sensor measurement distance. INSIDE points can also be viewed as being SHADOW points, but in this algorithm, INSIDE has precedence. Invalid points (containing NaNs) are reported as OUTSIDE. More...
 
bodies::BoundingSphere getBoundingSphereForContainsTestNoLock () const
 Get the bounding sphere containing all shapes that are to be used in the contains test. More...
 
bodies::BoundingSphere getBoundingSphereNoLock () const
 Get the bounding sphere containing all registered shapes. More...
 
void updateBodyPosesNoLock ()
 Update the poses of bodies_ and recompute corresponding bspheres_ and boundingBoxes. More...
 
- Protected Member Functions inherited from point_containment_filter::ShapeMask
ShapeHandle addShape (const shapes::ShapeConstPtr &shape, double scale=1.0, double padding=0.0)
 
int getMaskContainment (const Eigen::Vector3d &pt) const
 
int getMaskContainment (double x, double y, double z) const
 
void maskContainment (const sensor_msgs::PointCloud2 &data_in, const Eigen::Vector3d &sensor_pos, const double min_sensor_dist, const double max_sensor_dist, std::vector< int > &mask)
 
void removeShape (ShapeHandle handle)
 
void setTransformCallback (const TransformCallback &transform_callback)
 
 ShapeMask (const TransformCallback &transform_callback=TransformCallback())
 
virtual ~ShapeMask ()
 
- Protected Attributes inherited from robot_body_filter::RayCastingShapeMask
std::vector< size_t > bspheresBodyIndices
 Contains indices of bodies (as listed in this->bodies_) which correspond to bounding spheres in this->bspheres_. Indices in this vector correspond to indices in bspheres_. Values of this vector correspond to indices in bodies_. More...
 
std::vector< bodies::BoundingSpherebspheresForContainsTest
 Bounding spheres to be used for classifying INSIDE points. More...
 
std::vector< size_t > bspheresForContainsTestBodyIndices
 Contains indices of bodies (as listed in this->bodies_) which correspond to bounding spheres in this->bspheresForContainsTest. Indices in this vector correspond to indices in bspheresForContainsTest. Values of this vector correspond to indices in bodies_. More...
 
std::unique_ptr< RayCastingShapeMaskPIMPLdata
 Implementation-private data. More...
 
bool doClipping = true
 Classify for CLIP during masking. More...
 
bool doContainsTest = true
 Classify for INSIDE during masking. More...
 
bool doShadowTest = true
 Classify for SHADOW during masking. More...
 
std::unordered_set< MultiShapeHandleignoreInBbox
 Shapes to be ignored when computing the robot's bounding box. More...
 
std::unordered_set< MultiShapeHandleignoreInBsphere
 Shapes to be ignored when computing the robot's bounding sphere. More...
 
std::unordered_set< MultiShapeHandleignoreInContainsTest
 Shapes to be ignored when doing test for INSIDE in maskContainmentAndShadows. More...
 
std::unordered_set< MultiShapeHandleignoreInShadowTest
 Shapes to be ignored when doing test for SHADOW in maskContainmentAndShadows. E.g. the sensor collision shape should be listed here. More...
 
double maxSensorDist
 Maximum sensing distance of the sensor. More...
 
double maxShadowDist
 Maximum distance of a point classified as SHADOW (further are OUTSIDE). More...
 
double minSensorDist
 Minimum sensing distance of the sensor. More...
 
- Protected Attributes inherited from point_containment_filter::ShapeMask
std::set< SeeShape, SortBodiesbodies_
 
std::vector< bodies::BoundingSpherebspheres_
 
boost::mutex shapes_lock_
 
TransformCallback transform_callback_
 
 CLIP
 
 INSIDE
 
 OUTSIDE
 

Detailed Description

Definition at line 11 of file test_ray_casting_shape_mask.cpp.

Constructor & Destructor Documentation

◆ TestMask()

TestMask::TestMask ( const point_containment_filter::ShapeMask::TransformCallback transformCallback,
double  minSensorDist,
double  maxSensorDist,
bool  doClipping,
bool  doContainsTest,
bool  doShadowTest 
)
inline

Definition at line 14 of file test_ray_casting_shape_mask.cpp.

Friends And Related Function Documentation

◆ RayCastingShapeMask_Basic_Test

friend class RayCastingShapeMask_Basic_Test
friend

Definition at line 26 of file test_ray_casting_shape_mask.cpp.

◆ RayCastingShapeMask_Bspheres_Test

friend class RayCastingShapeMask_Bspheres_Test
friend

Definition at line 27 of file test_ray_casting_shape_mask.cpp.

◆ RayCastingShapeMask_ClassifyPoint_Test

friend class RayCastingShapeMask_ClassifyPoint_Test
friend

Definition at line 28 of file test_ray_casting_shape_mask.cpp.


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


robot_body_filter
Author(s): Eitan Marder-Eppstein, Tomas Petricek, Martin Pecka
autogenerated on Mon Feb 5 2024 03:33:49