MOAB: Mesh Oriented datABase  (version 5.2.1)
EdgeSizeEvaluator.hpp
Go to the documentation of this file.
00001 /*
00002  * MOAB, a Mesh-Oriented datABase, is a software component for creating,
00003  * storing and accessing finite element mesh data.
00004  *
00005  * Copyright 2004 Sandia Corporation.  Under the terms of Contract
00006  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
00007  * retains certain rights in this software.
00008  *
00009  * This library is free software; you can redistribute it and/or
00010  * modify it under the terms of the GNU Lesser General Public
00011  * License as published by the Free Software Foundation; either
00012  * version 2.1 of the License, or (at your option) any later version.
00013  *
00014  */
00015 
00016 /**\class moab::EdgeSizeEvaluator
00017  *
00018  * This is an abstract class that embodies the rule used during edge-based mesh
00019  * refinement to decide whether an edge should be subdivided or not.
00020  * Subclasses must implement the pure virtual evaluate_edge() function.
00021  *
00022  * \author David Thompson
00023  *
00024  * \date 19 November 2007
00025  */
00026 #ifndef MOAB_EDGE_SIZE_EVALUATOR_HPP
00027 #define MOAB_EDGE_SIZE_EVALUATOR_HPP
00028 
00029 #include "RefinerTagManager.hpp"
00030 
00031 namespace moab
00032 {
00033 
00034 class EdgeSizeEvaluator
00035 {
00036   public:
00037     EdgeSizeEvaluator();
00038     virtual ~EdgeSizeEvaluator();
00039 
00040     virtual bool evaluate_edge( const double* p0, const void* t0, double* p1, void* t1, const double* p2,
00041                                 const void* t2 ) = 0;
00042 
00043     void set_tag_manager( RefinerTagManager* tmgr )
00044     {
00045         this->tag_manager = tmgr;
00046     }
00047     RefinerTagManager* get_tag_manager()
00048     {
00049         return this->tag_manager;
00050     }
00051 
00052   protected:
00053     RefinerTagManager* tag_manager;
00054 };
00055 
00056 }  // namespace moab
00057 
00058 #endif  // MOAB_EDGE_SIZE_EVALUATOR_HPP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines