utilities2D.h
00001
00016 #ifndef _DLR_GEOMETRY_UTILITIES2D_H_
00017 #define _DLR_GEOMETRY_UTILITIES2D_H_
00018
00019 #include <dlrNumeric/transform2D.h>
00020 #include <dlrNumeric/vector2D.h>
00021 #include <dlrGeometry/lineSegment2D.h>
00022 #include <dlrGeometry/ray2D.h>
00023
00024
00025 namespace dlr {
00026
00027 namespace geometry {
00028
00029 bool
00030 checkIntersect(const LineSegment2D& lineSegment0,
00031 const LineSegment2D& lineSegment1);
00032
00033
00034 bool
00035 checkIntersect(const LineSegment2D& lineSegment0,
00036 const LineSegment2D& lineSegment1,
00037 numeric::Vector2D& intersect);
00038
00039
00040 bool
00041 checkIntersect(const Ray2D& ray, const LineSegment2D& lineSegment);
00042
00043
00044 bool
00045 checkIntersect(const Ray2D& ray, const LineSegment2D& lineSegment,
00046 numeric::Vector2D& intersect);
00047
00048
00049 bool
00050 checkIntersect(const Ray2D& ray, const LineSegment2D& lineSegment,
00051 double& lambda);
00052
00053
00054 bool
00055 checkIntersect(const Ray2D& ray, const LineSegment2D& lineSegment,
00056 numeric::Vector2D& intersect, double& lambda);
00057
00058
00059 numeric::Vector2D
00060 findClosestPoint(numeric::Vector2D const& point,
00061 Ray2D const& ray);
00062
00063
00064 LineSegment2D
00065 operator*(const numeric::Transform2D& transform,
00066 const LineSegment2D& inputSegment);
00067
00068
00069 Ray2D
00070 operator*(const numeric::Transform2D& transform,
00071 const Ray2D& inputRay);
00072
00073
00074 }
00075
00076 }
00077
00078
00079
00080
00081 namespace dlr {
00082
00083 namespace geometry {
00084
00085
00086 }
00087
00088 }
00089
00090
00091 #endif