moab
|
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 Coroporation, 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 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 class MB_DLL_EXPORT EdgeSizeEvaluator 00034 { 00035 public: 00036 EdgeSizeEvaluator(); 00037 virtual ~EdgeSizeEvaluator(); 00038 00039 virtual bool evaluate_edge( 00040 const double* p0, const void* t0, 00041 double* p1, void* t1, 00042 const double* p2, const void* t2 ) = 0; 00043 00044 void set_tag_manager( RefinerTagManager* tmgr ) { this->tag_manager = tmgr; } 00045 RefinerTagManager* get_tag_manager() { return this->tag_manager; } 00046 00047 protected: 00048 RefinerTagManager* tag_manager; 00049 }; 00050 00051 } 00052 00053 #endif // MOAB_EDGE_SIZE_EVALUATOR_HPP