00001
00002
00008 #if !defined(__geom_mesh_iss_laplacian_h__)
00009 #define __geom_mesh_iss_laplacian_h__
00010
00011 #include "IndSimpSetIncAdj.h"
00012 #include "PointsOnManifold.h"
00013 #include "accessors.h"
00014 #include "geometry.h"
00015
00016 #include "../../../numerical/constants.h"
00017
00018 #include <set>
00019
00020 BEGIN_NAMESPACE_GEOM
00021
00022
00026
00027
00029
00035 template<int N, int M, bool A, typename T, typename V, typename IS>
00036 void
00037 applyLaplacian(IndSimpSetIncAdj<N,M,A,T,V,IS>* mesh, int numSweeps = 1);
00038
00039
00041
00052 template<bool A, typename T, typename V, typename IS, class BoundaryCondition>
00053 void
00054 applyLaplacian(IndSimpSetIncAdj<2,1,A,T,V,IS>* mesh,
00055 const BoundaryCondition& condition,
00056 T maxAngleDeviation, int numSweeps = 1);
00057
00058
00060
00067 template<bool A, typename T, typename V, typename IS, int SD>
00068 void
00069 applyLaplacian(IndSimpSetIncAdj<2,1,A,T,V,IS>* mesh,
00070 PointsOnManifold<2,1,SD,T>* manifold,
00071 int numSweeps = 1);
00072
00073
00075
00084 template<bool A, typename T, typename V, typename IS, class BoundaryCondition>
00085 void
00086 applyLaplacian(IndSimpSetIncAdj<3,2,A,T,V,IS>* mesh,
00087 const BoundaryCondition& condition,
00088 T maxAngleDeviation, int numSweeps = 1);
00089
00090
00092
00093 END_NAMESPACE_GEOM
00094
00095 #define __geom_mesh_iss_laplacian_ipp__
00096 #include "laplacian.ipp"
00097 #undef __geom_mesh_iss_laplacian_ipp__
00098
00099 #endif