00001
00002
00008 #if !defined(__geom_mesh_iss_penetration_h__)
00009 #define __geom_mesh_iss_penetration_h__
00010
00011 #include "build.h"
00012 #include "ISS_SignedDistance.h"
00013 #include "set.h"
00014
00015 #include "../../orq/CellArrayStatic.h"
00016
00017 #include <map>
00018 #include <tr1/tuple>
00019
00020 BEGIN_NAMESPACE_GEOM
00021
00022
00026
00028
00041 template<std::size_t N, typename T,
00042 typename PointRandomAccessIterator,
00043 typename TupleOutputIterator>
00044 inline
00045 std::size_t
00046 reportPenetrations(const IndSimpSetIncAdj<N,N,T>& mesh,
00047 PointRandomAccessIterator pointsBeginning,
00048 PointRandomAccessIterator pointsEnd,
00049 TupleOutputIterator penetrations);
00050
00052 template<std::size_t N, typename T>
00053 T
00054 maximumIncidentEdgeLength(const IndSimpSetIncAdj<N,N,T>& mesh, std::size_t n);
00055
00057
00069 template<std::size_t N, typename T>
00070 T
00071 maximumRelativePenetration(const IndSimpSetIncAdj<N,N,T>& mesh);
00072
00074
00075 END_NAMESPACE_GEOM
00076
00077 #define __geom_mesh_iss_penetration_ipp__
00078 #include "penetration.ipp"
00079 #undef __geom_mesh_iss_penetration_ipp__
00080
00081 #endif