utilities3D.h
00001
00016 #ifndef _DLR_GEOMETRY_UTILITIES3D_H_
00017 #define _DLR_GEOMETRY_UTILITIES3D_H_
00018
00019 #include <dlrNumeric/vector3D.h>
00020 #include <dlrNumeric/transform3D.h>
00021 #include <dlrGeometry/plane3D.h>
00022 #include <dlrGeometry/ray3D.h>
00023 #include <dlrGeometry/triangle3D.h>
00024
00025
00026 namespace dlr {
00027
00028 namespace geometry {
00029
00030
00031 bool
00032 checkIntersect(const Ray3D& ray, const Triangle3D& triangle);
00033
00034
00035 bool
00036 checkIntersect(const Ray3D& ray, const Triangle3D& triangle,
00037 numeric::Vector3D& intersect);
00038
00039
00040 bool
00041 checkIntersect(const Ray3D& ray, const Triangle3D& triangle,
00042 double& lambda);
00043
00044
00045 bool
00046 checkIntersect(const Ray3D& ray, const Triangle3D& triangle,
00047 numeric::Vector3D& intersect, double& lambda);
00048
00049
00050 numeric::Vector3D
00051 findIntersect(const Ray3D& ray, const Plane3D& plane, double& distance);
00052
00053
00054 numeric::Vector3D
00055 findIntersect(const Ray3D& ray, const Plane3D& plane);
00056
00057
00058 numeric::Vector3D
00059 findIntersect(const Ray3D& ray, const Plane3D& plane, double& distance);
00060
00061
00062 numeric::Vector3D
00063 findIntersect(const Ray3D& ray0, const Ray3D& ray1,
00064 double& distance0, double& distance1, double& residual);
00065
00066
00067 Plane3D
00068 operator*(const numeric::Transform3D& transform,
00069 const Plane3D& inputPlane);
00070
00071
00072 Ray3D
00073 operator*(const numeric::Transform3D& transform,
00074 const Ray3D& inputRay);
00075
00076
00077 Triangle3D
00078 operator*(const numeric::Transform3D& transform,
00079 const Triangle3D& inputTriangle);
00080
00081 }
00082
00083 }
00084
00085
00086
00087
00088 namespace dlr {
00089
00090 namespace geometry {
00091
00092
00093 }
00094
00095 }
00096
00097
00098 #endif