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   } // namespace utilities
00075     
00076 } // namespace dlr
00077 
00078 
00079 /* ======= Inline and template function definitions. ======= */
00080 
00081 namespace dlr {
00082 
00083   namespace geometry {
00084 
00085     
00086   } // namespace geometry
00087   
00088 } // namespace dlr
00089 
00090 
00091 #endif /* #ifndef _DLR_GEOMETRY_UTILITIES2D_H_ */

Generated on Wed Nov 25 11:45:25 2009 for dlrGeometry Utility Library by  doxygen 1.5.8