00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #include <moveit/collision_distance_field/collision_robot_hybrid.h>
00038
00039 namespace collision_detection
00040 {
00041 CollisionRobotHybrid::CollisionRobotHybrid(const robot_model::RobotModelConstPtr& kmodel) : CollisionRobotFCL(kmodel)
00042 {
00043 crobot_distance_.reset(new collision_detection::CollisionRobotDistanceField(kmodel));
00044 }
00045
00046 CollisionRobotHybrid::CollisionRobotHybrid(
00047 const robot_model::RobotModelConstPtr& kmodel,
00048 const std::map<std::string, std::vector<CollisionSphere> >& link_body_decompositions, double size_x, double size_y,
00049 double size_z, bool use_signed_distance_field, double resolution, double collision_tolerance,
00050 double max_propogation_distance, double padding, double scale)
00051 : CollisionRobotFCL(kmodel)
00052 {
00053 crobot_distance_.reset(new collision_detection::CollisionRobotDistanceField(
00054 kmodel, link_body_decompositions, size_x, size_y, size_z, use_signed_distance_field, resolution,
00055 collision_tolerance, max_propogation_distance, padding, scale));
00056 }
00057
00058 CollisionRobotHybrid::CollisionRobotHybrid(const CollisionRobotHybrid& other) : CollisionRobotFCL(other)
00059 {
00060 crobot_distance_.reset(
00061 new collision_detection::CollisionRobotDistanceField(*other.getCollisionRobotDistanceField().get()));
00062 }
00063
00064 void CollisionRobotHybrid::checkSelfCollisionDistanceField(const collision_detection::CollisionRequest& req,
00065 collision_detection::CollisionResult& res,
00066 const robot_state::RobotState& state) const
00067 {
00068 crobot_distance_->checkSelfCollision(req, res, state);
00069 }
00070
00071 void CollisionRobotHybrid::checkSelfCollisionDistanceField(const collision_detection::CollisionRequest& req,
00072 collision_detection::CollisionResult& res,
00073 const robot_state::RobotState& state,
00074 boost::shared_ptr<GroupStateRepresentation>& gsr) const
00075 {
00076 crobot_distance_->checkSelfCollision(req, res, state, gsr);
00077 }
00078
00079 void CollisionRobotHybrid::checkSelfCollisionDistanceField(const collision_detection::CollisionRequest& req,
00080 collision_detection::CollisionResult& res,
00081 const robot_state::RobotState& state,
00082 const collision_detection::AllowedCollisionMatrix& acm) const
00083 {
00084 crobot_distance_->checkSelfCollision(req, res, state, acm);
00085 }
00086
00087 void CollisionRobotHybrid::checkSelfCollisionDistanceField(const collision_detection::CollisionRequest& req,
00088 collision_detection::CollisionResult& res,
00089 const robot_state::RobotState& state,
00090 const collision_detection::AllowedCollisionMatrix& acm,
00091 boost::shared_ptr<GroupStateRepresentation>& gsr) const
00092 {
00093 crobot_distance_->checkSelfCollision(req, res, state, acm, gsr);
00094 }
00095 }