Go to the documentation of this file.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 #ifndef GEOMETRY_UTIL_GEOMETRY_UTIL_H_
00031 #define GEOMETRY_UTIL_GEOMETRY_UTIL_H_
00032
00033 #include <opencv2/core/core.hpp>
00034 #include <tf/transform_datatypes.h>
00035
00036 namespace swri_geometry_util
00037 {
00047 double DistanceFromPlane(
00048 const tf::Vector3& plane_normal,
00049 const tf::Vector3& plane_point,
00050 const tf::Vector3& point);
00051
00052 tf::Vector3 ProjectPointToPlane(
00053 const tf::Vector3& plane_normal,
00054 const tf::Vector3& plane_point,
00055 const tf::Vector3& point);
00056
00057 double DistanceFromLineSegment(
00058 const tf::Vector3& line_start,
00059 const tf::Vector3& line_end,
00060 const tf::Vector3& point);
00061
00062 double DistanceFromLineSegment(
00063 const cv::Vec2d& line_start,
00064 const cv::Vec2d& line_end,
00065 const cv::Vec2d& point);
00066
00067 tf::Vector3 ProjectToLineSegment(
00068 const tf::Vector3& line_start,
00069 const tf::Vector3& line_end,
00070 const tf::Vector3& point);
00071
00072 cv::Vec2d ProjectToLineSegment(
00073 const cv::Vec2d& line_start,
00074 const cv::Vec2d& line_end,
00075 const cv::Vec2d& point);
00076
00088 bool PointInPolygon(
00089 const std::vector<cv::Vec2d>& polygon,
00090 const cv::Vec2d& point);
00091
00105 double DistanceFromPolygon(
00106 const std::vector<cv::Vec2d>& polygon,
00107 const cv::Vec2d& point);
00108
00120 bool ClosestPointToLines(
00121 const tf::Vector3& a1,
00122 const tf::Vector3& a2,
00123 const tf::Vector3& b1,
00124 const tf::Vector3& b2,
00125 tf::Vector3& point);
00126 }
00127
00128 #endif // GEOMETRY_UTIL_GEOMETRY_UTIL_H_