Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
00001 #include "EdgeSizeEvaluator.hpp" 00002 00003 #include "RefinerTagManager.hpp" 00004 #include "moab/Interface.hpp" 00005 00006 #include <cassert> 00007 00008 namespace moab 00009 { 00010 00011 /// Construct an evaluator. 00012 EdgeSizeEvaluator::EdgeSizeEvaluator() 00013 { 00014 this->tag_manager = 0; 00015 } 00016 00017 /// Destruction is virtual so subclasses may clean up after refinement. 00018 EdgeSizeEvaluator::~EdgeSizeEvaluator() {} 00019 00020 /**\fn bool EdgeSizeEvaluator::evaluate_edge( \ 00021 * const double* p0, const void* t0, double* p1, void* t1, const double* p2, const void* t2 00022 *) \brief Returns true if the edge \a p0 - \a p2 should be subdivided, false otherwise. 00023 * 00024 * The arguments \a p0, \a p1, and \a p2 are all pointers to arrays of 6 doubles each 00025 * while the arguments \a t0, \a t1, and \a t2 are all pointers to arrays of tag data 00026 * defined at the corresponding point. While the endpoints \a p0 and \a p2 are 00027 * immutable, the mid-edge point coordinates \a p1 and tag data \a t1 may be altered by 00028 * evaluate_edge(). Altered values will be ignored if evaluate_edge() returns false. 00029 * Be careful to ensure that all calls to evaluate_edge() perform identical modifications 00030 * given identical input values! 00031 * 00032 * A list of tags passed in \a t0, \a t1, and \a t2 is stored in the vertex_tags member. 00033 * The vertex_size member stores the total length of data associated with each pointer (in bytes). 00034 * Subclasses may access vertex_tags and vertexSize directly; the refiner uses public methods to 00035 * populate vertex_tags before evaluate_edge() is called. 00036 */ 00037 } // namespace moab