![]() |
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
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