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   } // namespace utilities
00082     
00083 } // namespace dlr
00084 
00085 
00086 /* ======= Inline and template function definitions. ======= */
00087 
00088 namespace dlr {
00089 
00090   namespace geometry {
00091 
00092     
00093   } // namespace geometry
00094   
00095 } // namespace dlr
00096 
00097 
00098 #endif /* #ifndef _DLR_GEOMETRY_UTILITIES3D_H_ */

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