00001 #ifndef AFFINETETCELLFACTORY_H 00002 #define AFFINETETCELLFACTORY_H 00003 00004 #include "SundanceDefs.h" 00005 00006 #include "CellFactoryBase.h" 00007 00008 00009 namespace Sundance 00010 { 00011 00012 using namespace TSF; 00013 using std::string; 00014 00015 using std::ostream; 00016 00017 /** \ingroup MeshBuilding 00018 * Factory class to build affine tet cells 00019 */ 00020 00021 class AffineTetCellFactory : public CellFactoryBase 00022 { 00023 public: 00024 /** prepare to construct a tet cell with a given node array 00025 * (which had better have four elements) */ 00026 AffineTetCellFactory(const TSFArray<int>& nodes) 00027 : CellFactoryBase(nodes) {;} 00028 00029 /** prepare to construct a tet cell from four specified nodes */ 00030 AffineTetCellFactory(int a, int b, int c, int d) 00031 : CellFactoryBase(tuple(a,b,c,d)) {;} 00032 00033 /** dtor */ 00034 virtual ~AffineTetCellFactory(){;} 00035 00036 /** return the reference cell used by this factory */ 00037 virtual ReferenceCell& refCell() const ; 00038 00039 private: 00040 00041 }; 00042 00043 00044 00045 } 00046 #endif