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 2007 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 00027 #ifndef MOAB_SIMPEX_TEMPLATE_TAG_ASSIGNER_HPP 00028 #define MOAB_SIMPEX_TEMPLATE_TAG_ASSIGNER_HPP 00029 00030 #include "moab/Compiler.hpp" // for MB_DLL_EXPORT 00031 #include "moab/Types.hpp" 00032 00033 namespace moab { 00034 00035 class RefinerTagManager; 00036 class SimplexTemplateRefiner; 00037 00038 class MB_DLL_EXPORT SimplexTemplateTagAssigner 00039 { 00040 public: 00041 SimplexTemplateTagAssigner( SimplexTemplateRefiner* ); 00042 virtual ~SimplexTemplateTagAssigner(); 00043 00044 virtual void operator () ( const double* c0, const void* t0, EntityHandle h0, 00045 const double* cm, void* tm, 00046 const double* c1, const void* t1, EntityHandle h1 ); 00047 virtual void operator () ( const void* t0, 00048 const void* t1, 00049 const void* t2, 00050 void* tp ); 00051 virtual void set_tag_manager( RefinerTagManager* tmgr ); 00052 00053 protected: 00054 SimplexTemplateRefiner* mesh_refiner; 00055 RefinerTagManager* tag_manager; 00056 }; 00057 00058 } // namespace moab 00059 00060 #endif // MOAB_SIMPEX_TEMPLATE_TAG_ASSIGNER_HPP