MeshKit
1.0
|
00001 #ifndef MESHKIT_CAMAL_SIZE_EVAL_HPP 00002 #define MESHKIT_CAMAL_SIZE_EVAL_HPP 00003 00004 #include "CMLSizeEval.hpp" 00005 #include "meshkit/SizingFunction.hpp" 00006 namespace MeshKit 00007 { 00008 00012 class CAMALSizeEval : public ::CMLSizeEval 00013 { 00014 public: 00018 CAMALSizeEval(double size, SizingFunction * szf = NULL); 00019 00022 virtual ~CAMALSizeEval(); 00023 00035 virtual bool size_at_point(double x, double y, double z, double& size, 00036 int level = -1); 00037 00053 virtual bool stretch_vector(double loc_x, double loc_y, double loc_z, 00054 double& vec_x, double& vec_y, double& vec_z); 00055 00066 virtual bool tensor_at_point(double x, double y, double z, 00067 double*& size); 00068 00079 virtual bool size_at_point(double u, double v, double& size, 00080 int level = -1); 00081 00096 virtual bool stretch_vector(double loc_u, double loc_v, 00097 double& vec_u, double& vec_v); 00098 00108 virtual bool tensor_at_point(double u, double v, 00109 double*& size); 00110 00120 virtual bool size_at_point(double u, double& size, 00121 int level = -1); 00122 00126 virtual bool is_anisotropic(); 00127 00131 double get_size(); 00132 00136 void set_size(double mesh_size); 00137 00138 private: 00139 double meshSize; 00140 SizingFunction * sizingFunc; 00141 }; 00142 00143 00144 inline double CAMALSizeEval::get_size() 00145 { 00146 return meshSize; 00147 } 00148 00149 inline void CAMALSizeEval::set_size(double mesh_size) 00150 { 00151 meshSize = mesh_size; 00152 } 00153 00154 } // namespace MeshKit 00155 00156 #endif