Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
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 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::SimplexTemplateTagAssigner 00017 * 00018 * This is an class that embodies the process of assigning tag 00019 * values to new vertices based on some pre-existing neighbors in a 00020 * simplicial mesh. 00021 * 00022 * \author David Thompson 00023 * \author Philippe Pebay 00024 * 00025 * \date 28 December 2007 00026 */ 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 00036 class RefinerTagManager; 00037 class SimplexTemplateRefiner; 00038 00039 class SimplexTemplateTagAssigner 00040 { 00041 public: 00042 SimplexTemplateTagAssigner( SimplexTemplateRefiner* ); 00043 virtual ~SimplexTemplateTagAssigner(); 00044 00045 virtual void operator()( const double* c0, 00046 const void* t0, 00047 EntityHandle h0, 00048 const double* cm, 00049 void* tm, 00050 const double* c1, 00051 const void* t1, 00052 EntityHandle h1 ); 00053 virtual void operator()( const void* t0, const void* t1, const void* t2, void* tp ); 00054 virtual void set_tag_manager( RefinerTagManager* tmgr ); 00055 00056 protected: 00057 SimplexTemplateRefiner* mesh_refiner; 00058 RefinerTagManager* tag_manager; 00059 }; 00060 00061 } // namespace moab 00062 00063 #endif // MOAB_SIMPEX_TEMPLATE_TAG_ASSIGNER_HPP