Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
EdgeSizeEvaluator.cpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines